共计 2933 个字符,预计需要花费 8 分钟才能阅读完成。
1. 输入命令
echo [选项] [输入内容]
选项:
• -e:反对反斜线管制的字符转换(具体参见表 1)
• -n:勾销输入后行末的换行符号(内容输入后不换行)
2.shell 脚本的构造(个别为三局部)
(1)申明脚本中的语言:
#!/bin/bash
(2)申明脚本的性能
以 #结尾的语句都是正文
(3)脚本的主体
3. 运行形式(运行前需注意该对该文件是否有执行的权限)
(1)应用门路间接运行
(2)通过 bash 调用脚本
bash 文件门路
4. 给命令设置别名
(1)显示零碎中的命令别名
alias
(2)设置别名
alias 别名 ='原命令'
留神:设置别名后,原命令生效。且设置的别名在零碎中必须是不存在的。
应用命令设置的别名且在零碎未登记、重启前无效,须要长久失效,须要批改配置文件
(3)删除别名
unalias 原命令
5. 提取命令 grep
在文件中提取和匹配符合条件的所有字符串行
grep [选项] "搜寻内容" 文件名
选项:
• -A 数字:列出符合条件的行,并列出后续的 n 行;
• -B 数字:列出符合条件的行,并列出后面的 n 行;
• -c:统计找到的符合条件的字符串的次数;
• -i:疏忽大小写;
• -n:输入行号;
• -v:反向査找;
• –color=auto:搜寻出的关键字用色彩显示;
6. 管道符
用来连贯多条命令,但下一条命令的执行依赖于上一条命令的正确输入
“命令 1 | 命令 2”命令 2 只能解决命令 1 的正确输入后果
ls -a /etc/ | more
7. bash 通配符
通配符 作 用
- ? 匹配一个任意字符
- * 匹配 0 个或任意多个任意字符,也就是能够匹配任何内容
- [] 匹配中括号中任意一个字符。例如,[abc] 代表肯定匹配一个字符,或者是 a, 或者是 b, 或者是 c
- [-] 匹配中括号中任意一个字符,- 代表一个范畴。例如,[a-z] 代表匹配一个小写字母
- [^] 逻辑非,示意匹配不是中括号内的一个字符。例如,[^0-9] 代表匹配一个不是数字的字符
8. 单引号和双引号、反引号
单引号内的内容会当成字符串原样输入
双引号内的内容会思考非凡含意,比方 ”$”、”\”
如果须要调用命令的输入或者将命令的输入赋值给变量,则须要反引号,反引号等价于 $(命令),但为了防止反引号与单引号的混同,罕用的是 $(命令)代替反引号的应用
9. 圆括号与花括号
圆括号和花括号次要区别在于:
• () 执行一串命令时,须要从新开启一个子 Shell 来执行。
• {} 执行一串命令时,在以后 Shell 中执行。
• () 和 {} 都是把一串命令放田括号外面,并且命令之间用 ”;” 隔开。
• () 最初一条命令能够不必分号。
• {} 最初一条命令要用分号。
• {} 的第一条命令和左括号之间必须有一个空格。
• () 里的各命令不用和括号有空格。
• () 和 {} 中括号外面的某条命令的重定向只影响该命令,但括号外的重定向则会影响到括号里的所有命令。
其实在执行一串命令时,如果应用的是小括号,则这串命令所做的批改只在子 Shell 中失效,一旦命令执行完结,回到父 Shell 中,这个批改就会丟失;而如果应用的是大括号,则此串命令间接在父 Shell 中执行,命令执行完结后,批改仍然会失效。
父 shell 和子 shell 互不烦扰
10. 变量
(1)变量由字母、数字和下划线组成,不能够以数字结尾
(2)在 Bash 中,变量的默认类型是字符串类型,如需进行数值运算,必须进行另外指定:
如:a=1+2
echo $a
1+2
(3)变量两边用“=”连贯,等号两边不能有空格
(4)变量叠加:
两种格局:”$ 变量名 ” 或 ${变量名}
(5)将命令的后果作为变量的值赋值给变量,须要应用 $()(不举荐应用反引号)
(6)环境变量倡议应用大写辨别
11. 用户自定义变量
(1)查问曾经设定的变量
set [选项]
选项:
• -u:如果设定此选项,则在调用未声明的变量时会报错(默认无任何提醒);
• -x:如果设定此选项,则在命令执行之前会先把命令输入一次;
(2)变量删除
Unset 变量名
12. 环境变量和自定义变量
环境变量是全局变量,而自定义变量是局部变量。如果将环境变量写入配置文件,则环境变量能够永恒存在,否则一旦 shell 终止,则环境变量也生效了
(1)环境变量的设置
Export age="18"
(2)环境变量的查问
Set 查问所有变量
Env 仅查问环境变量
(3)删除
Unset 变量名
13. bash 地位参数变量用法
ls a.conf b.conf c.conf
// 则 $0 的值就是 ls 命令自身,$1,$2,$3 的值别离是 a.conf b.conf c.conf
地位参数变量 作 用
- $n
n 为数字,$0 代表命令自身,$1〜$9 代表第 1〜9 个参数,10 以上的参数须要用大括号蕴含,如 ${10} - $*
这个变量代表命令行中所有的参数,把所有的参数看成一个整体 - $@
这个变量也代表命令行中所有的参数,不过 $@ 把每个参数区别对待 - $#
这个变量代表命令行中所有参数的个数
14. 预约义变量(已定义、不能更改的全局变量)
预约义变量 作 用
- $?
最初一次执行的命令的返回状态。如果这个变量的值为 0,则证实上一条命令正确执行;如果这 个变量的值为非 0 (具体是哪个数由命令本人来决定),则证实上一条命令执行谬误 -
$$
以后过程的过程号(PID) - $!
后盾运行的最初一个过程的过程号(PID)
15. 接管规范输出
Read【选项】【变量名】
选项:
• -p “ 提示信息 ”:在期待 read 输出时,输入提示信息;
• -t 秒数:read 命令会始终期待用户输出,应用此选项能够指定等待时间;
• -n 字符数:read 命令只接管指定的字符数就会执行;
• -s:暗藏输出的数据,实用于机密信息的输出;
read -n 1 -t 30 -p "Please select your gender[M/F]:" gender
提醒 ” 请抉择性别 ” 并期待 30 秒,把用户的输出保留到变量 gender 中
应用 ”-n 1″ 选项只接管一个输出字符就会执行(毋庸按回车键)
16. 数值运算
(1)应用 declare 申明变量类型
declare [+/-] [选项] 变量名
选项:
• -:给变量设定类型属性;
• +:勾销变量的类型属性;
• -a:将变量申明为数组型;
• -i:将变量申明为整数型(integer);
• -r:将变量申明为只读变量。留神,一旦设置为只读变量,既不能批改变量的值,也不能删除变量,甚至不能通过 +r 勾销只读属性;
• -x:将变量申明为环境变量;
• -p:显示指定变量的被申明的类型;
Name[0]="zhang san"
Name[1]="li ming"
Name[2]="xiao ming"
echo ${name}
// zhang san
echo ${name[*]}
// zhang san li ming xiao ming
(2)应用 expr 或 let 数值运算工具
Dd = $(expr $aa + $bb)
留神 + 号两边必须有空格,否则运算不执行
let ee = $aa+$bb(举荐的运算办法)
(3)$((运算式))或者 $[运算式]
Gg=$[$aa+$bb]
17. 罕用运算符
优先级 运算符 说 明
-,+ 单目负、单目正
!,~ 逻辑非、按位取反或补码
*, /, % 乘、除、取模
+, - 加、减
<<, >> 按位左移、按位右移
<=, >=, <, > 小于或等于、大于或等于、小于、大于
== ,!= 等于、不等于
& 按位与
^ 按位异或
| 按位或
&& 逻辑与
II 逻辑或
=,+=,•=,*=,/=,%=,&=, |=, <<=, >>= 赋值、运算且赋值