shell 명령어
(mac 기준, window 설명도 간간히 추가 _ 똑같이 사용되는 명령어는 추가하지 않았음)
이 글에서는 경로 = directory = 폴더
- man (manual) : 해당 명령어 설명 (종료시 q) / 윈도우 - Get-help
- clear : 터미널 내 모든 명령어(썼던거) 청소
- pwd (print working directory) : 현재 있는 경로 출력 / 윈도우 - Get-Location
- ls (list) : 현재 디렉토리 안에 있는 폴더 & 파일 보기
ex)
특정한 폴더 안에 있는 것들 보고 싶을 때 : ls dir1
조금 더 자세한 항목 보고싶을 때: ls -l(long) / 윈도우 - ls-name
숨겨져 있는 파일 or 디렉토리 보고싶을 때 : ls -a(all) / 윈도우 - ls-force
- 현재 경로를 파일 탐색기로 열고 싶을때: open . / 윈도우 - explore .
- cd (change directory) : 경로 이동
ex)
cd dir1 : dir1로 이동
cd . : 현재 -> 현재 이동 (아무런 변화 x)
cd .. : 상위 경로로 이동
cd ~ : 최상위(홈디렉토리)로 이동
cd - : 이전 경로로 이동
- find : 파일 시스템에서 특정한 디렉토리나 파일 찾을 때
ex)
find . -type file -name "*.txt" : 현재 경로에서부터 type이 file이고 이름은 모든 txt파일을 찾는다
find . -type file -name "*.json" : 현재 경로에서부터 type이 file이고 이름은 모든 json파일을 찾는다
find . -type directory -name "*2" : 현재경로부터 type이 directory(폴더)이고 2로 끝나는 모든 폴더 찾는다
/ 윈도우 - get-childitem -File -Filter "*.txt" -Recursive
- which : 내가 실행 하고자 하는 파일/폴더 위치 확인할때
ex)
which node
which code
- touch : 파일 생성
ex)
touch new-file1.txt
/ 윈도우 - new-item new-file1.txt
- cat : 파일 내용 확인
ex)
cat new_file1.txt
- echo "문자열" : 문자열을 터미널에 말 그대로 에코함 & 문자열을 컨텐츠로 넣어줌
ex)
echo "hello world"
echo "hello world" > new-file1.txt 덮어씌우는 기능
echo "goodbye world" >> new-file1.txt 이어 붙이는 기능
- mkdir (make directory) : 폴더(directory)생성
ex)
mkdir -p dir4/subdir1/subdir2 : -p 옵션을 이용해서 경로 안에 경로 쉽게 작성
- cp (copy): 복사
ex)
cp file1.txt dir1/ : dir1에 file1복사해서 넣기
- mv (move) : 이동
ex)
mv file2.txt dir1/
mv file1.txt file2.txt : 서로 이동
- rm (remove) : 삭제
ex)
rm file2.txt
rm -r dir2 : -r옵션시 하위 디렉토리 모두 삭제
- grep (global regular expression print) : 한 폴더 / 프로젝트 내에서 키워드 검색
ex)
grep "world" *.txt : 현재 폴더에서 모든 txt파일에 한해서 world 검색
grep -n "world" *.txt : 검색했을 때 몇번째 줄에서 world가 나오는지 알 수 있음
grep -i "world" *.txt : 대소문자를 구분하므로 대소문자에 상관없이 world를 다 찾고 싶을 때 씀
grep -ir "world" . : 현재 있는 프로젝트(즉, 프로젝트 최상위 디렉토리에서 하위 모든경로)
/ 윈도우 : select-string
ex) select-string *.txt -pattern "world"
(윈도우는 r옵션 사용할 수 없으므로 상하위 디렉토리를 일일이 작성해주어야함 ex) select-string *,*/* -pattern "world")
(윈도우는 대소문자를 구분하지 않으므로 구분하려면 -CaseSensitive 옵션을 써야함)
- export : 환경변수 설정
ex)
export MY_DIR = "dir1"
(보통 변수의 이름은 대문자로 짓고 _로 단어사이를 구분)
cd $MY_DIR : 환경변수 사용시 $사용
- env : 설정된 모든 환경변수 볼 수 있음
- unset : 지정된 환경변수 삭제
ex) unset MY_DIR
/ 윈도우 : $env:MY_DIR="dir1" - 설정, ls env - 모든 환경변수 확인, $env:MY_DIR=" " - 삭제
- vim : 터미널 텍스트 에디터
에디터모드 들어오고 문자삽입시 i/a 입력 후 작성.
종료시 esc -> :w(write) 나 q(quit)
보통은 wq(저장하고 종료) / q만 누르면 그냥 종료하는거 맞아? 하고 물어보는데 그때는 q!(강제종료, 이때는 수정내용 저장 되지 않음!)