Linux命令大全:50+个必须掌握的实用命令教程
每天都在使用Linux命令吗?今天我们将介绍50个你必须了解的Linux命令!以下列出的命令是一些最有用和最常用的Linux命令。让我们开始吧!
信息
作为一名普通用户,你必须了解的前50个Linux命令
- ls – 在Linux中用于列出目录内容的最常用命令
- pwd – 在Linux中打印当前工作目录的命令
- cd – 用于在Linux中切换目录的命令
- mkdir – 在Linux中用于创建新目录的命令
- mv – 在Linux中移动或重命名文件和目录的命令
- cp – 在Linux中复制文件和目录的命令
- rm – 删除文件或目录的命令
- touch – 创建空白文件或更新文件时间戳的命令
- ln – 创建到其他文件的符号链接(快捷方式)
- cat – 在终端上显示文件内容的命令
- clear – 清除终端屏幕显示的命令
- echo – 输出文本或变量的命令
- less – 在终端上分页显示文件内容的Linux命令
- man – 访问所有Linux命令的手册页
- uname – 获取有关操作系统基本信息的Linux命令
- whoami – 获取当前活动用户名的命令
- tar – 在Linux中打包和解包文件的命令
- grep – 在文本中搜索指定字符串的命令
- head – 显示文件开头指定行数的命令
- tail – 显示文件末尾指定行数的命令
- diff – 查找两个文件之间差异的命令
- cmp – 逐字节比较两个文件的命令
- comm – 比较两个已排序文件的命令
- sort – 对文件内容进行排序的Linux命令
- export – 在Linux中设置或导出环境变量的命令
- zip – 在Linux中压缩文件的命令
- unzip – 在Linux中解压zip文件的命令
- ssh – Linux中的安全远程连接命令
- service – 启动和停止系统服务的Linux命令
- ps – 显示当前运行进程的命令
- kill和killall – 通过进程ID或名称终止进程的命令
- df – 显示磁盘空间使用情况的命令
- mount – 在Linux中挂载文件系统的命令
- chmod – 更改文件权限的命令
- chown – 更改文件或目录所有者的命令
- ifconfig – 显示网络接口和IP地址的命令
- traceroute – 跟踪数据包到达目标主机的网络路径
- wget – 从互联网下载文件的命令
- ufw – 简单的防火墙配置命令
- iptables – Linux内核防火墙的配置工具
- apt,pacman,yum,rpm – 不同Linux发行版的软件包管理器
- sudo – 在Linux中以超级用户权限执行命令的工具
- cal – 显示命令行日历的命令
- alias – 为常用命令创建自定义别名的命令
- dd – 转换和复制文件,常用于创建可启动USB设备
- whereis – 查找命令的二进制文件、源代码和手册页位置
- whatis – 显示命令简要描述的命令
- top – 实时显示运行进程及其系统资源使用情况
- useradd和usermod – 添加新用户或修改现有用户信息的命令
- passwd – 为用户创建或更改密码的命令
现在让我们更深入地了解每个命令,并详细理解它们。对于这些个别命令,我们已经有很多现有的文章。为了方便起见,我们将添加所有现有文章的链接,并在涵盖新主题时继续更新文章。
在Linux中的ls命令
这是文章《必须掌握的前50+条Linux命令》的第2部分(共6部分)。
ls命令用于列出当前工作目录中的文件和目录。这将是您必须了解的最常用的Linux命令之一。

了解更多关于 ls 命令的信息(链接到完整文章)。
在Linux中的pwd命令
pwd命令可以让您在终端上打印出当前工作目录。它是一个非常基本的命令,并能很好地满足其目的。

在Linux中的cd命令
当在终端工作时,移动到不同目录中几乎是必不可少的。cd命令是你必须要了解的重要Linux命令之一,它将帮助你浏览目录。只需输入cd命令,后跟如下所示的目录。
root@ubuntu:~# cd <directory path>

在Linux中的mkdir命令
mkdir命令允许您在终端内创建目录。默认的语法是mkdir后跟目录名称。
root@ubuntu:~# mkdir <folder name>

