Himanshu Arora 发布的文章

Linux 小白,若对系统管理有兴趣,或想成为资深用户,就需要对命令行有扎实的功底。你需要知道很多命令,其中一个就是 uptime。文本我们会通过一些容易理解的案例来讲解一下这个命令的基本用法。

再开始前有必要说一下,文中的所有案例都在 Ubuntu 16.04 上测试过了。

Linux uptime 命令

望名生义,uptime 命令告诉你系统 启动 up 了(运行了)多长时间。这是语法:

uptime [options]

这个工具的 man 页是这么说的:

uptime会在一行中显示下列信息:当前时间、系统运行了多久时间、当前登录的用户有多少,以及前 1、5 和 15 分钟系统的平均负载。

下面这些问答形式的案例应该会让你对 uptime 命令有更好的了解。

Q1、如何使用 uptime 命令

uptime 的基础用法很简单 —— 只需要输入命令名称然后按下回车就行。

uptime

这是输出:

How to use the uptime command

这里,第一项是当前时间,up 表示系统正在运行,5:53 是系统启动的总时间,最后是系统的 负载 load 信息。若你想深入了解,这里是 uptime man 页中关于最后一项信息的说明:

系统负载是处于 可运行 runnable 不可中断 uninterruptable 状态的进程的平均数。可运行状态的进程要么正在使用 CPU 要么在等待使用 CPU。 不可中断状态的进程则正在等待某些 I/O 访问,例如等待磁盘 IO。

有三个时间间隔的平均值。负载均值的意义根据系统中 CPU 的数量不同而不同,负载为 1 对于一个只有单 CPU 的系统来说意味着负载满了,而对于一个拥有 4 CPU 的系统来说则意味着 75% 的时间里都是空闲的。

Q2、如何以更人性化的格式现实时间

若你只想知道系统运行了多长时间,而且希望以更人性化的格式来显示,那么可以使用 -p 项。

uptime -p

这是输出:

make the tool show up time in pretty format

Q3、如何让 uptime 显示系统启动的日期/时间

你也可以指定 uptme 显示系统开始运行的时间和日期。方法是使用 -s 命令项。

uptime -s

这是输出:

make uptime display date/time since when system is up

Q4、如何获取版本信息和帮助信息

-V 获取版本信息,-h 获取帮助信息。

uptime -V

uptime -h

How to get version information and help

结论

你可以看到,uptime 命令很容易理解也很容易使用。它没有提供很多的功能(命令选项也很少)。这里已经覆盖了它的所有功能了。因此只需要练习一下这些选项你就能在日常工作中使用它了。如果需要的话,你也可以查看它的 man 页


via: https://www.howtoforge.com/linux-uptime-command/

作者:Himanshu Arora 译者:lujun9972 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

在 Linux 命令行上删除文件和目录,我们已经讨论过 rm 命令 的使用。然而,这里有另一个相关的命令行工具,专门针对目录的删除。这是所指的工具就是 rmdir,本教程中,我们将根据一些简单的实例来讨论它。

Linux rmdir 命令

见名知意,rmdir(remove directory) 命令专门针对删除目录,不过通常目录内空空如也。如下是它的语法:

rmdir [OPTION]... DIRECTORY...

下面是 man 文档的说明:

如目录为空,则删除之。

在理解此程序如何工作,下面的 Q&A 风格的案例可能会给您带来更好的灵感。

Q1. rmdir 命令如何工作?

这非常直接,只需将目录名作为输入参数传递给它。

比如:

rmdir test-dir

rmdir 命令如何工作

Q2. 如何让 rmdir 忽略非空目录?

通常情况下,rmdir 命令会在您删除非空目录时抛出一个错误。然而,如果需要的话,您可以使用 --ignore-fail-on-non-empty 选项,忽略它。

比如说:

如何让 rmdir 忽视非空目录

Q3. 如何让 rmdir 命令移除父目录?

mkdir 一样,您可以通过要求 rmdir 命令在其父目录执行操作。这意味着,您可以一次性删除目录和目录的上级目录。这个功能可以通过 -p 命令选项实现。

比如,下面的命令将会删除 “test” 和 “test-dir” 目录。

rmdir -p test/test-dir/

注意: 欲此操作生效,所有被删除的父目录都不应该包含要被删除的空目录之外的任何目录。

Q4. rmdir 和 rm -r 有何区别?

如果还有印象,您还可以通过提供 -r 选项的 rm 命令删除目录。那 rmdirrm -r 区别何在?rmdir 仅对空目录生效 —— 您没有办法使用 rmdir 删除非空目录。

