Skip to content

Linux:UsefulCommandLines

Linux에서 자주 사용되는 명령어 모음.

Hardware

  • cat /proc/version or cat /etc/issue: 커널 버전.
  • cat /proc/cpuinfo: 프로세서 정보, CPU타입, 모델 제조사 등.
  • cat /porc/meminfo: 메모리 정보, 실제 메모리 및 가상 메모리.
  • cat /proc/devices: 현재 커널에 설정되어 있는 장치 목록.
  • mount: 마운트된 모든 장치 정보.
  • df or df -u: 하드디스크 사용량.
  • cat /porc/filesystems: 커널에 설정되어 있는 파일시스템 목록.
  • cat /proc/swaps: 스왑 파티션의 크기와 사용량.
  • cat /proc/interrupts: 장치가 사용중인 인터럽트(IRQ)목록 표시.
  • cat /proc/ioports: 현재 사용중인 input/output 포트.
  • cat /proc/partitions: 파티션 정보.
  • cat /proc/uptime: 시스템이 얼마나 살아있었는지.
  • cat /proc/stat: 시스템 상태에 관한 다양한 정보.
  • cat /proc/zoneinfo: ZONEINFO.
  • dmesg: 시스템 부팅시 나왔던 메시지 출력.
  • ps: 실행중인 프로세스 정보.
  • ps -p - t: 프로세스와 쓰레드 목록.
  • ps -aux: 현재 실행중인 프로세스 보기.
  • set or printenv: 환경설정값 출력.

System

  • vmstat: 시스템 리소스 상황 모니터, CPU, I/O, Memory 등.
  • cat /proc/diskstats: 디스크 utilization과 throughput, 즉 디스크 I/O현황.
  • top: 시스템 프로세스 상황 모니터링.
  • procrank: 프로세스별 메모리.
  • dumpsys meminfo [PID]: 해당 프로세스 메모리 상세 정보.
  • cat /proc/[PID]/stat: 해당 프로세스에 대한 정보.
  • cat /proc/[PID]/maps: 해당 프로세스의 메모리 맵 정보.
  • cat /proc/vmstat: 버추얼 메모리 통계.
  • librank: 라이브러리별 메모리 사용량.
  • free -m: 메모리 사용량 보기.

Network

  • cat /proc/net/netlink: 네트워크 정보.
  • netcfg: 네트워크 인터페이스와 IP주소 목록.
  • netstat: 네트워크 연결상태 확인.
  • nc: 네트워크용 cat 명령어(netcat).
  • ifconfig: 네트워크 인터페이스 설정 정보.
  • tcpdump: 실시간 패킷 모니터링.
  • iftop: 네트워크를 위한 top.
  • route: 해당 호스트까지 라우팅 테이블 표시.
  • ping: 원격 호스트와의 연결 테스트.
  • cat /proc/net/route: Route.

리눅스서버 IP주소 할당 및 변경하는 방법

  • 방법 1: ifconfig, netstat, route
  • 방법 2: redhat-config-network, system-config-network, netconfig
  • 방법 3: /etc/sysconfig/network, /etc/sysconfig/network-scaripts/ifcfg-eth0

네트워크 설정파일을 사용한 IP주소 변경방법

  • HOSTNAME, GATEWAY 설정.
    • /etc/sysconfig/network
  • BROADCAST, NETWORK, NETMASK설정.
    • /etc/sysconfig/network-scripts/ifcfg-eth0
    • /etc/sysconfig/network-scripts/ifcfg-eth1
    • ...
    • /etc/sysconfig/network-scripts/ifcfg-ethn
  • 위의 두 파일 설정 후 네트워크 설정을 위해 사용할 네크워크 스크립트.
    • /etc/rc.d/init.d/network start|restart|stop
  • netstat -nr를 사용하여 라우팅 정보 확인.