了解更多关于mkdir命令的信息(文章链接)
拷贝(cp)和移动(mv)命令
cp和mv命令相当于Windows中的复制-粘贴和剪切-粘贴。但由于Linux并没有真正的重命名文件的命令,我们也使用mv命令来重命名文件和文件夹。
root@ubuntu:~# cp <source> <destination>

root@ubuntu:~# mv <source> <destination>

了解更多关于cp命令(文章链接)和mv命令(文章链接)。
Linux中的rm命令
在前面的部分中,我们删除了Sample-Copy文件。rm命令用于删除文件和文件夹,它是你必须了解的重要Linux命令之一。
root@ubuntu:~# rm <file name>
root@ubuntu:~# rm -r <folder/directory name>

在Linux中的touch命令
为了创建一个新文件,将使用touch命令。touch关键词后面跟着文件名将在当前目录中创建一个文件。
root@ubuntu:~# touch <file name>

在Linux中的ln命令
要创建到另一个文件的链接,我们使用ln命令。这是你计划成为Linux管理员时应该了解的重要Linux命令之一。
root@ubuntu:~# ln -s <source path> <link name>

cat、echo和less命令
当您想要输出文件的内容或将任何内容打印到终端输出时,我们使用cat或echo命令。让我们看看它们的基本用法。我已经在我们之前创建的New-File中添加了一些文本。
root@ubuntu:~# cat <file name>
root@ubuntu:~# echo <Text to print on terminal>

当任何命令的输出超出屏幕空间并需要滚动时,可以使用less命令。less命令允许我们通过使用回车键或空格键分割输出并滚动查看。
用管道运算符(|)来简单地完成这个任务。
root@ubuntu:~# cat /boot/grub/grub.cfg | less
了解更多关于echo命令(文章链接)和cat命令(文章链接)。
在Linux中的man命令
在Linux中,man命令是非常有用的命令,你必须要知道。在使用Linux时,我们下载的软件包可能有很多功能。要了解全部是不可能的。
在你的Linux发行版中使用软件包管理器下载的几乎所有软件包的功能信息,man页提供了非常高效的方式。
root@ubuntu:~# man <command>
uname命令和whoami命令
uname和whoami命令让您了解一些基本信息,这对您在处理多个系统时非常方便。一般来说,如果您只是在使用一台计算机,您可能不需要它,但对于网络管理员来说,它会经常用到。
让我们看看这两个命令的输出结果以及我们可以使用它们的方式。
root@ubuntu:~# uname -a

tar、zip和unzip命令
在Linux中,tar命令用于创建和提取存档文件。我们可以使用tar命令提取多个不同的存档文件。
为了创建一个存档,我们使用”-c”参数;而为了提取一个存档,我们使用”-x”参数。让我们看看它的操作过程。
#压缩
root@ubuntu:~# tar -cvf <存档文件名> <以空格分隔的文件列表>
#解压
root@ubuntu:~# tar -xvf <存档文件名>

在第一行中,我们使用New-File和New-File-Link创建了一个名为Compress.tar的归档文件。在下一个命令中,我们从该归档文件中提取了这些文件。
zip和unzip命令
现在我们来看一下zip和unzip命令。这两个命令非常简单。你可以不带任何参数使用它们,它们会像预期的那样工作。让我们看一个例子。
root@ubuntu:~# zip <存档文件名> <以空格分隔的文件列表>
root@ubuntu:~# unzip <存档文件名>

因为我们已经在同一个目录中拥有那些文件,所以解压命令在覆盖这些文件之前会提示我们。
了解有关 tar 命令 的更多信息,以及 zip 和 unzip 命令。
在Linux中的grep命令
如果你想在结果中搜索特定的字符串,那么可以使用grep命令。我们可以将输出通过管道(|)传递给grep命令,从中提取所需的字符串。
root@ubuntu:~# <任何有输出的命令> | grep "<要查找的字符串>"

这是一个对命令的简单演示。了解更多关于grep命令的信息。
head和tail命令
当输出大文件时,head和tail命令非常有用。我已经创建了一个名为”Words”的文件,其中按字母顺序排列了许多单词。head命令将输出文件的前10行,而tail命令将输出最后10行。这也包括任何空行,不仅仅是包含文本的行。
root@ubuntu:~# head <文件名>
root@ubuntu:~# tail <文件名>

正如你所见,head命令显示了文件顶部的10行内容。

