一、基本命令
1. 输出命令 —— echo
echo “要输出的字符串” //将字符串打印到屏幕上。
echo [选项] [输出内容]
-e :支持反斜线控制的字符转换。
\a \b退格键,删除 \n \r \v \t \0 \x
颜色选项:
\e[1;31m 文字开始着色
\e[0m 结束着色
其他:
30m黑色;31m红色;32m绿色;33m黄色;
34m蓝色;35m洋红色;36m青色;37m白色
echo $SHELL //打印环境变量
2. 别名命令 —— alias:
临时增加别名:
alias ls='ls --color=auto'
重启后失效。
临时删除别名:
unalias ls;
永久修改别名:
用户环境变量位置:~/.bashrc
在环境变量中修改别名记录
1. alias vi='vim' //vim比vi的功能强大。使用vim代替vi
2. source .bashrc //调用文件,可直接生效(不用重新登入)
命令执行时的优先级:
1.优先执行绝对路径或相对路径执行的命令。
2.其次执行别名。
3.然后才是Bash的内部命令。(别名优先于内部命令)
4.按$PATH查找的环境变量中的第一个外部命令。
3. bash的快捷键:
ctrl + C //强制退出
ctrl + l //清屏 clear
ctrl + u //从光标出删除到行首
ctrl + a //光标移到行首
ctrl + e //光标移到行尾
ctrl + z //命令放入后台
ctrl + r //在历史命令中搜索
4. 关于Bash:
执行历史命令:
!n 执行第n条命令
!! 执行上一条命令
!字符串 执行最后一次以此字符串开头的命令。
脚本执行方式:
1.chmod 755 hello.sh (主要方式)
./hello.sh
2.bash hello.sh
shell版本:
/etc/shells 文件中表明支持的shell版本。
sh 进入子sh版本的shell解释器。
二、语法规则:
1.输入、输出重定向
标准输入:0 键盘
标准输出:1 显示器
错误输出:2 显示器
正确输出:
命令 > 文件 >覆盖,>>追加
错误输出:
命令 2>文件 >覆盖,>>追加,注意'>'与文件之间不能有空格。
正确和错误都写在指定的文件中:
命令 &> 文件
命令 > 文件 2>&1 //覆盖
命令 &>> 文件
命令 >> 文件 2>&1 //追加
/dev/null //Linux的黑洞
ls &>/dev/null //将结果直接丢弃
正确的日志放在一个文件,错误结果放在另一个文件
命令 >> 文件1 2>>文件2
输入重定向:
命令 < 文件 //将文件做为输入
命令 << 引号 ... 引号 //将引号(单双都可)之间的内容作为输入数据
2.符号说明
符号 | 说明 |
---|---|
? | 匹配一个字符 |
* | 匹配任意内容 |
[a,b,c] | 匹配括号中的某一个字符。 |
[^a] | 匹配不是a的字符 |
‘ ’ | 单引号:无视特殊字符,将其当做字符串输出 |
“ ” | 双引号:特殊、转移字符还会起作用。 |
` ` | 反引号:将命令结果复制给变量: aa=`ls` echo &aa |
$() | 同反引号,引用系统命令: aa=$(ls) |
# | 注释 |
$ | 调用变量的值 |
\ | 转义符,特殊符号失去作用 |
: | 命令顺序执行,命令之间没有任何逻辑关系。 |
&& | 只有当前面的命令正确执行,才会执行后面的命令,不只判断前一个,还判断前几个。 |
|| | 前面的命令正确执行,则后面的命令错误执行;前面的命令错误执行,则后面的命令正确执行 |
| | 管道,前一个命令的结果给后一个命令处理 |
3.举例
more 文件
文件内容分屏显示
netstat -an | grep establish | wc -l
服务器连接了多少人。(统计有多少监听端口处于establish)
命令 && echo "yes" || echo "no"
命令正确执行则输出yes,否则输出no。
shell版“helloworld”:
#!/bin/bash
#The first program
echo -e "\e[1;34m 这是HelloWorld.sh \e[0m"