37个您应该知道的重要Linux命令

您是Linux的新手,还是有点生疏了?以下是您需要了解的所有命令。可以将此视为Linux终端的重要参考。这也适用于MacOS命令行。

终端必备工具包

Linux包含大量命令,但我们在这里选择了37个最重要的命令。学习这些命令,您将更加熟悉Linux命令提示符。

下面的列表按字母顺序排列。命令在列表中的位置并不代表其有用性或简单性。有关命令用法的最后一句话,请参阅其手册页。当然,“手册”命令在我们的列表中-它是“手册”的缩写。

1.别名

别名命令允许您为命令或命令序列指定自己的名称。然后,您可以键入您的短名称,shell将为您执行该命令或命令序列。

alias cls=clear

这将设置一个名为cls的别名。这将是Clear的另一个名字。当您键入cls时,它将清除屏幕,就像您已键入clear一样。当然,你的别名省去了几次击键。但是,如果您经常在Windows和Linux命令行之间移动,您可能会发现自己在Linux计算机上键入Windows CLS命令,而这并不知道您的意思。现在它就会知道了。

别名可能比这个简单的示例复杂得多。下面是一个名为pf(用于进程查找)的别名,它只是稍微复杂一些。请注意命令序列两边使用了引号。如果命令序列中包含空格,则这是必需的。该别名使用ps命令列出正在运行的进程,然后通过grep命令通过管道传输它们。grep命令在ps的输出中查找与命令行参数$1匹配的条目。

alias pf="ps -e | grep $1"

如果您想要发现快门进程的进程ID(PID)-或者想知道快门是否正在运行-您可以使用如下别名。键入PF,其中包含空格和您感兴趣的进程的名称:

pf shutter

在命令行上定义的别名将随终端窗口一起消失。当你关闭它的时候,它们就不见了。要使您的别名始终可用,请将它们添加到主目录的.bash_aliases文件中。

2.猫

cat命令(“CONCATENATE”的缩写)将文件内容列出到终端窗口。这比在编辑器中打开文件更快,而且不会意外更改文件。要读取.bash_log_out文件的内容,请在主目录是您的当前工作目录(默认情况下)时键入以下命令:

cat .bash_logout

如果文件的长度超过了终端窗口中的行数,文本会过得太快,您无法阅读。您可以通过Less通过管道从CAT输出以使过程更易于管理。对于Less,您可以使用向上和向下箭头键、PgUp和PgDn键以及Home和End键在文件中向前和向后滚动。键入q可从LESS退出。

cat .bashrc | less

3.光盘

cd命令更改您的当前目录。换句话说,它会将您移动到文件系统中的一个新位置。

如果要更改到当前目录中的目录,只需键入cd和其他目录的名称即可。

cd work

如果要更改到文件系统目录树中其他位置的目录,请提供带有前导/的目录路径。

cd /usr/local/bin

要快速返回主目录,请使用~(波浪号)字符作为目录名。

cd ~

这里有另一个诀窍:你可以使用双点符号..。表示当前目录的父级。您可以键入以下命令以转到目录:

cd ..

假设您在一个目录中。父目录中还有其他目录,以及您当前所在的目录。要更改到这些其他目录之一,您可以使用..。符号来缩短您必须键入的内容。

cd ../games

4.chmod

chmod命令设置文件或文件夹的文件权限标志。这些标志定义谁可以读取、写入或执行文件。当您使用-l格式(长格式)选项列出文件时,您将看到如下所示的字符串

-rwxrwxrwx

如果第一个字符是a-该项是文件,如果是d,则该项是目录。字符串的其余部分是三组三个字符。从左边开始,前三个字符表示所有者的文件权限,中间三个字符表示组的文件权限,最右边的三个字符表示其他用户的权限。在每组中,r表示读取,w表示写入,而x表示执行。

如果存在r、w或x字符,则授予文件权限。如果该字母不存在,而出现a-,则不授予该文件权限。

使用chmod的一种方式是以3位数字的形式提供您希望授予所有者、组和其他人的权限。最左边的数字表示所有者。中间的数字表示组,最右边的数字表示其他组。下面列出了您可以使用的数字及其表示的含义:

