在这篇文章中,RHCSA第2部分 :文件和目录管理,我们将审查所需的系统管理员的一天到一天的任务的一些基本技能。
RHCSA:执行文件和目录管理 - 第2部分
创建,删除,复制和移动文件和目录
文件和目录管理是每个系统管理员都应该拥有的关键能力。 这包括从头创建/删除文本文件(每个程序的配置的核心)和目录(您将组织文件和其他目录)的能力,以及找出现有文件的类型。
该touch命令可以用来不仅要创造空文件,也更新现有文件的访问和修改时间。
Touch命令示例
您可以使用file [filename]
,以确定文件的类型(这会派上用场启动你喜欢的文本编辑器来编辑它之前)。
文件命令示例
和rm [filename]
将其删除。
rm命令示例
至于目录,也可以创建现有路径的目录里面用mkdir [directory]
或者创建拥有完整路径mkdir -p [/full/path/to/directory]
。
mkdir命令示例
当涉及到删除目录,你需要确保它们是空发出前rmdir [directory]
命令,或使用更强大(小心轻放!) rm -rf [directory]
。 这最后一个选项将强制递归删除[directory]
及其所有内容-所以你要自己承担风险使用它。
输入和输出重定向和流水线
命令行环境提供了两个非常有用的功能,它允许输入和命令的输出和向文件重定向,并分别发送到另一个命令的输出,称为重定向和流水线。
为了理解这两个重要的概念,我们必须首先理解三个最重要的I / O(输入和输出)流(或序列)的字符,这是事实上特殊的文件,在* nix意义上的词。
- 标配输入 (又名标准输入),默认情况下连接到键盘。 换句话说,键盘是向命令行输入命令的标准输入设备。
- 标准输出 (又名标准输出)是默认附着到屏幕上,该“接收”命令的输出并在屏幕上显示它们的设备。
- 标准错误 (又名标准错误),就是一个命令的状态信息在默认情况下,这也是画面发送到。
在下面的例子中,输出ls /var
被发送到标准输出 (屏幕),以及LS / youcl的结果。 但在后一种情况下,它是标准错误时显示。
输入和输出示例
为了更容易地识别这些特殊文件,它们都被分配一个文件描述符,一个用于访问它们的抽象表示。 要了解的重要事情是,这些文件,像其他人一样,可以重定向。 这意味着您可以捕获来自文件或脚本的输出,并将其作为输入发送到另一个文件,命令或脚本。 这将允许您存储在磁盘上,例如,命令的输出以供以后处理或分析。
要重定向stdin(fd 0),stdout(fd 1)或stderr(fd 2),以下运算符可用。
重定向运算符 | 影响 |
> | 将标准输出重定向到包含标准输出的文件。 如果目标文件存在,它将被覆盖。 |
>> | 将标准输出附加到文件。 |
2 | 将标准错误重定向到包含标准输出的文件。 如果目标文件存在,它将被覆盖。 |
2 >> | 将标准错误追加到现有文件。 |
&> | 将标准输出和标准错误重定向到文件; 如果指定的文件存在,它将被覆盖。 |
< | 使用指定的文件作为标准输入。 |
<> | 指定的文件用于标准输入和标准输出。 |
相对于重定向,流水线通过加入竖线执行(|)
命令之后和之前另一个。
记得:
- 重定向用于将命令的输出发送到一个文件,或将文件作为输入发送到一个命令。
- 流水线用于将命令的输出发送到另一个命令的输入。
重定向和流水线的示例
示例1:将命令的输出重定向到文件
有时你需要遍历文件列表。 为此,您可以先将该列表保存到文件,然后逐行读取该文件。 虽然确实可以直接迭代ls的输出,但此示例用于说明重定向。
# ls -1 /var/mail > mail.txt
将命令的输出重定向到文件
示例2:将stdout和stderr重定向到/ dev / null
如果我们要防止标准输出和标准错误,屏幕上显示,我们可以重定向都文件描述符/dev/null
。 注意当为同一命令实现重定向时输出如何改变。
# ls /var /youcl # ls /var/ /youcl &> /dev/null
将stdout和stderr输出重定向到/ dev / null
示例3:使用文件作为命令的输入
虽然经典语法cat命令如下。
# cat [file(s)]
您还可以使用正确的重定向运算符发送文件作为输入。
# cat < mail.txt
cat命令示例
示例4:将命令的输出发送到另一个命令的输入
如果您有一个大的目录或进程列表,并希望能够一目了然地找到某个文件或进程,您将需要将列表管道到grep。
注意我们在下面的例子中使用管道。 第一个查找所需的关键字,而第二个将消除实际grep command
从结果。 此示例列出与apache用户相关联的所有进程。
# ps -ef | grep apache | grep -v grep
将命令的输出作为输入发送到另一个