1. 怎么理解“ Linux 中一切皆文件"? Linux 是如何组织文件的?
答:(1)意思是Linux可以把硬件设备、进程、网络连接等都抽象成文件来操作。
(2)Linux用目录树结构组织文件,最顶层是根目录“/”,所有文件和目录都从根目录开始分支。
2. Linux 目录树中有哪些重要的目录及其用途?
答:/bin:存放常用命令;/etc:系统配置文件;/home:普通用户的家目录;/root:管理员的家目录;/var:经常变化的文件;/dev:设备文件;/tmp:临时文件等。
3. 如何识别一个路径名是绝对路径名还是相对路径名?
答:绝对路径从根目录“/”开始;相对路径从当前目录开始。
4. 有三个特殊目录,请列举。
答:“.” 为当前目录;“..” 为上级目录(父目录);“~” 为当前用户的家目录。
5. rm - r 和 rmdir ( rm -d )有什么区别?
答:rm -r的作用为递归删除目录及所有内容(包括子目录和文件);而rmdir(rm -d)只能删除空目录。
6. 怎么理解文件间的链接?有几种方式可以管理文件间的链接?它们有什么区别?
答:硬链接:直接指向文件的物理数据,删除原文件后硬链接仍有效。
软链接(符号链接):指向文件名,删除原文件后软链接失效。
管理方式:用ln命令创建硬链接,ln -s创建软链接。
7. 如何创建软连接和硬链接?如何查看?
答:(1)用ln命令创建硬链接,ln -s创建软链接。
(2)查看:ls -l会显示链接指向哪里。
8. 说出以下通配符的匹配项:* 、? 、??? 、 a* 、*b 、* C * 、 [ ac ]* 、 [^ abc ] 、 [ ! abc ] 。
答:“*” 匹配零字符或任意长度字符;“?” 匹配单个字符;“???” 匹配三个字符;”a*” 匹配以a开头的任意字符串;“*b” 匹配以b结尾的任意字符串;“*C*” 匹配包含 "C" 的任意字符串;“[ac]*” 匹配以 "a" 或 "c" 开头的任意字符串;“[^abc ]” 匹配一个不是 "a"、"b"、"c" 的字符;”[! abc ]” 匹配一个不是 "a"、"b"、"c" 的字符。
9. $HOSTNAME 、$( HOSNAME )、 $ ( hostname )这三个字符串的区别是什么?
答:$HOSTNAME直接引用变量 HOSTNAME 的值;
$( HOSNAME ) 是错误的写法;
$ ( hostname )为命令替换,先执行 hostname 命令,再把结果替换进去。
10. 如何防止 shell 命令参数被扩展?
答:用引号包裹参数。
11. 为防止 shell 命令参数被扩展,使用单引号和双引号有什么区别?
答:单引号完全禁止扩展;双引号允许变量扩展,但禁止通配符扩展。