0:没有权限。 1:执行权限。 2:写入权限。 3:写入和执行权限。 4:读取权限。 5:读取和执行权限。 6:读写权限。 7:读、写、执行权限

查看我们的example.txt文件,我们可以看到所有三组字符都是rwx。这意味着每个人都有文件的读、写和执行权限。

要设置所有者的读取、写入和执行权限(列表中的7个);设置组的读取和写入权限(列表中的6个);以及其他用户的读取和执行权限(列表中的5个),我们需要将数字765与chmod命令一起使用:

chmod -R 765 example.txt

要设置所有者的读取、写入和执行权限(列表中的7个),以及组和其他用户的读取和写入权限(列表中的6个),我们需要将数字766与chmod命令一起使用:

chmod 766 example.txt

5.Chown

chown命令允许您更改文件的所有者和组所有者。使用ls-l列出我们的example.txt文件,我们可以在文件描述中看到Dave Dave。第一个参数表示文件所有者的名称,在本例中是用户dave。第二个条目显示组所有者的名称也是Dave。创建用户时,每个用户都创建了一个默认组。该用户是该组的唯一成员。这表明该文件未与任何其他用户组共享。

您可以使用chown更改文件的所有者和/或组。您必须提供所有者和组的名称,用:字符分隔。您需要使用sudo。要将Dave保留为文件的所有者,但要将Mary设置为组所有者,请使用以下命令:

sudo chown dave:mary example.txt

要将所有者和组所有者都更改为Mary,可以使用以下命令;

sudo chown mary:mary example.txt

要更改文件以使Dave再次成为文件所有者和组所有者,请使用以下命令:

sudo chown dave:dave example.txt

6.卷曲

cURL命令是从统一资源定位符(URL)或互联网地址检索信息和文件的工具。

curl命令可能不是作为您的Linux发行版的标准部分提供的。如果您使用的是Ubuntu或其他基于Debian的发行版,请使用apt-get命令将此软件包安装到您的系统上。在其他Linux发行版上,请改用您的Linux发行版的包管理工具。

sudo apt-get install curl

假设您想要从GitHub存储库中检索单个文件。没有官方支持的方法可以做到这一点。您被迫克隆整个存储库。但是,使用cURL,我们可以自己检索所需的文件。

此命令为我们检索文件。请注意,您需要使用-o(输出)选项指定保存该文件的文件名。如果您不这样做,文件的内容将在终端窗口中快速滚动,但不会保存到您的计算机。

curl https://raw.githubusercontent.com/torvalds/linux/master/kernel/events/core.c -o core.c

如果您不想看到下载进度信息,请使用-s(静默)选项。

curl -s https://raw.githubusercontent.com/torvalds/linux/master/kernel/events/core.c -o core.c

7.df

df命令显示计算机的已挂载文件系统上的大小、已用空间和可用空间。

最有用的两个选项是-h(人类可读)和-x(排除)选项。人类可读选项以Mb或GB为单位显示大小,而不是以字节为单位。排除选项允许您告诉df对您不感兴趣的文件系统打折。例如,使用snap命令安装应用程序时创建的squashfs伪文件系统。

df -h -x squashfs

相关:如何从Linux终端查看可用磁盘空间和磁盘使用情况

8.不同

diff命令比较两个文本文件并显示它们之间的差异。有许多选项可以根据您的要求定制显示。

-y(并排)选项并排显示线条差异。使用-w(宽度)选项可以指定用于避免绕排线条的最大线条宽度。在本例中,这两个文件分别称为alpha1.txt和alpha2.txt。suppress-common-line可以防止diff列出匹配的行,让您专注于有差异的行。

diff -y -W 70 alpha1.txt alpha2.txt --suppress-common-lines

相关:如何在Linux终端中比较两个文本文件

9.回声

ECHO命令将文本字符串打印(回显)到终端窗口。

下面的命令将在终端窗口上打印“A string of text”字样。

echo A string of text