한 대의 리눅스에서 여러개의 IP주소 할당하여 사용하는 방법

  1. IP주소 하나를 사용중인 리눅스 서버의 초기 설정상황 확인
  2. 하나의 서버에 여러개의 IP주소 할당하기
    • /etc/sysconfig/network-scripts 디렉토리에서 ifcfg-eth0 파일을 여러 개 복사.
      • cp ifcfg_eth0 ifcfg-eth0:0
      • cp ifcfg_eth0 ifcfg-eth0:1
      • cp ifcfg_eth0 ifcfg-eth0:2
      • cp ifcfg_eth0 ifcfg-eth0:3
    • 복사된 각 파일마다 DEVICE 항목과 IPADDR 항목 수정.
  3. 서버에 적용하기 위해 /etc/rc.d/init.d/network 스크립트를 사용하여 restart.
  4. ifconfig로 실제로 할당되었는지 확인.

netconfig를 이용한 네트워크 설정

  • /usr/sbin/netconfig 명령어 실행.

리눅스서버 HOSTNAME변경하기

  • /etc/sysconfig/network
  • hostname: 현재의 호스트명을 보여주는 명령어

네트워크 통신 경로 확인하는 traceroute 사용방법

  • 대상호스트까지의 통신경로를 추적하는 명령어.
  • 테스트 결과.
    1. 대상 호스트까지의 통신이 잘 이루어지고 있는가?
      • 통신이 잘 이루어지지 않는 구간이 있으면 "*" 표시.
    2. 대상 호스트까지의 몇 개의 hop수(거쳐가는 게이트웨이 수)를 거쳐 통신이 되고 있는가?
    3. 대상 호스트까지의 통신에 있어 지연되는 구간은 없는가? 있다면 원인은?
      • ms수치가 평균치 이상 높은 경우.
    4. 대상 호스트까지의 통신경로상에 있는 특정 구간의 정보를 확인해볼수 있어야함.

네트워크 상황점검하는 netstat 사용방법

  • netstat는 네트워크 연결, 라우팅 테이블, 네트워크 인터페이스상태등을 종합적으로 확인할 수 있는 명령어이다.
  • 보안점검을 하는 방법으로도 많이 사용.
  • 옵션 리스트.
  • -a: all 모두 보여줌.
  • -n: 10진수의 수치정보로 결과 출력.
  • -r: route와 같음.
  • -p: 실행되고 있는 프로그램과 PID정보 출력.
  • -i: 네트웍 인터페이스 정보.
  • -c: 연속적으로 출력.
  • -l: listen되고 있는 소켓정보 출력.
  • -s: 각 프로토콜에 대한 통계정보 출력.
    • LISTEN: 연결이 가능함.
    • SYS-SENT: 연결을 요청한 상태.
    • SYN_RECEIVED: 연결요구에 의한 응답 준 후에 확인 메시지 기다리는 상태.
    • ESTABLISHED: 앞의 3단계 연결과정이 모두 종료된 후에 연결이 완료된 상태.
    • FIN-WAIT1, CLOSE-WAIT, FIN-WAIT2: 연결종료를 위해 종료요청을 받은 후의 종료과정.
    • CLOSING: 전송된 메시지가 유실된 상태.
    • TIME-WAIT: 연결종료 후에 한동안 유지하고 있는 상태
    • CLOSED: 연결이 완전히 종료.

네트워크 사용기관 정보 확인하는 whois 사용방법

  • 특정 도메인 정보나 특정 IP Address 또는 특정 네트웍을 사용하고 있는 기관정보를 조회할 수 있다.
  • 국내 도메인 사용기관 정보 조회.
  • 국제 도메인 사용지관 정보 조회.

ethtool을 이용한 랜카드 속도설정과 전송모드 설정하기

  • 이더넷 설정확인: ethtool eth0
  • 이더넷 설정변경: ethtool -s eth0 [speed 10|100|1000] [duplex half|full] [autoneg on|off]

