首页 > 代码库 > 第七章 Linux文件和目录相关的知识 作业题

第七章 Linux文件和目录相关的知识 作业题

1. rmdir -p  用来删除一串目录,比如 rmdir  -p /tmp/test/1/2/3  如果 /tmp/1/2/ 下面除了3目录外还有个4目录,4目录里还有个5目录,那么是否可以成功删除?   rmdir -p  删除一个不存在的目录时是否报错呢?
rmdir -p 不能成功删除非空目录,rmdir -p 删除一个不存在的目录时会报错,提示“没有那个文件或目录”

2. 删除一个目录或者文件时,在删除之前会先问一下我们是否删除,如果直接回车,是否删除呢?如果输入的不是‘y‘ 也 不是‘n‘ 会发生什么?
直接回车不会删除,如果输入的不是‘y‘ 也 不是‘n‘也不会删除

3. 我想创建一串目录时如何建,比如/home/1/2/3/4.
mkdir -p /home/1/2/3/4
4. 使用mv命令时,如果目标文件为非目录且存在的文件,会怎么样?
 会提示,是否要覆盖那个文件

5. 使用less  查看文件/etc/passwd  搜索一下一共出现几个‘root‘, 按哪个键可以向上/向下一行一行的移动?
  一共出现了4次‘root‘,按n可以向下一行一行的移动,按N可以向上移动。   

   less /etc/passwd |grep root

6. 请想一想如果我们给某个目录的权限设置成rwxrw-rw-,那么其他用户能否ls该目录下的内容,能否进入到该目录下?
  因为其他用户对该目录的权限是读和写,没有执行权限,所以ls里面的内容是没有问题的,但是不能进入到该目录下,因为进入该目录,就相当于在“执行”这个目录。   x权限

7. 如果设置 umask 为 001 , 那么用户默认创建的目录和文件的权限是什么样子的?
这时目录权限776;文件权限666
8. 用find找出 /var/ 目录下,最近一天内变更的文件?再用find找出 /root/ 目录下一小时内变更的文件?
 find /var/ -type f -mtime -1   ; 

 find /root/ -type f -mmin -24
9. 用find找出 /etc/ 目录下,一年内从未变更过的文件?
  find /etc/ -type f ! -mtime 365
10. 为什么硬链接不能链接目录? 硬链接的文件是否占用空间大小,硬链接文件是否可以跨分区创建?
 因为每个目录下面都会有一个.和..也就是说每个目录下面的子目录肯定会有它本身和它上一级目录,那么一旦设置了硬链接则会造成一种混乱,设置会导致死循环。硬链接的文件并不会占用空间大小,它只是复制了该文件的一份inode信息,硬链接文件是不可以跨分区创建的。                                
11. Linux系统里,分别用什么符号表示: 普通文本文件、二进制文件、目录、链接文件、块设备、套接字文件以及串行端口设备?
—  普通文件和二进制文件,

d   表示目录

l    表示软连接

b   块设备

s    套接字

c   串行端口设备


12. 如何把把dira目录以及目录下的所有文件及目录修改为所属主为user1, 所属组为users?
 chown -R user1:user dira
13. Linux系统,默认目录的权限为什么?文档的权限是什么?用三个数字表示。我们可以通过修改umask的值更改目录和文档的默认权限值,我们如何通过umask的值得到默认权限值?
默认目录权限是755  ,文档权限是644  


14. 修改dirb目录的权限,使所属主可读可写可执行,所属组可读可执行,其他用户不可读不可写也不可执行,使用什么命令?
  chmod 750 dirb
15. 如何使文件只能写不能删除? 如何使文件不能被删除、重命名、设定链接接、写入、新增数据?
  chattr +a file  文件只能写不能删除

  chattr +i file  文件不能被删除、重命名、设定链接接、写入、新增数据

16. Linux 下一个点 ‘.‘ 和两个点 ‘..‘ 分别表示什么?
   .  当前目录

   .. 上级目录
17.  cd -  表示什么含义?
  cd -  返回上次所在目录
18.  用ls 查看目录或者文件时,第二列的数值表示什么意思?如果一个目录的这列的值为3,那么这个3是如何得到的?
    第二列数值表示有几个文件使用相同的inode,如果一个目录的这列为3,我们可以通过使用 ls -al dir/ |grep ‘^d‘|wc -l 这条命令得到 