ECHO命令可以显示环境变量的值,例如$USER、$HOME和$PATH环境变量。它们保存用户的名称、用户的主目录以及当用户在命令行上键入内容时搜索匹配命令的路径的值。

echo $USERecho $HOMEecho $PATH

以下命令将导致发出嘟嘟声。e(转义码)选项将转义的a字符解释为“bell”字符。

echo -e "\a"

ECHO命令在shell脚本中也是无价的。脚本可以使用此命令生成可视输出,以指示脚本在执行时的进度或结果。

10.退出

exit命令将关闭终端窗口、结束shell脚本的执行或将您注销SSH远程访问会话。

exit

11.查找

如果您不记得将文件放在哪里,请使用“查找”命令来查找已知存在的文件。您必须告诉Find从哪里开始搜索,以及它在寻找什么。在此示例中,。匹配当前文件夹,-name选项告诉find查找名称与搜索模式匹配的文件。

您可以使用通配符,其中*表示任意字符序列,而?表示任何单个字符。我们使用*ones*来匹配任何包含序列“ones”的文件名。这将与骨头、石头和寂寞等词相匹配。

find . -name *ones*

正如我们所看到的,查找返回了匹配列表。其中之一是一个名为雷蒙斯的目录。我们可以告诉find将搜索限制为只搜索文件。我们使用带有f参数的-type选项来实现这一点。f参数代表文件。

find . -type f -name *ones*

如果希望搜索不区分大小写,请使用-iname(不区分大小写的名称)选项。

find . -iname *wild*

12.手指

inger命令为您提供有关用户的简短信息转储,包括用户上次登录的时间、用户的主目录和用户帐户的全名。

13.免费

free命令为您提供计算机内存使用情况的摘要。它对主随机存取存储器(RAM)和交换存储器都执行此操作。h(人)选项用于提供对人友好的数字和单位。如果没有此选项,则以字节为单位显示图形。

free -h

14.GREP

grep实用程序搜索包含搜索模式的行。在查看alias命令时,我们使用grep搜索另一个程序ps的输出。grep命令还可以搜索文件的内容。在这里,我们在当前目录的所有文本文件中搜索单词“列车”。

grep train *.txt

输出将列出文件名,并显示匹配的行。匹配的文本将突出显示。

grep的功能和绝对的实用性绝对值得您查看它的手册页。

15.团体

GROUPS命令告诉您用户是哪些组的成员。

groups davegroups mary

16.gzip

gzip命令压缩文件。默认情况下,它会删除原始文件并保留压缩版本。要同时保留原始版本和压缩版本,请使用-k(保留)选项。

gzip -k core.c

17.头部

head命令为您提供文件的前10行的列表。如果希望看到更少或更多的行,请使用-n(数字)选项。在本例中,我们使用HEAD,其默认值为10行。然后,我们重复该命令,只要求5行代码。

head -core.chead -n 5 core.c

18.历史

HISTORY命令列出了您以前在命令行上发出的命令。您可以通过键入感叹号来重复历史记录中的任何命令!以及历史列表中的命令编号。

!188

键入两个感叹号将重复上一个命令。

!!

19.杀戮

kill命令允许您从命令行终止进程。这可以通过提供要终止的进程的进程ID(PID)来实现。不要随意地杀死进程。你需要有一个很好的理由这样做。在这个例子中,我们将假装快门程序已经锁定。

要找到快门的PID,我们将使用上面关于alias命令的一节中的ps和grep技巧。我们可以搜索快门进程并获得其PID,如下所示:

ps -e | grep shutter.

在这种情况下,一旦我们确定了PID-1692,我们就可以按如下方式终止它:

kill 1692

20.更少

LESS命令允许您在不打开编辑器的情况下查看文件。它的使用速度更快,而且您不会无意中修改文件。使用LESS,您可以使用向上和向下箭头键、PgUp和PgDn键以及Home和End键在文件中向前和向后滚动。按Q键退出LESS。

要查看文件,请按如下方式提供其名称:

less core.c

您还可以通过管道将其他命令的输出转换为LESS。要查看ls命令的输出以获得整个硬盘的列表,请使用以下命令:

ls -R / | less

使用/在文件中向前搜索,然后使用?向后搜索。

21.。LS

这可能是大多数Linux用户遇到的第一个命令。它列出了您指定的目录中的文件和文件夹。默认情况下,ls在当前目录中查找。您可以使用ls的选项很多,我们强烈建议在手册页中查看它。这里提供了一些常见的示例。

要列出当前目录中的文件和文件夹,请执行以下操作:

ls

要详细列出当前目录中的文件和文件夹,请使用-l(长)选项:

ls -l

要使用友好的文件大小,请包括-h(人类)选项:

ls -lh

要包括隐藏文件,请使用-a(所有文件)选项:

ls -lha

22.。男人

man命令以LESS格式显示命令的“手册页”。手册页是该命令的用户手册。因为MAN使用LESS来显示手册页,所以您可以使用LESS的搜索功能。

例如,要查看chown的手册页,请使用以下命令:

man chown

使用向上和向下箭头或PgUp和PgDn键滚动文档。按Q退出手册页,或按键寻求帮助。

23.。mkdir

mkdir命令允许您在文件系统中创建新目录。您必须向mkdir提供新目录的名称。如果新目录不在当前目录中,则必须提供新目录的路径。

要在当前目录中创建两个名为“Invoices”和“Quotes”的新目录,请使用以下两个命令:

mkdir invoicesmkdir quotes

要在“Invoices”目录内创建名为“2019”的新目录,请使用以下命令:

mkdir invoices/2109

如果您要创建一个目录,但是它的父目录不存在,您可以使用-p(父目录)选项让mkdir创建所有需要的父目录。在下面的命令中,我们在“QUOTES”目录中的“Year”目录中创建了“2019”目录。“年度”目录不存在,但是我们可以让mkdir一次创建所有指定的目录:

mkdir -p quotes/yearly/2019

还创建了“年度”目录。

24.。vv

mv命令允许您将文件和目录从一个目录移动到另一个目录。它还允许您重命名文件。

要移动文件,您必须告诉MV文件的位置以及要将其移动到的位置。在本例中,我们从“~/document/Ukulele”目录中移出一个名为apache.pdf的文件,并将其放在当前目录中,由单个。性格。

mv ~/Documents/Ukulele/Apache.pdf .

要重命名文件,请将其“移动”到具有新名称的新文件中。

mv Apache.pdf The_Shadows_Apache.pdf

文件移动和重命名操作本可以在一个步骤中完成:

mv ~/Documents/Ukulele/Apache.pdf ./The_Shadows_Apache.pdf

25.。帕斯

passwd命令允许您更改用户的密码。只需键入passwd即可更改您自己的密码。

您也可以更改其他用户帐户的密码,但必须使用sudo。系统将要求您输入两次新密码。

sudo passwd mary

26.。平平

ping命令用于验证您是否与另一台网络设备建立了网络连接。它通常用于帮助排除网络故障。要使用ping,请提供另一台设备的IP地址或计算机名称。

ping 192.168.4.18

ping命令将一直运行,直到您按Ctrl+C将其停止。

这里发生的事情是这样的:

IP地址为192.168.4.18的设备正在响应我们的ping请求,并发回64字节的数据包。 Internet Control Messaging Protocol(ICMP)序列号允许我们检查丢失的响应(丢弃的数据包)。 TTL数字是数据包的“生存时间”。数据包每次通过路由器时,都会(应该)递减1。如果它达到零,包就会被丢弃。这样做的目的是防止网络环回问题泛滥网络。 时间值是从计算机到设备再往返的持续时间。简单地说,这次越低越好。

要要求ping运行特定次数的ping尝试,请使用-c(计数)选项。

ping -c 5 192.168.4.18

要听到ping,请使用-a(声音)选项。

ping -a 192.168.4.18

27.。PS

ps命令列出正在运行的进程。使用不带任何选项的ps会导致它列出当前shell中运行的进程。

ps

