shell脚本语言(2)
BASh shell 的操作环境
命令的执行顺序
- 1.以相对/绝对路径执行命令
- 2.由alias找到该命令来执行
- 3.由bash内置的(builtin)命令来执行
- 4.通过$PAth这个变量的顺序查找到的第一个命令来执行
bash的登入与欢迎信息
-
/etc/issue
-
issue内各个代码的含义
- \d:本地端时间的日期
- \I:显示第几个终端
- \m:显示硬件的等级
- \n:显示主机的网络名称
- \O:显示domain name
- \r:操作系统的版本
- \t:显示本地端时间的时间
- \S:操作系统的名称
- \v:操作系统的版本
-
-
/etc/motd
bash的环境配置文件
-
login shell
-
/etc/profile
-
系统整体设置,最好不要修改这个 文件
- /.bash_profile或/.bash_login或~/.profile
-
用户个人设置
-
-
-
non-login shell
通配符与特殊符号
通配符
- *:代表0到无穷多个任意字符
- [^]:反向选择
- [-]:连续的范围选择
- ?:代表一定有一个字符
- []:选择
特殊符号
-
#:注释符号
-
\:转义符
-
|:管道符
- 仅会处理标准输出
- 必须要能够接受来自前一个命令的数据
-
;:连续执行命令分隔符
-
$:使用变量的前导符
-
&:任务管理,让任务在后台执行
-
!:逻辑意义上的非not的意思
-
/:目录符号
-
、>>:数据流重定向
-
<、<<:数据流重定向
简单介绍几个命令
几个命令.md
cut
-d:后面跟分隔字符与-f连用
-f:根据-d的分隔字符将几段信息分隔成数段,用-f取出第几段的意思
-c:一字符的单位取出固定字符区间
#echo ${PATH} | cut -d ':' -f 5
#系统就会把打印出来的数据根据:分段,让后打印第5段的数据,-f 3,5 取一定范围
#cut -c 12-
#将打印的结果的前12个字符取消
排序命令:
sort
-f:忽略大小写
-b:忽略最前面的空格字符部分
-M:以月份来排序
-n:使用纯数字来排序
-r:反向排序
-u:取消相同的显示
-t:分隔符号
-k:以哪一段来排序
#cat /etc/passwd | sort -t ":" -k 3
#将/etc/passwd的结果,以:分隔,以分隔的第三段为标准来排序。
uniq
-i:忽略大小写
-c:进行计数
#last | cut -d '' -f 1 | sort | uniq -c
#把last的结果以空格分段只显示第一段,并以第一段排序,然后取消重复行,计数。
wc
-l:仅列出行
-w:仅列出多少字
-m:多少字符
#计算有多少行、字数、字符数
tee
双重定向
让结果输出到屏幕,也能像后面的命令输出。
tr
可以用来删除一段信息当中的文字,或是进行文字信息的替换
-d:删除输出结果的字符
-s:替换掉重复的字符
#tr '[a-z]' '[A-Z]'
#将小写的替换成大写
col
将[tab]替换成空格
join/paste
join:将两个文件相同的数据合并
-t :指定以什么作为分隔
-i:忽略大小写
-1:代表以第一个文件的哪一个栏来分析
-2:代表以第二个。。
paste:直接将两个文件数据合并
-d:后面可以接分隔字符,默认以tab
划分文件命令:split
split
-b:后面可以接划分成的文件大小、可加单位、
-l:以行来划分
#我的/etc/services有六百多k,若想要划分成300k的文件
split -b 300 /etc/services services
#合并成一个大文件
cat service* >>servicesback
说明:上传csdn的笔记是经过整合的,可能有些错误的地方,欢迎指正。笔记都是根据《鸟哥的私房菜》边学编写的,下面是百度网盘shell(2)的原笔记,分别是typora的markdown和xmind
链接:https://pan.baidu.com/s/1dDTJeduoRdrrqEQgF-Gapw
提取码:wpai
复制这段内容后打开百度网盘手机App,操作更方便哦–来自百度网盘超级会员V3的分享