Linux命令学习
#############################################################################
cat -n /etc/passwd #显示行号
head -5 /etc/passwd # 查看前5行内容
tail -5 /etc/passwd #查看后5行内容
sed -n ‘2,5p‘ /etc/passwd #获取2-4行内容
cut -d ":" -f1,3 /etc/passwd 获取第一列和第三列
head -50 test.log| cut -d" " -f4 | sort | uniq 获取前50行第4列内容,并去重,先排序再去重
cat -n /etc/passwd 查看文件内容并显示行号
#############################################################################
# Linux文本处理三剑客(grep、sed、awk)
###################################《grep用法》###############################
grep -rn index ./ 当前目录查找文件内容包含index的文件并打印行号
grep -rl index ./ 当前目录下文件内容包含index的文件,只打印文件名
grep -E "w{3}" userInfo.sh 文件中查找包含3个w的行
grep /sbin/nologin /etc/passwd| cut -d":" -f1 查找包含/sbin/nologin的行,并获取第一列
grep "$USER" /etc/passwd &> /dev/null && echo "$USER 存在的" || echo "$USER 不存在" 查找USER用户是否存在
############################################################################
#############################《sed用法》#####################################
sed -n "2,5p" passwd 打印匹配到的2-5行内容
sed -n "/mail/p" passwd 打印包含mail的行
sed -n "/^halt/,/^ftp/ p" passwd 查找halt开始,ftp结束的行
sed ‘a"add commond content."‘ passwd 每一行后面添加内容
sed "/^halt/,/^ftp/ a python" passwd halt开始的行到ftp开始的行后面加python
sed "/^halt/,/^ftp/ r test.txt" passwd 读取test.txt文件内容添加到halt开始的行到ftp开始的行
sed -n ‘/\/bin\/bash/ w one.txt‘ passwd 将passwd文件中包含/bin/bash的行写入one.txt文件中,需要转义
sed -i ‘/games/ d‘ passwd 删除文件中包含games的行
sed -i ‘3,9 s/bin/BIN/ig‘ passwd 第3行到第9行bin改为BIN
#############################################################################
####################################《awk用法》###############################
awk ‘{print $0}‘ passwd 打印文件所有内容 $0打印整行,$1第1列
ll | awk ‘{print $NF}‘ 打印最后一列内容
awk ‘BEGIN{FS=":"}{print $1}‘ passwd 打印文件第1列内容
awk ‘BEGIN{FS=":"}{print $NF}‘ passwd 打印文件最后1列内容
awk ‘BEGIN{FS=":"}{print $(NF-1)}‘ passwd 打印文件倒数第2列内容
awk ‘BEGIN{FS=":"}{print $1,$NF}‘ passwd 打印文件第1列、最后1列内容
awk ‘BEGIN{FS=":"}{printf "%s\t%s\n",$1,$NF}‘ passwd printf打印文件第1行、最后1行内容
awk ‘BEGIN{FS=":"}{printf "%10s%20s\n",$1,$NF}‘ passwd 格式化打印文件第1行、最后1行内容
awk ‘BEGIN{FS=":"}/mail/{printf "%-20s%-20s\n",$1,$NF}‘ passwd 查找文件中包含mail行的第1列和最后1列左对齐,-左对齐,+右对齐
awk ‘BEGIN{FS=":"}/^mail/,/^mysql/{printf "%-20s%-20s\n",$1,$NF}‘ passwd 打印mail所在的行到mysql所在的行第1列和最后1列左对齐
awk ‘BEGIN{FS=":"}5,10{printf "%-20s%-20s\n",$1,$NF}‘ passwd 打印5-10行第1列和最后1列左对齐
awk ‘BEGIN{FS=":"}$4>100{printf "%-20s%-20s\n",$1,$NF}‘ passwd 打印第4列大于100的行第1列和最后1列左对齐
awk ‘BEGIN{FS=":"}$6=="/bin"{printf "%-20s%-20s\n",$1,$NF}‘ passwd 打印第6列等于/bin的行第1列和最后1列左对齐
awk ‘BEGIN{FS=":"}$6 ~ "/bin"{printf "%-20s%-20s\n",$1,$NF}‘ passwd 打印第6列包含/bin的行第1列和最后1列左对齐
awk ‘BEGIN{FS=":"}$6 ~ "bin"{count++;printf "%-20s%-20s\n",$1,$NF}END{printf "%-20s%-20s\n","total",count}‘ passwd 打印第6列包含/bin的行第1列和最后1列左对齐,并统计数量
#############################################################################