因此,rmdir 在删除需要检测目录是否为空的情况下,是一个有效的工具。

总结

相信您会认同,rmdir 并不是一个难以理解和使用的复杂命令。除此之外,它仅提供少量命令行选项。在此,我们几乎讨论了所有的选项,如果您想掌握的更好,练习在本教程提到的案例即可。关于 rmdir这里另有 man 文档,备您不时之需。


via: https://www.howtoforge.com/linux-rmdir-command/

作者:Himanshu Arora 译者:CYLeft 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

当你使用命令行的时候,无论什么时候,你都位于一个目录中,它告诉了命令行当前所位于的完整目录。在 Linux 中,你可以使用 rm 命令删除目录,但是首先,你需要使用 mkdir 命令来创建目录。在这篇教程中,我将使用一些易于理解的例子来讲解这个工具的基本用法。

在开始之前,值得一提的是,这篇教程中的所有例子都已经在 Ubuntu 16.04 LTS 中测试过。

Linux mkdir 命令

正如上面所提到的,用户可以使用 mkdir 命令来创建目录。它的语法如下:

mkdir [OPTION]... DIRECTORY...

下面的内容是 man 手册对这个工具的描述:

如果目录还不存在,则创建之。

下面这些 Q&A 式的例子将能够帮助你更好的理解 mkdir 这个命令是如何工作的。

Q1. 如何使用 mkdir 命令创建目录?

创建目录非常简单,你唯一需要做的就是把你想创建的目录的名字跟在 mkdir 命令的后面作为参数。

mkdir [dir-name]

下面是一个简单例子:

mkdir test-dir

Q2. 如何确保当父目录不存在的时候,同时创建父目录?

有时候,我们需要使用一条 mkdir 命令来创建一个完整的目录结构,这时候,你只需要使用 -p 这个命令行选项即可。

比如,你想创建目录 dir1/dir2/dir3,但是,该目录的父目录都不存在,这时候,你可以像下面这样做:

mkdir -p dir1/dir2/dir3

How to make sure parent directories (if non-existent) are created

Q3. 如何在创建目录时自定义权限?

默认情况下,mkdir 命令创建目录时会把权限设置为 rwx, rwx, r-x

How to set permissions for directory being created

但是,如果你想自定义权限,那么你可以使用 -m 这一命令行选项。

mkdir -m command option

Q4. 如何使 mkdir 命令显示操作细节?

如果你希望 mkdir 命令显示它所执行的操作的完整细节,那么你可以使用 -v 这一命令行选项。

mkdir -v [dir]

下面是一个例子:

How to make mkdir emit details of operation

结论

你已经看到,mkdir 是一个非常简单,易于理解和使用的命令。学习这一命令不会遇到任何屏障。在这篇教程中,我们讨论到了它的绝大部分命令行选项。记得练习这些命令,并在日复一日的工作中使用这些命令。如果你想了解关于这一命令的更过内容,请查看它的 man 手册。


via: https://www.howtoforge.com/linux-mkdir-command/

作者:Himanshu Arora 译者:ucasFL 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

在命令行工作时,有时您可能想要知道一个文件中的单词数量、字节数、甚至换行数量。如果您正在寻找这样做的工具,您会很高兴地知道,在 Linux 中,存在一个命令行实用程序,它被称为 wc ,它为您完成所有这些工作。在本文中,我们将通过简单易懂的例子来讨论这个工具。

但是在我们开始之前,值得一提的是,本教程中提供的所有示例都在 Ubuntu 16.04 上进行了测试。

Linux wc 命令

wc 命令打印每个输入文件的新行、单词和字节数。以下是该命令行工具的语法:

wc [OPTION]... [FILE]...

以下是 wc 的 man 文档的解释:

为每个文件打印新行、单词和字节数,如果指定多于一个文件,也列出总的行数。单词是由空格分隔的非零长度的字符序列。如果没有指定文件,或当文件为 `-`,则读取标准输入。

下面的 Q&A 样式的示例将会让您更好地了解 wc 命令的基本用法。

注意:在所有示例中我们将使用一个名为 file.txt 的文件作为输入文件。以下是该文件包含的内容:

hi
hello
how are you
thanks.

Q1. 如何打印字节数

使用 -c 命令选项打印字节数.

wc -c file.txt

下面是这个命令在我们的系统上产生的输出:

如何打印字节数

文件包含 29 个字节。

Q2. 如何打印字符数

要打印字符数,请使用 -m 命令行选项。

wc -m file.txt

下面是这个命令在我们的系统上产生的输出:

如何打印字符数

文件包含 29 个字符。

Q3. 如何打印换行数

