1、Shell是什么?
Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的系统级程序。
Shell还是一个功能强大的编程语言,易编写,易调试,灵活性强。Shell是解释执行的语言,能直接调用Linux系统命令。
2、分类:
Bourne Shell:sh、ksh、Bash、psh
C Shell:csh、tcsh
3、echo命令
echo [选项] “输出内容”
选项:-e 支持反斜杠控制符
\a:输出警告音
\n:换行符
\r:回车符
\b:退格键
\t:水平制表符
\v:垂直制表符
\x:16进制ASCII码输出字符
echo -e "\e[1;31m hello world \e[0m" 用红色显示hello world
\e[1; 开启颜色命令\e[0m 关闭颜色命令
30m黑色 31m红色 32m绿色 33m黄色 34m蓝色 35m洋红 36m青色 37m白色
4、别名
alias 查看系统中已有的别名
alias ls=‘ls --color=auto' 设置别名,要永久生效需将该命令放入~/.bashrc文件中
unalias ls 删除别名
命令生效顺序:
①绝对路径或相对路径执行的命令
②别名
③Bash内部命令
④按$PATH变量的目录顺序进行查找命令
5、Bash中常用快捷键
Ctrl-c 强制终止
Ctrl-l 清屏
Ctrl-u 从光标位置删到行首
Ctrl-a 从光标位置移到行首
Ctrl-e 从光标位置移到行尾
Ctrl-z 命令放到后台
6、多命令顺序执行
命令1;命令2 分号;表示多个命令顺序执行 命令1&&命令2 逻辑与,命令1执行正确则执行命令2,命令1执行错误则不执行2 命令1||命令2 逻辑或,命令1执行正确则不执行2,命令1执行不正确则执行命令2
7、重定向
①标准输出重定向
命令 > 文件 覆盖的方式写入 命令 >> 文件 追加的方式写入②标准错误输出重定向
错误命令 2> 文件 错误命令 2>> 文件 (注意:2和>之间无空格)③正确和错误信息同时重定向
命令 > 文件 2>& 1 命令 >> 文件 2>& 1 命令 &>> 文件 命令 >> 文件1 2>> 文件2 正确和错误信息分开保存
ls &> /dev/null 不想要的打印信息全部重定向到/dev/null下,“系统黑洞”输入到此的文件全被系统丢掉
④输入重定向
wc < a.log 统计文件中的行数、单词书、字节数
8、管道符
命令1 | 命令2 命令1的正确输出作为命令2的输入
例:
ls -lh /etc | more 用more命令分屏显示ls的输出结果netstat -an | grep ESTABLIASHED netstat 命令查看系统网络连接情况,grep从搜索结果中查看已经连接的对象(连接标志为ESTABLIASHED)netstat -an | grep ESTABLIASHED | wc -l 查看行数,有几行就有几个连接对象
9、通配符
? 匹配任意一个字符 * 匹配任意内容 [] 匹配括号内任意一个字符 [0-9] -表示范围,匹配其中一个 [^0-9] 逻辑非^,匹配非括号内内容Bash中其它符号: $ 调用变量的值 \ 转义符,跟在\之后的特殊符号将失去特殊含义,如 \* 就是输出*号 # Shell中表示注释 $() 用来引用系统命令
10、历史命令
Bash的历史命令保存在~/.bash_history里
history 命令显示历史命令 history -c 清空历史命令 history -w 将本次开机以来的命令写入历史命令文件
11、简单的执行跟踪
set -x命令打开跟踪功能,在此之后shell会显示每条被执行的命令,前面附带+号
set +x 关闭跟踪功能
例:
#!/bin/bash set -x echo 1 hello set +x echo 2 hello执行结果: +echo 1 hello +set +x echo 2 hello
12、特殊文件:
/dev/null 系统黑洞(前面以讲过)
/dev/tty 系统当前终端
tty命令:
tty -echo <span style="font-size: 14px; white-space: pre;">关闭自动打印输入的字符的功能</span><span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> </span>
tty echo 打开自动打印输入的字符的功能