리눅스 명령어(Linux Command)

저번 포스트에서는 리눅스를 처음 접하게 되어 콘솔에서의 

작업을 익숙하게 해주기 위한 기본적인 명령어를 알아보았다.

저번에도 서술했듯이 우리가 그래픽이 아닌 단순 콘솔창에서 작업을 하는 이유는

빠르고 가볍고 단순하기 때문이다. 예를 들어서 시스템에서 

사용자의 계정을 추가한다는 예시를 들었을 때, 그래픽 환경에서의 작업

제어판 -> 사용자계정 -> 사용자 추가 및 비밀번호 설정 ... 등의 과정을 거쳐서

이루어지지만, 콘솔창에서는 useradd, adduser [password] ... 등의 간단한 명령어와 함께 

원한다면 생성과 동시에 사용자의 비밀번호를 설정해줄 수도 있다.

이번 포스트에서는 전반적으로 서비스에 관련된 명령어에 대해 알아보려 한다.

 

** 당연히 운영체제마다 명령어는 상이할 수 있다..

(필자는 리눅스 CentOS7 / Ubuntu18.04 기준)

 

 

● 명령어 netstat(network statistics) / ss(socket statistics)

네트워크의 소켓상태 및 라우팅 테이블 등을 모니터링할 때 사용되는 명령어로

각종 서비스 시작 및 방화벽 설정 .. 등 네트워크 관련된 작업을 실행할 때 주로 사용된다.

'netstat'의 경우 'net-tools' 패키지에 포함된 명령어이고, 'ss'의 경우 'iproute2' 패키지에 포함 되어있는데

버전마다 다르겠지만, 운영체제 설치 시 비교적 최신버전의 배포판에서

명령어 'ss'는 추가적인 패키지 설치 없이 사용이 가능한걸로 알고있다.

사용법으로는 netstat / ss [옵션] 식의 구성으로 사용된다.

 

** 현재는 'netstat'보다는 'ss'의 사용을 권장한다고 한다.

 

[centos@localhost centos]$ ss -nltp   # ss 명령어로 네트워크 상태를 모니터링
State       Recv-Q Send-Q       Local Address:Port            Peer Address:Port              
LISTEN      0      128          *:111                         *:*                   users:(("rpcbind",pid=746,fd=8))
LISTEN      0      128          *:20048                       *:*                   users:(("rpc.mountd",pid=1251,fd=8))
LISTEN      0      5            192.168.122.1:53              *:*                   users:(("dnsmasq",pid=1558,fd=6))
LISTEN      0      128          *:36597                       *:*                   users:(("rpc.statd",pid=1231,fd=9))
LISTEN      0      128          *:22                          *:*                   users:(("sshd",pid=1225,fd=3))
LISTEN      0      128          127.0.0.1:631                 *:*                   users:(("cupsd",pid=1229,fd=11))
[centos@localhost centos]$ netstat -nltp   # netstat 명령어로 네트워크 상태를 모니터링
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      746/rpcbind         
tcp        0      0 0.0.0.0:20048           0.0.0.0:*               LISTEN      1251/rpc.mountd     
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      1558/dnsmasq        
tcp        0      0 0.0.0.0:36597           0.0.0.0:*               LISTEN      1231/rpc.statd      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1225/sshd

필자 기준으로 많이 사용되는 '-nltp(LISTEN 상태의 소켓, 포트의 상태와 프레세스 정보)'옵션으로

두 명령어의 출력 내용을 비교해보았다. 이렇게만 보면 차이점이 크게 있어보이지는 않는다. 

대표적인 장점으로는 'netstat' 보다는 'ss"가 정보를 불러오는 속도가 빠르다는 점이 있다고 한다.

 

** 추가적인 정보를 알게되면 수정하여 포스팅하겠읍니다..

 

 

● 명령어 head  / tail

단어에서 의미하는 바와 같이 어느 파일의 head(머리 부분, 위 부분), tail(꼬리 부분, 아래 부분)

의 일부분(기본 값 : 10 줄)을 출력해주는 역할을 해주는 명령어이다. 

기본 값이 아닌 옵션을 이용해 원하는 만큼의 라인 출력도 가능하다.

주로 무거운 파일이나 실시간으로 로그(log)를 확인하려 할 때 사용된다.

