Unix shell 종류
Bourne Shell, Bash, fish, zsh
shell이란?
운영체제, 즉 커널을 감싸고 있는 shell(껍데기)라고 생각하면 된다. 운영체제와 대화하기 위해서는 이 shell을 통해야 한다. shell은 사용자가 입력한 명령어를 운영체제가 이해할 수 있도록 해석해준다.
기본 명령어
man: manual의 줄임말. 명령어에 대한 설명을 볼 수 있다
clear: 터미널 스크린 지우기
pwd: 내 경로 확인
rm -rf: 삭제
open . : 현재 경로의 폴더 열기
vim [파일이름]: 파일 편집기
ps: 현재 실행중인 프로세스 확인
-la: 상세내역
-e: 모든 프로세스를 보여줌
-f: 모든 정보
-c: 명령이름
kill [PID]: 특정 프로세스에 특정한 signal을 보내는 명령어. 주로 실행중인 프로세스를 강제 종료 시킬 때 사용한다
-9: 강제종료
-15: 작업종료
mkdir: 디렉토리 생성
mkdir -p ext1/ext2/ext3 : 경로를 한번에 작성해주면 필요한 디렉토리를 한 번에 만들어준다
rmdir: 디렉토리 삭제
ls : 현재 경로의 파일 목록 보기
ls -l: 자세히 보기
ls -a: 숨겨진 파일까지 모두 보기
ls -d */ : 디렉토리만 보기
cd: 해당 폴더로 이동
cd ..: 상위 경로로 이동
cd ~: 최상위 경로로 이동
cd -: 이전 경로로 이동
find : 파일 시스템에서 특정한 파일이나 디렉토리를 찾을 때 사용
find . -type file -name "*.txt" : 현재 경로에서 type은 file, 이름은 확장자가 txt인 모든 파일을 찾기
find . -type directory -name "*s" : 이름이 s로 끝나는 디렉토리를 찾기
which : 내가 지금 실행하고자 하는 프로그램이 어디에 설정되어있는 지 경로를 확인
which node: 노드의 실행 경로 확인
touch: 새로운 파일 생성
cat: 파일 내용 확인. 여러 파일을 한번에 작성하면 모든 파일의 내용을 한 번에 확인할 수 있다
echo "": 해당 문자열을 출력해준다
echo "Hello World" > file1.txt : 새로운 파일을 생성하면서 해당 문자열을 저장해준다
> : 덥어쓰기
>> : 새로운 문자열 추가하기
cp [파일이름] [원하는경로] : 원하는 경로로 해당 파일 복사
mv [파일이름] [원하는경로] : 원하는 경로로 해당 파일 이동
mv [파일이름1] [파일이름2] : 파일1을 파일2로 복사
rm [파일이름] : 해당 파일 삭제
rm -r: 아래 경로까지 모두 삭제
grep: Global Regular Expression Print의 약자. 파일이나 프로젝트 안에서 키워드로 검색을 해준다
grep [키워드] [원하는 파일명]
grep "hello" *.txt
grep -n : 몇번째 줄에 있는 지 표시
grep -i: 대소문자 상관 없이 찾기
grep -r "hello" . : 현재 경로와 그 하위에 있는 서브폴더에 한해서 검색해준다
grep -nir "hello" .
tar: 파일 압축 또는 압축 해제
-c: 파일을 tar로 묶는다
-f: 압축할 파일을 지정
-x: 압축 해제
-z: gzip으로 압축
-t: tar로 압축된 내용을 확인
-p: 파일 권한을 지정
-v: 처리 과정을 자세히 보여준다
-c: 경로 지정
halt -p : 시스템 종료
poweroff : 시스템 종료
shutdonw -P now : 시스템 종료
reboot: 시스템 리부팅
shutdown -r now: 시스템 리부팅
환경변수 설정하기
내 컴퓨터에서 특정한 키워드가 어떠한 일을 하거나 경로를 저장할 수 있도록 만들어준다
export MY_DIR="dir1" : MY DIR는 dir1(디렉토리이름)이라고 설정
env: 설정된 모든 환경변수를 볼 수 있다
cd $MY_DIR : dir1으로 이동
unset MY_DIR: 설정한 환경변수 삭제