본문 바로가기

리눅스

리눅스 명령어

유닉스와 리눅스는 대문자와 소문자를 구분합니다.
관리자(root)은 "su -" 명령어를 사용하고 접속이 성공하면 프롬프트에 '#'이 표시됩니다.
사용자 계정은 접속이 성공하면 프롬프트에 '$'이 표시됩니다.

명령어 도움말

man      명령어 도움말
man ls   ls 명령어에 대한 도함물 출력

 

가용성 점검

TOP            CPU, 메모리, 프로세스 등 시스템 모니터링 유틸리티
top -p 22978   특정 PID 시스템 모니터링 출력

free        메모리 점검
free -m     show output in MB

df        디스크 점검
df -h     디스크 용량 포맷 변경 (e.g: 1K 234M 2G)

ps        프로세스 점검 (process status)
ps -ef    모든 프로세스의 모든 정보를 출력
ps -e     모든 프로세스 리스트 출력 (ps -A)
ps -f     프로세스 시작 시간, 프로세스의 부모 ID 등 모든 정보를 출력
ps -ef    모든 프로세스를 유닉스 형식으로 출력
ps -u     특정 사용자가 실행시킨 프로세스 목록
ps -a     터미널에서 다른 사용자가 실행한 프로세스 출력
ps -x     접속 터미널뿐만 아니라 지금 사용되는 모든 프로세스 출력
ps -p     지정된 프로세스에 대한 정보 출력

|                         명령의 결과를 다음 명령의 입력으로 넘긴다. (Pipe)
ls -al | wc -l            ls 명령어의 라인수를 Count

grep                      파일에 포함된 특정 단어를 검색
grep -i                   대소문자 구분 안함
grep -n                   line 번호 출력
grep -v                   검색어가 없는 Line 출력
grep -c                   line 수를 Count
grep -w                   단어(word) 단위로 매칭
grep -x                   line 단위로 매칭

wc                        단어 수, 줄 수 등을 세어줌
wc -l                     line 수를 Count
wc -l test.txt            해당 파일의 line 수를 Count

ps -ef | grep http | wc -l
ps -ef | grep guard.py | wc -l
ps -ef | grep pguard.py | wc -l
ps -ef | grep ssh-proxy.py | wc -l
ps -ef | grep ftpd-proxy.py | wc -l
ps -ef | grep sftp-proxy.py | wc -l
ps -ef | grep gated-xrdp | wc -l
ps -ef | grep mysqld | wc -l

netstat       세션점검
netstat -a    all 모든 소켓 정보
netstat -n    호스트명 대신 ip주소로 출력
netstat -t    TCP 프로토콜 출력
netstat -i    모든 네트워크 인터페이스 정보 출력
netstat -u    UDP 프로토콜 출력
netstat -p    프로세스id(PID)와 프로세스 이름 표시
netstat -r    라우팅 정보
netstat -an | grep ESTABLISHED | wc -l
netstat -an | grep LISTEN | wc -l
netstat -an | grep SYN_REC | wc -l

netstat -an | grep 5000      5000 Port LISTEN 점검

uptime                       서버 재부팅 일수 확인

 

 

시작과 종료

shutdown -h now     지금 종료
shutdown -h +10     10분 후에 종료(h: halt)
shutdown -r 22:00   오후 10시에 재부팅(r: reboot)
shutdown -k now     현재 접속자에게 종료 메시지만 보내고 종료는 안함
halt                지금 종료
init 0              지금 종료
init 1              단일 사용자 모드(시스템 복구 시)
init 2              NFS 없는 다중 사용자 모드(잘 사용하지 않음)
init 3              텍스트 모드의 다중 사용자 모드
init 4              사용하지 않음
init 5              X 윈도우 몯의 다중 사용자 모드
init 6              재부팅 모드

 

지금 재부팅

shutdown -r now    지금 재부팅
reboot             지금 재부팅
init 6             지금 재부팅

 

로그아웃

logout
exit

에디터/열람

gedit       X 윈도우 재공 환경

vi          텍스트 모드에서 모든 유닉스/리눅스 시스템 기본 포함
            파일명 생성/열람   vi test.txt (해당 파일이 있으면 열람)
            입력 모드          i(insert), a(Append)
            명령 모드          Esc
            종료 모드          :(콜론)
            저장 후 종료       :wq(Write, Quit)  → Enter
            파일명 생성/종료   :w test2.txt → q
            파일명 생성/종료   :wq! test3.txt (생성하면서 바로 종료, :wq도 가능)
            변경없이 종료      :q!
            비 정상적으로 종료 .test2.txt.swp(swp 파일이 생성됨)
            위/아래 이동        K/J 또는 방향키 위/아래
            페이지 업/다운      Page UP/Page Down 또는 Space/b
            특정 단어 검색      "/단어" + N(다음 단어), 종료(Q)
            
