0404 Linux shell基础知识2

0404 Linux shell基础知识2

九、shell特殊符-cut命令

1、特殊符号

(1)* :任意个任意字符

(2)?:任意一个字符

(3)# :注释字符

(4)\ :脱义字符

(5)| :管道符

94f98dc4be6c3e32a37d3e43bbb209a3293.jpg

2、管道符相关的命令

670b2d4593e0b6fe89422f8f5cb11bf6717.jpg

cut命令的作用就是截取字符串的,例如,使用管道符将/etc/passwd目录下的前两行打印出来,针对这两行指定切割符号切割,

77d9df20f624e68d943343942eee2ca8cf1.jpg

-d指定分隔符号“:”,-f指定截取段号

0e8c425e824f16b6f2b12c13a855c787a55.jpg

bd242a0df10143ca7b82bb91ccac1ad13e2.jpg

-c指定第四个字符

40c6db469b445f7288e4671a4d63738abb7.jpg

3、sort_wc_uniq 命令

Sort排序时使用,使更直观的查看文档

 

(1)以首字字母a-z排序,默认按照ASCII码排序。即符号在前,然后是0-9,然后是大写字母A-Z,然后是小写字母a-z

5323469ecf7c96d9fa92df70d6a28ef6e28.jpg

(2)使用sort -n排序时,会默认字母、符号开头的文件,首字字符为0,使用sort -nr 则反序排序。

fd6fe58f7390fbda27e55a538d8265c0bbc.jpg

(3)sort -t 分隔符 针对第几段进行排序

(4)wc -l 统计行数

(5)wc -m 统计字符数

631e5b4fce661d6ea66437353672fdc0ece.jpg

(6)wc -w 统计词 以空格做词的区分

fbdadcd86288a69b75c462aff7513bd7bb5.jpg

(7)uniq去重,-c统计行数

一般都需要先排序,再去重

6ec7f512a6ef59495e2b60456fd74ac422d.jpg

(8)tee命令与重定向>类似,不过重定向内容可以显示在屏幕

ca8b17b2010ad00d5ddb90d679a3e08f12d.jpg

tee -a 追加

6833999d5ad948113a7a0d61e848ef40b67.jpg

(9)tr 命令用来替换字符,针对字符来操作的

ef475cf667158a6fae2ed7599cf6b4d78eb.jpg

(10)split 切割

split -b 100M  针对大小切割(默认单位字节)

eae0f525f276b77697aedc70f1165d27e39.jpg

也可指定文件前缀名

4751e09a1b0ef0e9bd0af37cd32ff15cec0.jpg

split -l 1000  针对行数切割

02ca5228fb4493347a89c263138ce1d4de1.jpg

十、shell特殊符号(下)

10228e2f2529c9f421278cacc9f94a3d4ad.jpg

(1)多条命令使用“;”分隔

5547bd814c440753eba401023389917e029.jpg

(2)> 一个大于号,正确重定向,会把之前文件覆盖

>>追加重定向,追加正确的内容输出

2>错误内容重定向

       2>>错误追加重定向,追加错误的内容输出

&>正确错误都重定向

(3)||和&&,用于命令之间的判断

|| 或者的含义 如果第一条命令执行不成功,则执行第二条,如果第一条命令执行成功,则第二条不执行

09b22991abe29452cf9ad383ec8119226c3.jpg

&&如果第一条命令执行成功了,才执行第二条命令,反之都不执行。

4a6277403e5750fa5357c1e13ebf48e0a49.jpg

十一、简易审计系统

      有时候我们需要对线上用户操作记录进行历史记录待出现问题追究责任人,但Linux系统自带的history命令用户有自行删除权限,那怎么设置可以让用户的操作记录实时记录,并保证普通用户无权删除呢?

1.mkdir -p /usr/local/domob/records/
  chmod 777 /usr/local/domob/records/
  chmod +t /usr/local/domob/records/
 
2.vi /etc/profile
在最后添加下面的代码 

if [ ! -d  /usr/local/domob/records/${LOGNAME} ]
then
mkdir -p /usr/local/domob/records/${LOGNAME}
chmod 300 /usr/local/domob/records/${LOGNAME}
fi
export HISTORY_FILE="/usr/local/domob/records/${LOGNAME}/bash_history"
export PROMPT_COMMAND='{ date "+%Y-%m-%d %T ##### $(who am i |awk "{print \$1\" \"\$2\" \"\$5}") #### $(history 1 | { read x cmd; echo "$cmd"; })"; } >>$HISTORY_FILE'

转载于:https://my.oschina.net/u/4095803/blog/3032804

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值