# 常用命令

# 基本操作

# pushd <路径> 记住来源的同时移动到其他目录,popd 返回来源
pushd ~/downloads
popd

# 批量执行脚本

ls *.sh | while read f;do bash $f || wx_remind "Error! file:$f";done

# 查找文件内容

grep -inr "xxx" ./ 找到目录中包含查找字符串的文件
grep -l "xxx" ./ 只返回文件名
grep -nw apple fruit.txt 查找完整单词.
grep -nv apple fruit.txt 找到不匹配的记录
grep -c apple fruit.txt 查找匹配到的行数
grep -i break-in auth.log | awk {'print $12'} 查找内容并输出第12列.
ping -c 1 example.com | grep 'bytes from' | cut -d = -f 4  显示位于bytes from行的第四列,其中分隔符为=

# cat

# 将stdin 和另外一个文件中的数据组合在一起

echo 'Text through stdin' | cat - file.txt

# 删除多余的空白行(两行之间只留一个空白行)

cat -s file

# 输出的内容显示行号

cat -n lines.txt

# 格式化输出

printf  "%-5s %-10s %-4s\n" No Name  Mark
printf  "%-5s %-10s %-4.2f\n" 1 Sarath 80.3456
printf  "%-5s %-10s %-4.2f\n" 2 James 90.9989
printf  "%-5s %-10s %-4.2f\n" 3 Jeff 77.564

# 替换字符

echo 'This is ROT-13 encrypted.' | tr 'A-Za-z' 'N-ZA-Mn-za-m'  --加密
echo 'Guvf vf EBG-13 rapelcgrq.' | tr 'A-Za-z' 'N-ZA-Mn-za-m'  --解密
tr 'A-Z' 'a-z' people.txt
tr ',' '\t' < us_presidents.csv > us_presidents.tsv
tr -dc [:print:] < file1 > file2 移除不可见字符
tr -d '\015\032' < windows_file > unix_file  移除换行符
tr -s '  ' < file1 > file2 移除双空格

# 查看占用端口的进程并Kill

sudo lsof -i tcp:80
sudo lsof -i tcp:80 -s tcp:listen
sudo lsof -t -i tcp:80 -s tcp:listen | sudo xargs kill

# 硬盘测试

dd if=/dev/zero of=test bs=64k count=4k oflag=dsync
dd if=/dev/zero of=test bs=8k count=256k conv=fdatasync

# 创建目录

mkdir -p new_folder/{folder_1,folder_2,folder_3,folder_4,folder_5}

# 创建文件

touch file_{1..1000} 创建一千个文件
touch {apple,banana,cherry,durian}
touch {1..10..2} 创建奇数文件
touch {w..d..2}
touch {apple,banana,cherry,durian}_{01..100}{w..d}

# 复制文件

复制文件到多个目录

echo /home/user/1/ /home/user/2/ /home/user/3/ | xargs -n 1  cp /home/user/my_file.txt

复制文件的2-10,30-35,49-最后一列

cut -c 2-10,30-35,49- dir_content.txt
cut -f 2,6 -d "," us_presidents.csv  -d 指定分隔符

# 显示CPU信息

cat /proc/cpuinfo

# 后台运行

nohup command &
更新时间: 3/21/2020, 3:57:55 PM