Linux文件系统和目录章节课后习题
- 命令rmdir -p 用来删除一串目录,比如rmdir -p /tmp/test/1/2/3。如果/tmp/1/2目录下除了3目录还有个4目录,4目录里还有5目录,那么是否可以成功删除?用命令rmdir -p 删除一个不存在的目录时,是否会报错呢 ?
rmdir 命令不可以删除非空目录
rmdir 删除不存在的目录时会提示: 删除失败,没有那个文件或目录
- 删除一个目录或文件时,在删除之前会询问我们是否删除,如果直接回车,是否能删除呢?如果输入的不是y也不是n,会发生什么呢?
直接回车不会删除。
输入其他非y和n的字符也不会删除
3.如何创建一连串的目录(如/home/1/2/3/4)?
mkdir -p /home/1/2/3/4
- 使用mv命令时,如果目标文件不是目录,但该文件存在,会怎么样?
如果存在则会询问是否覆盖
5.使用less命令查看文件/etc/passwd,搜索一下共出现了几个root?按哪个键可以向上/向下逐行移动?
搜索几个root可以使用 / | ? keywords 来查询
向上移动 k 向下移动 n
6.为什么目录必须要有x权限才可以查看目录下面的文件?
因为x权限和r权限,x权限要进入目录,相当于拥有可执行权限。
7.如果设置umask为001,那么用户默认创建的目录和文件的权限是什么样子的 ?
// 文件夹 :
777(rwxrwxrwx) - 001(--- --- --x) = 776(rwx rwx rw-)
// 文件
666 (rw- rw- rw-) - 001(--- --- --x) = 666 (rw- rw- rw-)
8.用find找出 /var/ 目录下最近一天内变更的文件,再用find找出/root/目录下一小时内变更的文件。
// find找出一天内变更的var目录下文件
find /var/ -type f -mtime -1
// find找出/root/目录下一小时内变更的文件
find /root/ -type f -mmin -60
9.用find找出/etc/目录下一年内从未变更过的文件。
find /etc/ -type f ! -mtime -365
10.为什么硬链接不能链接目录? 硬链接的文件是否占用空间大小,硬链接文件是否可以跨分区创建?
因为每个目录下面都会有一个.和..也就是说每个目录下面的子目录肯定会有它本身和它上一级目录,那么一旦设置了硬链接则会造成一种混乱,设置会导致死循环。硬链接的文件并不会占用空间大小,它只是复制了该文件的一份inode信息,硬链接文件是不可以跨分区创建的。
- Linux系统里,分别用什么符号表示: 普通文本文件、二进制文件、目录、链接文件、块设备、套接字文件以及串行端口设备?
普通文件和二进制文件用-表示,目录用d表示,链接文件(应该说是软连接)用l表示,块设备用b表示,套接字用s表示,串行端口设备用c表示。
12.如何把把dira目录以及目录下的所有文件及目录修改为所属主为user1, 所属组为users?
chown -R user1:users dira
13.Linux系统,默认目录的权限是什么?文档的权限是什么?用三个数字表示。我们可以通过修改umask的值更改目录和文档的默认权限值,我们如何通过umask的值得到默认权限值?
默认目录权限是755,文档权限是644,目录默认权限=(rwxrwxrwx)-(umask),文件默认权限=(rw-rw-rw-)-(umask)
14.修改dirb目录的权限,使所属主可读可写可执行,所属组可读可执行,其他用户不可读不可写也不可执行,使用什么命令?
chmod 750 dirb
15.如何使文件只能写不能删除? 如何使文件不能被删除、重命名、设定链接接、写入、新增数据?
chattr +a file 这样就可以使文件只能写不能删除
chattr +i file 使文件不能被删除、重命名、设定链接接、写入、新增数据
- Linux 下一个点 ‘.’ 和两个点 ‘..’ 分别表示什么?
一个点表示当前目录,两个点表示上级目录。
- cd - 表示什么含义?
cd - 表示进入到上一次所在的目录
- 用ls 查看目录或者文件时,第二列的数值表示什么意思?如果一个目录的这列的值为3,那么这个3是如何得到的?
第二列数字表示文件占用的节点(inode),如果是目录则表示子目录数量
- 如果没有locate命令,需要我们安装哪个包?初次使用locate命令会报错“can not open `/var/lib/mlocate/mlocate.db’: No such file or directory”, 需要我们如何做呢?
// 安装
yum install -y mlocate
// 第一次使用需要更新文件库
updatedb
- 当拷贝一个文件时,如果目标文件存在会问我们是否覆盖,如何做就不再询问了?
使用 /bin/cp 进行拷贝: /bin/cp a.txt b.txt
- 如何动态显示一个文件的内容,假如这个文件内容一直再增加。
tail -f file
- 更改文件读写执行权限的命令是什么?如何把一个目录下的所有文件(不含目录)权限改为644?
chmod 用来更改文件权限,find ./ -type f |xargs chmod 644
- 如何查看当前用户的家目录是什么?
echo $HOME
- 假如一个目录可以让任何人可写,那么如何能做到该目录下的文件只允许文件的所有者更改?
chmod o+wt dir
- 简述软链接和硬链接的区别?
软连接可以理解为,源文件的快捷方式,软连接文件记录的是源文件的路径,占用空间非常小。当把源文件删除后,那么软连接文件也就变成一个坏文件了,不能使用了。
硬链接和源文件的inode信息是一模一样的,可以说硬链接文件只是复制了一份源文件的inode信息,在我们看来硬链接文件和源文件没有什么区别,删除任何一个文件对方都不受影响,唯一的是少了一份inode,硬链接只能在同一个分区下创建,而软连接不受限制。硬链接文件和源文件虽然看起来像是两个文件,但是只占用一个文件的磁盘空间。
- cat a.txt 会更改a.txt的什么时间? chmod 644 a.txt 会更改a.txt的什么时间? vim呢? 直接touch呢?
cat 修改atime,
chmod 会更改ctime
vim会更改atime,ctime,mtime
touch也会更改三个时间
扩展部分
扩展部分:
- 简单描述inode是什么,不超过100字。
inode是用来记录Linux系统里面文件的属性信息的一个容器,它会记录文件名、文件的大小、属主属组、文件的权限、文件的访问时间、修改/创建时间以及更改时间(更改inode信息)等等信息。在Linux系统里,每一个文件都会有一个唯一的inode.
- 描述 suid sgid的作用。
suid:用于二进制可执行文件,使用户在执行该文件时临时拥有该文件属主的权限,典型文件为/usr/bin/passwd,它更改用户的密码时是会更改这些文件的:/etc/passwd和/etc/shadow等,这些文件默认普通用户没有写权限。
sgid:用于目录,用户在该目录下创建的文件都拥有与该目录相同的属组。