第十课 linux shell 基础知识 8.10~8.13

8.10shell特殊符_cut命令

8.11sort_wc_uniq命令

8.12tee_tr_split命令

8.13shell特殊符号{下}

 

 

 

 

shell特殊符号cut命令

特殊符号

  • “*” 通配符,代表零个或多个字符
  • “?” 代表一个字符
  • “#” 注释字符
  • “\” 脱意字符
  • “|” 管道符

 

cut命令

  • 用来截取字符串,用法为cut -d '分某字符' [-cf] n ,n是数字
  • -d:后面跟分割字符,需要用单引号括起来
  • -c:后面接的是第几个字符
  • -f:后面接的是第几个区块
  • cat passwd.bak这个文件,head只查看前两行,cut -d截取分割符号为“:”, -f 1 表示截取第一段,2表示第二段,1-3表示头三段;

 

 

 

sort_wc_uniq命令

sort命令

  • 排序,格式为sort [-t 分隔符] [-kn1,n2] [-nru],n1n2指的是数字,后面不加选项,则按ASCⅡ码值排序

  • -n: 以纯数字排序,而其中的字符和字母都会默认为0

  • -r :反向排序

  • -u:去重复

  • -t :分隔符

  • sort经常和uniq结合起来用

  • 正常不加选项时  先排特殊符号----数字----字母-----星号排在后面

  • -r反向排序

wc命令

  • 用于统计文档的行数、字符数或词数
  • -m:统计字符数
  • -l:统计行数
  • -w:统计词数,以空格或空白字符区分

-m:统计字符数

cat -A命令可以显示隐藏字符,换行符$

-w:统计词数,以空格或空白字符区分

uniq命令

  • uniq用来去掉重复的行。

  • sort命令连在一起使用,先排序再去重。

  • uniq -c表示统计重复的行数(常用

 

 

 

 

tee_tr_split命令

tee命令

  • 用于管道符|后,作用类似于重定向>,还可以把写入时的文件内容显示在屏幕

  • tee -a追加重定向

tr命令

  • tr用于替换字符,常用于把小写字母变成大写字母,支持替换字符加[ ]

  • 指定范围更换所以

  • 也可以更换成数字,数字不加[ ]

split命令

  • split切割  把大文件切割成多个小文件,-b可以指定文件大小,也可以指定文件名字前缀

  • 除了大小还可以指定行 -l

 

 

 

shell特殊符号{下}

  • $ 变量前缀,!$组合,正则里面表示行尾
  • 多条命令写到一行,用分号分割
  • ~ 用户家目录,后面正则表达式表示匹配符
  • & 放到命令后面,会把命令丢到后台
  • > 正确重定向 >> 追加重定向 2> 错误重定向 2>> 错误追加重定向 &> 正确和错误输出重定向
  • [ ] 指定字符中的一个,[0-9],[a-zA-Z],[abc]
  • || && ,用于命令之间
  • ||表示或者,放在两条命令之间,如果第一命令执行不成功,那么执行第二个命令;如果第一条命令执行成功,那么不会执行第二条命令

  • &&:只有前面的命令执行成功,才会执行后面的命令

  • 判断aminglinux目录是否存在,命令[ -d 1122 ]

 

涉及:

简易审计系统

有时候我们需要对线上用户操作记录进行历史记录待出现问题追究责任人,,但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'

 

 

扩展

 

Linux特殊符号大全http://ask.apelearn.com/question/7720

 

sort并未按ASCII排序 http://blog.csdn.net/zenghui08/article/details/7938975

 

关于PROMPT_COMMAND环境变量的含义   http://www.linuxnote.org/prompt_command-environment-variables.html

 

source exec 区别 http://alsww.blog.51cto.com/2001924/1113112

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值