tail命令输出了文件中的最后10行。
了解有关tail命令的更多信息。
diff、comm、cmp 命令的功能
Linux提供了多个命令来比较文件。diff、comm和cmp命令用于比较差异,它们是你必须掌握的最有用的Linux命令之一。让我们看看这三个命令的默认输出。
root@ubuntu:~# diff <文件1> <文件2>

正如你所看到的,我在”新文件-已编辑”文件中添加了一小段文字,”这行文字已编辑”。
root@ubuntu:~# cmp <文件1> <文件2>

cmp命令只告诉我们哪一行是不同的,并不显示实际文本。我们来看一下comm命令做了什么。
root@ubuntu:~# comm <文件1> <文件2>

左对齐的文本是仅在文件1中存在的文本。居中对齐的文本仅在文件2中存在。右对齐的文本则同时存在于两个文件中。
从外表看,当我们试图比较较大的文件并希望将所有内容整齐地显示在一起时,使用comm命令是最明智的选择。
Linux中的sort命令
sort命令将为文件内容提供排序的输出。让我们使用没有任何参数的排序命令并查看输出结果。
sort命令的基本语法是:
root@ubuntu:~# sort <文件名>

在Linux中的export命令
当需要在运行时导出环境变量时,特别使用export命令。例如,若我想要更新bash提示符,我会更新PS1环境变量。立即生效后,bash提示符将被更新。
root@ubuntu:~# export <变量名>=<值>

如果由于某种原因,您的bash提示符没有更新,请键入bash,然后您应该能看到更新后的终端提示符。
了解更多关于export命令的信息。
在Linux中的ssh命令
通过使用ssh协议,ssh命令可以让我们连接到网络上的外部机器。ssh命令的基本语法是:
root@ubuntu:~ -->> ssh 用户名@主机名
了解更多关于ssh命令的内容。
Linux中的service命令
service命令用于管理系统服务。它可以启动、停止、重启和查询系统服务的状态。
root@ubuntu:~# service <服务名> <操作>
例如,要启动Apache服务,可以使用:
root@ubuntu:~# service apache2 start
了解更多关于service命令的信息。
在Linux中,service命令用于启动和停止操作系统内的不同服务。该命令的基本语法如下。
root@ubuntu:~ -->> service ssh status
root@ubuntu:~ -->> service ssh stop
root@ubuntu:~ -->> service ssh start

正如您在图像中所见,SSH服务器正在我们的系统上运行。
ps命令、kill命令和killall命令
说到进程,让我们看看如何找到活动进程并终止它们。要找到正在运行的进程,我们只需在终端提示符中键入ps命令,然后获取正在运行的进程列表。
root@ubuntu:~ -->> ps
root@ubuntu:~ -->> kill <进程ID>
root@ubuntu:~ -->> killall <进程名称>
为了演示目的,我正在创建一个带有无限循环的shell脚本,并将其在后台运行。
通过使用 & 符号,我可以将一个进程放到后台运行。如你所见,创建了一个具有 PID 14490 的新的 bash 进程。

现在,要使用kill命令终止一个进程,你可以输入kill加上进程的PID。

但如果您不知道进程ID,只想终止具有该名称的进程,您可以使用killall命令。

你会注意到PID 14490一直保持活动状态。这是因为这两次我都终止了睡眠进程。
了解更多关于 ps 命令。
df命令和mount命令
在使用Linux时,df和mount命令是非常高效的工具,用于挂载文件系统并获取文件系统的详细信息。
当我说挂载时,意思是我们将把设备连接到一个文件夹,以便我们可以从文件系统中访问文件。挂载文件系统的默认语法如下:
root@ubuntu:~ -->> mount /dev/cdrom /mnt
root@ubuntu:~ -->> df -h
在上述情况下,/dev/cdrom是需要挂载的设备。通常情况下,可挂载设备位于/dev文件夹内。/mnt是挂载设备的目标文件夹。您可以更改为任意您想要的文件夹,但我使用的是/mnt,因为它基本上是一个用于挂载设备的系统默认文件夹。
要查看已挂载的设备并获取更多关于它们的信息,我们使用df命令。只需输入df命令,将会给出以字节为单位的数据,这是不可读的。因此,我们将使用-h参数来使数据以人类可读的方式呈现。

