Unix/Linux 实用技巧、箴言

  1. Unix用起来容易,学起来难
  2. 首先学习基本知识,然后学习希望学习的知识,顺序可由自己确定
  3. Unix=内核+使用工具
  4. Unix是一组为聪明人准备的工具
  5. 作为Unix用户,您需要的基本技能就是使用命令行输入一条又一条命令来解决问题
  6. erase删除一个字符:<backspace>、<delete>、<^H>,werase删除最后一个单词:<^W>, kill删除整行:<^X>
  7. Unix传统:在请求帮助之前尽最大的努力自己解决为题;当他人请求您的帮助是,心甘情愿的帮助他人,即RTFM
  8. man 命令是最重要的Unix命令,因为使用它可以学习其它任何命令;man的使用操作命令:q,退出;h,帮助信息;<space>、f<pagedown>,显示下一屏;<pageup>、b,显示上以屏;/pattern, 向下搜索特定的模式;?pattern,向上搜索特定的模式;/、n, 向下搜索上一个模式;?、N, 向上搜索上一个模式;<Enter>、<down>向下移动一行;<up>向上移动一行;g,移动到页的顶部;G, 移动到页的底部:!, 执行shell命令,结束后返回man页面
  9. info系统,试试info info;主要操作命令:q,退出;h,启动帮助向导;<space>,显示下一屏;<backspace>显示上一屏;<tab>将·光标移到下一个链接;<enter>进入链接;d,跳转到目录节点;l,跳转到已经访问的最后一个节点
  10. 命令的选项可以组合在一起:ls –l –a 等价于 ls –la
  11. 命令的语法:方括号中的项是可选的;不在方括号的项是必选的;黑体必须按照原样输入;斜体必须用适当的值代替;后面接省略号的参数可以重复多次;如果一个选项和一个参数组合在一起,那么该选项和参数必须同时使用(如:man [-p pager] [-S sectionlist] name中p和pager要同时出现);由|(竖线)字符分分开的两个或多个项,表示可以从这个列表中选址一个项;获得某个命令的语法,help –s command…
  12. 1963年出现了Algol语言;4年后有了Basic(B语言);于是有了C语言;C++(发音C-plus-plus)使用了运算符++,自增;C#,可以由音乐理解(#是变调再升一些)也可以理解为两个++,上下叠加在一起
  13. 自动补全功能:<Tab>,补全单词;<Tab><Tab>显示所有可能
  14. Unix原有准则:每个程序或者命令是一个工具,它只完成一件事情,但一定要完成好这件事情;当需要新工具时,最好对现有工具进行组合,而不是编写一个新工具;“Small is beautifu”或者“Less is more(少的就是好)”
  15. Unix现有设计准则:除非程序无法更小,否则小的就是完美的
  16. 学习一个新程序时,不必试图记忆每个细节。正确的做法是回答下面的3个问题:这个程序可以做什么;这个程序有什么基本细节,在哪些细节是大多时间适合大多数人;需要时可以在什么地方查找到更多的帮助
  17. 重定向:<,重定向标准输入(同0<);>,重定向标准输出(同1>);>|,强制重写;>>,追加标准输入(同1>>);2>,重定向标准错误;2&>1,将标准错误重定向标准输出
  18. 当使用重定向、过滤器和管道线解决问题时,3个重要技能就是思考、RTFM以及询问他人的意见
  19. 过滤器就是能够从标准输入读取文本数据并向标准输出写入文本数据(每次一行)的程序
  20. 组合文件:cat (to join in a chain),常用应用:cat > file, 输入并创建文件或者替换原有文件; cat >> file,输入数据追加到已有文件; cat < file,显示原有文件内容; cat file ,显示原有文件内容; cat < file1 > file2,复制文件; cat file1 file2 file3 | less,组合文件并输出到屏幕; cat file1 file2 file3 > file4,组合文件保存在一起;cat file1 file2 file3 | program,组合文件以管道传送到另一个程序
  21. 划分文件:split ,把一个很大的数据文件分解成小的文件,例如:split –d –l 40 supptorters voter,把文件supptorters 分解成每个40行,以voter为前缀的文件:voter00, voter01,voter02……
  22. 组合文件时反转文本行的顺序:tac,(cat反过来就是tac了,呵呵)
  23. 反转字符的顺序:rev,(reverse反转)
  24. 从数据开头或者末尾选择数据行:head, tail,并显示出来
  25. 删除数据colrm,(col – rm 的复合),没有指示开始列和结束列,则不删除任何列
  26. 比较任意两个文件(文本、二进制)是否相同:cmp,常用于比较备份文件和现有文件的区别,不同版本的不同,每次一个字节的比较文件,所以适用与任何文件
  27. 比较有序文本文件:comm,显示三列,第一列为第一个文件特有,第二列为共有,第三列为第二个文件特有,-1,-2,-3,分别抑制(不显示)对应的列数
  28. 比较无序文本文件:diff,用于无序文件,比较大的文件,输出的语法很简洁,但是不简单,可以参阅man diff,也可以使用sdiff并排显示两个文件的区别或者使用-c,-u,-y,diff创建的区别文件可以用命令patch实现增量备份,版本控制
  29. 抽取数据列:cut,例如:cut –c 14-30, 42-49 file,从file文件中取得14-30和42-49列的数据,也可以使用定界符[-d delimiter]
  30. 组合数据列:paste,水平组合数据
  31. 创建行号:nl,格式:nl [-v start] [-i increment] [-b a] [-n ln|rn|rz] [file…]
  32. 统计行、单词和字符数量:wc,(word count),显示的时候为:Line, Word, Character,记忆方法:LWC(look at woman carefully):-)
  33. 格式化行、段落、页、列分别使用fold, fmt,pr,pr
  34. 选取包含特定模式的行:grep,选取以特定模式开头的行:look
  35. 排序数据:sort,查找重复行:uniq,(处理有序数据),合并两个文件中的有序数据:join,由偏序创建全序:tsort,在二进制文件中搜索字符串:strings
  36. 转换字符:tr(translate),……
原文地址:https://www.cnblogs.com/hustlijian/p/2063841.html