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 ?
2. linux set uid ,set gid,sticky bit权限详细说明
3. atime, ctime, mtime 三个时间比较、区别
4. linux文件系统扩展阅读
5. ext3 与 ext4文件系统的区别
6. linux acl 功能介绍
7. 什么是selinux ?
在阿铭的论坛里,也有几篇帖子需要您了解一下,也许将来在日常工作中,你会用到哦:
1. 利用inode删除指定文件
文中的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 查找某个时间段的文件
3. 创建指定日期的文件
4. 用find时排除某些目录或者文件
5. 为你的linux增加自定义PATH
6. linux下文件的特殊权限s和t
7. locate 命令报错
8. find -name 查找多个文件
find / -name 1.txt -o -name 2.txt -o -name 3.txt ...
9. find 查找指定权限的文件
学习了以上内容后,阿铭希望您能够按您的理解来回答一下下面的问题(这些问题您很有可能在将来的面试中遇到):
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