df -i 查看每个分区的inode的个数
/var/log/message 排错首先看这个
grep -e 'root' -e'sshd' /etc/passwd
文件描述符
0 默认是键盘,也可以是文件 输入文件---标准输入
1 默认是屏幕,也可以是文件或其他命令的输出 输出文件---标准输出
2 默认是屏幕,也可以是文件 错误输出文件---标准错误输出
2>&1 表示把 2 标准错误输出 重新输出到文件描述符1(即标准正确输出)中
command<&n 把文件描述符 n 作为标准输入
command >&n 把标准输出重定向到文件描述符中
exec n<&- 关闭文件描述符 n
脚本介绍
脚本编写规范:
script 的功能;
script 的版本信息;
script 的作者与联络方式;
script 的版权宣告方式;
script 的 History (历史纪录);
script 内较特殊的指令,使用“绝对路径”的方式来下达;
script 运行时需要的环境变量预先宣告与设置。
#!/bin/bash
#功能
#计算任意两个数的乘积
#Auther:rourou
#version:v1.0
#Date:2019/08/05
#history:one
read -p "one number:" firstnu
read -p "second number:" secnu
total=$((${firstnu}*${secnu}))
echo "the reault of :${total}"
执行脚本的方式
- sh one.sh 用子shell执行该shell脚本,父进程变量无值
- . one.sh 在父进程环境里只执行shell脚本,父进程变量有值
- ./one.sh 相当于在调用父进程bash执行脚本,父进程变量无值 必须有执行权限
script 的默认变量
$# :代表后接的参数“个数”,以上表为例这里显示为“ 4 ”;
$@ :代表 "$1" "$2" "$3" "$4" 之意,每个变量是独立的(用双引号括起来);
判断表达式
1.关于文件名的文件类型判断:
[root@rourou ~] test -e one.sh #判断文件名是否存在
[root@rourou ~] echo $? #判断上一条指令是否执行成功
0
-f 判断文件是否存在
-d 该文件名是否存在且是否为目录
与上面是类似的:
![](https://img.haomeiwen.com/i18861868/a588fcad352840c7.jpg)
![](https://img.haomeiwen.com/i18861868/6466979fe6062b33.jpg)
![](https://img.haomeiwen.com/i18861868/242c75ee215c4d98.jpg)
![](https://img.haomeiwen.com/i18861868/2f832221f336df8f.jpg)
判断符号
[ "$a1" == "$a2" ] 两边必须有空格,变量用双引号引起来
逻辑结构
if判断
if···;then···fi
if [ 条件判断式 ];then
当条件判断式成立时,可以进行的命令。
fi # 结束这个判断语句结构
if···;then... else....fi
if [ 条件判断式 ]; then
当条件判断式成立时,可以进行的指令工作内容;
else
当条件判断式不成立时,可以进行的指令工作内容;
fi
if ... ;then···elif ...;then··· else ... fi
if [ 条件判断式一 ]; then
当条件判断式一成立时,可以进行的指令工作内容;
elif [ 条件判断式二 ]; then
当条件判断式二成立时,可以进行的指令工作内容;
else
当条件判断式一与二均不成立时,可以进行的指令工作内容;
fi
网友评论