대표적인 Linux 배포판
-
Debian
-
Ubuntu
-
Redhat
-
CentOS
Shell Command
쉘의 종류
Shell
- 사용자가 문자를 입력해 컴퓨터에 명령할 수 있도록 하는 프로그램
sh
bash
쉘 UX
username@hostname:current folder
- hostname : 컴퓨터 네트워크에 접속된 장치에 할당된 이름
- host : 우리 컴퓨터
기본 쉘 커맨드
man
- manual의 약자
- 쉘 커맨드의 매뉴얼 문서를 보고 싶은 경우
- e.g.,
man python
→ 파이썬 매뉴얼 문서를 볼 수 있음
mkdir
- make directory, 폴더 생성
- mkdir 폴더 이름
ls
- list segments
- 현재 접근한 폴더의 파일 확인
- 옵션
- -a : 전체 파일 출력
- -l : 퍼미션, 소유자, 만든 날짜, 용량까지 출력
- -h : GB, MB 단위로 표현
pwd
- print working directory
- 현재 폴더 경로를 절대 경로로 보여줌
cd
- change directory
- 폴더 변경, 폴더 이동
echo
- python print처럼 터미널에 텍스트 출력
- echo
쉘 커맨드
입력 시 쉘 커맨드의 결과를 출력
cp
- copy, 파일 또는 폴더 복사
- -r 옵션을 주면 디렉토리 내 파일도 모두 복사
vi
- vim 편집기로 파일 생성
- command mode, insert mode, last line mode
bash
sudo
mv
cat
- concatenate, 특정 파일 내용 출력
- 여러 파일을 인자로 주면 합쳐서 출력
- 저장하고(overwrite) 싶은 경우 > , 추가하고(append) 싶은 경우 >>
history
- 최근 입력한 쉘 커맨드 히스토리 출력
- history 결과에 느낌표를 붙이면 다시 실행 가능
find
- 파일 및 디렉토리 검색 시 사용
- find . -name “File” : 현재 폴더에서 File 이름을 갖는 파일 검색
export
- 환경 변수 설정
export water=”물”
- 매번 쉘을 실행할 때마다 환경변수를 저장하고 싶으면 .bashrc, .zshrc에 저장
- source ~/.bashrc
- Linux 환경 설정을 재로그인하지 않고 즉시 적용하고 싶은 경우 source 사용
alias
tree
- 폴더 하위 구조를 계층적으로 표현
- tree -L 2
head, tail
sort
uniq
- 중복된 행이 연속으로 있는 경우 중복제거
- sort와 같이 사용
cat fruits txt | sort | uniq
grep
- 파일에 주어진 패턴 목록과 매칭되는 라인 검색
- grep 옵션 패턴 파일명
cut
- 파일에서 특정 필드 추출
cat cut_file | cut -d : -f 1, 7
- cut_file 파일에서 :로 나눠 1, 7번째만 가져옴
표준 스트림
Unix에서 동작하는 프로그램은 커맨드 실행 시 3개의 Stream 생성
-
stdin : 0으로 표현, 입력(비밀번호, 커맨드 등)
-
stdout : 1로 표현, 출력 값(터미널에 나오는 값)
-
stderr : 2로 표현, 디버깅 정보나 에러 출력
Redirection
- 프로그램 출력을 다른 파일이나 스트림으로 전달
>
: 덮어쓰기, >>
: 맨 아래에 추가하기
Pipe
- 프로그램의 출력을 다른 프로그램의 입력으로 사용
- A의 output을 B의 input으로 사용
ls | grep “vi”
- ls의 output을 grep의 input으로 사용
ls | grep “vi” > output.txt
서버에서 자주 사용하는 쉘 커맨드
ps
- process status
- 현재 실행되고 있는 프로세스 출력
curl
- Client URL
- 웹 서버를 작성한 후 요청이 제대로 실행되는지 확인
df
- 현재 사용중인 디스크 용량 확인
- df -h : 사람이 읽기 쉬운 형태로 출력
scp
- SSH를 이용해 네트워크로 연결된 호스트 간 파일을 주고 받는 명령어
- local → remote 또는 remote → remote 파일 전송
nohup
- 터미널 종료 후에도 계속 작업이 유지하도록 실행
- nohup python3 app.py &
- nohup으로 실행될 파일은 퍼미션이 755여야 함
- 종료는 ps ef | grep app.py로 pid를 찾음
- 그 후 kill -9 pid로 프로세스 kill
- 로그는 nohup.out에 저장
chmod
쉘 스크립트
- .sh파일을 생성하고, 그 안에 쉘 커맨드 추가
- 쉘 커맨드의 조합
#!/bin/bash
- Shebang
- 스크립트를 bash shell로 해석
※ 모든 이미지 및 코드 출처는 네이버 커넥트재단 부스트캠프 AI Tech 5기입니다. ※