使用 -l 命令选项来打印文件中的新行数:

wc -l file.txt

这里是我们的例子的输出:

如何打印换行数

Q4. 如何打印单词数

要打印文件中的单词数量,请使用 -w 命令选项。

wc -w file.txt

在我们的例子中命令的输出如下:

如何打印字数

这显示文件中有 6 个单词。

Q5. 如何打印最长行的显示宽度或长度

如果您想要打印输入文件中最长行的长度,请使用 -l 命令行选项。

wc -L file.txt

下面是在我们的案例中命令产生的结果:

如何打印最长行的显示宽度或长度

所以文件中最长的行长度是 11。

Q6. 如何从文件读取输入文件名

如果您有多个文件名,并且您希望 wc 从一个文件中读取它们,那么使用-files0-from 选项。

wc --files0-from=names.txt

如何从文件读取输入文件名

如你所见 wc 命令,在这个例子中,输出了文件 file.txt 的行、单词和字符计数。文件名为 file.txt 的文件在 name.txt 文件中提及。值得一提的是,要成功地使用这个选项,文件中的文件名应该用 NUL 终止——您可以通过键入Ctrl + v 然后按 Ctrl + Shift + @ 来生成这个字符。

结论

正如您所认同的一样,从理解和使用目的来看, wc 是一个简单的命令。我们已经介绍了几乎所有的命令行选项,所以一旦你练习了我们这里介绍的内容,您就可以随时在日常工作中使用该工具了。想了解更多关于 wc 的信息,请参考它的 man 文档


via: https://www.howtoforge.com/linux-wc-command-explained-for-beginners-6-examples/

作者:Himanshu Arora 译者:stevenzdg988 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

删除文件和复制/移动文件一样,都是很基础的操作。在 Linux 中,有一个专门的命令 rm,可用于完成所有删除相关的操作。在本文中,我们将用些容易理解的例子来讨论这个命令的基本使用。

但在我们开始前,值得指出的是本文所有示例都在 Ubuntu 16.04 LTS 中测试过。

Linux rm 命令概述

通俗的讲,我们可以认为 rm 命令是用于删除文件和目录的。下面是此命令的语法:

rm [选项]... [要删除的文件/目录]...

下面是命令使用说明:

GUN 版本 rm 命令的手册文档。rm 删除每个指定的文件,默认情况下不删除目录。

当删除的文件超过三个或者提供了选项 -r-R--recursive(LCTT 译注:表示递归删除目录中的文件)时,如果给出 -I(LCTT 译注:大写的 I)或 --interactive=once 选项(LCTT 译注:表示开启交互一次),则 rm 命令会提示用户是否继续整个删除操作,如果用户回应不是确认(LCTT 译注:即没有回复 y),则整个命令立刻终止。

另外,如果被删除文件是不可写的,标准输入是终端,这时如果没有提供 -f--force 选项,或者提供了 -i(LCTT 译注:小写的 i) 或 --interactive=always 选项,rm 会提示用户是否要删除此文件,如果用户回应不是确认(LCTT 译注:即没有回复 y),则跳过此文件。

下面这些问答式例子会让你更好的理解这个命令的使用。

Q1. 如何用 rm 命令删除文件?

这是非常简单和直观的。你只需要把文件名(如果文件不是在当前目录中,则还需要添加文件路径)传入给 rm 命令即可。

(LCTT 译注:可以用空格隔开传入多个文件名称。)

rm 文件1 文件2 ... 

如:

rm testfile.txt

How to remove files using rm command

Q2. 如何用 rm 命令删除目录?

如果你试图删除一个目录,你需要提供 -r 选项。否则 rm 会抛出一个错误告诉你正试图删除一个目录。

(LCTT 译注:-r 表示递归地删除目录下的所有文件和目录。)

rm -r [目录名称]

如:

rm -r testdir

How to remove directories using rm command

Q3. 如何让删除操作前有确认提示?

如果你希望在每个删除操作完成前都有确认提示,可以使用 -i 选项。

rm -i [文件/目录]

比如,你想要删除一个目录“testdir”,但需要每个删除操作都有确认提示,你可以这么做:

rm -r -i testdir

How to make rm prompt before every removal

Q4. 如何让 rm 忽略不存在的文件或目录?

如果你删除一个不存在的文件或目录时,rm 命令会抛出一个错误,如:

Linux rm command example

然而,如果你愿意,你可以使用 -f 选项(LCTT 译注:即 “force”)让此次操作强制执行,忽略错误提示。

rm -f [文件...]

How to force rm to ignore nonexistent files

Q5. 如何让 rm 仅在某些场景下确认删除?

