您应该了解的最常用 Linux 命令
Linux 是一种在程序员和普通用户中非常流行的操作系统 (OS)。它受欢迎的主要原因之一是其出色的命令行支持。我们只能通过命令行界面(CLI)来管理整个Linux操作系统。这使我们只需几个命令即可完成复杂的任务。
在本指南中,我们将讨论一些对经验丰富的系统管理员或初学者有用的常用命令。遵循本指南后,用户将能够自信地操作Linux系统。
为了更好地组织,这些命令分为三个部分 - 文件系统、网络和系统信息。
Linux 文件系统命令
在本节中,我们将讨论一些与 Linux 中的文件和目录相关的有用命令。
1.cat命令
cat命令主要用于显示文件内容。它读取文件的内容并将其显示在标准输出(stdout)上。
cat 命令的常见语法是:
cat [OPTIONS] [FILE1] [FILE2] ...
让我们使用 cat 命令显示 /etc/os-release 文件的内容:
cat /etc/os-release
另外,我们还可以使用命令的-n
选项来显示带有行号的内容:
cat -n /etc/os-release
2.cp命令
cp 命令对于复制文件、文件组和目录非常有用。
cp 命令的常见语法是:
cp [OPTIONS]
这里,方括号 ([])
表示可选参数,而尖括号 (<>)
表示基本参数。
让我们将 /etc/os-release 文件复制到 /tmp 目录:
cp /etc/os-release /tmp/new-file.txt
现在,让我们显示文件的内容以验证文件是否已被复制:
cat /tmp/new-file.txt
同样,我们可以使用cp命令复制目录。让我们将 /etc/cron.d 目录复制到 /tmp 目录中:
cp -r /etc/cron.d /tmp
我们在 cp 命令中使用了 -r 选项,它表示递归操作。它递归地复制目录,其中包括其文件和子目录。
在下一个示例中,我们将了解如何验证目录是否已成功复制。
ls /tmp/cron.d
ls -l /tmp/cron.d
3.ls命令
ls 命令用于列出目录内容并按大小和上次修改时间降序对文件进行排序。
ls 命令的常见语法是:
ls [OPTIONS] [FILE1] [FILE2] ...
如果我们不向 ls 命令提供任何参数,那么它会列出当前目录的内容。
ls
在前面的示例中,我们将 /etc/cron.d 目录复制到 /tmp 目录。让我们验证该文件是否存在并包含所需的文件:
ls /tmp/cron.d
我们可以将 -l
选项与 ls 命令一起使用来显示更详细的信息,例如文件权限、所有者、时间戳、大小等。
让我们了解有关 /tmp/cron.d 目录中存在的文件的更多详细信息:
ls -l /tmp/cron.d
4. mkdir命令
我们经常创建目录结构来组织内容。在Linux中,我们可以使用mkdir命令来创建一个或多个目录,并为目录设置正确的权限。
mkdir 命令的常见语法是:
mkdir [OPTIONS] <DIRECTORY1> <DIRECTORY2> ...
让我们在 /tmp 目录中创建一个名为 dir-1 的目录:
mkdir /tmp/dir-1
现在,让我们验证该目录是否已创建:
ls /tmp/dir-1
在这里,我们可以看到 ls 命令没有报告任何错误,这意味着该目录存在。
有时,我们需要创建嵌套目录结构以更好地组织数据。在这种情况下,我们可以使用命令的-p
选项在/tmp/dir-1目录下创建一些嵌套目录:
mkdir -p /tmp/dir-1/dir-2/dir-3/dir-4/dir-5
在上面的示例中,我们创建了 4 层嵌套目录。让我们使用 ls 命令确认一下:
ls -R /tmp/dir-1
在这里,我们在命令中使用了 -R 选项以递归方式显示目录内容。
5.历史命令
要审核最后执行的命令,您可以使用history命令,它显示终端会话中最后执行的命令的列表。
history
要查看带有时间戳的命令历史记录,您需要在 bash 历史记录中设置时间戳,运行:
HISTTIMEFORMAT="%d/%m/%y %T " #Temporarily set the history timestamp
export HISTTIMEFORMAT="%d/%m/%y %T " #Permanently set the history timestamp
history
6. 指挥部
如何检查占用磁盘空间的前 10 个文件?由 du 命令编写的简单单行脚本,主要用于文件空间使用。
du -hsx * | sort -rh | head -10
上述 du 命令选项和开关的说明。
- du – 估计文件空间使用情况。
- -hsx –
(-h)
人类可读格式,(-s)
摘要输出,(-x)
一种文件格式,跳过其他文件格式上的目录。 - 排序 – 对文本文件行进行排序。
- -rh –
(-r)
反转比较结果,(-h)
以比较人类可读的格式。 - head – 输出文件的前n行。
7. stat命令
stat命令用于获取文件大小、访问权限、访问时间以及文件的用户ID和组ID等信息。
stat anaconda-ks.cfg
Linux 网络命令
在本节中,我们将讨论初学者可以用来解决网络相关问题的一些网络命令。
8. ping 命令
在任何网络中执行的非常常见的操作之一是检查特定主机是否可达。我们可以使用 ping 命令来检查与其他主机的连通性。
ping 命令的一般语法是:
ping [OPTIONS] <destination>
此处,目标可以是 IP 地址或完全限定域名 (FQDN),例如 google.com。我们来验证一下当前系统是否可以与google通信:
ping -c 4 google.com
在上面的示例中,该命令显示了有关网络通信的统计信息,这表明已收到所有四个网络请求(数据包)的响应。值得注意的是,我们在命令中使用了 -c 选项来限制发送到特定主机的请求数量。
让我们看一下两台主机之间的通信中断时的示例。
为了模拟这种情况,我们将尝试访问一个无法访问的 IP 地址。在本例中,它是 192.168.10.100:
ping -c 4 192.168.10.100
在这里,我们可以看到我们没有收到任何网络请求的响应。因此,该命令报告错误 - 目标主机无法访问。
9. 主机命令
有时,我们需要找到特定域的IP地址。为此,我们可以使用 host 命令,该命令执行 DNS 查找并将 FQDN 转换为 IP 地址,反之亦然。
host 命令的一般语法是:
host [OPTIONS] <destination>
此处,目的地可以是 IP 地址或 FQDN。
让我们使用 host 命令找出 google.com 的 IP 地址:
host google.com
10.whois命令
有关注册域的所有详细信息都存储在集中数据库中,可以使用 whois 命令进行查询,该命令显示有关特定域的详细信息。
whois 命令的一般语法是:
whois [OPTIONS] <FQDN>
让我们了解一下 google.com 的详细信息:
whois google.com
在这里,我们可以看到很多详细信息,例如域名注册/续订/到期日期、域名提供商等。
需要注意的是,whois 命令并非默认在所有系统上都可用。但是,我们可以使用包管理器安装它。例如,在基于 Debian 的发行版上,我们可以使用 apt 包管理器安装它:
sudo apt install whois
在基于 RHEL 的发行版和其他发行版上,您可以如图所示安装它。
sudo yum install whois [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
sudo emerge -a net-misc/whois [On Gentoo Linux]
sudo apk add whois [On Alpine Linux]
sudo pacman -S whois [On Arch Linux]
sudo zypper install whois [On OpenSUSE]
Linux 系统信息命令
在本节中,我们将讨论一些可以提供有关当前系统详细信息的命令。
11. 正常运行时间命令
使用 uptime 命令查找系统上次重新启动的时间是一个非常常见的要求,该命令告诉我们系统已经运行了多长时间。
让我们看看当前系统的正常运行时间:
uptime -p
12:10:57 up 2:00, 1 user, load average: 0.48, 0.60, 0.45
在此示例中,我们使用 -p
选项以漂亮的形式显示输出。
12.自由命令
用户经常需要查找有关已安装、可用和已使用内存的详细信息。此信息在解决性能问题时发挥着重要作用。我们可以使用 free 命令来查找内存的详细信息:
free -m
在这里,我们在命令中使用了 -m
选项,以兆字节为单位显示输出。
以类似的方式,我们可以使用 -g
、-t
和 -p
选项以 gibibytes、tebibytes 和分别为 PB。
13. lsblk命令
计算机系统将数据存储在块设备上。块设备的示例有硬盘驱动器 (HDD)、固态驱动器 (SSD) 等。我们可以使用 lsblk 命令来显示块设备的详细信息:
lsblk
在这个例子中,我们可以看到只有一个块设备,它的名字是/dev/sda。在该块设备上创建了三个分区。
在本文中,我们讨论了一些对 Linux 初学者有用的命令。首先,我们讨论了文件系统命令。然后我们讨论了网络命令。最后,我们讨论了一些提供有关当前系统详细信息的命令。