man
매뉴얼 문서 보기
ex) man python
mkdir
폴더 생성하기 (make directory)
ex) mkdir my-directory
ls
현재 접근한 위치의 폴더 및 파일 확인 (list segments)
옵션
ex) ls ~ / ls / ls -al / ls -lh ...
pwd
현재 폴더의 절대 경로 보기 (print working directory)
cd
폴더 변경, 해당 폴더로 이동하기 (change directory)
ex) cd my-directory
echo
터미널에 텍스트 출력
echo "hi" -> hi 출력
터미널에 쉘 커맨드 결과 출력 (backtick ` 사용)
echo `pwd` -> 현재 폴더의 절대 경로 출력
vi
vi 편집기 파일 생성
bash
쉘 스크립트 실행
ex) bash test.sh -> test.sh 실행
sudo
관리자 권한으로 실행
'superuser do'(최고 권한을 가진 슈퍼 유저로 프로그램을 실행)에서 유래 -> 최근엔 'subtitute user do'(다른 사용자의 권한으로 프로그램을 실행)로 해석
커맨드 앞에 sudo를 붙임
조심해서 써야 함
cp
파일 또는 폴더 복사하기 (copy)
ex) cp test.sh test2.sh -> 복사
-r : directory 안의 파일까지 recursive(재귀적)하게 모두 복사
-f : 강제 복사 실행
mv
파일 이동 또는 이름 변경 (move)
ex) mv test.sh test2.sh -> test에서 test2로 이름 변경
폴더(directory)는 mvdir 사용
cat
특정 파일 내용 출력 (concatenate)
ex) cat test.sh -> 파일 내용 터미널에 출력
여러 개의 파일을 인자로 주면 함께 합쳐서 출력됨 (CONCAT)
cat test.sh test2.sh
OVERWRITE
cat test.sh test2.sh > test2.sh
-> test.sh와 test2.sh가 합쳐진 내용이 test2.sh 파일에 덮어씌워짐
APPEND
cat test.sh test2.sh > test2.sh
-> test.sh와 test2.sh가 합쳐진 내용이 test2.sh 파일의 밑에 추가됨
clear
터미널 창 깨끗하게 지우기
history
과거 입력한 쉘 커맨드 history 출력
느낌표와 해당 커맨드 숫자 입력시 다시 활용 가능
ex) !30 -> 30번 커맨드 현재 입력에 사용
find
파일 및 폴더 검색에 사용
ex) find . -name "my-file" -> 현재 폴더에서 my-file이라는 파일 검색
export
환경 변수 저장
ex) export water="물"
echo $water -> 물 출력
alias
별칭으로 설정, 기본으로 설정되어 있는 별칭 확인 가능
기본 명령어를 간단히 줄여 사용할 수 있도록 함.
ex) alias jupyter notebook='jn'
Redirection
프로그램의 출력(stdout)을 다른 파일이나 스트림으로 전달
> : OVERWRITE
>> : APPEND
Pipe
프로그램의 출력을 다른 프로그램의 입력으로 사용
ex) ls | grep "sh" -> 현재 폴더에 있는 파일 중 이름에 sh가 들어간 파일 찾기
Redirection & Pipe
ls | grep "sh" > output.txt
-> 현재 폴더의 sh라는 문자가 들어간 파일 이름을 output.txt라는 파일에 overwrite
.sh 파일에 쉘 커맨드를 추가 (쉘 커맨드의 조합)
bash로 파일 내 쉘 커맨드 모조리 실행 가능
특정 카카오톡 그룹 채팅방에서 2021년에 제일 메시지를 많이 보낸 3명 추출하기
cat moon.csv | awk -F, '/2021/ {print $2}' | sort | uniq -c | sort -r | head -n 3
cf. 사람별 보낸 개수 집계할 때 awk로 표현하는 방법도 있음
cat KakaoTalk.csv | awk -F, '{print $2}' | awk '{arr[$1] += 1} END {for (i in arr) {print i "\t",arr[i]}}’