유닉스/리눅스 명령어 팁

apropos
whatis DB를 검색하여 검색하는 명령어와 관련이 있는 명령어를 간단한 설명과 함께 보여준다.

# apropos jpeg
mlinkkorea@mlinkkorea:~$ apropos jpeg
pdftocairo (1) – Portable Document Format (PDF) to PNG/JPEG/PDF/PS/EPS/SVG using cairo

arch
시스템의 CPU 타입을 보여준다.

arp
연결하고자 하는 시스템의 MAC주소 확인

mlinkkorea@mlinkkorea:~$ arp
Address HWtype HWaddress Flags Mask Iface
192.168.0.1 ether 00:26:16:59:4f:2c C eth0
Jin-won-ui-iPad.local ether 8c:fa:bc:af:15:96 C wlan0
mlinkkorea-webterror.lo ether 8c:89:a5:02:4b:c1 C eth0
10.42.0.14 ether 14:5a:05:ad:04:8b C wlan0

ARP 프로토콜을 사용한 ARP 패킷 통신 확인

mlinkkorea@mlinkkorea:~$ arping 192.168.0.111
WARNING: interface is ignored: Operation not permitted
ARPING 192.168.0.111 from 192.168.0.114 eth0
Unicast reply from 192.168.0.111 [8C:89:A5:03:4B:C1] 0.753ms
Unicast reply from 192.168.0.111 [8C:89:A5:03:4B:C1] 0.741ms
Unicast reply from 192.168.0.111 [8C:89:A5:03:4B:C1] 0.746ms
Unicast reply from 192.168.0.111 [8C:89:A5:03:4B:C1] 0.749ms

awk

#ls -al | awk ‘{print $1, $9}’
mlinkkorea@mlinkkorea:~$ ls -al | awk ‘{print $1, $9}’

total
drwxr-xr-x .
drwxr-xr-x ..
-rw——- .bash_history
-rw-r–r– .bash_logout
-rw-r–r– .bashrc
drwx—— .cache
drwx—— .compiz
drwx—— .config
drwx—— .dbus
drwxr-xr-x Desktop
-rw-r–r– .dmrc
drwxr-xr-x Documents
drwxr-xr-x Downloads
-rw-r–r– examples.desktop
drwx—— .gconf
drwxr-xr-x .gnome2
-rw——- .goutputstream-4NZVRW

조건문 사용하기
# ls -al | awk ‘$5 > 1048576{print $5, $9}’
(1Mb 이상의 파일명과 용량을 출력)

grep 명령문 처럼 사용하기
# awk /root/ /etc/group

조건문과 필터링 같이 사용하기
# awk -F: /root/'{print $1}’ /etc/group
(-F:필드구분자”:”로 사용하였음. /root/를 검색하여 $1 필드만 출력)

badblocks

저장장치의 배드블록을 검사하는 명령어

# badblock -v /dev/sda1 2618595
(가장뒤의 숫자는 블럭수인데 fdisk -l /dev/sda로 확인이 가능하다)

cal
달력보기

# cal

   February 2013      
Su Mo Tu We Th Fr Sa  
                1  2  
 3  4  5  6  7  8  9  
10 11 12 13 14 15 16  
17 18 19 20 21 22 23  
24 25 26 27 28

cat
# cat -n query
(query 파일의 내용을 앞에 번호를 붙여 출력한다)

charttr
# chattr +i /etc/passwd
옵션 설명
a : 파일을 추가모드로만 열수 있다.
c : 커널에 의해 디스크 상에 압축상태로 저장된다.
d : dump 명령 수행시 백업되지 않는다.
i : 파일을 수정할 수 없다. 오직 슈퍼유저만이 다시 이 속성을 변경할수 있다.
s : 파일이 지워질 때 일단 블럭들이 모두 0이 된 다음 디스크에 기록된다.
S : 파일이 수정될 때 그 변화가 디스크 상에 동기화 된다.
u : 파일이 지워지면 내용이 저장된다.

cmp
파일비교 명령어
# cmp query query2
(query파일과 query2파일의 차이점을 보여준다)

로그인시 보여주는 메세지 변경
호스트에 접속할 경우, 대부분이 시스템의 커널 정보와 배포판 정보를 보여주게 된다.
/etc/issue 파일은 로그인 할 때 보게 되는 시스템 메세지를 담고 있다.
/etc/issue.net 파일은 로그인 할 때 보여주는 시스템 메세지와 같은 정보를 보여주지만 원격에서 접속하는 호스트에 대해 정보를 보여주게 된다.

cp
파일복사 명령의 다양한 옵션
-a : 원본파일의 속성, 링크정보를 그대로 유지하여 복사한다.
-b : 복사대상 파일이 있을 경우를 대비해 백업파일을 만든다.
-d : 원본파일이 소프트링크 파일이면 소프트링크 원본을 복사한다.
-f : 복사대상 파일이 있을 경우, 복사대상 파일을 강제로 지우고 복사한다.
-i : 복사대상파일이 있을 경우, 사용자에게 복사여부를 물어본다.
-l : 심볼릭 링크 형식으로 복사한다.
-P : 원본파일에 지정을 경로와 같이 했을 경우 그 경로 그대로 복사한다.
-p : 원본파일의 소유자, 그룹, 권한, 시간정보들이 그대로 보존하여 복사한다.
-u : 복사할 대상이 있는데 이 파일의 변경날짜가 같거나 더 최근것이라면 복사하지 않는다.