사용방법으로는 head / tail [옵션] [파일] 식의 구성으로 사용된다.

 

[centos@localhost centos]$ head Line.txt   # 옵션없이 Default 값으로 앞에서부터 10줄 까지 출력됨을 확인
Line 1
Line 2
Line 3
Line 4
Line 5
Line 6
Line 7
Line 8
Line 9
Line 10

[centos@localhost centos]$ tail -5 Line.txt   # -5 옵션으로 뒤에서부터 5줄 까지만 출력
Line 16
Line 17
Line 18 
Line 19
Line 20

' tail -f ' 옵션으로 secure log를 실시간으로 출력됨을 확인

 

 

● 명령어 systemctl ~ / service ~

리눅스 시스템에서 각종 서비스들을 관리할 수 있게 해주는 중요한 명령어이다.

~ CentOS6 까지는 service ~ 로 시작하는 명령어가 주로 사용되었지만,

CentOS7 부터는 시스템 부팅 프로세스가 init이 아닌 systemd로 넘어오게 되면서

systemctl ~ 명령어로 변경되었다. 동작방식은 거의 동일하며 현재 CentOS7 에서도 

service ~ 명령어가 작동하지 않는 건 아니다.

 

'systemctl status [서비스]' 명령어를 이용한 각종 서비스의 현재상태(status)를 확인

systemctl start [Service]   # 서비스를 시작
systemctl stop [Service]    # 서비스를 중지
systemctl restart [Service] # 서비스 재시작
systemctl enable [Service]  # 부팅 시 서비스 시작
systemctl disable [Service] # 부팅 시 서비스 자동시작 x

### systemctl enable / disable의 경우 ~CentOS6.x에서의  chkconfig와 호환되는 명령어이다.

 

 

● 명령어 ps / pstree / top(process status)

명령어 ps / pstree / top의 경우 각기 다른 정보와 형식으로 실행중인 프로세스의 상태를 보여준다.

우리가 주로 사용하는 Winodws System에서의 "작업 관리자"에서 프로세스의 상태를

확인할 수 있듯이 Linux System에서는 위에 해당하는 명령어로 프로세스의 상태를 확인할 수 있다

'ps' 명령어에서 주로 사용되는 '-ef' 옵션을 이용한모습 (BSD, System V 계열의 옵션이 별도로 지정되어 있음)

UID : 해당 프로세스의 소유자 USER의 ID를 표시

PID : 해당 프로세스의 번호를 표시

PPID : 해당 프로세스의 Parents(부모) PID를 표시

C : 정의는 짧은 기간 동안의 CPU 사용률이라고 되어있지만, 쓰임새를 자세히는 모르겠다..(아는 분께서는 댓글을..)

STIME : 프로세스가 시작된 시간을 표시

TTY : 프로세스와 연결된 터미널을 표시

TIME : 해당 프로세으의 총 CPU 사용시간을 표시

CMD : 해당 프로세스의 실행 명령행을 표시

 

전개도 형식으로 프로세스를 보여주는 'pstree'명령어에 '-p' 옵션을 사용해 프로세스의 PID를 확인가능

** 모든 프로세스를 관리하는 최초의 프로세스 "systemd"로 부터 다른 프로세스들이 생성됨을 직관적으로 확인할 수 있다.

 

명령어 'top'으로 프로세스와 CPU, RAM의 상태를 한 눈에 확인가능

** 실행을 원치않는 프로세스를 'kill'할 수도 있고 몇 가지 키 조합을 통해서 표시를 원하는 

정보를 변경할 수도 있다.

 

 

너무 한 번에 정리를 하려다보니 각 명령어에 대한 설명이 많이 모자란 것 같다..

추후에 리눅스에 대한 이해도가 깊어졌을 때 주관적으로 많이 중요하다 싶은

명령어에 대해서는 개별적으로 다시 한 번 정리를 해두어야겠다.

'Linux_System' 카테고리의 다른 글

[Linux]Software_Compile  (0) 2022.10.31
[Linux]YUM_LocalRepository  (0) 2022.10.26
[Linux]Basic_Command(1)  (0) 2022.10.06
[Linux]LVM  (1) 2022.09.22
[Linux]RAID  (0) 2022.09.20

+ Recent posts