익혀두면 유용한 shell 명령어들. UseThePowerOfCommandShells. One of the ComputerTips
Contents
-
Unix
- 시계맞추기
- 누가누가 접속해있나, 뭐하나 확인
- 특정아이피 접속차단
- 포트스켄
- 파일 저장하지 않고 풀기
- 파이프
- 상대방컴퓨터에 터미널보내기
- 다른컴퓨터를 하드디스크로 마운트하기
- 현재디렉토리 파일갯수세기
- 쉘 프롬프트 변경하기
- 특정디렉토리밑의 모든 파일내 문자열 바꾸기
- CPU 정보
- 사이즈 큰 파일의 다운로드
- UseKeyCapsLockToControl
- ScreenMultiplexor를 이용한 스크린전환
- 특정 로그에서 특정 아이피 빈도 측정
- 영화에서 mp3 추출
- rename
- bash 프롬프트에 색깔입히기
- 사용자에게 관리자권한주기
- 텍스트 웹브라우저
- 특정 파일들 사이즈 계산
- Grep
- List of commands you use most often
- 특정 사용자로 실행하기
- 분할압축 및 해제
- 파일찾기
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
ScreenMultiplexor를 이용한 스크린전환
특정 로그에서 특정 아이피 빈도 측정
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
(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
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 -