思维导图百度云分享:链接:https://pan.baidu.com/s/1UMvudlv-xEG_pFtOPdCWhg 密码:x6oa
PATH:
外部命令脚本执行需在path下,cp到path某个路径下或将外部命令路径加到path里在其他任何地方均可运行;或绝对路径相对路径都可以;
/etc/profile.d/xxx.sh加当前路径到PATH;./etc/profile.c/xxx.sh立即生效;之后再其他路径下都可以直接执行,前提要有该脚本。不利于安全。
shell脚本加注释#;脚本建完加权限,写路径(放PATH变量/绝对路径/);
./source+x.sh影响当前进程;
变量:
普通变量:当前进程有效;
环境变量:可以传给子进程;export+赋值;
位置变量:$1、$2...
只读变量:PS1...
特殊变量:$# $*..
(());$[];$();
test:
[]不能用正则表达式,字符用引号引用,比较数值和字符组等;数字-eq -qt等;
[[]]用于正则表达式,表达字符串的时候不能用双引号引用,用户复杂判断;=~正则包含,==精确匹配,注意通配符和符号以及在正 则在定量区别中的引用;
但是变量都要加,unset可举例;
test指向性; -L/h和 -d,先判断文件是不是软链接,rwx看实际权限;
组合测试:
1.CMD1 &&/|| CMD2;!CMD
2.EXP1 -a/o EXP2;!EXP
touch /etc/nologin 禁止普通用户登录
read:
内置命令;输入模式;可以多个赋值,但最好1对1;前面带上提示(please...);
-p显示紧跟描述信息;-s静默;-n 数字 指定长度;-d 指定结束符;-t 秒 限制登录时长;
脚本中别名无效,不能调用;
curl实现远程调用脚本;
eq(equal)=;le(less)<;gt(greater)>
实战题:
1、
2、
3、
4、
判断centos版本:
判断用户账号的存在性实验:
判断ip能否ping通实验:
yes or no选择实验:
鸡兔同笼实验: