今天内容
习题1: 使用awk取出系统的IP地址,思路如下: 1.我要取的IP值在哪里 ifconfig 2.如何缩小取值范围(行) 3.如何精确具体内容(列)
yum install net-tools -y (没有ifconfig这个命令可以使用这个命令来安装)
[图片上传失败...(image-18e2f8-1583844823618)]
[图片上传失败...(image-4a22c9-1583844823618)]
[图片上传失败...(image-551b1c-1583844823618)]
[图片上传失败...(image-178858-1583844823618)]
[图片上传失败...(image-e3e20-1583844823618)]
方法一:
[root@oldboy ~]# ifconfig ens32 | head -2 | tail -1| awk '{print $2}'
方法二:
[root@oldboy ~]# ifconfig ens32 | grep "netmask" | awk '{print $2}'
方法三:
语法:sed -n '/匹配的内容/对匹配的内容做什么动作' 匹配字符串
示例:sed -n '/netmask/p'
[root@oldboy ~]# ifconfig ens32 | sed -n '/netmask/p'| awk '{print $2}'
方法四:
[root@oldboy ~]# ifconfig ens32 | awk '/netmask/{print $2}'
方法五:
sed 's#替换文件中什么内容#替换成什么#g'
[root@oldboy ~]# ifconfig ens32 | sed -n '2p'| sed -r 's#(^.et )(.)(net.*$)#\2#g' 备注:后向引用
习题2: 将/etc/passwd文件中的第一行中的第一列和最后一列位置进行交换。
[root@oldboy ~]# head -1 /etc/passwd | awk -F ':' '{print 2":"
4":"
6":"$1}' /bin/bash❌0:0:root:/root:root
[图片上传失败...(image-61e425-1583844823618)]
习题3: 将/etc/sysconfig/selinux 文件中的SELINUX=enforcing替换成SELINUX=disabled (sed)
[root@oldboy ~]# sed 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/sysconfig/selinux (模拟) 备注:这个命令只能替换但不改变 /etc/sysconfig/selinux 这个文件的原来内容,如果有改变内容则需要[root@oldboy ~]# sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/sysconfig/selinux (实战)
[图片上传失败...(image-7d1a99-1583844823618)]
文件属性
-rw-r--r--. 1 root root 26 3月 9 18:27 oldboy.txt
-:文件的类型
rw-r--r- :权限
1 :表示硬链接数目
root :这个文件的拥有人是谁
root :这个文件的拥有组是谁
26 :表示 文件大小
3月 9 18:27 :文件创建或修改的时间
oldboy.txt :文件名称
文件类型
[root@oldboy ~]# ll -d /etc/hosts /tmp /bin/ls /dev/vda /dev/tty1 /etc/grub2.cfg /dev/log -rwxr-xr-x. 1 root root 117680 10月 31 2018 /bin/ls srw-rw-rw-. 1 root root 0 11月 13 23:03 /dev/log crw--w----. 1 root tty 4, 1 11月 13 23:04 /dev/tty1 brw-rw----. 1 root disk 253, 0 11月 13 23:03 /dev/vda lrwxrwxrwx. 1 root root 22 6月 4 2019 /etc/grub2.cfg -> ../boot/grub2/grub.cfg -rw-r--r--. 1 root root 159 6月 4 2019 /etc/hosts drwxrwxrwt. 11 root root 4096 3月 10 11:21 /tmp
使用ll 或者是ls -l能够区分出的效果
-: 表示一个文件
s:socket,进程与进程之间的通信协议
c :字符设备(终端、键盘)
b:快设备(磁盘)
l: 软连接
d: 表示一个目录
判断文件类型的三种方法
我们可以使用ls-l查看
我们也可以根据文件的后缀来区分
前面两种方法都不太正确,所以我们可以用 file来查看文件的类型这种方法比较正确
备注:如果我们把后缀名改了之后file这个命令也会显示他本来的属性
链接文件(软链接、硬链接)
文件有文件名与数据,在liuux上被分成了两部分:文件数据(data)与文件元数据(metadata)
软链接图示:
[图片上传失败...(image-86e59a-1583844823618)]
软链接应用图示:
[图片上传失败...(image-4574a8-1583844823618)]
软链接实战练习
网站1.1版本代码
[root@oldboy ~]# mkdir /data/rainbow-v1.1 -p [root@oldboy ~]# echo "123" > /data/rainbow-v1.1/index.html
[图片上传失败...(image-95e42-1583844823618)]
创建软链接
[root@oldboy ~]# ln -s /data/rainbow-v1.1/ /data/rainbow [root@oldboy ~]# ll /data/ 总用量 0 lrwxrwxrwx. 1 root root 19 3月 10 18:58 rainbow -> /data/rainbow-v1.1/ drwxr-xr-x. 2 root root 24 3月 10 18:53 rainbow-v1.1
[图片上传失败...(image-a12e44-1583844823618)]
检查网站程序
[root@oldboy ~]# cat /data/rainbow/index.html 123
[图片上传失败...(image-206924-1583844823618)]
更新一个网站的代码
[root@oldboy ~]# mkdir /data/rainbow-v1.2 [root@oldboy ~]# echo "456" > /d data/ dev/ [root@oldboy ~]# echo "456" > /data/rainbow-v1.2/index.html
[图片上传失败...(image-6dd393-1583844823618)]
升级
[root@oldboy ~]# rm -f /data/rainbow && ln -s /data/rainbow-v1.2/ /data/rainbow [root@oldboy ~]# cat /data/rainbow/index.html
[图片上传失败...(image-9e066c-1583844823617)]
回退
[root@oldboy ~]# rm -f /data/rainbow && ln -s /data/rainbow-v1.1/ /data/rainbow [root@oldboy ~]# cat /data/rainbow/index.html 123
[图片上传失败...(image-dd0e0f-1583844823617)]
硬链接
[图片上传失败...(image-9f6634-1583844823617)]
硬链接与软链接区别
ln命令创建硬链接,ln -s命令创建软链接。
目录不能创建硬链接,并且硬链接不可以跨越分区系统。
目录软链接特别常用,并且软链接支持跨越分区系统。
硬链接文件与源文件的inode相同,软链接文件与源文件inode不同。
-
删除源文件及其硬链接文件,整个文件会被真正的删除。
ln-s的用法
ln -s 真实位置 链接位置 (绝对路径)
1.软链接比较常用,特别用于代码的版本迭代与回退。 软件的升级与回退。
2.硬链接基本不用,硬链接不支持目录,也不支持跨域分区。