选项 -I,可保证在删除超过 3 个文件时或递归删除时(LCTT 译注: 如删除目录)仅提示一次确认。

比如,下面的截图展示了 -I 选项的作用——当两个文件被删除时没有提示,当超过 3 个文件时会有提示。

How to make rm prompt only in some scenarios

Q6. 当删除根目录是 rm 是如何工作的?

当然,删除根目录(/)是 Linux 用户最不想要的操作。这也就是为什么默认 rm 命令不支持在根目录上执行递归删除操作。(LCTT 译注:早期的 rm 命令并无此预防行为。)

How rm works when dealing with root directory

然而,如果你非得完成这个操作,你需要使用 --no-preserve-root 选项。当提供此选项,rm 就不会特殊处理根目录(/)了。

假如你想知道在哪些场景下 Linux 用户会删除他们的根目录,点击这里

Q7. 如何让 rm 仅删除空目录?

假如你需要 rm 在删除目录时仅删除空目录,你可以使用 -d 选项。

rm -d [目录]

下面的截图展示 -d 选项的用途——仅空目录被删除了。

How to make rm only remove empty directories

Q8. 如何让 rm 显示当前删除操作的详情?

如果你想 rm 显示当前操作完成时的详细情况,使用 -v 选项可以做到。

rm -v [文件/目录]

如:

How to force rm to emit details of operation it is performing

结论

考虑到 rm 命令提供的功能,可以说其是 Linux 中使用频率最高的命令之一了(就像 cpmv 一样)。在本文中,我们涉及到了其提供的几乎所有主要选项。rm 命令有些学习曲线,因此在你日常工作中开始使用此命令之前 你将需要花费些时间去练习它的选项。更多的信息,请点击此命令的 man 手册页


via: https://www.howtoforge.com/linux-rm-command/

作者:Himanshu Arora 译者:yizhuoyan 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

有时你会发现需要格式化某个文本文件中的内容。比如,该文本文件每行一个单词,而任务是把所有的单词都放在同一行。当然,你可以手工来做,但没人喜欢手工做这么耗时的工作。而且,这只是一个例子 - 事实上的任务可能千奇百怪。

好在,有一个命令可以满足至少一部分的文本格式化的需求。这个工具就是 fmt。本教程将会讨论 fmt 的基本用法以及它提供的一些主要功能。文中所有的命令和指令都在 Ubuntu 16.04LTS 下经过了测试。

Linux fmt 命令

fmt 命令是一个简单的文本格式化工具,任何人都能在命令行下运行它。它的基本语法为:

fmt [-WIDTH] [OPTION]... [FILE]...

它的 man 页是这么说的:

重新格式化文件中的每一个段落,将结果写到标准输出。选项 -WIDTH--width=DIGITS 形式的缩写。

下面这些问答方式的例子应该能让你对 fmt 的用法有很好的了解。

Q1、如何使用 fmt 来将文本内容格式成同一行?

使用 fmt 命令的基本形式(省略任何选项)就能做到这一点。你只需要将文件名作为参数传递给它。

fmt [file-name]

下面截屏是命令的执行结果:

format contents of file in single line

你可以看到文件中多行内容都被格式化成同一行了。请注意,这并不会修改原文件(file1)。

Q2、如何修改最大行宽?

默认情况下,fmt 命令产生的输出中的最大行宽为 75。然而,如果你想的话,可以用 -w 选项进行修改,它接受一个表示新行宽的数字作为参数值。

fmt -w [n] [file-name]

下面这个例子把行宽削减到了 20:

change maximum line width

Q3、如何让 fmt 突出显示第一行?

这是通过让第一行的缩进与众不同来实现的,你可以使用 -t 选项来实现。

fmt -t [file-name]

make fmt highlight the first line

Q4、如何使用 fmt 拆分长行?

fmt 命令也能用来对长行进行拆分,你可以使用 -s 选项来应用该功能。

fmt -s [file-name]

下面是一个例子:

make fmt split long lines

Q5、如何在单词与单词之间,句子之间用空格分开?

fmt 命令提供了一个 -u 选项,这会在单词与单词之间用单个空格分开,句子之间用两个空格分开。你可以这样用:

fmt -u [file-name]

注意,在我们的案例中,这个功能是默认开启的。

总结

没错,fmt 提供的功能不多,但不代表它的应用就不广泛。因为你永远不知道什么时候会用到它。在本教程中,我们已经讲解了 fmt 提供的主要选项。若想了解更多细节,请查看该工具的 man 页


via: https://www.howtoforge.com/linux-fmt-command/

作者:Himanshu Arora 译者:lujun9972 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出