学习笔记(7)——bash shell 相关命令

这篇文章记录bash shell的相关命令

关于变量:

变量设置规则:

1. 变量与变量内容用一个等号连接,“变量名=变量内容”

2. 等号两边不能直接接空格

3. 变量名称只能是英文字母与数字,但开头不能是数字

4. 变量内容若有空格符可用双引号或单引号将变量内容结合起来(单引号内的特殊字符仅作为一般字符(纯文本);双引号内的特殊字符,如$等,可以保持原有特性)

5. 可用转义字符(\)将特殊符号变成一般字符。

6. 一串命令中,需要其他命令提供信息时,可以使用反单引号(`(主键盘区数字键1左边的那个键))`命令`或者$(命令)。注意与下述变量名部分的${}区分。

7. 可用“$变量名称”或“${变量名称}”来进行变量内容累加。如PATH="$PATH":/home/bin (注意双引号)

8. 若变量需要其它子进程执行时,需要export来使变量变成换进变量

9. 通常以大写字母作为变量名。


“echo 变量名”:输出变量内容,当输出结果为空时,可能是没有这个变量,也可能是这个变量为空字符串

“${变量名-变量内容}”:若变量不存在,则将减号后面的变量内容赋值给变量,如果变量存在则不做操作。注意:变量内容为空字符串和没有该变量的区别。

“${变量名:变量内容}”:当变量为空字符串或不存在时,将冒号后面的内容赋值给变量。

“${变量名=变量内容}”:当变量不存在时,将等号后面的内容赋值给变量。

“${变量名?内容}”:当变量不存在时,显示问号后面的内容。

“unset 变量名”:取消这个变量

“env” :查看环境变量与常见变量

“set”:查看所有变量

“export 变量名”:把自定义变量转成环境变量

“read 变量名”:读取来自键盘的变量

-p 参数:后面可以接提示符

-t 参数:后面接等待时间(秒)

“declare 变量名”:声明变量的类型

-a 参数:将变量定义成数组类型(数组类型变量:变量名[索引]=变量内容)

-i 参数:将变量定义成整数数字类型

-x 参数:将变量变成环境变量(与export类似)

-r 参数:将变量设为readonly(只读)类型,不能更改,也不能重设

#”:删除变量部分内容(从最先面开始向右删除,且删除最短的那个),如${PATH#/*test/bin:}表示删除从最开始到第一个“/*test/bin:”处中间的内容,注意“:”。

##”:删除变量部分内容(从最先面开始向右删除,且删除最长的那个),如${PATH##/*test/bin:}从最开始到最后一个“/*/test/bin:”处中间的内容。

%”:从后向前删除(最短的那个),如${paht%:*bin},该命令删除了最后一个路径

%%”:从后向前删除(最长的那个)

${变量名/旧字符串/新字符串}”:第一个旧字符串被新字符串替换掉。

${变量名//旧字符串/新字符串}”:所有旧字符串被新字符串替换。



“alias”:查看或设置别名命令

后面不接内容:显示所有别名命令

alias 命令别名=‘命令’:将命令赋值给命令别名,之后使用命令别名即可代替命令的,适用于较长命令的简化

“unalias”:取消命令别名


“history”:显示之前输入过的命令。

history 3:显示最近输入过的三条命令,不加数字则默认全部显示(用echo $HISTSIZE可查看最大缓存的历史命令数量)

history -w:将目前的history记忆内容写入histfiles中

”!number“:执行编号为number的一条命令

”!command“:由最近的命令向前搜寻以command开头的命令

”!!“:执行上一个命令


locale”:显示支持语系

“type”:查看命令类型

不加参数时,会显示type后面接的命令为外部命令还是bash内置命令

-t 参数:显示命令的意义(file:表外部命令;alias表该命令为别名命令;builtin:表内置命令)

-p 参数:后接命令为外部命令时才会显示完整文件名

-a 参数:会将PATH变量定义中所有含“后接命令名”的命令都列出来


管道命令:以“|”为界定符号,用来处理前一个命令传来的正确信息


“cut”:选取命令,将一段信息“切”出来显示,以为单位。

cut -d '分割字符' -f 显示范围(编号从以开始):将前一个命令传递的信息按“分割符号”进行分割,并显示。显示范围从1开始,可以写成:“1,2,3”,“1-5”

cut -c 字符范围:将前一个命令传递的信息按规定范围显示。字符范围可以是:“20-”,表示从第20个字符开始显示;“20-30”,表示显示第20个到第30个字符之间的内容。

“grep -[a/c/i/n/v] -An -Bn --color=auto '查找字符串' filename”:选取命令,以为单位。显示出含有该字符串的那一行。

--color=auto:将查找的结果用其他颜色显示。默认(命令别名)

-c:只显示查找到字符串的个数

-a:将binary文件以text文件的方式查找数据

-v:显示没有找到的那一行

-i:忽略大小写

-n:顺便输出行号

当grep单独使用时,需要filename参数,相当于cat filename | grep ......

-An:n为数字,表示将该行之后的n行也显示出来。

-Bn:n为数字,表示将该行之前的n行也显示出来。




关于这部分的知识有点多,暂时先记录这些,以后再用到其它内容时再做补充。


发布了17 篇原创文章 · 获赞 0 · 访问量 2万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章