19. 如果没有locate命令,需要我们安装哪个包?初次使用locate命令会报错“can not open `/var/lib/mlocate/mlocate.db‘: No such file or directory”, 需要我们如何做呢?
没有locate命令,需要安装mlocate包,yum install -y mlocate, 初次使用报错,是因为对应的数据库文件还没有生成,手动生成的命令是:updatedb

20. 当拷贝一个文件时,如果目标文件存在会问我们是否覆盖,如何做就不再询问了?
 使用cp的绝对路径 /bin/cp a.txt b.txt
21. 如何动态显示一个文件的内容,假如这个文件内容一直再增加。
   tail -f file
22. 更改文件读写执行权限的命令是什么?如何把一个目录下的所有文件(不含目录)权限改为644?
  chmod ;

  find ./ -type f |xargs chmod 644
23. 如何查看当前用户的家目录是什么?
 pwd 或echo $HOME

24. 假如一个目录可以让任何人可写,那么如何能做到该目录下的文件只允许文件的所有者更改
   chmod o+wt dir

25. 简述软链接和硬链接的区别?
软连接可以理解为,源文件的快捷方式,软连接文件记录的是源文件的路径,占用空间非常小。当把源文件删除后,那么软连接文件也就变成一个坏文件了,不能使用了。
硬链接和源文件的inode信息是一模一样的,可以说硬链接文件只是复制了一份源文件的inode信息,在我们看来硬链接文件和源文件没有什么区别,删除任何一个文件对方都不受影响,唯一的是少了一份inode,硬链接只能在同一个分区下创建,而软连接不受限制。硬链接文件和源文件虽然看起来像是两个文件,但是只占用一个文件的磁盘空间。

26. cat a.txt 会更改a.txt的什么时间?  chmod 644 a.txt 会更改a.txt的什么时间? vim呢? 直接touch呢?
 cat 会更改atime(访问时间)

 chmod 会更改ctime 

 vim 更改 atime 和 mtime 、ctime

touch 更改 atime 和 mtime 、ctime
等您做完了这几道题外,还请您了解一下下面的知识点:

1. 什么是inode ?  http://www.lishiming.net/thread-5473-1-1.html

2. linux set uid ,set gid,sticky bit权限详细说明
http://www.lishiming.net/thread-5474-1-1.html

3. atime, ctime, mtime 三个时间比较、区别
http://www.lishiming.net/thread-591-1-1.html

4. linux文件系统扩展阅读 http://www.lishiming.net/thread-5475-1-1.html

5. ext3 与 ext4文件系统的区别 http://www.lishiming.net/thread-5476-1-1.html

6. linux acl 功能介绍 http://www.lishiming.net/thread-5477-1-1.html

7. 什么是selinux ? http://www.lishiming.net/thread-5478-1-1.html

在阿铭的论坛里,也有几篇帖子需要您了解一下,也许将来在日常工作中,你会用到哦:

1. 利用inode删除指定文件  http://www.lishiming.net/thread-5331-1-1.html
文中的xargs命令会在后续章节中讲解。
有时,你会有这样的困惑,删除某个文件删除不了。 这可能是因为文件名为中文,在linux命令行下不能正常显示。
如: ls 看当前目录下有文件名为这样的文件
-=?+.jpg  +-?+.jpg
此时使用ls rm mv等命令都会失效,怎么办?
先查其inode数。
ls -i 
6340540 -=?+.jpg     6340539 +-?+.jpg
左边为inode数。删除办法为
find . -inum 6340540 |xargs rm
find . -inum  6340539|xargs rm

2. find 查找某个时间段的文件  http://www.lishiming.net/thread-5285-1-1.html

3. 创建指定日期的文件  http://www.lishiming.net/thread-5286-1-1.html

4.   用find时排除某些目录或者文件   http://www.lishiming.net/thread-1202-1-1.html

5. 为你的linux增加自定义PATH  http://www.lishiming.net/thread-907-1-1.html

6. linux下文件的特殊权限s和t  http://www.lishiming.net/thread-617-1-2.html

7. locate 命令报错 http://www.lishiming.net/thread-332-1-2.html

8. find -name 查找多个文件 http://www.lishiming.net/thread-1324-1-1.html
  find  / -name 1.txt -o -name 2.txt -o -name 3.txt ...

9. find 查找指定权限的文件 http://www.lishiming.net/thread-5496-1-1.html


学习了以上内容后,阿铭希望您能够按您的理解来回答一下下面的问题(这些问题您很有可能在将来的面试中遇到):

1. 简单描述inode是什么,不超过100字。
inode是用来记录Linux系统里面文件的属性信息的一个容器,它会记录文件名、文件的大小、属主属组、文件的权限、文件的访问时间、修改/创建时间以及更改时间(更改inode信息)等等信息。在Linux系统里,每一个文件都会有一个唯一的inode.

2. 描述 suid sgid的作用。
suid:用于二进制可执行文件,使用户在执行该文件时临时拥有该文件属主的权限,典型文件为/usr/bin/passwd,它更改用户的密码时是会更改这些文件的:/etc/passwd和/etc/shadow等,这些文件默认普通用户没有写权限。
sgid:用于目录,用户在该目录下创建的文件都拥有与该目录相同的属组。

3. linux中的atime, ctime, mtime 如何区分呢?
atime为文件最后的访问时间;
ctime为最后一次更改inode信息的时间,比如更改文件名、文件权限、写入新内容(改变了文件大小)等就会更改这个时间;
mtime为最后一次更改文件内容的时间;

4. 简述selinux是什么?
selinux是RedHat/CentOS系统特有的安全机制,它提供强制访问控制,限制进程只能访问那些在它的任务中所需要文件。SELinux是2.6版本的Linux内核中提供的强制访问控制(MAC)系统。对于目前可用的 Linux安全模块来说,SELinux 是功能最全面,而且测试最充分的。SELinux 在类型强制服务器中合并了多级安全性或一种可选的多类策略,并采用了基于角色的访问控制概念。

5. 查找当前目录设置过set_uid的文件,为了使该题更加简单,设定要查找的文件权限为4644,请参考上面的9。

find . -perm  4644

第七章 Linux文件和目录相关的知识 作业题