brunch

You can make anything
by writing

C.S.Lewis

by 승규 Mar 22. 2022

리눅스 기본 명령어들2

ip addr ss nc which tail find ps grep...


11. ip addr 

접속한 리눅스의 ip주소를 알고 싶은경우 사용한다. 


$ ip addr

#### 아래는 결과 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 50000
    link/ether fa:16:3e:5d:0b:d7 brd ff:ff:ff:ff:ff:ff
    inet 10.201.1.10/16 brd 10.202.255.255 scope global eth0
       valid_lft forever preferred_lft forever



12. ss 

socket statistics의 약자이다. 네트워크 상태를 확인하기 위해 사용한다. 원래는 netstat를 사용했는데, 최근에는 ss를 주로 사용한다. 옵션으로 a,t,u,l,p,n 등이 있다. 


ss -a : 모든 포트 확인 

ss -t : TCP 포트 확인

ss -u : UDP 포트 확인

ss -l : LISTEN 상태 포트 확인 

ss -p : 프로세스 표시

ss -n : 호스트, 포트, 사용자명을 숫자로 표시 


TCP포트중 LISTEN상태인 포트의 번호를 알고 싶은 경우 다음과 같이한다. 

$ ss -tln

## 결과 예시

LISTEN      0      511                                        *:443                                                    *:*
LISTEN      0      1                                  127.0.0.1:8006                                                   *:*
LISTEN      0      511                                        *:80                                                     *:*


13. nc

netcat의 약자이다. 예전에는 포트가 열렸는지 확인하기위해 telnet명령어를 사용했지만, nc를 사용해서 포트 개방 유무를 알 수 있다. 


nc 아이피 포트 : 포트가 오픈됐는지 확인 

nc -v 아이피 포트 : 좀 더 자세한 정보가 남음

nc -l 포트 : 현재 서버의 포트를 오픈 (방화벽에 해당 포트번호가  설정이 되어있어야함)


14. which, whereis, locate

which는 특정 명령어의 위치를 찾아준다. 


$ which git 
/usr/local/bin/git

which -a : 검색 가능한 모든 경로에서 명령어를 찾음 

$ which -a git 
/usr/local/bin/git
/usr/bin/git

where : which -a 와 같다. 

where git
/usr/local/bin/git
/usr/bin/git

whereis는 실행파일, 소스, man페이지의 파일을 찾아준다. 

whereis ssh
ssh: /usr/bin/ssh /usr/share/man/man1/ssh.1

locate는 파일명을 패턴으로 빠르게 찾아준다. 

아래 예제는 자바파일을 찾아주는 명령이다. 

locate *.java 


15. tail

tail은 꼬리라는 의미처럼 파일의 마지막 부분을 보여준다. tail이 있으면 당연히 head도 있는데 사용법은 같다. 필자는 tail -f {파일} 을 가장 많이 쓰는 편이다. 서버의 로그를 실시간으로 보고 싶은 경우 많이 사용한다. 


tail -n {숫자} {파일경로} : 파일의 마지막라인부터 숫자만큼의 파일의 라인수를 보여준다.

tail -n +{숫자} {파일경로} : 숫자로 지정한 라인부터 보여준다. 

tail -c {숫자} {파일경로} : 파일의 마지막라인부터 숫자로 지정한 바이트 수 만큼 보여준다. 

tail -f {파일경로} : Ctrl + C로 중단하기 전까지 지정한 파일의 마지막에 라인이 추가되면 계속 보여준다. 

tail -n {숫자} -s {초} -f {파일경로} : 파일의 마지막 라인부터 지정한 숫자만큼을 {초}로 지정한 시간이 지날때 마다 리프레시 해서 보여준다. 


16. find 

find는 명령어의 뜻 그대로 파일이나 디렉터리를 찾는데 사용하는 명령어이다. 굉장히 많은 옵션이 있으나 그중에 자주 사용 되는 녀석들만 소개한다. 


find {디렉터리} -name '*.bak' : 확장자 명으로 찾기 

find {디렉터리} -path '**/검색시사용하는 디렉터리명/**.*.js' : 디렉터리를 지정하여 찾기 

find {디렉터리} -name '*패턴*' : 파일명을 패턴으로 찾기

find {디렉터리} -name '*.py' -not -path '*/site-packates/*'  : 파일명을 패턴으로 찾되 특정 경로는 제외하기 

find {디렉터리} -name '*.ext' -exec wc -l {} \; : 파일을 찾은 다음 명령어 실행하기 

find {디렉터리} -daystart -mtime -7 -delete : 최근 7일간 수정된 파일을 찾고 삭제하기

find {디렉터리} -type f -empty -delete : 0바이트인 파일을 찾고 삭제하기 


17. ps

실행중인 모든 프로세스를 보여주기 

ps aux

실행중인 모든 프로세스를 전체 커맨드를 포함하여 보여주기 

ps auxww 

특정 문자열과 매칭되는 프로세스 찾기 ( grep은 바로 다음에 나옵니다)

ps aus | grep {패턴}

메모리 사용량에 따라 정렬하기 

ps --sort size 


18. grep

grep은 입력에서 패턴에 매칭되는 내용을 찾아내는 명령어이다. grep이라는 이름은 ed의 명령어인 g/re/p (내용전체를 정규식으로 찾은다음 프린트하라: globally search for a regular expression and print matching lines) 에서 왔다. 보통 find, ps 등과 조합하여 사용한다. 


파일에서 특정 패턴을 만족하는 부분 찾기

grep "패턴" 파일경로

파일명과 라인을 함께 표시하기 

grep --with-filename --line-number "패턴" 파일경로


매칭하지 않는 부분 표시하기 

grep --invert-match "패턴" 


cat과 함께 사용하기 

cat 파일경로 | grep  "패턴"


19. kill

개발자들이 뭔가 죽인다는 말을 할 것이다. 그중에 대부분이 바로 프로세스를 죽이는 것인데, 이 명령어가 바로 프로세스를 죽이는 명령어 kill이다. 프로세스를 죽인다고는 하지만 원리는 프로세스에 중지하라는 시그널을 보내는 것이다. SIGKILL, SIGSTOP은 강제종료이며 나머지는 정상적으로 종료를 시키게 된다. 프로세스 아이디는 ps 명령어로 알아낼 수 있다 .


kill에서 사용할 수 있는 시그널들 표시하기 (SIG가 생략되어있다.)

kill -l


프로세스 죽이기 SIGTERM(terminate)

kill 프로세스아이디 


백그라운드 잡 종료시키기

kill %잡아이디 


프로세스 강제종료

kill -9|KILL 프로세스아이디


20. alias

필자는 ls -al 명령을 자주 사용하는데, 모두 타이핑하려면 귀찮은 경우가 많다. 이런 경우 alias를 사용하면 줄여서 사용할 수 있다. 


모든 alias 표시하기 

alias

alias 만들기 

alias 단어="명령" 
ex) 
alias ll="ls -al"


alias삭제하기

unalias 단어


이런것도 가능하다 

alias ...=../..
alias ....=../../..
alias .....=../../../..
alias ......=../../../../..

alias에 ... 이 있으므로 cd ... 이 사용가능하다. 


지금까지 20개의 자주쓰는 리눅스 명령어들을 알아 보았다. 리눅스 명령어 하나만으로도 하나의 글을 쓸 수 있을 분량이 나오지만, 자주 쓰는 내용들만 정리해두었으니 일할때 기억이 안나면 참고하면 될 것 같다. 

매거진의 이전글 리눅스 기본 명령어들1
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari