Linux是一种开源的类Unix操作系统,它有很多不同的发行版,如Ubuntu、CentOS、Debian等。Linux系统提供了很多命令行工具,可以让用户方便地查看和管理系统的各种信息,如硬件配置、内存使用、进程状态、网络连接等。本文将介绍一些常用的命令,以及它们的用法和示例。
使用:
man command
或者command -h
查看相关命令的完整参数。
uname命令可以显示系统的基本信息,如内核版本、操作系统名称、主机名、硬件架构等。它有以下常用的选项:
例如,输入uname -a
,可以得到类似下面的输出:
root@CQUPTLEI:~# uname -a
Linux CQUPTLEI 5.4.0-149-generic #166-Ubuntu SMP Tue Apr 18 16:51:45 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
这表示当前系统是Linux,内核版本是5.4.0-149-generic,发布日期是2023年4月18日,硬件架构是x86_64,操作系统名称是GNU/Linux。
lsb_release命令可以显示Linux发行版的信息,如发行版名称、版本号、代号等。它有以下常用的选项:
例如,输入lsb_release -a
,可以得到类似下面的输出:
root@CQUPTLEI:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.6 LTS
Release: 20.04
Codename: focal
这表示当前系统是Ubuntu发行版,版本号是20.04.6 LTS,代号是focal。
LSB
是Linux标准基础(Linux Standard Base)的简称。它是一个由Linux基础设施提供商、应用程序开发者和Linux社区共同制定的标准,旨在提供一致的软件接口和二进制兼容性,以增强不同Linux发行版之间的互操作性。
LSB的目标是定义一组核心规范和标准,确保在符合LSB的Linux系统上开发和运行的应用程序能够在不同的Linux发行版上保持一致的行为。这使得应用程序开发者能够更容易地将其软件移植到不同的Linux环境中,而不需要为每个发行版进行额外的定制和调整。
LSB标准涵盖了各种方面,包括文件系统布局、共享库、命令工具、系统调用接口、初始化脚本、包管理和日志系统等。它定义了一些基本的命令和工具,如lsb_release,用于查看Linux发行版的信息,以及其他用于检查和验证系统符合LSB标准的工具。
通过遵循LSB标准,Linux发行版可以提供更高的互操作性,允许开发者在不同的Linux系统上更轻松地交付和运行应用程序。这也为企业和组织提供了更大的灵活性,使其能够选择不同的Linux发行版,并确保其应用程序能够在这些发行版上正常运行。
lscpu 用于显示关于CPU的详细信息。它提供了有关处理器架构、逻辑核心数、大小端模式、CPU频率、缓存层次结构和支持的特性等信息。
常见的参数:
-p, --parse:
解析/proc/cpuinfo文件并以可读格式显示处理器信息。
-s, --socket:
只显示物理插座(socket)的信息,包括插座编号、核心数和线程数等。
-c, --cpu:
只显示逻辑CPU的信息,包括CPU编号、核心编号、线程编号等。
-x, --hex:
在显示CPU特性和标志时,以十六进制格式显示。
-y, --extended=KEY:
显示扩展的CPU信息。KEY可以是以下之一:cache,cpu,flags,topology。
-e, --online:
只显示在线的CPU的信息,即正在运行的CPU。
-V, --version:
显示lscpu命令的版本信息。
使用lscpu
:
free命令可以显示系统的内存使用情况,包括物理内存、交换分区、缓冲区和缓存等。它有以下常用的选项:
例如,输入free -h
,可以得到类似下面的输出:
root@CQUPTLEI:~# free
total used free shared buff/cache available
Mem: 2030144 986392 108608 66064 935144 785052
Swap: 1049596 793048 256548
top命令可以实时地显示系统的进程状态,如CPU占用率、内存占用率、运行时间等。它有以下常用的选项:
例如,输入top
,可以得到类似下面的输出:
这表示当前系统已经运行了42天,有2个用户登录,平均负载是0.46、0.39、0.26。
共有249个进程,其中一个在运行,248个在睡眠。
CPU的使用率是2.0%用户态,2.2%系统态,95.5%空闲。
内存的使用情况是xxxxxx(看图)。交换分区的使用情况是xxxx。
最后显示了各个进程的信息,如进程ID、用户、优先级、虚拟内存、物理内存、共享内存、状态、CPU占用率、内存占用率、运行时间、命令等。
ifconfig命令可以显示和配置网络接口的信息,如IP地址、子网掩码、广播地址、MAC地址等。它有以下常用的选项:
例如,输入ifconfig
,可以得到类似下面的输出:
这表示当前系统有3个网络接口。
eth0是以太网接口,它的IP地址是xxx.xxx.xxx.xxx,子网掩码是xxx.xxx.xxx.xxx,广播地址是xxx.xxx.xxx.xxx,MAC地址是xx:xx:xx:xx:xx:xx。
lo是本地回环接口,docker0是docker的。
netstat可以显示活动的TCP\UDP连接、监听的端口、路由表、接口统计、多播成员等。
常用参数:
显示和配置无线网络接口的信息,包括无线网卡名称、频率和连接状态等。
服务器没有连接无线网,就不展示示例了(懒得切换双系统)。
列出系统上所有磁盘分区的信息,包括磁盘设备、分区类型和分区大小等。
关于磁盘相关的命令,可以去看我之前的文章。这里常用的参数是 -l
比如这台服务器有2个磁盘:vda 和vdb,各自分了2个区。
df命令可以显示系统的磁盘使用情况,包括总容量、已用空间、可用空间、使用百分比等。它有以下常用的选项:
查看和设置系统的主机名,包括主机名、操作系统版本、架构和系统时区等信息。
参数:
status:
显示当前系统的主机名、操作系统版本、架构和时区等信息。
set-hostname NAME:
设置系统的主机名为指定的名称。需要root权限或使用sudo执行此操作。
set-chassis TYPE:
设置系统的机箱类型。可用的类型包括desktop(桌面)、laptop(笔记本电脑)、server(服务器)和vm(虚拟机)等。
set-deployment DEPLOYMENT:
设置系统的部署环境。可用的部署环境包括production(生产环境)、development(开发环境)、testing(测试环境)和custom(自定义环境)等。
set-icon-name NAME:
设置系统主机的图标名称。该图标名称通常对应于图形用户界面(GUI)中显示的主机图标。
set-location LOCATION:
设置系统所在的位置信息。可以是一个自定义的位置字符串,例如办公室名称或机房编号。
set-timezone TIMEZONE:
设置系统的时区。需要指定有效的时区标识符,例如"Asia/Shanghai"或"America/New_York"等。
set-volatile BOOL:
设置主机名是否为临时(易失性)的。如果设置为"yes",主机名将在系统重启后重置为默认值。
set-static-hostname NAME:
设置系统的静态主机名。静态主机名在系统重启后保持不变。
set-pretty NAME:
设置一个用于美化目的的主机名。可以是一个友好的名称,用于在特定环境中显示给用户。
set-transient-hostname NAME:
设置系统的临时主机名。临时主机名在系统重启后重置为默认值。
例:hostnamectl status
lspci是一个用于显示系统中所有PCI总线和连接到它们的所有设备的信息的命令。默认情况下,它显示一个简要的设备列表。
这里:PCI的意思是Peripheral Component Interconnect,它是一种个人电脑总线,用于连接主板上的各种外围设备,如显卡、声卡、网卡等。
你可以使用以下一些常用参数来请求更详细的输出或者适合其他程序解析的输出 :
列出连接到系统的所有USB设备的信息,包括设备ID、制造商和设备速度等。
常用参数 :
显示有关系统硬件(如主板、BIOS、内存、处理器等)的详细信息。
dmidecode是一个用于解析系统的DMI(也称为SMBIOS)表内容并以人类可读的格式显示的命令。DMI表包含了系统硬件组件的描述,以及一些其他有用的信息,如序列号和BIOS版本。你可以使用以下一些常用参数来控制输出:
除了命令以外,还可以打印环境变量,来查看一些系统配置,比如终端类型、shell类型等等:
PATH
: 定义了系统在执行命令时搜索可执行文件的目录列表,以冒号分隔。如果一个命令不包含完整的路径,系统会按照这个列表依次查找该命令是否存在。
SHELL
: 定义了当前用户使用的shell程序,即登录时启动的交互式命令解释器。常见的shell程序有bash, zsh, csh等。
LANG
: 定义了当前用户使用的语言和字符编码,即显示和输入文本时使用的语言规则和字符集。这个变量会影响系统支持的语言和区域设置,例如日期格式,货币符号,排序规则等。
PS1
: 定义了当前shell的提示符,即每次输入命令时显示在命令行前面的字符串。这个变量可以包含一些特殊的转义序列,例如\u
表示用户名,\h
表示主机名,\w
表示当前工作目录等。
TERM
: 定义了当前终端的类型,即显示和输入文本时使用的终端模拟器或控制台。这个变量会影响系统支持的终端功能,例如颜色,光标,键盘映射等。
EDITOR
: 定义了当前用户使用的文本编辑器,即编辑文本文件时默认启动的程序。常见的文本编辑器有vim, nano, emacs等。
LD_LIBRARY_PATH
: 定义了系统在执行程序时搜索动态链接库的目录列表,以冒号分隔。如果一个程序依赖于某些动态链接库,系统会按照这个列表依次查找该库是否存在。
TMPDIR
: 定义了系统在运行时存储临时文件的目录。如果这个变量没有定义,系统会使用默认的临时文件目录,通常是/tmp或/var/tmp。
除了上面常用的命令外,还有很多其他命令,以及第三方工具。比如top
的升级版htop
。
把 永 远 爱 你 写 进 诗 的 结 尾 ~