Linux命令大全:50+个必须掌握的实用命令教程

每天都在使用Linux命令吗?今天我们将介绍50个你必须了解的Linux命令!以下列出的命令是一些最有用和最常用的Linux命令。让我们开始吧!

信息

使用Silicon Cloud应用平台从GitHub部署您的前端应用程序。让Silicon Cloud专注于扩展您的应用程序。

作为一名普通用户,你必须了解的前50个Linux命令

  1. ls – 在Linux中用于列出目录内容的最常用命令
  2. pwd – 在Linux中打印当前工作目录的命令
  3. cd – 用于在Linux中切换目录的命令
  4. mkdir – 在Linux中用于创建新目录的命令
  5. mv – 在Linux中移动或重命名文件和目录的命令
  6. cp – 在Linux中复制文件和目录的命令
  7. rm – 删除文件或目录的命令
  8. touch – 创建空白文件或更新文件时间戳的命令
  9. ln – 创建到其他文件的符号链接(快捷方式)
  10. cat – 在终端上显示文件内容的命令
  11. clear – 清除终端屏幕显示的命令
  12. echo – 输出文本或变量的命令
  13. less – 在终端上分页显示文件内容的Linux命令
  14. man – 访问所有Linux命令的手册页
  15. uname – 获取有关操作系统基本信息的Linux命令
  16. whoami – 获取当前活动用户名的命令
  17. tar – 在Linux中打包和解包文件的命令
  18. grep – 在文本中搜索指定字符串的命令
  19. head – 显示文件开头指定行数的命令
  20. tail – 显示文件末尾指定行数的命令
  21. diff – 查找两个文件之间差异的命令
  22. cmp – 逐字节比较两个文件的命令
  23. comm – 比较两个已排序文件的命令
  24. sort – 对文件内容进行排序的Linux命令
  25. export – 在Linux中设置或导出环境变量的命令
  26. zip – 在Linux中压缩文件的命令
  27. unzip – 在Linux中解压zip文件的命令
  28. ssh – Linux中的安全远程连接命令
  29. service – 启动和停止系统服务的Linux命令
  30. ps – 显示当前运行进程的命令
  31. kill和killall – 通过进程ID或名称终止进程的命令
  32. df – 显示磁盘空间使用情况的命令
  33. mount – 在Linux中挂载文件系统的命令
  34. chmod – 更改文件权限的命令
  35. chown – 更改文件或目录所有者的命令
  36. ifconfig – 显示网络接口和IP地址的命令
  37. traceroute – 跟踪数据包到达目标主机的网络路径
  38. wget – 从互联网下载文件的命令
  39. ufw – 简单的防火墙配置命令
  40. iptables – Linux内核防火墙的配置工具
  41. apt,pacman,yum,rpm – 不同Linux发行版的软件包管理器
  42. sudo – 在Linux中以超级用户权限执行命令的工具
  43. cal – 显示命令行日历的命令
  44. alias – 为常用命令创建自定义别名的命令
  45. dd – 转换和复制文件,常用于创建可启动USB设备
  46. whereis – 查找命令的二进制文件、源代码和手册页位置
  47. whatis – 显示命令简要描述的命令
  48. top – 实时显示运行进程及其系统资源使用情况
  49. useradd和usermod – 添加新用户或修改现有用户信息的命令
  50. passwd – 为用户创建或更改密码的命令

现在让我们更深入地了解每个命令,并详细理解它们。对于这些个别命令,我们已经有很多现有的文章。为了方便起见,我们将添加所有现有文章的链接,并在涵盖新主题时继续更新文章。

在Linux中的ls命令

这是文章《必须掌握的前50+条Linux命令》的第2部分(共6部分)。

ls命令用于列出当前工作目录中的文件和目录。这将是您必须了解的最常用的Linux命令之一。

Ls Command Default如您在上方图像中所见,仅使用命令本身而无任何参数,将会产生一个包含目录中所有文件和子目录的输出。该命令在输出数据的显示方面提供了很大的灵活性。

了解更多关于 ls 命令的信息(链接到完整文章)。

在Linux中的pwd命令

pwd命令可以让您在终端上打印出当前工作目录。它是一个非常基本的命令,并能很好地满足其目的。

Pwd Default Output现在,你的终端提示通常应该已经带有完整的目录。但是,如果没有的话,这个命令可以快速查看所在的目录。这个命令的另一个应用是在创建脚本时,它可以帮助我们找到脚本保存的目录。

在Linux中的cd命令

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

root@ubuntu:~# cd <directory path>
Cd Command Default正如你在上面的命令中所看到的,我只需要输入cd /etc/就可以进入/etc目录。我们使用了pwd命令来打印当前工作目录。

