一、文件属性
- 例:
-rw-r--r--. 1 root root 31 Mar 9 09:56 123.txt
# - 1.文件类型
# rw-r--r-- 2.权限
# 1 3.表示硬链接数
# root 4.这个文件的拥有人是谁(个人)
# root 5.这个文件的拥有组是谁(家庭)
# 31 6.文件大小
# Mar 9 09:56 7.文件创建或修改时间
# 123.txt 8.文件的名称
二、文件类型
- 例:
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
——————————————————————————————————————————————————————
# - 表示是一个文件(普通文件,脚本文件,压缩文件,命令文件)
# s Socket,进程与进程之间的通讯协议
# c 字符设备(终端,键盘)
# b 块设备(磁盘)
# l 软连接(快捷方式)
# d 表示一个目录
- 如何更精准的判断是一个什么类型的文件?
file /home/file3.txt
/home/file3.txt: ASCII text
# file命令可以判断文件类型更准确(mp4 sh zip txt log......)
# ll是看文件类型的
三、链接文件(软连接 硬链接)
- 软连接
ln+s+源文件路径+新路径=软连接创建成功 - 例:
#准备1.1版本
mkdir /data/rainbow-v1.1
echo '123' > /data/rainbow-v1.1/1.txt
#创建软连接并检查
ln -s /data/rainbow-v1.1/ /data/rainbow
ll /data/
total 0
lrwxrwxrwx. 1 root root 19 Mar 10 15:58 rainbow -> /data/rainbow-v1.1/
drwxr-xr-x. 2 root root 19 Mar 10 15:57 rainbow-v1.1
#查看软连接
cat /data/rainbow/1.txt
123
#更新1.2版本
mkdir /data/rainbow-v1.2
echo '123456' > /data/rainbow-v1.2/1.txt
#替换版本并检查软连接
rm -f /data/rainbow && ln -s /data/rainbow-v1.2/ /data/rainbow
cat /data/rainbow/1.txt
123456
#回退版本
rm -f /data/rainbow && ln -s /data/rainbow-v1.1/ /data/rainbow
cat /data/rainbow/1.txt
123
- 硬链接与软链接区别
- ln命令创建硬链接,ln -s命令创建软链接。
- 目录不能创建硬链接,并且硬链接不可以跨越分区系统。
- 目录软链接特别常用,并且软链接支持跨越分区系统。
- 硬链接文件与源文件的inode相同,软链接文件与源文件inode不同。
- 删除源文件及其硬链接文件,整个文件会被真正的删除。
- inode和Block
四、习题记录
- 使用awk取出系统的IP地址,思路如下:
- 我要取的IP值在哪里 ifconfig yum install net-tools -y
- 如何缩小取值范围(行)
- 如何精确具体内容(列)
方式1:
ifconfig eth0 | head -2 | tail -1 | awk '{print $2}'
172.16.1.53
方式2:
ifconfig eth0 | grep "netmask" | awk '{print $2}'
172.16.1.53
方式3:
ifconfig eth0 | awk '/netmask/ {print $2}'
172.16.1.53
方式4:
ifconfig eth0 | sed -n '/netmask/p' | awk '{print $2}'
172.16.1.53
方式5:
ifconfig eth0 | sed -n '2p' | sed -r 's#(^.*et )(.*)(net.*$)#\1#g'
inet
ifconfig eth0 | sed -n '2p' | sed -r 's#(^.*et )(.*)(net.*$)#\2#g'
172.16.1.53
ifconfig eth0 | sed -n '2p' | sed -r 's#(^.*et )(.*)(net.*$)#\3#g'
netmask 255.255.255.0 broadcast 172.16.1.255