add-apt-repository ppa:webupd8team/java
ssh
ssh-keygen
ssh-copy-id
chmod
chown
service
wget
git
curl ( ipinfo.io/ip )
adduser
useradd
groupadd
tzselect
netstat -tnlp
uname
lsb_release
cut
cut [ -d, --delimiter=DELIM ] [ -f, --fields=LIST ]
wc
wc -l
grep
grep [-F fs] [-v] [-i] [-c] [-n] [-l] [-w] [-B] [-A] [--line-buffered] [--group-separator=] [--no-group-separator] [-E extended-regexp] [FILE]...
stdbuf
stdbuf [-i] [-o] [-e] {L or 0 or KB, K, MB, M, G, T, P, E, X, Y } tail -f access.log | stdbuf -oL cut -d aq aq -f1 | uniq tail -f output.log | fgrep --line-buffered "THIS 10" -B5 --group-separator=';' | stdbuf -o0 tr -d '\n' | stdbuf -o0 tr ';' '\n' | awk '{printf "%s|%s|%s|%s\n",$1,$4,$7,$10;}'
awk
$0 $1 $2 ~ $(NF-2) $(NF-1) $NF
awk 'pattern' filename awk '{action}' filename awk 'pattern {action}' filename awk [ -F fs ] [ -v var=value ] [ 'prog' | -f progfile ] [FILE]... date Wed Jul 20 21:59:52 KST 2016 date | awk '{print $2}' Jul echo | awk '{ print 3+2 }' 5 awk '{ print "Hello, world!" }' Hello, world! cat /etc/passwd | awk /apache/ apache:x:48:48:Apache:/var/www:/sbin/nologin awk '{printf NR, NF, "%-20s %4d %f %x\n", $1, $2, $3, $4}' filename awk '{max=($1 > $2) ? $1 : $2; print max}' filename awk '$3 > $5 && $3 <= 100' filename awk '/Tom/{count++}END{print "Tom was found " count " times."}' filename awk -F: '$4 >= 60000 {print $1, $2 > "new_file"}' awk 'BEGIN{while (getline < "/etc/passwd" > 0)lc++; print lc}' filename awk '{print $1, $2 | "sort -r"} END{close("sort -r")}' filename
awk '{...;fflush();}'
sed
#5~10라인만 출력 sed -n '5,10p' myfile.txt #20~35라인 제외하고 출력 sed '20,35d' myfile.txt #5~7, 10~13라인만 출력 sed -n -e '5,7p' -e '10,13p' myfile.txt #version을 story로 바꿔서 출력 sed 's/version/story/g' myfile.txt #version을 story로 바꿔서 출력 case무시 sed 's/version/story/gi' myfile.txt #연속된 공백을 공백한자리로 출력 ip route show | sed 's/ */ /g' #30~40줄내에서 version를 story로 치환 출력 sed '30,40 s/version/story/g' myfile.txt #"#"로 시작하거나 or 빈 줄인 라인 제거 sed '/^#\|^$\| *#/d' httpd.conf #zip 또는 Zip을 rar로 바꾸기 sed 's/[Zz]ip/rar/g' myfile.txt #"Jul 1" 로 시작하는 라인 출력 sed -n '/^Jul 1/ p' /var/log/secure #라인마다 공백라인 1줄 추가 sed G myfile.txt #라인마다 공백라인 2줄 추가 sed 'G;G' myfile.txt #hidden new line 제거 sed -i 's/\r//' myfile.txt #원본 수정 후 .orig 확장자 파일 생성하여 백업 sed -i'.orig' 's/this/that/gi' myfile.txt #특정 구분자(comma)를 기준으로 앞뒤 바꿈 sed 's/^\(.*\),\(.*\)$/\2\, \1/g' names.txt #services를 갖는 줄에서 start를 stop으로 global하게 변환 sed '/services/ s/start/stop/g' msg.txt #that을 this로 / line을 verse로 동시에 바꿈 sed -i 's/that/this/gi;s/line/verse/gi' myfile.txt #"|"를 이용하여 최종적으로 ip 추출("src"를 갖는 줄에서 연속된 공백을 하나로 치환하고 9번째 컬럼 값인 ip를 출력) ip route show | sed -n '/src/p' | sed -e 's/ */ /g' | cut -d' ' -f9
sed -u
xargs
xargs [-0prtx] [-e[eof-str]] [-i[replace-str]] [-l[max-lines]] [-n max-args] [-s max-chars] [-P max-procs] [--null] [--eof[=eof-str]] [--replace[=replace-str]] [--max-lines[=max-lines]] [--interactive] [--max-chars=max-chars] [--verbose] [--exit] [--max-procs=max-procs] [--max-args=max-args] [--no-run-if-empty] [--version] [--help] [명령 [기본인수]] # find를 이용하여 mtime이 30일 이상된 파일들을 ..bak으로 바꾸기 find . -mtime +30 | xargs mv -i {} {}.bak # find를 이용하여 *.mp3 파일을 지우기 find . -name '*.mp3' | xargs rm # ls 를 이용해서 text 파일 목록을 가져온 뒤 각각의 파일내용을 cat으로 읽고 병합파일 만듬 ls *.txt | xargs cat >> abc.merge # -I 옵션으로 .bak 파일 복사 시도: 성공! ls | grep "\.bak$" | xargs -I{} cp {} ./bak_files # -i 옵션으로 .bak 파일 복사 시도: 성공! ls | grep "\.bak$" | xargs -i cp {} ./bak_files # -I 옵션 ls | grep "\.bak$" | xargs -IFILE cp FILE ./bak_files # -i 옵션 ls | grep "\.bak$" | xargs -iFILE cp FILE ./bak_files # 홈 디렉토리(~/) 하위에서 .txt 파일만 추려낸 후, # 이 중에 문자열 "abcd"를 포함하고 있는 파일이 어느 것인지 찾는 방법이다. # 하위 디렉토리까지 검색해야 하므로 ls 대신 find 명령을 사용하고, # grep 명령에서 파일명을 같이 출력하기 위해 -H 옵션을 사용했다. find ~/ -type f | grep -H "\.txt$" | xargs grep -H "abcd"
http://www.incodom.kr/Linux#top
'IT > Linux' 카테고리의 다른 글
How to fix stdio buffering (0) | 2019.05.12 |
---|---|
Ubuntu (0) | 2018.05.10 |