웹서버 백업
또 다른 하드 디스크 하나를 Secondary Master에 장착한 후, fdisk 명령으로 파티션을 지정한 다음 리부팅 한다. 그리고, 다음과 같이 마운트 할 디렉토리를 생성한다.
/dev/hdc1 파티션을 /hdc1 디렉토리로 마운트 한다.
# mkdir /hdc1

# mount /dev/hdc1 /hdc1
# cd /home/
# find . -depth -print | cpio -pmdvi /hdc1
-p : 동일한 시스템에서 지정한 다른 디렉토리로 파일을 복사한다.
-i : 지정한 패턴의 형태에 맞는 압축파일에서 입력을 받아 압축을 푼 파일로 복사한다. (압축풀기)
-m : 파일을 만들 때 파일 수정횟수를 같이 보존한다.
-d : 지정한 디렉토리를 생성한다.
-v : 보여주기
-l : 복사하기 보다 파일을 링크한다.
-I : 표준입력대신 archive 파일명을 쓴다. 복구시 다중 볼륨을 효과적으로 처리할 수 있다.

cpio를 이용하여 특정 확장자 파일만 압축하기
# find . -name ‘*.c’ -print | cpio -o > data.cpio

cpio로 파일 옮기기
# find /old_directory -depth | cpio -pdmv /new_directory
(한 디렉토리 또는 파일 시스템에서 다른 디렉토리 또는 파일시스템으로 옮겨야 할 대량의 파일이 있을 경우 다음의 명령을 이용)
# find . -depth -print | cpio -pudm target_dir_name
(이 명령은 소유자의 권한, 디렉토리 구조를 유지하면서 지정한 old_directory 밑의 모든 파일을 new_directory로 옮긴다)

swap 메모리 확인하기
# free -m

ifconfig 활용하기
# ifconfig -a
# ifconfig eth1 192.168.0.1 netmask 255.255.255.0
# ifconfig eth1 up

[게이트웨이 설정하기]
# route add -net default gw 211.255.253.62

locate : 파일찾기
# locate 파일이름

lsof : 사용중인 파일들의 목록보기
# lsof -c sshd

lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/webterror/gvfs
      Output information may be incomplete.
COMMAND PID USER   FD   TYPE DEVICE SIZE/OFF    NODE NAME
sshd    496 root  cwd    DIR    8,3     4096       2 /
sshd    496 root  rtd    DIR    8,3     4096       2 /
sshd    496 root  txt    REG    8,3   531944 3160000 /usr/sbin/sshd
sshd    496 root  mem    REG    8,3    47072 1835767 /lib/i386-linux-gnu/libnss_files-2.15.so
sshd    496 root  mem    REG    8,3    42664 1835771 /lib/i386-linux-gnu/libnss_nis-2.15.so
sshd    496 root  mem    REG    8,3    30552 1835763 /lib/i386-linux-gnu/libnss_compat-2.15.so
sshd    496 root  mem    REG    8,3   124675 1835798 /lib/i386-linux-gnu/libpthread-2.15.so
sshd    496 root  mem    REG    8,3    83808 1835804 /lib/i386-linux-gnu/libresolv-2.15.so
sshd    496 root  mem    REG    8,3    13620 1835740 /lib/i386-linux-gnu/libkeyutils.so.1.4
sshd    496 root  mem    REG    8,3    30292 3150917 /usr/lib/i386-linux-gnu/libkrb5support.so.0.1
sshd    496 root  mem    REG    8,3   161352 3150909 /usr/lib/i386-linux-gnu/libk5crypto.so.3.1
sshd    496 root  mem    REG    8,3    13952 1835717 /lib/i386-linux-gnu/libdl-2.15.so
sshd    496 root  mem    REG    8,3    92028 1835761 /lib/i386-linux-gnu/libnsl-2.15.so
sshd    496 root  mem    REG    8,3  1730024 1835702 /lib/i386-linux-gnu/libc-2.15.so
sshd    496 root  mem    REG    8,3    13784 1835709 /lib/i386-linux-gnu/libcom_err.so.2.1
sshd    496 root  mem    REG    8,3   838548 3150915 /usr/lib/i386-linux-gnu/libkrb5.so.3.3
sshd    496 root  mem    REG    8,3   245524 3150792 /usr/lib/i386-linux-gnu/libgssapi_krb5.so.2.2
sshd    496 root  mem    REG    8,3    34328 1835710 /lib/i386-linux-gnu/libcrypt-2.15.so
sshd    496 root  mem    REG    8,3    95752 1835836 /lib/i386-linux-gnu/libz.so.1.2.7
sshd    496 root  mem    REG    8,3     9808 1835828 /lib/i386-linux-gnu/libutil-2.15.so
sshd    496 root  mem    REG    8,3  1734784 1835712 /lib/i386-linux-gnu/libcrypto.so.1.0.0
sshd    496 root  mem    REG    8,3   120668 1835808 /lib/i386-linux-gnu/libselinux.so.1
sshd    496 root  mem    REG    8,3    50772 1835778 /lib/i386-linux-gnu/libpam.so.0.83.0
sshd    496 root  mem    REG    8,3    35044 1835833 /lib/i386-linux-gnu/libwrap.so.0.7.6
sshd    496 root  mem    REG    8,3   134376 1835680 /lib/i386-linux-gnu/ld-2.15.so
sshd    496 root    0u   CHR    1,3      0t0    1029 /dev/null
sshd    496 root    1u   CHR    1,3      0t0    1029 /dev/null
sshd    496 root    2u   CHR    1,3      0t0    1029 /dev/null
sshd    496 root    3u  IPv6   8330      0t0     TCP *:ssh (LISTEN)
sshd    496 root    4u  IPv4   8332      0t0     TCP *:ssh (LISTEN)