了解更多有关df命令的信息。
chmod 和 chown 命令
chmod和chown命令为我们提供了更改文件权限和文件所有权的功能,这两个是你应该了解的最重要的Linux命令。
这两个命令的主要区别是chmod命令允许更改文件权限,而chown允许我们更改文件所有者。
两个命令的默认语法都是chmod <参数> 文件名和chown 用户名:用户组 文件名。
root@ubuntu:~ -->> chmod +x loop.sh
root@ubuntu:~ -->> chown root:root loop.sh

在上面的例子中,我们使用chmod命令向loop.sh文件添加了可执行权限。除此之外,我们还使用chown命令将其仅限制为root用户和root组内的用户可访问。

正如您将会注意到的,根目录部分现在已更改为www-data,这是具有完全文件所有权的新用户。
ifconfig和traceroute命令
在Linux中,如果您管理网络,那么会频繁使用到ifconfig和traceroute命令。这两个命令是网络管理中经常使用的工具。
ifconfig命令将提供网络接口列表,包括IP地址、MAC地址以及其他接口相关信息。
root@ubuntu:~ -->> ifconfig
在这里,有多个可以使用的参数,但我们将使用基本命令。

当使用 traceroute 时,您可以简单地指定终点的 IP 地址、主机名或域名。
root@ubuntu:~ -->> traceroute <目标地址>

现在很明显,localhost只是一个跃点(也就是网络接口本身)。你可以用任何其他域名或IP地址尝试相同的命令,以查看你的数据包到达目的地所经过的所有路由器。
了解有关ifconfig命令的更多信息(文章链接)
Linux 中的 wget 命令
如果你想通过终端下载一个文件,wget 命令是其中一个最方便的命令行实用程序。当你处理源文件时,这将是你应该了解的重要 Linux 命令之一。
当您指定下载链接时,必须直接链接到文件。如果使用wget命令无法访问该文件,它将仅以HTML格式下载网页,而不是您想要的实际文件。
让我们试一个例子。wget命令的基本语法是:
root@ubuntu:~ -->> wget <文件链接>
或者
root@ubuntu:~ -->> wget -c <文件链接>
使用-c参数可以恢复被中断的下载。
ufw和iptables命令
UFW和IPTables是Linux内核netfilter防火墙的界面。IPTables直接将防火墙规则传递给netfilter,而UFW则配置IPTables中的规则,然后将这些规则发送到netfilter。
为什么我们需要UFW,而不是使用IPTables呢?因为对于新手来说,IPTables相当困难。而UFW能够极大地简化事务。请看下面的例子,我们正在尝试允许Web服务器的端口80。
root@ubuntu:~# iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
root@ubuntu:~# ufw allow 80
我相信你现在知道为什么创建了UFW!看看语法变得多么简单。这两个防火墙都非常全面,可以让你创建网络所需的任何配置。至少学习UFW或IPTables防火墙的基础知识,因为这些是你必须了解的Linux命令。
学习如何在Linux上打开端口(连接到文章)。
在Linux中的软件包管理器
不同的Linux发行版使用不同的软件包管理器。由于我们正在使用Ubuntu服务器,我们有apt软件包管理器。但对于在Fedora,Red Hat,Arch或CentOS机器上工作的人来说,软件包管理器是不同的。
- Debian和基于Debian的发行版 – apt install
- Arch和基于Arch的发行版 – pacman -S
- Red Hat和基于Red Hat的发行版 – yum install
- Fedora和CentOS – yum install
熟悉您所使用的发行版的软件包管理工具,对于您长期来说会使事情变得更加容易。因此,即使您已经安装了基于图形界面的软件包管理工具,在您开始使用图形界面工具之前,尝试先使用基于命令行的工具。将这些添加到您必须掌握的Linux命令列表中。
在Linux中的sudo命令
伴随着巨大的力量,也伴随着巨大的责任。
当一个启用了sudo命令的用户(sudoer)首次使用sudo命令提升权限时,显示这个引用语。基于sudoer的权限,该命令相当于以root用户身份登录。
非root用户@ubuntu:~# sudo <您想要运行的命令>
密码:
只需在需要以提升的权限运行的任何命令前加上sudo一词,就可以了。使用起来非常简单,但如果恶意用户获得sudoer的访问权限,则可能增加安全风险。
了解有关sudo命令的更多信息(文章链接)
在Linux中的cal命令
你曾经想过在终端上查看日历吗?我没有!但显然有人想要实现这个功能,并且现在这个功能已经存在了。
cal命令会在终端上显示一个精美的日历。只需在终端提示符上输入cal即可。
root@ubuntu:~# cal
root@ubuntu:~# cal 2019年5月

