Archive

리눅스 쉘(Shell) 기본적인 사용법

|

리눅스 쉘(Shell) 기본적인 사용법


1. 리눅스 기본 명령어 정리

  • whoami : 로그인한 사용자 id를 알려준다 (root: 슈퍼관리자, 사용에 주의)
  • sudo : root 권한으로 실행
  • pwd : 현재 디렉토리 위치
  • ls : 파일 목록 출력, (ls -al : 숨김파일, 폴더까지 포함하여 출력)
  • 파일 권한 : 읽기, 쓰기, 실행에 대한 권한을 소유자, 그룹, 기타로 보여줌 ex ) drwxr-xr– :
    • 맨 앞의 d는 디렉토리, -는 파일
    • 소유자 : rwx 읽기,쓰기,실행 모두 가능
    • 그룹 : r-x 읽기, 실행만 가능
    • 기타 : r– 읽기만 가능
    • rwx : 4 , 2, 1 순으로 이것을 조합하여 숫자로 나타낸다
    • 위의 예를 숫자로 표현하면 754
  • chmod : 파일 권한 변경
    • ex ) chmod -R 777 {directory}
  • cat : 파일 보기
  • rm : 파일 및 폴더 삭제
    • -r : 하위 디렉토리를 포함한 모든 파일 삭제
    • -f : 강제로 파일이나 디렉토리 삭제
    • ex ) rm -rf {파일 및 폴더명}
  • head : 파일의 앞 라인 10개만 보여준다
  • grep {검색명} : 검색명을 가진 것들을 추린다
    • -i : 영문 대소문자 구별 X
    • -v : 패턴을 포함하지 않는 라인을 출력
    • -n : 검색 결과에 행 번호를 삽입
    • -l : 파일명만 출력
    • -c : 패턴과 일치하는 라인의 개수만 출력
    • -r : 하위 디렉토리까지 검색
  • ps : 프로세스 상태 확인
    • -a : 시스템을 사용하는 모든 사용자의 프로세스 출력
    • -u : 프로세스 소유자에 대한 상세정보 출력
    • -l : 프로세스 관련 상세정보 출력
    • -x : 데몬 프로세스까지 출력, 현재 쉘에서 실행한 프로세스 이외에 모든것
    • -e : 해당 프로세스 관련 환경변수 정보도 출력
    • -f : 프로세스간 관계 정보도 출력
    • ex ) ps aux
  • kill : 프로세스 중지
    • ex) kill -9 {프로세스 id or 작업번호}
    • -9 : 작업 강제 종료
  • cp : 파일 복사
    • ex ) cp test.txt copy.txt => test.txt를 복사하여 copy.txt를 만듦
    • ex ) cp -rf * {폴더명} => 하위 폴더 포함 모두 복사


2. 리다이렉션과 파이프

  • Standard Stream : 표준 입출력
    • command로 실행되는 프로세스는 세 가지 스트림을 가지고 있다
    • 표준 입력 스트림 (Standard Input Stream) - stdin
    • 표준 출력 스트림 (Standard Output Stream) - stdout
    • 오류 출력 스트림 (Standard Error Stream) - stderr
  • 이 스트림을 바꿔줄 수 있는게 리다이렉션과 파이프이다
  • 리다이렉션 : >, <를 사용함 (재실행시 덮어쓴다)
    • 명령어 표준 출력을 화면이 아닌 파일에 쓸 때 사용한다
    • ex ) ls -al > test.txt (ls의 결과가 test.txt에 저장됨)
    • ​ cat test.txt
    • >> 키워드는 덮어쓰지 않고 이어서 쓴다
  • 파이프 : | 를 사용함
    • 선행 명령어의 출력이 후행 명령어의 입력으로 들어간다
    • ex ) ls -al | grep bash
    • ls -al의 결과물 중에 bash라는 이름을 가진 것들만 추린다


3. 프로세스

  • foreground process : 쉘에서 명령 실행 후, 해당 프로세스 수행 종료까지 사용자가 다른 입력을 할 수 없음
    • ctrl + c 로 프로세스 종료
  • background process : 사용자 입력과 상관없이 실행되는 프로세스
    • 해당 프로세스 실행 시, 맨 뒤에 & 을 붙인다


4. 하드링크와 소프트링크

  • ln A B : 하드링크로 복사하여 파일을 만든다. A를 수정하면 B도 수정된다
    • ex ) ln a.txt b.txt
  • ln -s A B : 소프트(심볼릭)링크 복사하여 파일을 만든다. (윈도우의 바로가기랑 비슷)
    • ls -al 명령어로 소프트링크 확인 가능
    • A를 삭제하면 B도 접근이 불가능하다


5. 우분투 패키지 관리

  • CentOS, Fedora 등 RedHat 계열 배포판은 RPM이라는 패키지 시스템을 사용한다
  • ubuntu와 같이 데비안 계열 배포판은 dep이라는 패키지 시스템을 사용한다
  • apt 명령어를 주로 사용한다
  • sudo apt-get update : 패키지 인덱스 정보 업데이트
  • sudo apt-get upgrade : 설치된 ubuntu 패키지 업그레이드 (함부로 사용 X)
  • sudo apt-get install {패키지명} : 패키지 설치
  • sudo apt-get remove {패키지명} : 패키지 제거
  • sudo apt-get --purge remove {패키지명} : 패키지 제거 (설정파일 포함)


6. VIM 에디터 기본 사용법

  • VIM : 기존 vi 에디터의 improved version
  • vi에 자동화, 시각화 메뉴 등을 추가했음
  • 일반 모드 : vim 처음 실행 시 or 편집, 명령 모드에서 ESC 입력 시 (찾기, 커서 이동 등)
  • 명령 모드 : 일반 모드에서 : 입력 시 (저장, 파일읽기, vim 설정 등)
    • wq : 저장 후 종료
    • q! : 저장하지 않고 강제 종료
  • 편집 모드 : 일반 모드에서 a 또는 i 또는 o 입력 시 (텍스트 입력 / 편집)
  • 비쥬얼 모드 : 일반 모드에서 v 입력 시 (블럭 복사 / 붙여넣기)



참고자료


인프런 - 풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, flask 배포) [풀스택 Part3]