Linux常见命令总结
时隔两年,又来了baidu,发现当年很多linux下常用的命令都记不大清楚了,挨个查找非常繁琐,于是下定决心还是把一些经常碰到的做一做记录好了。
grep:
- 匹配文件中包含特定字符: grep hello filename | more
awk:
- 输出文件的某一列:awk '{print $1 $2}' filename
- 列连接符改为TAB:awk '{print $1"\t"$2}' filename
- 输出列数满足条件的行: awk '{if(NF>5)print}' filename
- 输出文件最后一列:awk '{print $NF}' filename
- awk强大的正则匹配功能: awk '{if($2~/^80$/)print}' filename
- PS:~ 匹配正则 !~ 不匹配正则
sed:
- 去除含有特殊符号的行: sed 's/[[:punct:]]//g' filename | grep -v '^$' ## grep -v '^$'为去除空白行
- 取出文件特定行: sed -n '190,196p' a.txt ## 取第190行到196行
- 取出文件某一行: sed -n '190,1p' a.txt ## 取第190行
文件操作:
- 下载文件到本地:wget url/ftp
- 从远程主机拷贝文件:scp ## 拷贝整个文件夹为 scp -r
- 统计文件行数:wc -l filename
- 统计文件列数: awk '{print NF}' filename | more
- 在当前目录下(包含子目录),删除所有txt文件: find ./ -name “*.txt” -exec rm {} \; ## 只有find才有这个-exec的选项
- 去除重复行:sort -u | uniq
- 拆分文件: split -l 50 wlan_date.txt wlan ## 将wlan_date.txt按50行拆分为 wlanaa, wlanab,....
- 查看文件时显示行号:cat -n filename
- 压缩当前文件夹:zip -r ./a.zip ./*
- 解压zip文件:unzip a.zip
vim:
- :set list/nolist ==>设置是否显示不可见字符,注意此选项受set listchars约束。
- :%s/\n//g ==>删除换行符
BASH:
shell中按行读入文件:
#!/bin/bash for line in `cat filename` do echo $line done
######## another way different output ##########
cat filename | while read line
do
echo $line
done
后台执行程序:nohup command >> file.out &
查看进程: ps -e
杀死进程: kill pid