ls
mkdir
cd
rm
cat
sudo
nano
vim
rsync
ip
ifconfig
apt-get
apt-get --allow-releaseinfo-change update
add-apt-repository ppa:webupd8team/java
apt-cache
fg
jobs
ps
top
htop

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


https://opentutorials.org/course/2598

'IT > Linux' 카테고리의 다른 글

How to fix stdio buffering  (0) 2019.05.12
Ubuntu  (0) 2018.05.10

+ Recent posts