在Linux中的mkdir命令

mkdir命令允许您在终端内创建目录。默认的语法是mkdir后跟目录名称。

root@ubuntu:~# mkdir <folder name>
Mkdir Default正如您在上面的屏幕截图中所看到的,我们只需使用这个简单的命令就创建了JournalDev目录。

了解更多关于mkdir命令的信息(文章链接)

拷贝(cp)和移动(mv)命令

cp和mv命令相当于Windows中的复制-粘贴和剪切-粘贴。但由于Linux并没有真正的重命名文件的命令,我们也使用mv命令来重命名文件和文件夹。

root@ubuntu:~# cp <source> <destination>
Cp Command Default在上面的命令中,我们创建了一个名为Sample的文件的副本。让我们看看如果我们以相同的方式使用mv命令会发生什么。为了进行演示,我将删除Sample-Copy文件。
root@ubuntu:~# mv <source> <destination>
Mv Command Linux commands you should know在上述情况中,由于我们是在同一个目录下移动文件,所以它起到了重命名的作用。文件名现在已经改变。

了解更多关于cp命令(文章链接)和mv命令(文章链接)。

Linux中的rm命令

在前面的部分中,我们删除了Sample-Copy文件。rm命令用于删除文件和文件夹,它是你必须了解的重要Linux命令之一。

root@ubuntu:~# rm <file name>
root@ubuntu:~# rm -r <folder/directory name>
Rm Default要删除一个目录,必须在命令后面添加-r参数。没有-r参数,rm命令将无法删除目录。

在Linux中的touch命令

为了创建一个新文件,将使用touch命令。touch关键词后面跟着文件名将在当前目录中创建一个文件。

root@ubuntu:~# touch <file name>
Touch Command - Linux commands you should know

在Linux中的ln命令

要创建到另一个文件的链接,我们使用ln命令。这是你计划成为Linux管理员时应该了解的重要Linux命令之一。

root@ubuntu:~# ln -s <source path> <link name>
Symbolic Link Default基本句法包括使用-s参数,以便我们可以创建符号链接或软链接。

cat、echo和less命令

当您想要输出文件的内容或将任何内容打印到终端输出时,我们使用cat或echo命令。让我们看看它们的基本用法。我已经在我们之前创建的New-File中添加了一些文本。

root@ubuntu:~# cat <file name>
root@ubuntu:~# echo <Text to print on terminal>
Cat And Echo Commands正如您在上述示例中所看到的,当我们在”New-File”上使用cat命令时,它会打印文件的内容。与此同时,当我们使用echo命令时,它会简单地打印出命令后面的内容。

当任何命令的输出超出屏幕空间并需要滚动时,可以使用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
Uname And Whoami Commands Linux commands you should know我输入给uname的参数-a代表”all”,这会打印出完整的信息。如果不添加该参数,你将只会得到输出为”Linux”。

tar、zip和unzip命令

在Linux中,tar命令用于创建和提取存档文件。我们可以使用tar命令提取多个不同的存档文件。

为了创建一个存档,我们使用”-c”参数;而为了提取一个存档,我们使用”-x”参数。让我们看看它的操作过程。

#压缩
root@ubuntu:~# tar -cvf <存档文件名> <以空格分隔的文件列表>
#解压
root@ubuntu:~# tar -xvf <存档文件名>
Tar Basic Usage Linux commands you should know

在第一行中,我们使用New-File和New-File-Link创建了一个名为Compress.tar的归档文件。在下一个命令中,我们从该归档文件中提取了这些文件。

zip和unzip命令

现在我们来看一下zip和unzip命令。这两个命令非常简单。你可以不带任何参数使用它们,它们会像预期的那样工作。让我们看一个例子。

root@ubuntu:~# zip <存档文件名> <以空格分隔的文件列表>
root@ubuntu:~# unzip <存档文件名>
Zip Unzip Commands

因为我们已经在同一个目录中拥有那些文件,所以解压命令在覆盖这些文件之前会提示我们。

了解有关 tar 命令 的更多信息,以及 zip 和 unzip 命令

在Linux中的grep命令

如果你想在结果中搜索特定的字符串,那么可以使用grep命令。我们可以将输出通过管道(|)传递给grep命令,从中提取所需的字符串。

root@ubuntu:~# <任何有输出的命令> | grep "<要查找的字符串>"
Grep Command Example

这是一个对命令的简单演示。了解更多关于grep命令的信息。

head和tail命令

当输出大文件时,head和tail命令非常有用。我已经创建了一个名为”Words”的文件,其中按字母顺序排列了许多单词。head命令将输出文件的前10行,而tail命令将输出最后10行。这也包括任何空行,不仅仅是包含文本的行。

