/ | 根目录,整个文件系统的根目录 |
/dev | 存放Linux系统下的设备文件 |
/etc | 存放系统的配置文件 |
/home | 系统默认的用户主目录 |
/root | 超级权限用户的root目录 |
/opt | 自定义软件包 |
-l | 只显示行数 |
-w | 只显示单词数 |
-c | 只显示字节数 |
-a | 仅修改“读取时间”(atime) |
-m | 仅修改“修改时间”(mtime) |
-d | 同时修改atime与mtime |
-p | 保留原始文件的属性 |
-d | 若对象为“链接文件”,则保留其属性 |
-r | 递归持续复制(用于目录) |
-i | 若目标文件存在则询问是否覆盖 |
-f,--force | 强行复制文件或目录,不论目标文件或目录是否已存在 |
-a | 相当于-pdr |
if | 输入的文件名称 |
of | 输出的文件名称 |
bs | 设置每个“块”的大小 |
count | 设置要复制“快”的个数 |
-s | 创建“符号链接”(如果不带-s参数,则默认创建硬链接) |
-f | 强制创建文件或目录的链接 |
-i | 覆盖前先询问 |
-v | 显示创建链接的过程 |
-c | 创建新的文档 |
-v | 显示详细的tar处理的文件信息 |
-f | 要操作的文件名,切记,这个参数是最后一个参数 |
-x | 解压 |
-t | 查看内容 |
-z | 有gzip属性的 |
-j | 有bz2属性的 |
-r | 表示增加文件,把要增加的文件追加在压缩文件的末尾 |
-l | 创建新的文档 |
-d | 指定文件解压缩后要存储的目录 |
-f | 要操作的文件名,切记,这是最后一个参数 |
-r | 递归压缩子目录下的所有文件,不然只压出来一个空目录 |
-y | 保持符号链接,而不用把符号链接指向的文件也压进来 |
-f | 要操作的文件名,这是最后一个参数 |
-l | 创建新的文档 |
-d | 指定文件解压缩后所要存储的目录 |
-f | 要操作的文件名,这是最后一个参数 |
-name | 匹配名称 |
-perm | 匹配权限(mode为完全匹配,-mode为包含即可) |
-user | 匹配所有者 |
-group | 匹配所有组 |
-mtime-n+n | 匹配修改内容的时间(-n指n天以内,+n指n天以前) |
-atime-n+n | 匹配访问文件的时间(-n指n天以内,+n指n天以前) |
-ctime-n+n | 匹配修改文件权限的时间(-n指n天以内,+n指n天以前) |
-nouser | 匹配无所有者的文件 |
-nogroup | 匹配无所有组的文件 |
-newer f1 ! f2 | 匹配比文件f1新但比f2旧的文件 |
--type b/d/c/p/l/f | 匹配文件类型(后面字母依次表示设备、目录、字符设备、管道、链接文件、普通文件) |
-size | 匹配文件的大小(+50为查找超过50KB的文件) |
-prune | 忽略某个目录 |
-exec...{}\; | 后面可跟用于进一步处理搜索结果的命令 |
dd | 删除(剪切)光标所在整行 |
5dd | 删除(剪切)从光标开始的5行 |
yy | 复制光标所在整行 |
5yy | 复制从光标处开始的5行 |
n | 显示搜索命令定位到的下一个字符串 |
N | 显示搜索命令定位到的上一个字符串 |
u | 撤销上一步的操作 |
p | 将之前删除(dd)或复制(yy)过的数据粘贴到光标后面 |
:w | 保存 |
:q | 退出 |
:q! | 强制退出(放弃对文档的修改) |
:wq! | 强制保存退出 |
:set nu | 显示行号 |
:set nonu | 不显示行号 |
:命令 | 执行该命令 |
:整数 | 跳转到该行 |
用于匹配文件名,通常包含四种“*,?,[],{}”。
* | 匹配0或多个字符 | a*b:a与b之间可以有任意长度的任意字符,也可以无。如aabcd、a012b、ab。 |
? | 匹配任意一个字符 | a?b:a与b之间必须也只能有一个字符,可以是任意字符,如aab、abb、a0b。 |
[list] | 匹配list中的任意单一字符 | a[xyz]b:a与b之间必须也只能有一个字符,只能是x或y或z,如axb、ayb,azb。 |
[! list] 或 [^list] | 匹配除list中的任意单一字符 | 同上,不能是x或y或z。 |
[c1-c2] | 匹配c1-c2中的任意单一字符,如[0-9] | |
[! c1-c2]或[^c1-c2] | 与上相反 | |
{string1,string2,...} | 匹配string1或string2其单一字符 |
^ | 匹配以...开头的行 | ^ab匹配以ab开头的行 |
$ | 匹配以...结尾的行 | ab$匹配以ab结尾的行 |
^$ | 匹配空行 | ^$匹配空行,不匹配空格 |
. | 匹配任意单个字符 | ab.匹配abc或abb等,不匹配abcd,包括空格 |
\ | 转义符,将特殊字符符号进行转义 | a\.b匹配a.b。不匹配ajb |
* | 匹配前面项0次或多次 | ab*匹配a或ab或abbb |
. * | 匹配任意字符 | ?ab.*匹配ab或abc或abcd,包含空行 |
-d | 指定用户的家目录(默认/home/username) |
-e | 账户的到期时间,格式为YYYY-MM-DD |
-u | 指定该用户的默认UID |
-g | 指定一个初始的用户基本组 |
-G | 指定一个或多个扩展用户组 |
-N | 不创建于用户名同名的基本用户组 |
-l | 锁定用户,禁止其登录 |
-u | 解除锁定,允许用户登录 |
-d | 使该用户可用空密码登录 |
-e | 强制用户在下次登录时修改密码 |
-f | 强制删除用户 |
-r | 同时删除用户及用户家目录 |
-g gid | 把组群的GID改成gid |
-n group -name | 把组群的名称改为group -name |
gpasswd [选项] [用户] [组]:为组群添加用户。
-a | 把用户加入组 |
-d | 把用户从组中删除 |
-r | 取消组的密码 |
-A | 给组指派管理员 |
IDE设备 | /dev/hd[a-d] |
SCSI/SATA/U盘 | /dev/sd/[a-p] |
软驱 | /dev/fd/[0-1] |
打印机 | /dev/lp[0-15] |
光驱 | /dev/cdrom |
鼠标 | /dev/mouse |
磁带机 | /dev/st0或/dev/ht0 |
p | 查看分区信息 |
n | 添加新的分区 |
w | 保存并退出 |
步骤:管理/dev/sdb硬盘设备
- 输入命令:fdisk /dev/sdb
- 输入p查看硬盘设备内已有的分区信息
- 输入n添加新的分区,系统会要求选择输入p创建主分区或e创建扩展分区,这里用p。
- 系统要求先输入主分区的编号(1~4)
- 起始扇区默认,Last扇区+2G,即创建容量为2GB的硬盘分区
- 输入p再次查看信息,OK后输入w后回车!
- 使用file /dev/sdb1查看文件的属性,若无,则输入partprobe同步。
分区后还要进行格式化操作。
- mkfs.文件类型名称:例如要格式分区为XFS的文件系统
- ?mkfs
- mkfs.xfs /dev/sdb1
1、mount-手动挂载分区
- mount 文件系统 挂载目录;例如:把设备/dev/sdb1挂载到/newFS目录:
- mkdir /newFS
- mount /dev/sdb1 /newFS
2、/etc/fstab-自动挂载分区
3、umount-撤销挂载分区
例:创建RAID5
1、创建四个磁盘分区
- 使用fdisl命令创建4个磁盘分区/dev/sdb1、/dev/sdc1、/dev/sdd1、/dev/sde1
2、使用mdadm命令创建RAID5
- mdadm --create /dev/md0 -l 5 -n 3 -x 1 /dev/sd[b-e]1
- --create代表创建一个RAID阵列卡,设备名称/dev/md0;--lever=5参数代表RAID5方案‘--raid-devices=3参数代表使用3块硬盘来部署这个RAID磁盘列阵;--spare-devices=1参数代表使用1块硬盘空闲作为热备,最后在加上4块硬盘设备就OK了
3、为新建立的/dev/md0建立ext4的文件系统
- mkfs -t ext4 -c /dev/md0
4、查看建立的RAID5的具体情况
- mdadm --detail /dev/md0
5、将RAID设备挂载(将RAID设备挂载到指定目录/RAID中)
- mkdir /RAID
- mount /dev/md0 /RAID
- df -h(显示该设备中的内容)
正在执行的一个或多个相关进程可形成一个作业。
对于偶尔运行的进程,采用at调度或batch调度
对于特定时间重复运行的进程,采用cron调度
在网卡配置文件中,各字段的作用如下:
工作原理:
[root@localhost script]# vim add.sh
[root@localhost script]# cat add.sh
#!/bin/bash
#文件名为:add.sh
#版本:v1.1
#功能:求和
VAR=`expr 3 + 6`
echo "两个数相加为:" $VAR
[root@localhost script]# chmod a+x add.sh
[root@localhost script]# . add.sh
两个数相加为: 9
[root@localhost script]#
算术运算符有以下几个。
[root@localhost script]# vim zhys.sh
[root@localhost script]# cat zhys.sh
#!/bin/bash
#文件名为:zhys.sh
#版本:v1.1
#功能:综合运算
X=100
Y=5
VAR=`expr $X + $Y`
echo "X+Y=$VAR"
VAR=`expr $X - $Y`
echo "X-Y=$VAR"
VAR=`expr $X \* $Y`
echo "X*Y=$VAR"
VAR=`expr $X / $Y`
echo "X/Y=$VAR"
VAR=`expr $X + $Y`
if [ $X == $Y ]; then
echo "X等于Y"
fi
if [ $X != $Y ]; then
echo "X不等于Y"
fi
[root@localhost script]# . zhys.sh
X+Y=105
X-Y=95
X*Y=500
X/Y=20
X不等于Y
[root@localhost script]#
乘号(*)前边必须加反斜杠(\)才能实现乘法运算,条件表达式必须放在方括号之间,并且要有空格。?
运算符 | 功能说明 | 举例 |
-eq | 检测两个数是否相等,相等返回 true | [ $X -eq $Y ] 返回 false |
-ne | 检测两个数是否不相等,不相等返回 true | [ $X?-ne $Y?] 返回 true |
-gt | 检测左边的数是否大于右边的,如果是,则返回 true | [ $X?-gt $Y?] 返回 false |
-lt | 检测左边的数是否小于右边的,如果是,则返回 true | [ $X?-lt $Y?] 返回 true |
-ge | 检测左边的数是否大于等于右边的,如果是,则返回 true | [ $X?-ge $Y?] 返回 false |
-le | 检测左边的数是否小于等于右边的,如果是,则返回 true | [ $X?-le $Y?] 返回 true |
运算关系综合运算?
[root@localhost script]# vim gxys.sh
[root@localhost script]# cat gxys.sh
#!/bin/bash
#文件名为:gxys.sh
#版本:v1.1
#功能:运算关系综合运算
X=10
Y=20
if [ $X -eq $Y ]
then
echo "$X -eq $Y : X 等于 Y"
else
echo "$X -eq $Y: X 不等于 Y"
fi
if [ $X -ne $Y ]
then
echo "$X -ne $Y: X 不等于 Y"
else
echo "$X -ne $Y : X 等于 Y"
fi
if [ $X -gt $Y ]
then
echo "$X -gt $Y: X 大于 Y"
else
echo "$X -gt $Y: X 不大于 Y"
fi
if [ $X -lt $Y ]
then
echo "$X -lt $Y: X 小于 Y"
else
echo "$X -lt $Y: X 不小于 Y"
fi
if [ $X -ge $Y ]
then
echo "$X -ge $Y: X 大于或等于 Y"
else
echo "$X -ge $Y: X 小于 Y"
fi
if [ $X -le $Y ]
then
echo "$X -le $Y: X 小于或等于 Y"
else
echo "$X -le $Y: X 大于 Y"
fi
[root@localhost script]# . gxys.sh //执行脚本
10 -eq 20: X 不等于 Y
10 -ne 20: X 不等于 Y
10 -gt 20: X 不大于 Y
10 -lt 20: X 小于 Y
10 -ge 20: X 小于 Y
10 -le 20: X 小于或等于 Y
[root@localhost script]#
if多分支语句测试:
[root@localhost script]# vim if-select.sh
[root@localhost script]# cat if-select.sh
#!/bin/bash
#文件名为:if-select.sh
#版本:v1.1
#功能:if多分支语句测试
read -p "请输入您的成绩:" x
if [ "$x" == "" ];then
echo "您没有输入成绩...."
exit 5
fi
if [[ "$x" -ge "90" && "$x" -le "100" ]];then
echo "您的成绩为:A(优秀)"
elif [[ "$x" -ge "80" && "$x" -le "89" ]];then
echo "您的成绩为:B(良好)"
elif [[ "$x" -ge "70" && "$x" -le "79" ]];then
echo "您的成绩为:(中等)"
elif [[ "$x" -ge "60" && "$x" -le "69" ]];then
echo "您的成绩为:(合格)"
elif [[ "$x" -lt "60" ]];then
echo "您的成绩为:(不合格)"
else
echo "输入错误"
fi
[root@localhost script]# chmod a+x if-select.sh
[root@localhost script]# . if-select.sh
请输入您的成绩:88
您的成绩为:B(良好)
[root@localhost script]#
case命令语句测试?
[root@localhost script]# vim case.sh
[root@localhost script]# cat case.sh
#!/bin/bash
#文件名为:case.sh
#版本:v1.1
#功能:case命令语句测试
read -p "【1:优秀,2:良好,3:中等,4:合格,5:不合格】请输入数字(1-4):" x
case $x in
1) echo "您的成绩为:A(优秀)"
;;
2) echo "您的成绩为:B(良好)"
;;
3) echo "您的成绩为:C(中等)"
;;
4) echo "您的成绩为:D(合格)"
;;
5) echo "您的成绩为:E(不合格)"
;;
esac
[root@localhost script]# . case.sh
【1:优秀,2:良好,3:中等,4:合格,5:不合格】请输入数字(1-4):3
您的成绩为:C(中等)
[root@localhost script]#
?for循环实现从1+2+...+N之和:
[root@localhost script]# vim for.sh
[root@localhost script]# cat for.sh
#!/bin/bash
#文件名为:for.sh
#版本:v1.1
#功能:for循环实现从1+2+...+N之和
read -p "请输入数字,将要计算1+2+...+N之和:" N
sum=0
for (( i=1; i<=$N; i=i+1 ))
do
sum=$(( $sum + $i ))
done
echo "结果为‘1+2+...+$N’==>$sum"
[root@localhost script]# chmod a+x for.sh
[root@localhost script]# . for.sh //执行脚本
请输入数字,将要计算1+2+...+N之和:100 //1到100之和
结果为‘1+2+...+100’==>5050
[root@localhost script]#
......