cat install.log           짧은 텍스트 파일 내용을 볼때 사용(내용이 많으면 more 사용)

head install.log          처음 10줄을 출력한다.

tail install.log          마지막 10줄을 출력한다.
tail -50 install.log      마지막 50줄을 출력한다.
tail -c                   마지막 바이트(N)만큼 내용을 출력한다.
tail -f                 tail을 종료하지 않고 파일의 업데이트 내용을 실시간으로 출력한다.(follow)
tail -q                 파일명을 출력하지 않는다.(quiet)
tail -v                 출력 전에 파일 이름을 출력한다.(verbose)
tail --help             사용법을 출력한다.
tail --version          버전 정보를 출력한다.

more                      위에서 아래로 이동하면서 출력
more install.log          페이지 단위로 출력한다. 
more +100 install.log     100행부터 출력한다.

less              위에서 아래, 아래에서 위로 둘다 이동 가능(화살표, Page Up, Page Down), 종료(q)

file install.log          file이 어떤 종류의 파일인지 표시해 준다.
file /bin/gzip            특정 경로의 file이 어떤 종류의 파일인지 표시해 준다.

clear                     명령창을 깨끗하게 지워준다.

 

조회 
리눅스는 숨김파일 속성은 없고, 파일명/디렉토리 제일 앞 글자를 "."으로 하면 자동 숨김 파일이 됩니다.

cd                     현재 사용자의 홈 디렉토리로 이동함
cd ~root               root 사용자의 홈 디렉토리로 이동함
cd ..                  바로 상위 디렉토리로 이동
cd /usr/bin            user/bin 디렉토리 이동(절대 경로)
cd ../usr/bin          상대 경로로 이동

pwd                    현재 디렉토리 보여줌

ls                     현재 디렉토리 파일 목록을 보여줌
ls /user/bin           /user/bin/ 디렉토리의 목록을 보여줌
ls -a                  현재 디렉토리의 목록(숨김 파일 포함)                       
ls -l                  현재 디렉토리의 목록을 자세히 보여줌
ls *.txt               확장자가 txt인 목록을 보여줌
ls -l /user/bin/a*     /usr/bin/ 디렉토리에 있는 목록 중 앞 글자가 'a'의 목록을 자세히 보여줌

find                   파일을 검색함
find -name             파일 이름으로 검색
find -user             소유자 이름으로 검색
find -size             파일 크기로 검색

 

복사/변경/삭제

cp /boot/test4.txt         해당 파일을 현재 디렉토리에 복사함
cp test.txt test2.txt      test.txt 파일을 test2.txt 파일에 복사
cp -r test test2           디렉토리 복사

touch test.txt     파일이 없을 경우 test.txt 파일 생성/ 파일이 있으면 수정시간을 현재로 변경

mv test1 test2 test3 test4   test1~3 파일을 test4 디렉토리에 이동
mv test1.txt test2.txt       파일 이름 변경

rm .test3.txt.swp       파일 삭제
rm -i text3.txt.swp     파일 삭제 시 확인을 물어봄
rm -r text3             디렉토리 삭제
rm -rf text3            text3 디렉토리와 그 하부를 강제로 전부 삭제

 

디렉토리 생성/삭제

mkdir test           → 현재 디렉토리 아래에 test 디렉토리 생상
mkdir /media/iso     → 경로 이동 후 iso 디렉토리 생성
mkdir -p test/test2  → 현재 디렉토리 아래에 test 디렉토리 생성후 그 안에 test2 디렉토리 생성

rmdir test           → 빈 디렉토리를 삭제한다.
rmdir -r test        → 파일이 들어 있는 디렉토리를 삭제한다.

 

마운트

mount               현재 마운트되어 있는 장치들 확인
umount /dev/cdrom   CD/DVD 마운트 해제 (/dev/sr0 또는 /dev/dvd )

 

패키지

rpm -qa 패키지 이름        → 패키지가 설치되어 있는지 확인하는 명령어이다.
rpm -qa  genisoimage       → genisoimage 프로그램이 포함된 패키지
rpm -qa  wodim             → cdrecord 프로그램이 포함된 패키지
rpm -qa  dvd+rw-tools      → growisofs 프로그램이 포함된 패키지
yum -y install 패키지 이름 → 패키지를 설치하는 명령어이다.
yum -y install wodim       → wodim 프로그램이 포함된 패키지 설치

 

압축

tar                  압축
tar c                파일을 입축함
tar v                작업 과정 확인
tar f                저장될 파일명 지정
tar x                압축 파일을 풀어줌
tar z                tar + gzip
tar j                tar + bzip2
tar cvf test.tar ./test    test 디렉토리를 test.tar로 압축
tar xvf test.tar           test.tar 파일을 풀어줌

 

Sh             
exit 또는 ctri+d          sh에서 복귀