Linux学习练习命令(6)

2019-04-09 18:25

>USER变量 >LOGNAME变量 >MAIL变量 >PATH变量 >HOSTNAME变量 >HISTSIZE变量 >umask

>调用/etc/profile.d/*.sh文件 3).其它配置文件和登录信息

①.注销时生效的环境变量配置文件 ~/.bash_logout ②.其他配置文件

~/.bash_history ③.shell登录信息

>本地终端欢迎信息:/etc/issue \\d:显示当前系统日期 \\s:显示操作系统名称

\\l:显示登录的终端号,这个比较常用 \\m:显示硬件体系结构,如i286,i686等 \\n:显示主机名 \\o:显示域名 \\r:显示内核版本 \\t:显示当前系统时间

\%u:显示当前登录用户的序列号 >远程终端欢迎信息:/etc/issue.net

转义符在/etc/issue.net文件中不能使用

是否显示此欢迎信息,由ssh的配置文件/etc/ssh/sshd_config决定,加入\行才能显示(记得重启SSH服务) >登录后欢迎信息:/etc/motd

不管是本地登录,还是远程登录,都可以显示此欢迎信息

十一.讲shell编程 1.基础正则表达式

1).正则表达式与通配符

>正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配.grep,awk,sed等命令可以支持正则表达式.

>通配符用来匹配符合条件的文件名,通配符是完全匹配.ls,find,cp这些命令不支持正则表达式,所以只能使用shell自己的通配符来进行匹配了. 2).基础正则表达式

*:前一个字符匹配0次或任意多次 .:匹配除了换行符外任意一个字符

^:匹配行首.例如:^hello会匹配以hello开头的行 $:匹配行尾.例如:hello&会匹配以hello结尾的行

[]:匹配中括号中指定的任意一个字符,只匹配一个字符.例如:[aoeiu]匹配任

意一个元音字母,[0-9]匹配任意一位数字,[a-z][0-9]匹配小写字和一位数字结构的两位字符.

[^]:匹配除中括号的字符以外的任意一个字符.例如:[^0-9]匹配任意一位非数字字符,[^a-z]表示任意一位非小写字母.

\\:转义符.用于取消将特殊符号的含义取消.

\\{n\\}:表示其前面的字符恰好出现n次.例如:[0-9]\\{4\\}匹配4位数字,[1][3-8][0-9]\\{9\\}匹配手机号码.

\\{n,\\}:表示其前面的字符出现不小于n次.例如:[0-9]\\{2,\\}表示两位及以上的数字.

\\{n,m\\}:表示其前面的字符至少出现n次,最多出现m次.例如:[a-z]\\{6,8\\}匹配6到8位的小写字母. 2.1).例子

grep \【匹配所有内容,包括空白行】 grep \【匹配至少包含有一个a的行】

grep \【匹配最少包含两个连续a的字符串】

grep \【则会匹配最少包含四个连续a的字符串】 grep \aaa.txt【\会匹配在s和d这两个字母之间一定有两个字符的单词】

grep \【匹配在s和d字母之间有任意字符】 grep \【匹配所有内容】

grep \【匹配以大写\开头的行】 grep \【匹配以小写\结尾的行】 grep -n \【会匹配空白行】

grep \【匹配s和i字母中,要么是a,要么是o】 grep \【匹配任意一个数字】

grep \【匹配用小写字母开头的行】 grep \【匹配不用小写字母开头的行】 grep \【匹配不用字母开头的行】 grep \【匹配使用\结尾的行】

grep \【匹配a字母连续出现三次的字符串】 grep \【匹配包含连续的三个数字的字符串】

grep \【匹配最少用连续三个数字开头的行】 grep \【匹配在字母s和字母i之间有最少一个a,最多三个a】

2.字符截取命令

1).cut字段提取命令 cut [选项] 文件名【-f 列号:提取第几列,-d 分隔符:按照指定分隔符分割列】 2).printf命令

printf '输出类型输出格式' 输出内容 输出类型:

%ns:输出字符串.n是数字指代输出几个字符 %ni:输出整数.n是数字指代输出几个数字

%m.nf:位数和小数位数.如%8.2f代表共输出8位数,其中2位是小数,6位是整数

输出格式:

\\a:输出警告声音

\\b:输出退格键,也就是Backpace键 \\f:清除屏幕 \\n:换行

\\r:回车,也就是Enter键

\\t:水平输出退格键,也就是Tab键 \\v:垂直输出退格键,也就是Tab键 3).awk命令---【具体用法建议百度】

①.awk '条件1{动作1} 条件2{动作2}...' 文件名【awk '{printf $2 \$6\】 条件:

一般使用关系表达式作为条件

x>10 判断变量x是否大于10 x>=10 大于等于 x<=10 小于等于 动作:

格式化输出 流程控制语句

②.awk 'BEGIN{printf \world\\n\$2 \$6\temp.txt【BEGIN优先执行一段输出】

③.awk 'END{printf \【所有数据处理完之后,再执行end命令的输出】

④.cat /etc/passwd | grep \\【FS内置变量,指定分隔符】

⑤.cat temp.txt | grep -v name | awk '$6>=87 {printf $2 \【关系运算符】

4).sed命令 ①.sed命令

sed是一种几乎包括在所有UNIX平台(包括Linux)的轻量级流编辑器.sed主要是用来将数据进行选取,替换,删除,新增的命令.

②.sed [选项] '[动作]' 文件名【sed -n '2p' temp.txt】 选项:

-n:一般sed命令会把所有数据都输出到屏幕,如果加入此选择,则只会把经过sed命令处理的行输出到屏幕.

-e:允许对输入数据应用多条sed命令编辑.

-i:用sed的修改结果直接修改读取数据的文件,而不是由屏幕输出. 动作:

a:追加,在当前行后添加一行或多行.添加多行时,除最后一行外,每行末尾需要用\代表数据未完结

c:行替换,用c后面的字符串替换原数据行,替换多行时,除最后一行外,每行末尾需要用\代表数据未完结

i:插入,在当期行前插入一行或多行.插入多行时,除最后一行外,每行末尾需要用\代表数据未完结

d:删除,删除指定的行 p:打印,输出指定的行

s:字串替换,用一个字符串替换另外一个字符串.格式为\行范围s/旧字串/新字串/g\和vim中的替换格式类似) 3.字符处理命令

1).排序命令sort

sort [选项] 文件名 -f:忽略大小写

-n:以数值型进行排序,默认使用字符串型排序 -r:反向排序

-t:指定分隔符,默认是分隔符是制表符

-k n[,m]:按照指定的字段范围排序.从第n字段开始,m字段结束(默认到行尾)

2).统计命令wc

wc [选项] 文件名 -l:只统计行数 -w:只统计单词数 -m:只统计字符数 4.条件判断

1).按照文件类型进行判断【[ -f /tmp/temp.txt ] && echo \|| echo \】 测试选项 | 作用

------------------------------------------------------------------------ -b 文件 |判断该文件是否存在,并且是否为块设备文件(是块设备文件为真) -c 文件 |判断该文件是否存在,并且是否为字符设备文件(是字符设备文件为真)

-d 文件 |判断该文件是否存在,并且是否为目录文件(是目录为真) -e 文件 |判断该文件是否存在(存在为真)

-f 文件 |判断该文件是否存在,并且是否为普通文件(是普通文件为真) -L 文件 |判断该文件是否存在,并且是否为符号链接文件(是符号链接文件为真)

-p 文件 |判断该文件是否存在,并且是否为管道文件(是管道文件为真) -s 文件 |判断该文件是否存在,并且是否为非空(非空为真)

-S 文件 |判断该文件是否存在,并且是否为套接字文件(是套接字文件为真 ) 2).按照文件权限进行判断【[ -r /tmp/temp.txt ] && echo \|| echo \】 测试选项 | 作用

------------------------------------------------------------------------ -r 文件 |判断该文件是否存在,并且是否该文件拥有读权限(有读权限为真) -w 文件 |判断该文件是否存在,并且是否该文件拥有写权限(有写权限为真) -x 文件 |判断该文件是否存在,并且是否该文件拥有执行权限(有执行权限为真)

-u 文件 |判断该文件是否存在,并且是否该文件拥有SUID权限(有SUID权限为真)

-g 文件 |判断该文件是否存在,并且是否该文件拥有SGID权限(有SGID权限为真)

-k 文件 |判断该文件是否存在,并且是否该文件拥有SBit权限(有SBit权限为真)

3).两个文件之间进行比较【[ /tmp/temp.txt -nt /tmp/temp.txt ] && echo \|| echo \】

测试选项 | 作用

------------------------------------------------------------------------ 文件1 -nt 文件2 |判断文件1的修改时间是否比文件2的新(如果新则为真)

文件1 -ot 文件2 |判断文件1的修改时间是否比文件2的旧(如果旧则为真)

文件1 -ef 文件2 |判断文件1是否和文件2的inode号一致,可以理解为两个文件是否为同一个文件.这个判断用于判断硬链接是很好的方法.

4).两个整数之间比较【[ 22 -eq 23 ] && echo \】 测试选项 | 作用

------------------------------------------------------------------------ 整数1 -eq 整数2 |判断整数1是否和整数2相等(相等为真) 整数1 -no 整数2 |判断整数1是否和整数2不相等(不相等为真) 整数1 -gt 整数2 |判断整数1是否大于整数2(大于为真) 整数1 -it 整数2 |判断整数1是否小于整数2(小于为真)

整数1 -ge 整数2 |判断整数1是否大于等于整数2(大于等于为真) 整数1 -le 整数2 |判断整数1是否小于等于整数2(小于等于为真) 5).字符串的判断【[ -z temp ] && echo \】 测试选项 | 作用

------------------------------------------------------------------------ -z 字符串 |判断字符串是否为空(为空返回真) -n 字符串 |判断字符串是否为非空(非空返回真)

字串1 == 字串2 |判断字符串1是否和字符串2相等(相等返回真) 字串1 != 字串2 |判断字符串1是否和字符串2不相等(不相等返回真)

6).多重条件判断【[ -n \】 测试选项 | 作用

------------------------------------------------------------------------ 判断1 -a 判断2 |逻辑与,判断1和判断2都成立,最终的结果才为真 判断1 -o 判断2 |逻辑或,判断1和判断2有一个成立,最终的结果就为真 ! 判断 |逻辑非,使原始的判断式取反 5.流程控制 1).if语句

①.单分支if条件语句

if [ 条件判断式 ];then


Linux学习练习命令(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:[精品文档]协议书的写法-范文word版(7页)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: