从命令行管理文件

📅 2026/7/22 12:32:24 👁️ 阅读次数 📝 编程学习
从命令行管理文件

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 命令参数被扩展,使用单引号和双引号有什么区别?

答:单引号完全禁止扩展;双引号允许变量扩展,但禁止通配符扩展。