**
第二次作业
1、描述Linux发行版的系统目录名称命名规则以及用途。
答:1. 命名规则
文件名最长255个字节
包括路径在内文件名称最长4095个字节
蓝色–>目录 绿色–>可执行文件 红色–>压缩文件 浅蓝色–>链接文件 灰色–>其他文件
颜色设置/etc/DIR_COLORS
除了斜杠和NUL,所有字符都有效.但使用特殊字符的目录名和文件不推荐使用,有些字符需要用引号来引用它们
标准Linux文件系统(如ext4),文件名称大小写敏感
例如:MAIL, Mail, mail, mAiL
2. 系统目录用途
/boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader, grub)都存放于此目录
/bin:所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序
/sbin:管理类的基本命令;不能关联至独立分区,OS启动即会用到的程序
/lib:启动时程序依赖的基本共享库文件以及内核模块文件(/lib/modules)
/lib64:专用于x86_64系统上的辅助共享库文件存放位置
/etc:配置文件目录
/home/USERNAME:普通用户家目录
/root:管理员的家目录
/media:便携式移动设备挂载点
/mnt:临时文件系统挂载点
/dev:设备文件及特殊文件存储位置
b: block device,随机访问
c: character device,线性访问
/opt:第三方应用程序的安装位置
/srv:系统上运行的服务用到的数据
/tmp:临时文件存储位置
/usr: universal shared, read-only data
bin: 保证系统拥有完整功能而提供的应用程序
sbin:
lib:32位使用
lib64:只存在64位系统
include: C程序的头文件(header files)
share:结构化独立的数据,例如doc, man等
local:第三方应用程序的安装位置
bin, sbin, lib, lib64, etc, share
/var: variable data files
cache: 应用程序缓存数据目录
lib: 应用程序状态信息数据
local:专用于为/usr/local下的应用程序存储可变数据
lock: 锁文件
log: 日志目录及文件
opt: 专用于为/opt下的应用程序存储可变数据
run: 运行中的进程相关数据,通常用于存储进程pid文件
spool: 应用程序数据池
tmp: 保存系统两次重启之间产生的临时数据
/proc: 用于输出内核与进程信息相关的虚拟文件系统
/sys:用于输出当前系统上硬件设备相关信息虚拟文件系统
/selinux: security enhanced Linux,selinux相关的安全策略等信息的存储位置
2、描述文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息?
1.文件的元数据是指文件的属性、大小、创建时间、访问时间、属主属组等信息.
2.三个时间戳:
access time:访问时间,简写atime,读写文件内容
modify time: 修改时间,mtime,改变文件内容(数据)
change time:改变时间,ctime,元数据发生改变
3.修改文件的时间戳:touch
touch - change file timestamps
-c: 指定的文件路径不存在时不予创建;
-a: 仅修改access time;
-m:仅修改modify time;
-t STAMP
3、总结软连接和硬连接区别,并用实例操作说明。
软链接
ln -s 原文件 目标文件
特征:1、相当于windows的快捷方式
2、符号链接,所以链接文件大小都很小
3、当运行软连接的时候,会根据链接指向找到真正的文件,然后执行
4、所有链接文件的权限都是777,而真正的权限是由指向的那个文件决定的
5、原文件丢失后,软链接无法访问,会报找不到的错误
6、ls -al ,软连接后面箭头执行的时源文件
硬链接
ln 源文件 目标文件
特征:1、原文件和链接文件的属性完全一样
2、链接文件和源文件的关系类似于:复制+同步更新
3、当原文件丢失,硬链接文件还可以访问
4、不能跨分区,不能针对目录使用
5、原理:原文件和硬链接文件的节点相同的,1个文件名只能对应1个节点号。但是1个节点号能对应多个文件名。所以,他们的属性完全相同,并且修改了其中一个的内容另外一个也会跟着修改。
实例如下:
创建a文件的软连接b,并查看a和软链接文件a.link的inodes、权限、大小,如下:
[root@VM_0_15_centos ~]# ln -s a a.link
[root@VM_0_15_centos ~]# ll -i
total 6728
394681 -rw-r–r-- 1 root root 6888896 Nov 10 21:42 a
394522 lrwxrwxrwx 1 root root 1 Nov 10 21:45 a.link -> a
从命令的执行结果上看,结论如下:
1、a文件的inode号为394681,a.link文件inode为394522,inode号不一致。
2、符号链接,所以链接文件大小都很小。a.link大小为1bit,而a文件的大小为6.6M。
3、所有a.link文件的权限都是777,而真正的权限是由指向的那个文件决定的
删除文件a,访问a.link链接文件
[root@VM_0_15_centos ~]# mv a a.bak
[root@VM_0_15_centos ~]# cat a.link
cat: a.link: No such file or directory
总结:原文件丢失后,软链接无法访问,会报找不到文件的错误
创建a文件的硬链接a.hard,查看a和软链接文件a.link的inodes、权限、大小等元数据。
[root@VM_0_15_centos ~]# ln a a.hard
[root@VM_0_15_centos ~]# ll -i
total 13456
394681 -rw-r–r-- 3 root root 6888896 Nov 10 21:42 a
394681 -rw-r–r-- 3 root root 6888896 Nov 10 21:42 a.hard
394522 lrwxrwxrwx 1 root root 1 Nov 10 21:45 a.link -> a
总结:原文件和链接文件的属性完全一样,元数据完全一样。
删除a文件后,硬链接文件a.hard的情况
[root@VM_0_15_centos ~]# mv a a.bak
[root@VM_0_15_centos ~]# ll -i
total 13456
394699 -rw-r–r-- 2 root root 6888896 Nov 10 22:39 a.bak
394699 -rw-r–r-- 2 root root 6888896 Nov 10 22:39 a.hard
394522 lrwxrwxrwx 1 root root 1 Nov 10 21:45 a.link -> a
[root@VM_0_15_centos ~]# tail a.hard
999991
999992
999993
999994
999995
999996
999997
999998
999999
1000000
总结:当原文件丢失,硬链接文件还可以访问。
[root@VM_0_15_centos ~]# echo “1”>>a.bak
[root@VM_0_15_centos ~]# tail -1 a.hard
1
总结:链接文件和源文件的关系类似于:复制+同步更新
综合以上实例,软连接和硬链接的区别总结如下:
软链接和硬链接的区别:在linux的文件系统中,保存在磁盘分区中的文件不管事什么类型都给它分配一个编号,称为索引节点号inode。具体如下:
1、软连接,其实就是新建立一个文件,这个文件就是专门用来指向别的文件的。软连接的inode跟原文件的inode是不一致的
2、硬链接是不会建立inode。他只是在文件原里的inode link count域再增加1而已,也因此硬链接是不可以跨越文件系统的。
3、硬链接是一个文件别名。
4、软链接可以跨文件系统,硬链接不可以
5、软链接可以对一个不存在的文件名进行链接,硬链接不行。
6、软链接可以对目录进行连接,硬连接不可以
7、两种链接都可以通过ln来创建,ln默认创建的是硬链接
8、使用-s开关可以创建软链接。
4、Linux上的文件管理类命令都有哪些,其常用的使用方法以及相关实例演练。
创建文件:touch
创建文件夹:mkdir
复制:cp
移动:mv
删除:rm
5、复制/etc/profile至/tem/目录,用查找替换命令删除/tem/profile文件中的首行空字符。
cp /etc/profile /tmp/
cat /tmp/profile |tr -d ’
6、在vim中设置tab缩进为4个字符
编辑一个文件,进入之后一次输入 [esc] --> [ : ] --> [ set ts=4 ]