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可以向上移动。
6. 请想一想如果我们给某个目录的权限设置成rwxrw-rw-,那么其他用户能否ls该目录下的内容,能否进入到该目录下?
因为其他用户对该目录的权限是读和写,没有执行权限,所以ls里面的内容是没有问题的,但是不能进入到该目录下,因为进入该目录,就相当于在“执行”这个目录。
7. 如果设置 umask 为 001 , 那么用户默认创建的目录和文件的权限是什么样子的?
通过umask计算默认权限的公式是:
1)目录 (rwxrwxrwx)-(umask)=(目录权限),本例中umask=001=(--------x),所以目录的权限是(rwxrwxrwx)-(--------x)=(rwxrwxrw-)=776
2)文件 (rw-rw-rw-)-(umask)=(文件权限),本例中umask=001=(--------x),所以文件的权限是(rw-rw-rw-)-(--------x)=(rw-rw-rw-)=666
所以得出结论,当umask为001时,目录权限是776,文件权限是666
8. 用find找出 /var/ 目录下,最近一天内变更的文件?再用find找出 /root/ 目录下一小时内变更的文件?
find /var/ -type f -mtime -1
find /root/ -type f -mmin -60
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: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 使文件不能被删除、重命名、设定链接接、写入、新增数据
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. 当拷贝一个文件时,如果目标文件存在会问我们是否覆盖,如何做就不再询问了?
使用 /bin/cp 进行拷贝: /bin/cp a.txt b.txt
21. 如何动态显示一个文件的内容,假如这个文件内容一直再增加。
tail -f file
22. 更改文件读写执行权限的命令是什么?如何把一个目录下的所有文件(不含目录)权限改为644?
chmod 用来更改文件权限,find ./ -type f |xargs chmod 644
23. 如何查看当前用户的家目录是什么?
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,ctime,mtime, touch也会更改三个时间。
扩展部分:
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