虽然我不需要它,但这是一个非常酷的附加功能!我相信有些人是终端的超级粉丝,这对他们来说真是一个非常棒的选择。
别名命令
在使用终端时,你经常运行一些命令吗?可能是rm -r或ls -l,或者可能是像tar -xvzf这样更长的命令。这是你必须了解的提高工作效率的Linux命令之一。
如果你知道一个你经常运行的命令,那么现在是创建别名的时候了。什么是别名呢?简单来说,它就是你定义的命令的另一个名称。
root@ubuntu:~# alias lsl="ls -l"
或者
root@ubuntu:~# alias rmd="rm -r"
现在每次你在终端中输入lsl或rmd时,你将会收到与使用完整命令时相同的输出结果。
这里的例子是用来展示一些非常小的命令,你每次仍然可以手动输入。但在某些情况下,如果一个命令有太多参数需要输入,那么最好创建一个相同的简写版本。
了解更多关于别名命令的信息(文章链接)
Linux系统中的dd命令
这个命令被创建用于将文件从多种文件系统格式进行转换和复制。在当今这个时代,这个命令通常仅用于创建用于Linux的可启动USB,但它仍然有一些重要的功能可以使用这个命令完成。
例如,如果我想将整个硬盘原封不动地备份到另一个驱动器上,我将使用dd命令。
root@ubuntu:~# dd if=/dev/sdb of=/dev/sda
if和of的参数代表输入文件和输出文件。
whereis和whatis命令
指令的名称清晰地表达了它们的功能,但为了更清楚起见,让我们展示一下它们的功能。
whereis命令将输出在输入whereis命令后所键入的任何命令的准确位置。
root@ubuntu:~# whereis sudo
sudo: /usr/bin/sudo /usr/lib/sudo /usr/share/man/man8/sudo.8.gz
whatis命令告诉我们一个命令的实际解释是什么。类似于whereis命令,你会在输入whatis命令后获得任何命令的信息。
root@ubuntu:~# whatis sudo
sudo (8) - 以另一个用户身份执行命令
在Linux中的top命令
在前几个部分,我们谈到了ps命令。您观察到ps命令会输出活动进程并自动结束。
top命令就像是Windows任务管理器的命令行版本。您可以实时查看进程以及与之相关的所有信息,如内存使用情况、CPU使用率等。
要使用top命令,只需在您的终端中键入top这个词。

添加用户和修改用户的命令
用户添加(useradd)或添加用户(adduser)命令是完全相同的命令,其中adduser只是用户添加命令(useradd)的一个符号链接。此命令允许我们在Linux中创建新用户。
root@ubuntu:~# useradd JournalDev -d /home/JD
上面的指令将创建一个名为JournalDev的新用户,其家目录为/home/JD。
另一方面,用户模态命令用于修改现有用户。您可以修改用户的任何值,包括组、权限等。
举个例子,如果你想给用户添加更多的群组,可以键入:
root@ubuntu:~# usermod JournalDev -a -G sudo, audio, mysql
了解如何在Linux上创建和管理用户的更多信息(文章链接)
Linux中的passwd命令
现在你知道如何创建新用户了,我们还可以为他们设置密码。passwd 命令可以让你为自己的账户设置密码,或者如果你有权限的话,为其他账户设置密码。
命令的使用非常简单:
root@ubuntu:~# passwd
New password:

如果在passwd之后添加用户名,您可以为其他用户设置密码。输入新密码两次,完成操作。就是这样!您会为该用户设置一个新密码!
最后注释
尽管这篇文章非常长,但我敢肯定,无论何时需要,你都能从中获益。随着我们继续在JournalDev上添加更多文章,我们将在这里继续添加这些文章的链接。
我们希望这篇文章对你有所帮助。如果你有任何问题,请随意在下方留言。