RHCSA系列:如何执行文件和目录管理 - 第2部分

在这篇文章中,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意义上的词。

  1. 标配输入 (又名标准输入),默认情况下连接到键盘。 换句话说,键盘是向命令行输入命令的标准输入设备。
  2. 标准输出 (又名标准输出)是默认附着到屏幕上,该“接收”命令的输出并在屏幕上显示它们的设备。
  3. 标准错误 (又名标准错误),就是一个命令的状态信息在默认情况下,这也是画面发送到。

在下面的例子中,输出ls /var被发送到标准输出 (屏幕),以及LS / youcl的结果。 但在后一种情况下,它是标准错误时显示。

输入和输出示例

为了更容易地识别这些特殊文件,它们都被分配一个文件描述符,一个用于访问它们的抽象表示。 要了解的重要事情是,这些文件,像其他人一样,可以重定向。 这意味着您可以捕获来自文件或脚本的输出,并将其作为输入发送到另一个文件,命令或脚本。 这将允许您存储在磁盘上,例如,命令的输出以供以后处理或分析。

要重定向stdin(fd 0),stdout(fd 1)或stderr(fd 2),以下运算符可用。

重定向运算符 影响
> 将标准输出重定向到包含标准输出的文件。 如果目标文件存在,它将被覆盖。
>> 将标准输出附加到文件。
2 将标准错误重定向到包含标准输出的文件。 如果目标文件存在,它将被覆盖。
2 >> 将标准错误追加到现有文件。
&> 将标准输出和标准错误重定向到文件; 如果指定的文件存在,它将被覆盖。
< 使用指定的文件作为标准输入。
<> 指定的文件用于标准输入和标准输出。

相对于重定向,流水线通过加入竖线执行(|)命令之后和之前另一个。

记得:

  1. 重定向用于将命令的输出发送到一个文件,或将文件作为输入发送到一个命令。
  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

将命令的输出作为输入发送到另一个

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