tracepath : 네트워크 이동 추적하기
# tracepath domain.com

키보드 입력 속도 설정
# kbdrate
– V : 버전을 보여준다.
-s : kbdrate를 아무것도 출력하지 않고 실행한다.
-r rate : 키보드의 rate 값을 변경한다. rate는 1초동안 입력할 수 있는 글자 수를 말한다.(rate의 범위 : 2.0 ~ 30.0)
-d delay : 키보드의 delay 값을 설정한다. delay 시간은 하나의 키를 누르고 있을 때 연속적인 입력을 위한 것인지를 구분한다. delay 시간은 1/1000초 단위를 사용한다. (delay 범위 : 250 ~ 1000ms)

잘못 푼 TAR 다시 지우기
잘못 푼 압축파일 지우기
rm -rf ‘tar -tvf 문제화일.tar | awk {‘print $6′}’
Create archive.tar from files foo and bar.
tar -cf archive.tar foo bar
List all files in archive.tar verbosely.
tar -tvf archive.tar
Extract all files from archive.tar.
tar -xf archive.tar

tgz파일이면 -tvzf를 bzip2 파일이면 -tvlf
디렉토리는 직접 지워야 함..

ls를 이용하여 원하는 단어가 있는 list만 골라서 지우기
rm -rf ‘ls-a1 | grep ‘찾을단어”
*”는 ‘와’로 둘러쌓인 내용을 실행하고 출력값을 나타낸다.

netstat 활용
# netstat
-a : 모든 소켓의 상태를 보여준다.
-c : 매초마다 정보를 갱신하여 계속적으로 보여준다.
-i : 시스템의 네트워크 인터페이스 장치 정보를 추가적으로 보여준다.
-n : 로컬 주소와 나가는 주소를 도메인 형태가 아닌 IP 주소 형태로 된 네트워크 주소를 보여준다.
-o : 네트워킹 타이머와 관련된 정보를 추가적으로 보여준다.
-p : 각 소켓에 포함된 프로그램의 PID와 이름을 보여준다.
-r : 커널 라우팅 테이블을 보여준다.
-s : 각 UDP, TCP, ICMP, IP 프로토콜의 주요 통계를 보여준다.
-t : TCP 소켓만 보여준다.
-u : UDP 소켓만 보여준다.

네트워크 상태를 살펴보는데 많이 사용하는 것!
# netstat -anp | more

PING에 응답하지 않는 방법
# echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
(ping 명령은 인터넷 접속 테스트를 위해 ICMP를 사용한다)

환경변수 보기
부팅시 적용된 시스템 환경변수
# env
쉘에서 적용한 시스템 환경변수
# export

젠투처럼 Bash Color 설정하기
.bashrc 파일에 다음을 추가하기
export LS_COLORS=”rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41: tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*. taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01; 31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01; 31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*. war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*. pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01; 35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*. mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*. ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01; 35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*. fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01; 35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*. pdf=00;32:*.ps=00;32:*.txt=00;32:*.patch=00;32:*.diff=00;32:*.log=00;32:*. tex=00;32:*.doc=00;32:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*. axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:”

DIRCOLOR 확인하기
# dircolors –print-database

프롬프트 색상 설정하기
http://cyj4369.tistory.com/entry/bashrc%EC%97%90-shell-%EC%B9%BC%EB%9D%BC-%EC%84%A4%EC%A0%95
.bashrc에 다음과 같이 넣자
export PS1=”\e[1;37m[\e[36m\D{%Y-%m-%d %H:%M:%S}\e[37m] [\e[32m\u\e[31m@\e[33m\h\e[37m] \e[34m\w\e[m\n\$ ”

find 활용 명령 모음
# find ./ -name *.mp4 -exec cp {} ./ \;
# find ./ -name “*.py” | xargs grep -i “HISTORY_TYPE_CHARGE” | sed -n ‘s/:.*$//p’ | xargs -i echo {}

python easy_install 버전별로 다운받기
# sudo easy_install django==1.4

관련 글

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다