리눅스에 대한 기초 개념과 유용하게 자주 쓰이는 쉘 커맨드에 대해서 정리해보자
CLI : Command Line Interface
Username@Hostname
GUI : Graphic User Interface
(ubuntu 이용해서 vmware 상에서 GUI 사용해본 경험으로 이해)
Debian
온라인 커뮤니티에서 제작해 배포
Ubuntu
영국의 캐노니컬에서 배포한 버전, 쉽고 편한 설치
초보자들이 쉽게 접근할 수 있게
Redhat
레드햇에서 배포한 버전
CentOS
Redhat이 공개한 버전을 가져와서 브랜드, 로고 제거 한 버전
Linux, Shell Script 학습을 하려면..
Linux 사용 방법
쉘의 종류
host의 개념이 자주 등장하는데, host는 우리가 기억하기 쉬운 글자로 저장해서 로그인할 때 컴퓨터 이름을 저장하는 개념과 유사하다.
쉘을 사용하는 경우
man
manual을 보기 위한 명령어 ex) man python3
mkdir
make directory의 줄임말, 폴더 만들기
ls
현재 접근한 폴더의 폴더나 파일을 확인한다. (List Segments)
옵션
-a : .으로 시작하는 파일,폴더를 포함해 전체 파일 출력
-l : 퍼미션, 소유자, 만든 날짜, 용량까지 출력
-h : 용량을 사람이 읽기 쉽도록 GB, MB로 변환해서 표현해줌. 보통은 ‘-l’ 명령어와 같이 사용
pwd
현재 폴더 경로 알려줌 (print working directory)
cd
폴더 변경, 이동하기 (change dicectory)
echo
python에서의 print 역할
터미널에 텍스트를 출력해준다
echo “hi”
`(backtick) 을 이용한 쉘 커맨드의 결과를 출력할 수도 있음
echo `pwd`
Mode
bash
bash로 쉘 스크립트를 실행한다.
터미널에서 Tab을 누르면 자동완성
sudo
관리자 권한으로 실행하고 싶은 경우 커맨드 앞에 sudo를 붙인다. (superuser do에서 유래)
조심히 사용해야 한다.
cp
Copy에서 유래
mv
Move에서 유래
이름 바꾸거나 파일 폴더를 이동할 때 자주 사용
mv 바꾸기전파일 바꾸고싶은파일
ex) mv vi-test.sh vi-test3.sh
cat
특정 파일 내용을 출력 : concatenate
여러 파일을 인자로 줘서 합쳐서 출력 가능
cat vi-test.sh vi-test2.sh
clear
터미널창 청소
history
쉘 커맨드 history 출력
history 결과에서 느낌표를 붙이고 숫자를 입력하면 그 숫자에 해당하는 커맨드를 다시 활용할 수 있다.
ex) !30 과 같은 방법으로 30번째 줄에 있는 명령어를 반복적으로 사용 가능하다
find
파일, 폴더를 검색할 때 사용
find . -name “File”
: 현재 폴더에서 File이란 이름의 파일,폴더 검색
export
export로 환경 변수를 설정할 수 있다.
export water=’물’
echo $water
출력 → ’물’
터미널이 꺼지면 자동으로 사라지게 된다.
저장하고 싶으면 .bashrc or .zshrc에 저장
alias
현재 별칭으로 설정된 것을 볼 수 있음
별칭을 만들 수도 있음
ex) ll은 ls -l이 별칭으로 지정되어있음
ex) jupyter notebook을 jn으로 별칭 저장하면 jn으로 켤 수 있다.
head, tail
앞/뒤에서 n번째 행까지 출력
tail : log 볼 때 많이 사용 함
sort
행 단위 정렬
-r : 내림차순 정렬
-n : Numeric Sort
uniq
중복행이 여러개 있으면 중복 제거
-c : 중복 행의 개수 출력
grep
grep “옵션” “패턴” “파일명” 으로 사용하여 파일에 주어진 패턴 목록과 매칭되는 라인을 검색한다
cut
파일에서 특정 필드 추출
-f : 잘라낼 필드 지정
-d : 필드를 구분하는 구분자. Default는 \t
ps
현재 실행되고 있는 작업들 보여준다. (Process Status)
-e : 모든 작업을 보여줘라
curl
웹서버를 작성한 후 제대로 요청이 실행되는지 확인 가능 (Request를 Test할 수 있는 명령어)
df
사용중인 디스크 용량 확인 (Disk Free)
scp
SSH을 이용해 네트워크로 연결된 호스트 간 파일을 주고 받는 명령어 (Secure Copy)
-r : 재귀적으로 복사
-P : ssh 포트 지정
-i : SSH설정을 활용해 실행
nohup
터미널 종료 후에도 계속 작업이 백그라운드에서 유지하도록 실행
nohup python3 app.py&
nohup으로 실행될 파일은 Permission이 755여야한다.
종료는 ps ef | grep app.py 로 app.py의 pid (Process ID)를 찾은 후에 kill -9 pid
로 프로세스를 Kill 해주면 된다.
로그는 nohup.out에 저장된다.
표준 스트림
쉘 커맨드의 조합 → 쉘 스크립트
위 게시글의 내용은 Boostcamp AI Tech 4기 강의내용(변성윤 마스터님)을 참고하여 작성하였습니다.