shell是什么?
我认为shell其实是一个命令解释器,它的作用是解释用户输入的命令和程序,相当于人和计算机的交流,一种交互方式。
关于shell的一些命令与特殊字符。
- !!:用来执行上一条指令。
- !n:即执行第n(数字)条命令。
- !字符串:用来执行历史中最近一次以某某字符串开头的指令。
- alias:别名,即可看到系统预设的别名。
-*:通配符,用来匹配零个或多个字符。 - ?:通配符,用来匹配一个字符。
- <:输入重定向。
- >:出重定向。
- 2>:错误重定向。
- >>:追加重定向。
- |:管道符,将前一个指令的输出作为后一个指令的输入。
- env:可列出系统预设的全部变量。
- set:也可列出系统预设变量,也可以自定义变量。
- #:注释符号,后面追加的数据将忽略。
- \:脱义字符,将后面的特殊字符还原为普通字符(即后面的功能字符失去功能,变为一个无功能字符)
- cut:用来截取某一个字段,参数-d:后面跟分隔字符,分隔字符要用单引号(’ ')括起来。参数-c:后面接的是第几个字符。参数-f:后面接的是第几个区块。
- sort:用于排序,参数-t:后面跟分隔字符。参数-n:表示使用纯数字排序。参数-r:表示反向排序。参数-u:表示去重复。参数-kn1,n2:表示由n1区间排序到n2区间,可以单写。
- wc:用于统计文档行数(-l)、字符数(-m)或词数(-w)。
- uniq:删除重复的行,参数-c:表示统计重复的行数。
- tee:类似于重定向,但会显示文件输入内容。
- tr:替换字符,用来处理特殊字符,参数-d:表示删除某个字符。参数-s:表示删除重复的字符。
- split:用于切割文档,参数-b:依据大小分割。参数-l:依据行数来分割。
- $:用作变量前面的标识符。
- ~:表示用户的家目录。
- &:用于将命令放到后台执行。
- []:括号内为字符组合。
- ;:在两个命令或者两个以上的命令时,前者命令不管是否执行成功后都会执行后者命令。 与
- &&:在两个命令或者两个以上的命令时,前者命令执行成功后才会执行后者命令。 非
- ||:在两个命令或者两个以上的命令时,前者命令执行成功后就不执行后者命令。 或