第 3 章 从命令行管理文件
1. 怎么理解“Linux中一切皆文件”?Linux是如何组织文件的?
答:
- :Linux系统可以视为由不同功能的文件所构成的系统,不同文件的类型、权限和内容决定了该文件在Linux系统中的作用,同时这些文件也是Linux的组成部分。理解了文件也就理解Linux系统的组成和结构。
- :Linux系统将所有文件存储在文件系统中,所有文件被组织到一颗上下颠倒的树中,根目录在顶部,向下延伸出目录和子目录的分支。
2. Linux目录树中有哪些重要的目录及其用途?
答:
- /:根目录,所有目录从此延伸。
- /boot:开始启动时所需的文件。
- /dev:供系统用于访问硬件的特殊设备文件。
- /etc:系统配置文件。
- /home:普通用户的主目录。
- /root:超级用户的主目录。
- /run:自系统上次系统启动以来的所有进程的运行时数据,会在下次启动重新创建。
- /tmp:存储临时文件,会被系统定期删除。
- /var:存储系统的可变数据,保存动态变化的文件。
- /usr:存储安装的文件、共享的库和只读程序数据。
- /bin:用户命令。
- /sbin:系统管理命令。
3. 如何识别一个路径名是绝对路径名还是相对路径名?
答:观察路径名的第一个字符,如果是/则该路径名是绝对路径名。否则则是相对路径名。
4. 有三个特殊目录,请列举。
答:
- . :当前目录。
- .. :父目录。
- /proc:该目录一个虚拟文件系统,包含了系统的信息和控制接口,用于读取和修改系统运行的参数和状态。
5. rm -r 和 rmdir (rm -d) 有什么区别?
答:rm -r级联的删除非空目录,rmdir删除空目录。
6. 怎么理解文件间的链接?有几种方式可以管理文件间的链接?它们有什么区别?
答:
(1):可以将链接理解为指向同一文件的多个文件名。
(2):硬链接 和符号链接(软链接),前者只能指向常规文件且不可跨越不同文件系统,但在原始文件被删除后仍可使用;后者不仅能指向常规文件和目录文件,并且可以跨越文件系统,但在原始文件被删除之后不可使用。
7. 如何创建软连接和硬链接? 如何查看?
答:
(1):ln 文件名 链接名 创建对应文件的硬链接;ln -s 文件名/目录名 链接名 创建对应目标的软链接。
(2):使用ll或ls -l指令查看,硬链接数量显示在文件权限之后;软链接会在文件权限之前标记为l。
8. 说出以下通配符的匹配项:* 、? 、??? 、 a* 、*b、*c* 、[ac]* 、[^abc] 、[!abc]
答:
- *:由零个或更多字符组成的任何字符串。
- ?:任何一个字符。
- ???:任何三个字符组成的文件名。
- a*:任何以a开头的文件名。
- *b:任何以b结尾的文件名。
- *c*:任何包含c的文件名。
- [ac]*:任何以a或c开头的文件名。
- [^abc]、[!abc]:任何不含a或b或c的文件名。
9. $HOSTNAME 、${HOSNAME} 、$(hostname) 这三个字符串的区别是什么?
答:$HOSTNAME是尝试访问HOSTNAME变量中所存储的值;${HOSNAME}是在前者的基础上,避免了HOSTNAMEshell扩展所引起的错误;$(hostname)是命令替换,相当于在命令行中执行了hostanme指令,得到了当前的主机名。
10. 如何防止 shell 命令参数被扩展?
答:可以在开头加上“ \ ”转义字符;或为字符或字符串添上单引号或双引号。
11. 为防止 shell 命令参数被扩展,使用单引号和双引号有什么区别?
答:单引号阻止了所有的shell扩展;双引号会阻止$、\、`(反引号)、!以外的特殊字符在文本中发挥作用。