Linux是程序员和普通用户中非常流行的操作系统 (OS),它受欢迎的主要原因之一是其出色的命令行支持,用户可以通过命令行界面 (CLI) 来管理整个 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
另外,可以使用ls-l
命令的选项来显示更详细的信息,例如文件权限、所有者、时间戳、大小等。
如下图所示,列出有关/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命令,它会显示终端会话中最后执行的命令列表。
$ history
要查看带有时间戳的命令历史记录,需要在bash历史记录中设置时间戳,命令如下:
$ HISTTIMEFORMAT="%d/%m/%y %T " #临时设置历史时间戳 $ export HISTTIMEFORMAT="%d/%m/%y %T " #永久设置历史时间戳 $ history
6、du命令
如果需要检查占用磁盘空间大小的前10个文件,那么由du命令编写的简单单行脚本,主要用于文件空间使用。
$ du -hsx * | sort -rh | head -10
上述du命令选项和转换的说明:
- du – 估计文件空间使用情况。
- -hsx –
(-h)
人类可读格式,(-s)
摘要输出,(-x)
一种文件格式,跳过其他文件格式的目录。 - sort – 对文本文件行进行排序。
- -rh –
(-r)
反转比较的结果,(-h)
以比较人类可读的格式。 - head – 输出文件的前n行。
7、stat命令
stat命令用于获取文件大小、访问权限、访问时间、文件的用户ID和组ID等信息。
$ stat anaconda-ks.cfg
8、ping命令
在任何网络中执行的非常常见的操作之一是检查特定主机是否可访问,这个可以使用ping命令检查与其他主机的连接性。ping命令的一般语法是:
$ ping [OPTIONS] <destination>
此处,目的地可以是IP地址或完全限定域名 (FQDN),例如google.com。下面来验证当前系统是否可以与google通信:
$ ping -c 4 google.com
在上面的示例中,ping命令显示了有关网络通信的统计信息,这表明所有四个网络请求(数据包)都收到了响应。需要注意的是,这里使用该命令的-c
选项来限制发送到特定主机的请求数。
接下来看看两台主机之间的通信中断时的示例。
为了模拟这种情况,这里将尝试访问一个不可访问的IP地址,随便设置一个,例如192.168.10.100:
$ ping -c 4 192.168.10.100
在上图中,可以看到我们没有收到任何网络请求的响应。因此该命令报告错误 – Destination Host Unreachable。
9、Host命令
有时候需要查找特定域的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 [在RHEL/CentOS/Fedora和Rocky Linux/AlmaLinux 上] $ sudo Emerge -a net-misc/whois [在Gentoo Linux 上] $ sudo apk add whois [在Alpine Linux 上] $ sudo pacman -S whois [在Arch Linux 上] $ sudo zypper install whois [在OpenSUSE上]
11、uptime命令
使用uptime命令查找系统上次重新启动的时间是一个比较常见的要求,该命令告诉系统运行了多长时间。
下面演示了当前系统的正常运行时间:
$ uptime -p 12:10:57 up 2:00, 1 user, load average: 0.48, 0.60, 0.45
在此示例中,使用了-p
选项以合适的形式显示输出。
12、free命令
用户通常需要查找有关已安装、可用和已用内存的详细信息。此信息在解决性能问题时起着重要作用。这时候可以使用free命令来查找有关内存的详细信息:
$ free -m
在这里,使用了-m
选项和以兆字节为单位显示输出的命令。
以类似的方式,还可以使用-g
、-t
和-p
选项分别以gibibytes、tebibytes和pebibytes 显示输出。
13、lsblk命令
计算机系统将数据存储在块设备上,块设备的示例有硬盘驱动器 (HDD)、固态驱动器 (SSD) 等。这里可以使用lsblk 命令来显示有关块设备的详细信息:
$ lsblk
在这个例子中,可以看到只有一个块设备,它的名字是/dev/sda。在该块设备上创建了三个分区。
总结
在本文中,小编简单整理了一些对Linux初学者有用的命令,主要包括三大不妨,如文件系统命令、网络命令、系统命令等,希望对于Linux新手用户有所帮助。
推荐阅读: