Shell
用户使用/bin/bash 系统使用/sbin/nologin
- echo -e “hello\tworld” -> 输出命令,支持转义字符
shell script
- #! 脚本声明
- # 注释
- .sh 文件格式
示例 vim test.sh
#! /bin/bash
# this is a shell scrpit demo
echo -e "hello world!"
历史命令
- history -> 历史记录
- 上下箭头
- !n -> 重复第n行命令
别名
- alias 名称=’原命令’ -> 临时定义
- /root/.bashrc -> 永久定义
快捷键
- ctrl + l -> 清屏
- ctrl + u -> 剪切
- ctrl + y -> 粘贴
通配符
- ? -> 匹配任意一个字符
- * -> 匹配任意数量字符
- [a-z] -> 匹配a-z其中的任意一个
- [^a] -> ^非,匹配非a的字符
变量
用户自定义变量
- name = “xiaowang” -> 用户自定义变量
- name = “$name”taba -> 叠加
unset name -> 取消变量
在当前shell生效
环境变量
- export 变量名=变量值 -> 临时设置
- vim /etc/profile -> 永久生效
- PATH = “$PATH”:/mypath
shell传参
[root@lalala ~]# vim demo.sh
#! /bin/bash
num1 = $1 # 第一个参数
num2 = $2 # 第二个参数
sum = $(($sum1 + $sum2))
echo $sum
[root@lalala ~]# bash demo.sh 2 5
shell交互
read -t 10 -p “Please enter your age:”
#! /bin/bash
read -t 10 -p "Please enter your age:" age
echo -e "\n"
echo "is $age"
正则表达式
- * 前一个字符匹配0个或多个字符
- . 匹配除了换行符外的任意字符
- ^ 行首 $ 行尾
- [^a] 非a
- [a-z] a-z其中一个字符
- a* 重复匹配前一个a 0次到n次
- \ 转义字符
- {n,m} 前一个字符至少出现n次,最多出现m次
示例
[1][3-8][0-9]\{9\} -> 手机号码
\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14} -> email地址
^((https|http|ftp|rtsp|mms)?:\/\/)[^\s]+ -> url地址
[1-9]([0-9]{5,11}) -> 腾讯QQ号
\d{17}[\d|x]|\d{15} -> 身份证号
[A-Za-z0-9_\-\u4e00-\u9fa5]+ -> 用户名