系列文章目录
第一章 红帽企业Linux入门
第二章 访问命令行
第三章 从命令行管理文件(上)
目录
rm -r 和 rmdir(rm -d) 有什么区别?
rm -r
和 rmdir
都用于删除目录。
rm -r
命令用于删除子目录及其内容,而 rmdir
(rm -d)只能删除空目录。
怎么理解文件间的链接?有几种方式可以管理文件间的链接?它们有什么区别?
文件链接可以使多个文件名引用同一个文件。有两种方式可以创建指向同一个文件的多个名称,分别是硬链接和软链接(符号链接)。
在Linux的文件系统中,保存在磁盘分区中的文件都被分配一个编号,称为索引节点号inode 。每个文件都有自己的inode。软链接是创建一个新文件,它有新的inode,新文件专门用来指向原文件。而硬链接并不会建立新的inode。此外,软链接可以指向目录和特殊文件并且可以跨文件系统,而硬链接只能指向常规文件并且不能跨文件系统。同时,若原文件被删除则软链接失效,而硬链接依旧可用。
如何创建软连接和硬链接? 如何查看?
使用 ln
命令创建硬链接,ln -s
创建软链接。
使用ls -l
命令以长列表形式显示文件目录信息,里面包括文件的硬链接数。若文件类型显示为l
,那么该文件是软链接。
说出以下通配符的匹配项:* 、 ? 、??? 、 a* 、 *b、*c* 、[ac]* 、[^abc] 、 [!abc]
* 匹配由零个或多个字符组成的任意字符串
? 匹配任意一个字符
??? 匹配任意三个字符
a* 匹配以a字符开头的字符串
*b 匹配以b字符结尾的字符串
c 匹配包含c字符的字符串
[ac]*匹配以a字符或b字符开头的字符串
[^abc]和[!abc]一样,匹配不包含abc中任意一个字符的字符串
$HOSTNAME 、${HOSNAME} 、$(hostname) 这三个字符串的区别是什么?
$HOSTNAME 和 ${HOSNAME}是一样的,都是变量替换
,会用内存中存储的数据替换掉变量。而$(hostname)是$符加小括号,代表命令替换
,会用命令的输出替换命令本身。
如何防止 shell 命令参数被扩展?
为字符和字符串加引号或转义字符
为防止shell 命令参数被扩展,使用单引号和双引号有什么区别?
单引号将阻止所有shell扩展。
而双引号可阻止大部分shell扩展,但依然允许变量和命令替换。