거의 5년째 맥을 사용하다보니, CLI 환경에 매우 익숙해졌다.
오늘은 내가 맥을 사용하면서 자주 사용하는 shell 명령어 몇 개를 공유해보려고 한다.
웹 어플리케이션을 로컬에서 실행하다보면, 특정 port에 있는 어플리케이션이 제대로 죽지 않은 채로 백그라운드에서 도는 경우가 있다. 이런 경우 나는 lsof
명령어를 자주 사용한다.
lsof -i :포트
## 위에서 나오는 PID를 이용하여
kill -9 PID
사실 두 줄 입력하는 것 조차도 귀찮다. 한 줄로 줄여보자.
kill -9 $(lsof -ti :포트)
cli 환경에서 특정 파일을 읽을 때 유용한 명령어다.
head -n 숫자 filename
tail -n 숫자 filename
tail -f -n 숫자 filename
환경 변수를 통해 등록된 여러 프로그램의 실제 위치가 궁금할 때, 사용하는 명령어.
which programName
Filezila 같은 GUI 툴도 좋지만, 간단하게 사용하려면 이런 것도 좋다.
scp 파일위치 remote-username@remote-addr:업로드경로
scp remote-username@remote-addr:다운로드경로 다운로드 받을 경로
diff file1 file2
diff -y file1 file2
양쪽에 파일을 비교해서 보여준다.
top
간단하게 top 명령어를 사용하면, 어떤 프로세스가 메모리를 많이 사용하고 있는지 순차적으로 보여준다.
ps -ef | grep processName
가장 자주 사용하는 명령어인 것 같다. 예를 들어, java로 구동되는 어플리케이션을 찾을 때 ps -ef | grep java
와 같은 명령어를 쓰게 된다.
ls
ls -al
ls -al | grep name
tree .
pwd
print working directory의 약자로, pwd를 사용하면 된다.
chmod 777 filename
777은 예시로 든 숫자이며, 이 값은 4 + 2 + 1 로 이루어지며 4는 읽기 권한, 2는 쓰기 권한, 1은 실행권한을 의미한다. 0일 경우, 아무 권한도 없다는 뜻.
그리고 7이 3개로 이루어져 있는 것을 볼 수 있는데, 이건 순서대로 소유자-그룹-기타를 의미한다.
alias 줄이고싶은명령어="원래 명령어"
나는 clear
, source ~/.zshrc
같은 것을 전부 입력하기 싫어서, cl
, srcz
같은 alias를 해놓았다.
man 명령어 이름
manual의 약자인 듯 하다.
pipe 와 file redirection이 무엇인지 알아두면, 정말 많이 도움이 되니 스스로 한 번 알아보자.