课程地址:https://www.shiyanlou.com/courses/68
ls -alh d* cd – pwd mkdir -mvp ./{lib/,bin/,doc/{info,product}} rm -i *.log mv a.log b.log mv -i a.txt test1 cp -iu test1/* test2 cp -s cat -ns a.log > b.log 带行号显示,空行也算 cat还可合并文件 nl -b t a.log nl -n ln a.log 带行号显示(空行不算)(-n在最左方显示) ll /etc | more -10 常用操作 = b p space more +/g a.log查找第一个出现“g”字符串的行,并从该处前两行开始显示输出 ps -f | less -N /字符串 向下搜索“字符串”的功能 head -n 5 a.log b.log ping www.baidu.com >> a.log & tail -n 5 -f a.log自动更新显示 which gcc PATH变量指定的路径中搜索可执行文件的所在位置 whereis -bms gcc变量指定的路径中搜索可执行文件的所在位置 locate /etc/*lou*搜索 etc 目录下文件名包含 lou 的文件,可以使用如下命令: find . \( -name "*.pdf" -or -name "*.txt" \)括号提高可读性 find . -type f \( ! -perm 777 -and ! -perm 644 \) find . -name "*.php" -exec ls -l {} \;单命令 find . -name "*.c" -exec ./command.sh {} \;多命令写进脚本文件 find . -type f -name "*.c" | xargs wc -l有些命令只能以命令行参数的形式接收数据,而无法通过 stdin 接收数据流,查找当前目录下所有 c 代码文件,统计总行数 ls /bin | wc -l grep -nr "main()".在当前目录下递归搜索文件中包含 main() 的文件 grep -E "^0[0-9]{2,3}-[0-9]{7,8}(-[0-9]{3,4})?$" telphone.txt grep 把.当成 shell 通配符,不是正则表达式的元字符需要加-E 选项 cut -f 1,3 -d ‘ ‘ student.txt当分割符为制表符则省略-d,不然-f不起效果 echo -n $str | cut -b `echo -n $str | wc -c`取出字符串str的最后一个字符 paste与 cut 相反。它通过读取多个文件中的字段整合成单个文本流,输入到标准输出。 paste student.txt telphone.txt -d ‘:‘内容按列拼接,指定分隔符为: echo ‘IS‘ | tr ‘A-Z‘ ‘a-z‘ echo ‘IS123IS‘ | tr -d ‘0-9‘只接受标准输入 df -h du -ch file1.txt file2.txt -c统计总和du -h | sort -nr | head -10 { time date; } 2>1.txt通过这种方法打印time的标准错误输出 ls -l /usr/bin/ | sort -nr -k 5 | head -10使用第5个字段进行排序 ls /bin /usr/bin | sort | uniq -d将排过序的文件作为输入,找出相同的命令 join -1 3 -2 3 c.txt d.txt指定两个文件的第三个字段为匹配字段连接两个文件 comm -12 file1.txt file2.txt不显示第一二列,即仅显示共有列 diff -c a.txt b.txt特殊字符记住:所有操作目的是将第一个文件变成第二个 diff -Naur file1.txt file2.txt > patchdiff.txt patch < patchdiff.txt应用 patch 命令更新file1.txt文件 patch -R < patchdiff.txt取消上面例一打过的补丁