리눅스 쉘(Shell) 기본적인 사용법
04 Oct 2021 | Linux/CentOS리눅스 쉘(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]