익혀두면 유용한 shell 명령어들. UseThePowerOfCommandShells. One of the ComputerTips

vi 관련 팁은 VimEditorCommands 참고

관련포스트

Unix

시계맞추기

rdate -s time.kriss.re.kr
clock -w

crontab명령어와 같이 사용하면 효과적으로 쓸 수 있다.

crontab -e
5 0 * * * /usr/bin/rdate -s time.kriss.re.kr

누가누가 접속해있나, 뭐하나 확인

users, finger, w, who

특정아이피 접속차단

See IpToBlock

포트스켄

nmap (ip_address or host name)

해당 컴퓨터에 열려있는 포트/서비스들을 보여준다. 안먹는 컴퓨터들도 있다.

파일 저장하지 않고 풀기

보통 *.tar.gz이나 *.tar.bz2파일은 다운받아서 풀면, 받은 파일은 더이상 필요가 없어진다. 이럴때는 저장할 파일의 주소를 저장해서

curl 파일URL | tar [z,j]xvf -

이러면 받으면서 풀림.

파이프

> : stdout 전달
2> : stderr 전달
>> : 이어붙이기

상대방컴퓨터에 터미널보내기

믿을만한 상대가 아님 시도하지 말것. 특히나 루트일때는 위험하다.

# export DISPLAY=ip:0
# xterm

다른컴퓨터를 하드디스크로 마운트하기

NFS를 이용

현재디렉토리 파일갯수세기

ls -l | wc -l

쉘 프롬프트 변경하기

PS1='\[\e[3;32m\]\h:\u@\w \d \t \$ \[\e[m\]'

see http://networking.ringofsaturn.com/Unix/Bash-prompts.php

특정디렉토리밑의 모든 파일내 문자열 바꾸기

find . -type f -exec vi -c $'%s/bioinfo\.sarang\.net/biohackers\.net/g\nwq\n' \{} \;

VimEditor 에서

gvim . *   # 하위디렉토리까지 열기
:argdo %s/foo/bar/g | w

CPU 정보

cat /proc/cpuinfo

사이즈 큰 파일의 다운로드

사이즈 큰 파일(2G 미만은 wget -c 로 다됨)을 다운로드하기 위한 몇가지 방법들

  • ncftp 에서 resume 으로 계속 이어받기
  • wget -t 0 -O - > afile 으로 받자마자 afile로 넘기기. (이경우 중간에 멈추면 처음부터 다시 ㅡ.ㅡ;)

UseKeyCapsLockToControl

UseKeyCapsLockToControl

ScreenMultiplexor를 이용한 스크린전환

ScreenMultiplexor

특정 로그에서 특정 아이피 빈도 측정

Apache

cat access_log | awk '{print $1}' | sort | uniq -c

(gzip -dc access.log.*.gz; cat access.log; cat access.log.1) | egrep 'gmp.(ht|x)ml'  | awk '{print $1}' | sort | uniq

SSH

(cat auth.log && bzcat auth.log.*) | awk '{print $1" "$2}'|uniq -c|sort -r

영화에서 mp3 추출

mplayer -vo null -dumpaudio -dumpfile 파일명.mp3 파일명.avi
mencoder -ovc frameno -oac mp3lame -lameopts cbr:br=192:mode=1 -o 파일명.mp3 파일명.avi

SeeAlso 비디오 파일에서 오디오 추출하기

rename

cus* 로 시작하는 파일을 VIP*로 바꾸기.

ls cus* | sed -e 's/cus\(.*\)/mv cus\1 VIP\1/' | sh

혹은 Perl스크립트 rename (대개 기본으로 깔려있다)

rename 's/cus/VIP/' *.txt 

bash 프롬프트에 색깔입히기

.bashrc 에 다음 추가. from 토끼군님 블로그

__PS_COLOR=31
__PROMPT_FUNC() {
    local _ERRVAL=$?; local _PWD=${PWD/$HOME/~}; local _BASE=${_PWD##*/}
    PS1="\[\e[1;${__PS_COLOR}m\]\u\[\e[0;${__PS_COLOR}m\]@\h\[\e[1;30;40m\]:"
    PS1="${PS1}\[\e[0;37m\]${_PWD%$_BASE}\[\e[1;37m\]${_BASE}"
    if test $_ERRVAL -eq 0; then
        PS1="${PS1}\[\e[32m\]\\$ \[\e[0m\]"
    else
        PS1="${PS1}\[\e[31m\]\\$ [${_ERRVAL}] \[\e[0m\]"
    fi
    echo -ne "\e]0;${USER}@${HOSTNAME}: ${_PWD}\007"
}
PROMPT_COMMAND=__PROMPT_FUNC

31 - red, 33 - yellow

사용자에게 관리자권한주기

See Sudo

텍스트 웹브라우저

See W3m

특정 파일들 사이즈 계산

du -sk COGS* | awk '{print $1}' | python -c 'print sum(map(int, __import__("sys").stdin.read().split()))'

du -sk COGS* | awk '{sum += $1} END {print sum}'

Grep

See Grep

List of commands you use most often

history | awk '{a[$2]++}END{for(i in a){print a[i] " " i}}' | sort -rn | head 

특정 사용자로 실행하기

su -c /usr/local/script/run.sh useraccount

분할압축 및 해제

리눅스에서 2기가 이상 파일로 압축하기 위해

tar -zcvpf - /home | split -b 2048mb - home.tar.gz
cat home.tar.gz* | tar -zxvpf - 

파일찾기

UsefulShellCommands (last edited 2013-04-02 16:06:52 by 61)

web biohackers.net