root@ubuntu:~# head <文件名>
root@ubuntu:~# tail <文件名>
Head Command

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

Tail Command Linux commands you should know

tail命令输出了文件中的最后10行。

了解有关tail命令的更多信息。

diff、comm、cmp 命令的功能

Linux提供了多个命令来比较文件。diff、comm和cmp命令用于比较差异,它们是你必须掌握的最有用的Linux命令之一。让我们看看这三个命令的默认输出。

root@ubuntu:~# diff <文件1> <文件2>
Diff Command Linux commands you should know

正如你所看到的,我在”新文件-已编辑”文件中添加了一小段文字,”这行文字已编辑”。

root@ubuntu:~# cmp <文件1> <文件2>
Cmp Command

cmp命令只告诉我们哪一行是不同的,并不显示实际文本。我们来看一下comm命令做了什么。

root@ubuntu:~# comm <文件1> <文件2>
Comm Command

左对齐的文本是仅在文件1中存在的文本。居中对齐的文本仅在文件2中存在。右对齐的文本则同时存在于两个文件中。

从外表看,当我们试图比较较大的文件并希望将所有内容整齐地显示在一起时,使用comm命令是最明智的选择。

Linux中的sort命令

sort命令将为文件内容提供排序的输出。让我们使用没有任何参数的排序命令并查看输出结果。

sort命令的基本语法是:

root@ubuntu:~# sort <文件名>
Sort Command Linux commands you should know

在Linux中的export命令

当需要在运行时导出环境变量时,特别使用export命令。例如,若我想要更新bash提示符,我会更新PS1环境变量。立即生效后,bash提示符将被更新。

root@ubuntu:~# export <变量名>=<值>
Export Environment Variables

如果由于某种原因,您的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 
Service命令

正如您在图像中所见,SSH服务器正在我们的系统上运行。

ps命令、kill命令和killall命令

说到进程,让我们看看如何找到活动进程并终止它们。要找到正在运行的进程,我们只需在终端提示符中键入ps命令,然后获取正在运行的进程列表。

root@ubuntu:~ -->> ps 
root@ubuntu:~ -->> kill <进程ID>
root@ubuntu:~ -->> killall <进程名称>

为了演示目的,我正在创建一个带有无限循环的shell脚本,并将其在后台运行。

通过使用 & 符号,我可以将一个进程放到后台运行。如你所见,创建了一个具有 PID 14490 的新的 bash 进程。

ps命令

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

kill命令

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

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命令

了解更多有关df命令的信息。

chmod 和 chown 命令

chmod和chown命令为我们提供了更改文件权限和文件所有权的功能,这两个是你应该了解的最重要的Linux命令。

这两个命令的主要区别是chmod命令允许更改文件权限,而chown允许我们更改文件所有者。

两个命令的默认语法都是chmod <参数> 文件名和chown 用户名:用户组 文件名。

root@ubuntu:~ -->> chmod +x loop.sh
root@ubuntu:~ -->> chown root:root loop.sh
chmod命令

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

chown命令

正如您将会注意到的,根目录部分现在已更改为www-data,这是具有完全文件所有权的新用户。

了解更多关于chmod命令chown命令

ifconfig和traceroute命令

在Linux中,如果您管理网络,那么会频繁使用到ifconfig和traceroute命令。这两个命令是网络管理中经常使用的工具。

ifconfig命令将提供网络接口列表,包括IP地址、MAC地址以及其他接口相关信息。

root@ubuntu:~ -->> ifconfig

在这里,有多个可以使用的参数,但我们将使用基本命令。

ifconfig命令

当使用 traceroute 时,您可以简单地指定终点的 IP 地址、主机名或域名。

root@ubuntu:~ -->> traceroute <目标地址>
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月
Cal命令输出

虽然我不需要它,但这是一个非常酷的附加功能!我相信有些人是终端的超级粉丝,这对他们来说真是一个非常棒的选择。

别名命令

在使用终端时,你经常运行一些命令吗?可能是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这个词。

Top命令输出 - 您应该知道的Linux命令

添加用户和修改用户的命令

用户添加(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 Command

如果在passwd之后添加用户名,您可以为其他用户设置密码。输入新密码两次,完成操作。就是这样!您会为该用户设置一个新密码!

最后注释

尽管这篇文章非常长,但我敢肯定,无论何时需要,你都能从中获益。随着我们继续在JournalDev上添加更多文章,我们将在这里继续添加这些文章的链接。

我们希望这篇文章对你有所帮助。如果你有任何问题,请随意在下方留言。

bannerAds