tcpdump를 이용한 TCP 패킷캡쳐 및 패킷데이터 모니터링하기

  • tcpdump는 지정한 네트웍 인터페이스로 송수신되는 데이터 패킷들의 전체 혹은 헤드등을 모니터링 또는 덤프하여 확인하는 명령어.
  • 옵션 리스트.
    • -i: 대상 네트웟 인터페이스 지정.
      ex) tcpdump -i eth0
    • -w: 지정한 파일에 저장.
      ex) tcpdump -i eth0 -w TCPDUMP(파일이름)
    • -r: 패킷 헤드가 저장된 파일을 텍스트포맷으로 확인.
      ex) tcpdump -r TCPDUMP
    • -c: 확인하고자 하는 패킷헤드의 개수 지정.
      ex) tcpdump -i eth0 -c 10
  • 서버의 특정포트로 송수신되는 모든 데이터패킷 전체를 확인하기.
    • tcpdump -w tcpdump.log -s 1500 tcp port 22 and host 192.168.0.100
      현재 로컬 서버와 192.168.0.100서버사이의 통신데이터패킷 중 tcp22번 포트의 모든 패킷을 1500길이로 캡쳐하여 tcpdump.log파일에 저장.
    • tcpdump.log 파일의 내용을 ASCII 모드로 확인하는 방법: tcpdump -Xqnr tcpdump.log

mii-tool을 이용한 네트워크 인터페이스 설정확인

  • 현재 서버에 장착되어 있는 랜카드 설정상황 확인
  • 옵션 리스트.
    • -v: 자세한 내역 확인.
    • -r: 재설정.

modprobe를 이용한 랜카드 모드 설정확인 및 변경하기

  • 이더넷의 설정을 확인하고 변경.
    • lsmod: 현재 로드되어 있는 모듈확인.
    • /etc/modules.conf: 모듈명의 확인.
  • modprobe 랜카드모듈명 speed_duplex=설정번호
    • speed_duplex=0: auto detection 모드. //(속도는 10M로 설정. duplex는 자동검출모드로 설정.)//
    • speed_duplex=1: 10M, half duplex 모드.
    • speed_duplex=2: 10M, full duplex 모드.
    • speed_duplex=3: 100M, half duplex 모드.
    • speed_duplex=4: 100M, full duplex 모드.

모던 리눅스 명령어 소개

최근 GitHub 에서 Rust 로 쓰여진 Linux 명령어가 개발되고 있는 리포지토리가 눈에 띕니다. 직접 써보니 색감도 이쁘고 화려하게 표시되는 명령어가 많아 편리했기에, 발견한 명령어들을 모아서 소개해보고자 합니다.

Command Line Tools

Text

Common

grep, sed, awk, cat, xargs, rev, tee, ack, tr, stdbuf

Diff

diff, patch

Cutting

cut, head, tail, less, more, split, watch

Sort

uniq, sort

Hash

base64, md5sum, sha1sum, sha224sum, sha256sum, sha384sum, sha512sum

Clipboard

clip (Windows), pbcopy (Mac OSX), pbpaste (Mac OSX), xclip (Debian)

E.T.C

regexp, parallel

User Management

Communication

write, wall, mesg, mail, biff, who, w, last

User

adduser, useradd, passwd, deluser, userdel, chpass, chfn, chsh, usermod

Group

gpasswd, addgroup, groupadd, groupmod, delgroup, groupdel

E.T.C

Linux:User, /etc/passwd, /etc/shadow, /etc/group

Filesystem

Common

ls, readlink, realpath

E.T.C

Filesystem

Logging

Login/Logout

last, lastlog, lastb

Logging

logrotate

Monitoring

watch

E.T.C

Linux

Network

Network

netcfg, netstat, nc, ifconfig, tcpdump, iftop, route, ping, nslookup, iPerf, socat

E.T.C

Linux:Network

Hardware

Hardware (CLI)

lscpu, lshw, hwinfo, lspci, lsscsi, lsusb, Inxi, lsblk, df, Pydf, fdisk, mount, umount, free, dmidecode, hdparm

Hardware (GUI)

hardinfo

Filesystem

lsof, lsblk, fsck, fdisk, blkid, du, df

Bluetooth

hciattach, hciconfig, hcitool, bluetoothctl, rfkill

Keyboard

showkey

E.T.C

Hardware, Linux:Hardware

Binary

Binary

otool, objdump, nm, rebase, fallocate

Build

ld

E.T.C

GNU Binutils

Mutual Exclusion

Common

flock

E.T.C

mutex

System

Module

lsmod, insmod, rmmod

Logging

dmesg

E.T.C

OS, Linux:Kernel:Module

Terminal

tty

watch

E.T.C

See also

Favorite site

Tutorials