要查看与特定用户相关的所有进程,请使用-u(用户)选项。这可能会是一个很长的列表,为了方便起见,请少用管道。

ps -u dave | less

要查看正在运行的每个进程,请使用-e(每个进程)选项:

ps -e | less

28.。PWD

pwd命令非常简单,它打印根/目录中的工作目录(当前目录)。

pwd

29.。关机

Shutdown命令允许您关闭或重新启动Linux系统。

使用不带参数的关机将在一分钟内关闭您的计算机。

关闭 / 关机 / 停工 / 停播

要立即关闭,请使用NOW参数。

shutdown now

您还可以安排关闭,并将挂起的关闭通知任何登录用户。要让Shutdown命令知道您希望它何时关闭,您需要为它提供一个时间。这可以是从现在起的设定分钟数,如+90,也可以是一个精确的时间,如23:00。您提供的任何文字信息都会广播给已登录的用户。

shutdown 23:00 Shutdown tonight at 23:00, save your work and log out before then!

要取消关闭,请使用-c(取消)选项。在这里,我们计划从现在开始关闭15分钟-然后又改变了主意。

shutdown +15 Shutting down in 15 minutes!shutdown -c

相关:如何使用命令行重新启动或关闭Linux

30.。宋承宪

使用ssh命令连接到远程Linux计算机并登录到您的帐户。要建立连接,您必须提供您的用户名以及远程计算机的IP地址或域名。在本例中,用户Mary正在登录地址为192.168.4.23的计算机。连接建立后,系统会要求她提供密码。

ssh mary@192.168.4.23

她的用户名和密码已验证并接受,她已登录。请注意,她的提示符已从“Nostromo”更改为“Howtogeek”。

Mary发出w命令以列出“Howogleek”系统上的当前用户。她被列为从PTS/1连接,PTS/1是伪终端从站。也就是说,它不是直接连接到计算机的终端。

要关闭会话,Mary键入exit,然后返回到“Nostromo”计算机上的shell。

wexit

31.。数独

执行需要root或超级用户权限的操作(如更改其他用户的密码)时,需要sudo命令。

sudo passwd mary

32.。尾

Tail命令为您提供文件的最后10行的列表。如果希望看到更少或更多的行,请使用-n(数字)选项。在本例中,我们使用了Tail,其缺省值为10行。然后,我们重复该命令,只要求5行代码。

tail core.ctail -n 5 core.c

33.。焦油

使用tar命令,您可以创建一个可以包含许多其他文件的归档文件(也称为tarball)。这使得分发文件集合变得更加方便。您还可以使用tar从归档文件中提取文件。要求tar压缩归档是很常见的。如果您不要求压缩,则归档文件将以未压缩的形式创建。

要创建归档文件,您需要告诉tar哪些文件应该包含在归档文件中,以及您希望归档文件使用的名称。

在本例中,用户将存档Ukulele目录中的所有文件,该目录位于当前目录中。

他们使用了-c(创建)选项和-v(详细)选项。Verbose选项通过在将文件添加到归档时将文件列出到终端窗口来提供一些可视反馈。-f(文件名)选项后跟所需的归档名称。在本例中,它是songs.tar。

tar -cvf songs.tar Ukulele/

将这些文件添加到存档文件时,会将其列在终端窗口中。

有两种方法可以告诉tar您希望压缩归档文件。第一个是使用-z(Gzip)选项。这将告诉tar在创建存档后使用gzip实用程序压缩存档。

通常将“.gz”作为后缀添加到此类型的存档中。这使从中提取文件的任何人都知道应该将哪些命令传递给tar以正确检索文件。

tar -cvzf songs.tar.gz Ukulele/

像以前一样将文件添加到归档文件时,这些文件将列在终端窗口中,但是由于压缩所需的时间,创建归档所需的时间会稍长一些。

要创建一个使用高级压缩算法压缩的归档文件,从而提供较小的归档文件,可以使用-j(Bzip2)选项。

tar -cvjf songs.tar.bz2 Ukulele/

同样,在创建存档时会列出这些文件。-j选项明显比-z选项慢。

