**************************
********6.shell脚本命令*****
**************************
******1.diff****
difffile file1//比较两个文件的不同
-c//显示上下周围的行
-u//按照一格式统一输出生成补丁
-r//比较两个目录有什么不同
patchfile file.path //打补丁
******2.grep**** 【查询,grep 正则表达式】
grep关键字符 文件|目录//在文件或目录中查找含有关键字的行
grep-i//忽略大小写
-n//显示关键字所在行
-c//显示过滤结果的个数
-v//反向过滤 【非】
-E “关键字1|关键字2”//过滤多个关键字 【表示的两个关键字意义为:或,且。满足其中一个,或者同时满足两个】
-r目录//在目录中查找含有关键字的文件 【例如: grep -r root /etc/ ,绝对会有很多数据输出来,并且开头有文件名称】
注意: ^关键字 //以关键字开头的
关键字$//以关键字结尾
*****3.cut*****
cut//截取字符
cut -d 分隔符//指定分隔符
cut -f 1,7//显示指定的列
cut -c 1-4//显示指定序号的字符(第几到第几个)
【例子,显示ifconfig br0 下的ip ifconfig br0 | grep "inet " | awk -F " " '{print $2}' 】
***4.sort***//排序
sort
-n//纯数字排序
-u//去掉重复
|uniq -c//去掉重复的,并统计重复次数 【首行显示】
-t//指定分隔符
-k//指定列
【例如 要排序一个文件,但所数字不再开头,在:后。则命令为 sort -t : -k 2 -n file。表示:指定分隔符为:,且在:后第二位 并且将其纯属字进行排序。如若统计重复数字出现的次数,则可家 |uniq -c 】
****5.uniq****【必须配合sort使用】
sort file |uniq -c//去掉重复并统计重复的次数
-d//显示重复的行
-u//显示唯一的行
****6.sed****
sed 's/源字符/替换字符/g' file
sed -e '策略1'-e '策略2' file
sed -i file//把转换后的内容输入到指定文件
sed '3,5s/原字符/替换字符/g'//3-5行替换
sed xd//屏蔽指定行
sed xp//复制指定行
sed -n xp//只显示指定行 【显示大于以行的信息 sed -ne xp -ne yp filename】
****7.awk****【重点】
相对于sed常常作为一整行的处理,awk则比较倾向于将一行分成数个“字段”来处理。因此,awk相当适合处理小型的数据,awk通常运行的模式是:awk '条件类型1 {动作1} 条件类型2 {动作2} 'filename。
执行last -n 5 输出的是当前用户的登陆情况。若想进行优化,只提取出用户名和ip,则可用 last -n 5 | awk '{print $1 "\t" $3}' 。
其中,$1表示root ; $3表示ip "\t" 表示回车符,其实还有个$0,它代表一整行数据的意思。
变量名称代表意义
NF每一行{$0}拥有的字段总数
NR目前awk处理的是“第几行” 数据
FS 目前的分割字符,默认是空格键
举例:last -n 5 | awk '{print $1 "\t lines:" NR "\t columes:" NF}'【显示后五行,并且输出$1,行数和每一行拥有的字段总数(有分隔就为1字段)】
cat /etc/passwd | \
>awk 'BEGIN {FS=":"} $3 command (m for help):p//查看分区信息【也可以在命令行写 fdisk -l 查询分区信息】
Command (m for help):wq//表示保存退出,q表示不保存,放弃更改退出
[root@localhost mnt]# partprobe//同步分区表【cat /proc/partitions 查看分区信息】
mkfs.xfs/dev/vdb5//格式化为 xfs文件系统类型【blkid查询可使用的分区】
mount /dev/vdb5/mnt///挂载
*****2.更改分区功能id**** 【例如:将普通分区更改为swap分区】
[root@localhost Desktop]# fdisk /dev/vdb
Command (m for help):t【进入修改分区功能】
Partition number (1-6, default 6): X【X为你要改的分区名称】
Partition type (type L to list all types):82【写要更改能容的标号 例如更改为 swap功能为的标号为 82】
Command (m for help):p【查询分区的信息】
Command (m for help):wq //保存
[root@localhost mnt]# partprobe //同步分区表
mkswap/dev/vdb6//创建swap 【切记要创建,不然无法进行】
swapon -a/dev/vdb6 //激活增加的swapon 分区
swapon -s //查看所有的swapon分区列表【blkid也可以查询】
如果要在每次开机的时候都自动激活
vim /etc/fstab
/dev/vdb6 swapswapdefaults0 0【表示的意义以此为:文件名(/dev/vdb6) 激活点(swap) 类型(swap) 参数(默认) 备份(否) 检测(否)】
*****3.文件分割一个swap分区功能****
dd if=/dev/zero of=/mnt/HXL bs=1M count=1000
mkswap/mnt/westos
swapon -a /mnt/HXL【后面会有文件权限不合适的提示,不过没关系,你已经激活了】
swapon -s【查看你激活的swap】
【如果 你想改变swap的优先级(-1 —— 32767),数字越大优先级越高,在你激活的时候 swapon -a /mnt/filename -p X (X就表示你所指定的优先级数)】
*****3.磁盘加密*****
1。磁盘加密
fdisk /dev/vdb【新建分区】
cryptsetup luksFormat /dev/vdb1【加密锁 设备】【在cryptsetup后面的命令 是用tab健补不齐的,当然是可以理解的,毕竟是秘密命令】
cryptsetup open /dev/vdb1 westos【打开加密的分区,并且指定一个临时名称,临时名称是必须指定的,但每次可以不一样】
mkfs.xfs /dev/mapper/westos【使得/dev/mapper/westos 使得它为.xfs文件系统】
mount /dev/mapper/westos /mnt/【挂载在/mnt下,挂载的时候当前环境不能是要挂载的目录(/mnt/) 】
umount /mnt/【解挂】【切忌,不能在没有解挂的时候再次加密,会死机】
cryptsetup close westos【关闭已经打开的加密指定目录】
2.加密磁盘的永久挂载 【下列步骤应详细,否则虚拟机会开不起来】【注意!,在你能自动挂载 /dev/mapper/HXL之前,首先要打开加密文件指定,然后 mkfs.xfs /dev/mapper/HXL(使之成为.xfs文件系统),要不然 你电脑重启有问题,因为无法识别挂载类型】
vim /etc/crypttab
解密后设备管理文件设备加密字符存放文件
HXL/dev/vdb1/root/lukspsfile【注意!!此处的HXL与下面自动挂载文件中的名称一致】
vim /root/lukspsfile【!!在此中写入你的/dev/vdb1加密的密码,直接写人密码,啥都不加】
chmod 600 /root/lukspsfile【!将该文件权限改为600】
cryptsetup luksAddKey /dev/vdb1 /root/lukspsfile【解密文件与加密分区的对应关系指令】
vim /etc/fstab 【自动挂载的写入点】
/dev/mapper/HXL /mntxfsdefaults0 0
reboot【重启进行检查】
3.加密清除【基于已经做过自动挂载功能,如果没做过只需执行后三步】
vim /etc/fstab【删除自动挂载中的条目】
> /etc/crypttab【清除磁盘文件中的条目】
rm -fr /root/lukspsfile【删除密码文件】
umount /mnt/【卸载挂载】
cryptsetup close HXL【关闭已经打开的加密指定目录】
mkfs.xfs /dev/vdb1-f【将分区格式化为xfs文件系统格式,首先关闭要不然格式化不成功】
******4.磁盘阵列*****
1.建立磁盘阵列
fdisk /dev/vdb【新建设备分区(此次实验建立三个),注意!要将它的类型改为fd】
mdadm -C /dev/md0 -a yes -l 1 -n 2 -x 1 /dev/vdb{1..3} 【建立磁盘阵列 -C ;/dev/md0 :这个名称不能更换; -a yes:如果没有前面的目录自动建立;-l 1:级别为1,1为写入;-n 2: 用两个设备分区;-x 1:剩余一个备用】
mkfs.xfs/dev/md0
mount /dev/md0 /mnt/
watch -n 1 cat /proc/mdstat
2.删除磁盘阵列
mdadm -f /dev/md0 /dev/vdb1【使这个设备不可用】
mdadm -D /dev/md0【查看设备】
mdadm -r /dev/md0 /dev/vdb1 【删除设备vdb1】【这种删除方法,并不能使得磁盘阵列功能关闭,因为这种删除方法,是删除不完的,总会有一个是忙碌,不可删除的】
mdadm -a /dev/md0 /dev/vdb1【添加设备vdb1】
umount /mnt/【卸载】
mdadm -S /dev/md0【删除阵列分】
fdisk /dev/vdb【当然,你也可以选择把设备分区都删除了】
****5.配额****【针对分区的,只在指定份额分区生效(/pub)】
mount -o usrquota /dev/vdb1 /pub【挂载并且开启usrquota(配额功能)】
quotaon -uv /dev/vdb1【开始并显示quotaon 命令的信息】
edquota -u student【查看student用户的文件配置信息】
Disk quotas for user student (uid 1000):
Filesystem blocks soft hard inodes soft hard
/dev/vdb1 102400 0 40000 1 0 0
【其中第一个hard规定了你最大可用的字节数,最后一个hard是规定你最大所用的文件的个数】
su - student【切换到student下,并且实验】
dd if=/dev/zero of=/pub/file bs=1M count=500【切出一个配额】
dd: error writing \u2018/pub/file\u2019: Disk quota exceeded 【配额超出】
101+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 0.0916726 s, 1.1 GB/s
quota【切换到指定的用户(student)写看你的配额信息】
Disk quotas for user student (uid 1000):
Filesystem blocks quota limit grace files quota limit grace
/dev/vdb1 102400* 0 102400 1 0 0
**自动挂载分区的配额***
vim /etc/fstab
/dev/vdb1/mntxfsdefaults,usrquota0 0
【配额补录】
1.soft:表示为磁盘使用量的警戒线,如果文件大小在soft-hard中间,创建文件时会有警告,并且倒计时会开始。但没有关系,当倒数归零的时候soft的值会变成严格限制,你就没有空间再使用了。去删除一些就行。也可以设置warnquota来进行文件告知。
2.root用户用命令直接这是下层用户的磁盘使用量的限制。例:setquota -u student 200000 300000 0 0 /pub
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com