개발환경

[Mac Terminal] 유용한 터미널 명령어 정리 1

hellonero 2019. 1. 26. 18:47

블로그 시작하면 첫 컨텐츠를 PHP로 하겠다고 해놓고 터미널 명령어를 잔뜩 들고왔습니다. 코딩과 가까이 지낸지가 꽤 됐는데 아직도 터미널을 키고 아무것도!! 못하고 있어서 일단은 여기에 구글링 수도 줄여볼겸 정리를 하게 됐네요. 


우선 이 글을 쓰기전에 적극 참고했던 github 주소가 있습니다. 정보를 찾아보다가 정리가 꽤나 잘 되어 있는 것 같아서 이 주소에 정리되어 있는 내용의 연장선으로서 글을 쓰게 되었네요. 프로그래밍 초반에 터미널(혹은 윈도우 cmd)을 자주 열게 되면 커맨드라인 인터페이스(CLI, Command Line Interface)가 너무 생소해 헤맸던 것이 생각이 나서, 이제 막 공부를 시작하신 분들 한테는 도움이 상당히 될 것 같아요!


실행환경은 macOS 10.14 (Mojave)의 terminal 입니다.



* [] 로 되어 있는 부분은 명령어의 인자입니다.

명령어 + 문법

 설명

 cd [디렉토리]

 

Change directory, 현재 위치를 [디렉토리] 로 변경합니다. ex) cd ~/Desktop/nero_folder

  • cd : 홈 디렉토리(~) 로 이동합니다. cd ~ 와 같습니다.
  • cd .. : 현재 디렉토리에서 상위 디렉토리로 이동합니다. 마침표 하나는 현재 디렉토리를 의미하므로, cd . 는 디렉토리를 변경하지 않습니다.
  • cd / : 드라이브의 root로 이동합니다.
  • cd - : 이전 디렉토리로 이동합니다. 브라우저의 뒤로가기를 생각하시면 됩니다.

 ls [옵션] [파일/디렉토리]


List directory content, 디렉토리의 내용을 목록으로 출력합니다. ex) ls -al ~/Desktop

-l, -a, -h 같이 -뒤에 알파벳을 붙인 인자는 [옵션] 자리에 위치합니다. 옵션은 알파벳 순서와 상관없이 -hl 처럼 함께 적용 시킬 수 있습니다.

  • ls : 현재 디렉토리의 내용을 디렉토리/파일명으로 나열합니다.
  • ls -l : 현재 디렉토리의 내용을 자세히 나열합니다. (l: long)
  • ls -a : 숨겨진 파일을 포함하여 현재 디렉토리의 내용을 디렉토리/파일명으로 나열합니다. (a: all)
  • ls -lh : 현재 디렉토리의 내용을 자세히 나열하면서, 파일의 사이즈를 사람이 해석할 수 있게 표시합니다. (h: humanize)
  • ls -R : 현재 디렉토리에서부터 재귀적으로 모든 폴더의 내용을 표시합니다. (R: reculsive)
  • ls [옵션] ~/Desktop : ~/Desktop 의 내용을 [옵션]에 따라 나열합니다.
  • ls [옵션] ~/Desktop/image.png : ~/Desktop/image.png 만 [option]에 따라 나열합니다.

 sudo [명령어]

 Super user do, [명령어]를 superuser 권한으로 실행합니다. ex) sudo ls /usr/local/protected

 접근 권한 문제로 명령어를 실행하지 않을 때, 대부분의 경우 이 명령어가 해결해주곤 하죠 ㅎㅎ...

 open [파일/디렉토리]


Open Files and Directory, 인자로 [파일]을 줄 경우 [파일]을 열고, [디렉토리]일 경우 파인더로 [디렉토리]를 엽니다.

ex) open /etc

  • open . : 현재 디렉토리를 파인더로 엽니다. (자주 쓰는 명령어입니다.)

 top [옵션]

 

현재 동작중인 프로세스를 표시합니다. q를 눌러 표시를 종료합니다.


 clear

 

터미널 화면을 지웁니다. Command + K, Ctrl + L 단축키와 효과가 동일합니다.


 reset


터미널을 리셋합니다.


 history [옵션] [개수]


터미널에 입력했던 것을 출력합니다.

  • history 200 : 200번째 입력한 명령어부터 최근 입력한 명령어까지 출력합니다.
  • history -200 : 최근 200개의 명령어를 출력합니다.
  • history -i -200 : 최근 200개의 명령어를 입력한 시간과 함께 출력합니다.
  • history -p : 명령어 history를 모두 삭제합니다. (원래 이렇게 쓰는 옵션은 아닌 것 같아요)

 !!


마지막에 입력한 명령어를 실행... 은 아니고 반환합니다.

  • ![value] : [value] 로 시작하는 최근 명령어를 반환합니다.

touch [파일명] 

현재 디렉토리에 [파일명] 의 이름을 가진 무용량 파일을 생성합니다. ex) touch test_file

 mkdir [디렉토리명]

Making directory, 현재 디렉토리에에 [디렉토리명] 의 이름을 가진 폴더를 생성합니다. ex) touch test_folder

 pwd

현재 디렉토리의 절대경로를 출력합니다. 

 cat

고양이 파일의 내용을 화면에 표시합니다. ex) cat test.txt

rm [옵션] [파일/디렉토리]


Remove file and directory, 파일/디렉토리를 삭제합니다. ex) rm -rf trash_folder

  • rm [파일] : [파일]을 삭제합니다.
  • rm -i [파일] : [파일]을 삭제할 때 삭제여부를 사용자에게 묻습니다.
  • rm -r [디렉토리] : [디렉토리]와 하위 컨텐츠를 삭제합니다. 디렉토리가 비워져있지 않으면 실행되지 않습니다.
  • rm -f [파일] : [파일]을 삭제할 때 삭제여부를 묻지 않고 강제로 삭제합니다.

 cp [복사할 파일] [새로운 파일/옮길 폴더]


Copy file, 파일을 복사합니다. ex) cp test.txt test2.txt

  • cp [복사할 파일] [새로운 파일] : [복사할 파일][새로운 파일]로 복사합니다. [새로운 파일]을 ~/test.txt 와 같이 경로를 설정 할 수 있습니다.
  • cp [복사할 파일] [옮길 폴더] : [복사할 파일][옮길 폴더]에 복사합니다. 파일명은 유지됩니다.

mv [파일] [새로운 파일명/옮길 폴더] 

 

Move file, 파일을 이동하거나 파일의 이름을 바꿉니다. ex)  mv test.txt test2.txt 혹은 mv test.txt ~/Desktop

  • mv [파일] [새로운 파일명] : [파일]을 [새로운 파일명]으로 이름을 바꿉니다.
  • mv [파일] [옮길 폴더] : [파일]을 [옮길 폴더]로 이동합니다.

pbcopy < [파일]

[파일] 내용을 클립보드로 복사합니다. pb는 pasteboard(=clipboard) 의 줄임말이라고 하네요. ex) pbcopy < test.txt

 pbpaste


클립보드의 내용을 붙여넣습니다. ex) pbpaste > test2.txt

  •  pbpaste > [파일] : 클립보드의 내용을 [파일] 에 붙여넣습니다.

less [파일] 

[파일]의 내용을 terminal의 스크린 사이즈로 출력합니다. q로 표시를 종료합니다.