如果要归档大量文件,则必须选择-z选项以获得较好的压缩和合理的速度,或者选择-j选项以获得较好的压缩和较慢的速度。

如下面的截图所示,“.tar”文件最大,“.tar.gz”文件较小,“.tar.bz2”文件最小。

要从存档文件中提取文件,请使用-x(提取)选项。-v(详细)和-f(文件名)选项的行为与创建存档时相同。使用ls确认要从哪种类型的归档中提取文件,然后发出以下命令。

lstar -xvf songs.tar

解压文件时会列出这些文件。请注意,还会为您重新创建Ukulele目录。

要从“.tar.gz”存档中提取文件,请使用-z(Gzip)选项。

tar -xvzf songs.tar.gz

最后,要从“.tar.bz2”存档中提取文件,请使用-j选项,而不是-z(Gzip)选项。

tar -xvjf songs.tar.bz2

相关:如何在Linux上从.tar.gz或.tar.bz2文件中提取文件

34.。塔顶

top命令向您显示与您的Linux计算机相关的数据的实时显示。屏幕顶部是状态摘要。

第一行显示您的计算机已经运行的时间和时间、有多少用户登录到它,以及在过去1、5和15分钟内的平均负载是多少。

第二行显示任务的数量及其状态:运行、停止、睡眠和僵尸。

第三行显示CPU信息。以下是这些字段的含义:

us:value是CPU为用户执行进程所花费的CPU时间,单位为“用户空间” SY:值是运行系统“内核空间”进程所花费的CPU时间。 ni:value是使用手动设置的NICE值执行进程所花费的CPU时间。 ID:是CPU空闲时间。 WA:值是CPU等待I/O完成所花费的时间。 Hi:服务硬件中断所用的CPU时间。 SI:用于服务软件中断的CPU时间。 ST:由于运行虚拟机而损失的CPU时间(“窃取时间”)

第四行显示物理内存总量,以及有多少空闲、已使用、缓冲或缓存。

第五行显示交换内存总量,以及有多少可用、已用和可用的内存(考虑到预期可从缓存中恢复的内存)。

用户已按下E键将显示更改为更易于人类理解的数字,而不是表示字节的长整数。

主显示中的列由以下部分组成:

PID:进程ID。 User:进程所有者的名称。 PR:流程优先级。 倪:这个过程很有价值。 Virt:进程使用的虚拟内存。 res:进程使用的驻留内存。 SHR:进程使用的共享内存。 s:进程的状态。请参阅下面此字段可以采用的值的列表。 %CPU:自上次更新以来进程使用的CPU时间份额。 %MEM:已使用的物理内存共享。 Time+:任务使用的总CPU时间,以百分之一秒为单位。 命令:命令名或命令行(名称+选项)

(命令栏不适合屏幕截图。)

进程的状态可以是以下状态之一:

D:不间断睡眠。 R:运行。 S:睡觉。 T:已跟踪(已停止)。 Z:僵尸

按Q键从顶部退出。

相关:如何在Linux上使用NICE和RENICE设置进程优先级

35.。无名

您可以使用uname命令获取有关您正在使用的Linux计算机的一些系统信息。

使用-a(All)选项可以查看所有内容。 使用-s选项(内核名称)查看内核类型。 使用-r选项(内核版本)查看内核版本。 使用-v选项(内核版本)查看内核版本。

uname -auname -suname -runame -v

36.。W

w命令列出当前登录的用户。

w

37.。胡米

使用whami可以找出您是以谁的身份登录的,或者是谁登录到了无人操作的Linux终端。

whoami

相关:如何在Linux中确定当前用户帐户

那是你的工具包

学习Linux就像学习其他任何东西一样。在熟悉这些命令之前,您需要进行一些练习。一旦您掌握了这些命令,您就可以顺利地通向熟练的道路。

有一个古老的笑话-可能和Unix本身一样古老-说你唯一需要知道的命令就是man命令。这其中有一丝真相,但有些手册页没有介绍就看不懂。本教程应该会为您提供所需的介绍。

相关文章