配色: 字号:
Debian应用-1.4 简单shell命令
2021-08-06 | 阅:  转:  |  分享 
  
1.4简单shell命令1.4.1命令构成要素一般的命令由有序的组件构成。设置变量值(可选)命令名参数(可选)重定向(可选:>,>>
,<,<<等等)控制操作(可选:&&,||,<换行符>,;,&,(,))(1)查看系统日期(2)
查看当前的系统变量解析:UTF-8(8位元)是针对Unicode的一种可变长度字符编码。它可以用来表示Unicode标准中的任何字
符,而且其编码中的第一个字节仍与ASCII相容,使得原来处理ASCII字符的软件无须或只进行少部分修改后,便可继续使用。因此,它逐
渐成为电子邮件、网页及其他存储或传送文字的应用中,优先采用的编码。1.4.2shell通配符(1)常用的通配符shellglo
b模式匹配规则描述不以"."开头的文件名(段).以"."开头的文件名(段)?精确字符[…]包含在括号中的任意字符都可
以作为精确字符[a-z]"a"到"z"之间的任意一个字符都可以作为精确字符[^…]除了包含在括号中的任意字符("?1^?
2"除外),其它字符都可以作为精确字符(2)通配符实例创建文件夹text【mkdirtext】显示当前目录中的文件夹或文件ls
进入text目录【cdtext】在text目录下创建文件夹junk【mkdirjunk】进入junk目录【cdjunk】在j
unk目录在创建多个文件在当前目录下,查看以txt为扩展名的所有文件;查询当前目录下的所有文件夹;查询当前目录下以h或c结尾的所有
文件;查询文件名中不包含单个“.”的所有文件;查看目录中不包含1、2、3之外的其他文件;退到上一级,并强制删除junk文件夹。1.
4.3正则表达式(1)正则表达式的基本含义正则表达式被使用在许多文本处理工具中。它们类似shell的通配符,但更加复杂和强大
。它是由文本字符和元字符构成的。正则表达式的文法分为3种标准:BRE(基本正则表达式)、ERE(扩展正则表达式)和ARE。其中
BER和ERE属于POSIX标准,ARE则是由各家定义的扩展。POSIX表示可移植操作系统接口,其定义了操作系统应该
为应用程序提供的接口标准。(2)元字符及其含义BREERE正则表达式的描述\.[]^$\.[]^$通用
的元字符\+\?\(\)\{\}\|BRE独有的“\”转义元字符+?(){}|ERE独有的不需要“\”
转义的元字符cc匹配非元字符?“c”\c\c匹配一个字面意义上的字符“c”,即使“c”本身是元字符..匹配任意字符,包括换行
符^^字符串的开始位置$$字符串的结束位置\<\<单词的开始位置\>\>单词的结束位置[abc…][abc…]匹配在“abc..
.”中的任意字符[^abc…][^abc…]匹配除了“abc...”中的任意字符rr匹配零个或多个“r”r\+r+匹配
一个或多个“r”r\?r?匹配零个或一个“r”r1\|r2r1|r2匹配一个“r1”或“r2”\(r1\|r2\)(r1
|r2)匹配一个“r1”或“r2“,并作为括号内的正则表达式一些字符被赋予特殊的涵义,使其不再单纯的代表自己,模式中的这种
有特殊涵义的编码字符称元字符。共有两种不同的元字符:一种是可以在模式中方括号外任何地方使用的,另外一种是需要在方括号内使用的。元
字符是一个或一组代替一个或多个字符的字符。例如:元字符用来匹配0个或多个的前一字符;而元字符.用来匹配一个任意的一个字符(除换行
符外)。1.4.4管道命令简介(1)常用管道命令解析脚本片段(在一行内输入)命令效果find/usr-print找出"/us
r"下的所有文件seq1100显示1到100|xargs-n1把从管道过来的每一项作为参数,重
复执行命令|xargs-n1echo把从管道过来的,用空格隔开的项,分隔成多行|xargsecho把从管道过来的所有行
合并为一行|grep-e从管道过来,包含有的行,提取出来|g
rep-v-e把从管道过来,不包含有的行,提取出来|cut
-d:-f3-把从管道过来,用":"分隔的第三列提取出来(passwd文件等。)|awk''{print$3}''
把用空格隔开的第三列提取出来|awk-F''\t''''{print$3}''把用tab键隔开的第三列提取出来|col
-bx删除退格键,扩展tab键为空格键|expand-扩展tab键到空格键|sort|uniq排序并删除重复行|
tr''A-Z''''a-z''将大小字母转换为小写字母|tr-d''\n''将多行连接为一行|tr-d''\r''删除换行回车符
|sed''s/^/#/''在每行行首增加一个"#"符|sed''s/\.ext//g''删除".ext"|sed-n-
e2p显示第二行|head-n2-显示最前面两行|tail-n2-显示最后两行管道命令使用|作为界定符号,
它仅能处理standardoutput,对于standarderroroutput会予以忽略。(2)顺序控制的含义顺序执
行多条命令:command1;command2;command3;简单的顺序指令可以通过“;”来实现;有条件的执行多条命令:whi
chcommand1&&command2||command3&&:如果前一条命令执行成功则执行下一条命令,如果com
mand1执行成功(返回0),则执行command2||:与&&命令相反,执行不成功时执行这个命令$?:存储上一次命令的返回
结果解析:如果存在git命令,则执行git--help命令;解析:如果存在ls命令,则执行ls--help命令;(3)管道命令
的含义(pipe)管道是一种通信机制,通常用于进程间的通信(也可通过socket进行网络通信),它表现出来的形式将前面每一个进程的
输出(stdout)直接作为下一个进程的输入(stdin)。管道命令必须要能够接受来自前一个命令的数据成为standardinp
ut继续处理才行。less,more,head,tail...都是可以接受standardinput的命令,所以他们是管道命令;
ls,cp,mv并不会接受standardinput的命令,所以他们就不是管道命令了。(4)more命令在管道中的应用more是
根据窗口的大小进行分页显示输出的内容;只显示出一页,其他的内容,需要使用回车键一点一点的显示出来;可以使用字母“q”退出当前的环境
;(5)less命令在管道中的应用Less是根据窗口的大小进行分页显示输出的内容,与more的区别在于less是一次性的将所有文件
都显示出了,用鼠标滚动来查看显示的内容;【单独弹出一个窗口显示内容】(6)head命令在管道中的应用head是显示一个文件的内容
的前多少行,一般默认前10行;(7)tail命令在管道中的应用tail是显示一个文件的内容的最后多少行,一般默认后10行;(8)
cut命令在管道中的应用cut:从某一行信息中取出某部分我们想要的信息。-d:后面接分隔字符,通常与-f一起使用-f:
根据-d将信息分隔成数段,-f后接数字表示取出第几段-c:以字符为单位取出固定字符区间的信息例如1:打印/etc/pas
swd文件夹中以“:”分割的第1个字段和第6个字段内容,其分别为用户名和根目录;例如2:打印/etc/passwd文件中后5行数据
中每一行的前10个字符(9)grep命令在管道中的应用分析一行信息,如果其中有我们需要的信息,就将该行拿出来;-a:将bina
ry文件以text文件的方式查找数据-c:计算找到‘查找字符串’的次数-i:忽略大小写的不同-n:输出行号-v:反
向选择,显示没有查找内容的行--color=auto:将找到的关键字部分加上颜色显示例如1:统计/etc/passwd文件中包
含‘mail’的个数例如2:显示/etc/passwd文件中包含‘mail’的行数及内容例如3:显示/etc/passwd文件中包
含‘mail’的行数及内容,并添加默认颜色例如4:显示未包含‘mail’字符的所有记录及行数(10)sort命令在管道中的应用-f
:忽略大小写的差异,例如A与a视为编码相同-b:忽略最前面的空格部分-M:以月份的名字来排序,例如JAN,DEC等等
的排序方法-n:使用『纯数字』进行排序默认是以文字型态来排序的)-r:反向排序-u:就是uniq,相同的资料中,仅出现一行
代表-t:分隔符号,预设是用[tab]键来分隔-k:以那个区间(field)来进行排序的意思例如1:对/etc/passw
d中的内容进行排序例如2:对/etc/passwd中的内容以第5个字段进行排序(11)uniq命令在管道中的应用uniq命令用
于检查及删除文本文件中重复出现的行列,一般与sort命令结合使用。参数【-i:忽略大小写的不同】【-c:进行计数】例如1:
显示登录记录例如2:统计用户登录信息例如3:从登录信息中读取以空格为分隔符的第1段信息,并按照默认方式进行排序,排序后删除重复的内
容。(12)wc命令在管道中的应用wc命令用于计算字数。利用wc指令我们可以计算文件的Byte数、字数、或是列数,若不指定文件名称
、或是所给予的文件名为"-",则wc指令会从标准输入设备读取数据。参数【-l:仅列出行】;【-w:仅列出多少字(英文单字)】;【-m:多少字符】;例如1:统计/etc/passwd文件的信息39:为文件的行数;62:为单词数;2221:为字节数;例如2:查看/etc/passwd/文件中有多少个用户信息例如3:计算最近登录系统的人次(13)tee命令在管道中的应用tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。参数【-a:以累加的方式,将数据加入file中】例如1:显示登录信息,并将登录记录添加到info-lys文件中
献花(0)
+1
(本文系Teacher_Lin...原创)