首页 > 系统相关 >linux系统常见及常用的命令操作(进程管理、网络通信篇)

linux系统常见及常用的命令操作(进程管理、网络通信篇)

时间:2024-08-13 23:25:45浏览次数:15  
标签:网络通信 httpd 显示 0.0 hostname linux 进程 root

​​​前言

本人是互联网新人,自己整理了一些工作中经常用到的Linux常用命令;一是为了让自己更加清晰认识,再一个希望能帮助到大家和未来的新人;编辑实属不易,轻喷,都是一字字打出来的;后续会慢慢调整编写模式;


提示:以下是本篇文章正文内容,下面案例可供参考;只摘要部分命令选项,如需深入了解,可自行百度或AI查询;

linux系统常见及常用命令(超详细:系统篇)-CSDN博客

linux系统常见及常用的命令操作(包管理、文件和目录操作)-CSDN博客

一、进程管理:

1. ps:显示当前进程的快照(一般与grep搭配使用)

        用于显示当前系统中的进程信息。它提供了有关进程的详细信息,包括进程的状态资源使用情况以及其他关键信息ps 命令非常重要,因为它允许你查看系统上正在运行的进程,从而帮助你进行系统监控、故障排除和性能调优

  • 格式: ps  [选项]
    • 常见选项:
      • -e:或 -A:显示系统中所有的进程
      • -a:显示所有终端的进程,但不包括会话领导进程
      • -u:以用户为基础显示进程
      • -x:显示所有进程,包括那些没有控制终端的进程(通常是后台进程)
      • -f:显示完整格式的输出,提供更多的进程信息
      • -l:显示长格式的输出,提供更详细的信息
      • -o:自定义输出格式,允许你选择显示的字段
      • -p:显示指定进程 ID 的信息
    # ps 命令的输出包含多个字段,具体内容可能会因使用的选项而异。以下是一些常见字段的解释
    1. PID:进程 ID。每个进程在系统中都有一个唯一的标识符。
    2. TTY:进程关联的终端。对于后台进程,通常显示为 ?。
    3. TIME:进程使用的 CPU 时间。
    4. CMD:启动进程的命令。
    5. USER:进程的所有者用户名。
    6. STAT:进程状态,常见的状态包括:
            R:运行中(Running)
            S:休眠中(Sleeping)
            D:不可中断的休眠(Uninterruptible Sleep)
            Z:僵尸状态(Zombie)
            T:跟踪(Tracing)
    7. %CPU:进程使用的 CPU 百分比。
    8. %MEM:进程使用的内存百分比。
    9. START:进程启动的时间。
    10. VSZ:虚拟内存的大小(单位:KB)。
    11. RSS:常驻内存的大小(单位:KB)。
    # 常用示例:
    # 显示所有用户的所有进程的详细信息,包括那些没有控制终端的进程
    [root@hostname ~]# ps -aux |grep httpd
    root      35628  0.0  0.0 230440  5204 ?        Ss   09:46   0:00 /usr/sbin/httpd -DFOREGROUND
    apache    35639  0.0  0.0 232524  3144 ?        S    09:46   0:00 /usr/sbin/httpd -DFOREGROUND
    apache    35640  0.0  0.0 232524  3144 ?        S    09:46   0:00 /usr/sbin/httpd -DFOREGROUND
    apache    35641  0.0  0.0 232524  3144 ?        S    09:46   0:00 /usr/sbin/httpd -DFOREGROUND
    apache    35642  0.0  0.0 232524  3144 ?        S    09:46   0:00 /usr/sbin/httpd -DFOREGROUND
    apache    35643  0.0  0.0 232524  3144 ?        S    09:46   0:00 /usr/sbin/httpd -DFOREGROUND
    root      35980  0.0  0.0 112824   980 pts/1    S+   09:51   0:00 grep --color=auto httpd
    
    # 显示所有进程的完整格式输出
    [root@hostname ~]# ps -ef | grep httpd
    root      35628      1  0 09:46 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
    apache    35639  35628  0 09:46 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
    apache    35640  35628  0 09:46 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
    apache    35641  35628  0 09:46 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
    apache    35642  35628  0 09:46 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
    apache    35643  35628  0 09:46 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
    root      36025  21692  0 09:52 pts/1    00:00:00 grep --color=auto httpd
    

2. top:实时显示系统中各个进程的资源占用情况

        用于实时显示系统中各进程的资源使用情况,它是监控系统性能的重要工具。top 提供了关于 CPU内存使用情况以及进程状态的动态更新信息

  • 界面布局:分两个部分
    • 系统概况(Summary Area):显示系统的整体状态,包括 CPU、内存、交换区使用情况等。
    • 进程列表(Task Area):列出系统中正在运行的进程及其资源使用情况。
top - 09:57:58 up 14:34,  2 users,  load average: 0.00, 0.01, 0.05
Tasks: 235 total,   1 running, 234 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.2 us,  1.2 sy,  0.0 ni, 98.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  5925680 total,  2922692 free,   990224 used,  2012764 buff/cache
KiB Swap:  5242876 total,  5242876 free,        0 used.  4626196 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                             
 15610 root      20   0 3695076 257100  71120 S   4.0  4.3   0:50.81 gnome-shell                         
 15058 root      20   0  387404  81628  53012 S   3.0  1.4   0:15.81 X                                   
 16007 root      20   0  764152  31032  19380 S   1.0  0.5   0:05.56 gnome-terminal-                     
     9 root      20   0       0      0      0 S   0.3  0.0   0:03.25 rcu_sched                           
           
# 系统概况字段:
1. 上次更新:显示 top 命令启动后经过的时间。
2. 任务数(Tasks):显示进程总数及其状态(如运行中、休眠中)。
3. CPU 使用情况(CPU(s)):
    %us:用户空间的 CPU 使用百分比。
    %sy:系统空间的 CPU 使用百分比。
    %id:空闲 CPU 百分比。
    %wa:等待 I/O 操作的 CPU 百分比。
    %hi:硬件中断的 CPU 使用百分比。
    %si:软件中断的 CPU 使用百分比。
4. 内存使用情况(Mem):
    total:总内存。
    free:空闲内存。
    used:已使用的内存。
    buff/cache:用于缓冲和缓存的内存。
5. 交换区使用情况(Swap):
    total:总交换区大小。
    free:空闲交换区。
    used:已使用的交换区。
# 进程列表字段:
1. PID:进程 ID。
2. USER:进程所有者的用户名。
3. PR:进程的优先级(Priority)。
4. NI:进程的优先级调整值(Nice value)。
5. VIRT:进程使用的虚拟内存总量。
6. RES:进程使用的常驻内存量(实际物理内存)。
7. SHR:进程共享的内存量。
    S:进程状态,如:
    R:运行中(Running)
    S:休眠中(Sleeping)
    D:不可中断的休眠(Uninterruptible Sleep)
    Z:僵尸状态(Zombie)
8. %CPU:进程使用的 CPU 百分比。
9. %MEM:进程使用的内存百分比。
10. TIME+:进程使用的总 CPU 时间。
11. COMMAND:启动进程的命令。
  • 常用选项:
  • 进入 top 界面后,使用的 按键操作:
    • P:按 CPU 使用率排序。
    • M:按内存使用量排序。
    • T:按时间排序。
    • k:杀死进程。输入进程 ID 后,系统会提示你确认是否要终止该进程。
    • q:退出 top 命令。
  • 高级命令选项

# -d:设置更新间隔时间,例如 top -d 5 每 5 秒更新一次。
[root@hostname ~]# top -d 5

# -p:仅显示指定进程的情况,例如 top -p 1234 仅显示 PID 为 1234 的进程。
[root@hostname ~]# top -p 35628
top - 10:49:56 up 15:25,  2 users,  load average: 0.04, 0.04, 0.05
Tasks:   1 total,   0 running,   1 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  5925680 total,  2924604 free,   987052 used,  2014024 buff/cache
KiB Swap:  5242876 total,  5242876 free,        0 used.  4629164 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                             
 35628 root      20   0  230440   5204   3320 S   0.0  0.1   0:00.15 httpd   

# -b:以批处理模式运行,适合将 top 的输出重定向到文件中,例如 top -b -n 1 > top_output.txt
[root@hostname ~]# top -b -n 1 > top_test.txt
[root@hostname ~]# cat  top_test.txt 
top - 10:50:23 up 15:26,  2 users,  load average: 0.02, 0.03, 0.05
Tasks: 236 total,   1 running, 235 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  5925680 total,  2924328 free,   987320 used,  2014032 buff/cache
KiB Swap:  5242876 total,  5242876 free,        0 used.  4628904 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
     1 root      20   0  273456   4524   2660 S   0.0  0.1   0:05.46 systemd
     2 root      20   0       0      0      0 S   0.0  0.0   0:00.02 kthreadd

3. htop:增强的top版本

        htop 是一个互动式的系统监控工具,比 top 更加友好和直观。它以图形化方式显示系统的资源使用情况,并允许用户通过键盘进行交互。

  • 界面布局:
    • 系统概况(Header Area):
      • CPU 使用情况:图形化显示每个 CPU 核心的使用情况
      • 内存使用情况:显示物理内存和交换区的使用情况
      • 负载平均值:显示系统的负载平均值(1分钟、5分钟、15分钟)
    • 进程列表(Process List):
      • 显示当前运行的进程及其详细信息

# 主要字段
1. PID:进程 ID。
2. USER:进程所有者的用户名。
3. PRI:进程的优先级。
4. NI:进程的优先级调整值(Nice value)。
5. VIRT:进程使用的虚拟内存总量。
6. RES:进程使用的实际物理内存量。
7. SHR:进程共享的内存量。
8. S:进程状态(运行、休眠等)。
9. CPU%:进程使用的 CPU 百分比。
10. MEM%:进程使用的内存百分比。
11. TIME+:进程使用的总 CPU 时间。
12. COMMAND:启动进程的命令。

# 常用操作
1. 上下箭头:滚动进程列表。
2. 左右箭头:调整列的宽度。
3. F2:打开设置菜单,允许用户自定义显示选项。
4. F3:搜索进程。
5. F4:筛选进程列表。
6. F5:切换到树状视图,显示进程的父子关系。
7. F6:选择排序列。
8. F9:杀死进程,选择进程后按下会提示选择信号。
9. F10:退出 htop。

# 高级选项
-d:设置更新间隔,例如 htop -d 5 每 5 秒更新一次。
-u:仅显示指定用户的进程,例如 htop -u username。

4. service与systemctl:管理系统服务:启动、停止、重启服务

< service > 和  < systemctl > 是用于管理 Linux 系统服务的命令行工具,但它们适用于不同的系统和服务管理工具;

(1)service 命令:(目前linux系统也可以正常使用

        service 命令是旧版的服务管理工具,主要用于 SysVinit 和兼容 SysVinit 的系统(例如:较旧的Debian和Ubuntu版本)。它提供了一个简化的接口来启动、停止、重启和检查服务状态。

  • 常用命令操作:
格式: service <service_name> <command>
<service_name>:服务的名称,如 apache2、nginx 等
<command>:要执行的操作,如 start、stop、restart、status 等

# 使用示例:
# 启动服务:
[root@hostname ~]# service httpd start
Redirecting to /bin/systemctl start httpd.service

# 停止服务:
[root@hostname ~]# service httpd stop
Redirecting to /bin/systemctl stop httpd.service

# 重启服务:
[root@hostname ~]# service httpd restart
Redirecting to /bin/systemctl restart httpd.service

# 查看服务状态:
[root@hostname ~]# service httpd status
Redirecting to /bin/systemctl status httpd.service
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: active (running) since 一 2024-08-12 11:41:19 CST; 38s ago
     Docs: man:httpd(8)
           man:apachectl(8)

(2)systemctl 命令:

        systemctl 命令是用于控制和管理 systemd 系统和服务管理器的工具。systemd 是现代 Linux 发行版中常见的初始化系统,提供了更复杂的服务管理和依赖处理功能。

  • 常用命令操作:
格式: systemctl <command> <service_name>
<command>:要执行的操作,如 start、stop、restart、status 等。
<service_name>:服务的名称,如 apache2.service、nginx.service 等。

# 使用示例:
# 启动服务:(正常启动时,输出无反馈;除问题启动,会报错)
[root@hostname ~]# systemctl start httpd

# 停止服务:(输出后无反馈)
[root@hostname ~]# systemctl stop httpd


# 重启服务:(正常重启后,输出无反馈;除问题启动,会报错)
[root@hostname ~]# systemctl restart httpd

# 查看服务状态:
[root@hostname ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: active (running) since 一 2024-08-12 11:41:19 CST; 9min ago
     Docs: man:httpd(8)

(3)两者的区别:

  1. 随着系统的更新迭代,命令也进行了更新,我只测试过centos7,redhat8是可以继续使用service命令的;
  2. 功能和复杂性:
    1. service:提供了基本的服务管理功能,适用于简单的服务管理任务。
    2. systemctl:提供了更高级的功能,包括服务的依赖管理、并行启动、并且能够管理多个单元类型(如服务、挂载点、设备等)。
  3. 命令选项和功能

    • systemctl 提供了更多的功能,例如管理系统挂载点、查看服务的日志(journalctl)以及更详细的服务状态信息。
  4. 兼容性

    • systemctl 通常与 service 命令的功能兼容,但在使用 systemctl 时需要注意系统是否支持 systemd

5. pstree:以树状图显示进程

        用于显示进程树的命令行工具,它以树形结构显示 Linux 系统中运行的进程及其关系。这使得用户能够直观地看到进程之间的父子关系,帮助分析和理解系统中各个进程的组织结构。

格式: pstree [options] [pid | username]
pid:指定某个进程的 ID,只显示该进程及其子进程的树状结构。
username:指定某个用户,只显示该用户的进程树。

常用选项:

  • -A:使用 ASCII 字符而不是 UTF-8 字符来绘制树形结构。这对于某些终端或字符集支持不佳的环境很有用。
  • -c:显示进程的命令行参数。
  • -h:高亮显示当前终端中的进程(即 pstree 自身进程)。
  • -n:按 PID 排序,而不是按进程名称。
  • -p:显示进程 ID。
  • -s:显示进程树的根(即系统启动时的 init 进程)。
  • -u:显示每个进程的用户。
  • -V:显示 pstree 的版本信息。
# 使用示例:
# 显示所有进程树:
[root@hostname ~]# pstree
systemd─┬─ModemManager───2*[{ModemManager}]
        ├─NetworkManager───2*[{NetworkManager}]
        ├─VGAuthService
        ├─2*[abrt-watch-log]
        ├─abrtd
        ├─accounts-daemon───2*[{accounts-daemon}]
...

# 显示某个进程的树:
[root@hostname ~]# pstree 44048
httpd───5*[httpd]
这里 44048 是进程 ID,pstree 将仅显示 PID 为 44048 的进程及其子进程。

# 显示所有进程树,并包含 PID:
[root@hostname ~]# pstree -p
systemd(1)─┬─ModemManager(6291)─┬─{ModemManager}(6303)
           │                    └─{ModemManager}(6318)
           ├─NetworkManager(6290)─┬─{NetworkManager}(6315)
           │                      └─{NetworkManager}(6330)
           ├─VGAuthService(6310)
           ├─abrt-watch-log(6308)
           ├─abrt-watch-log(6317)
           ├─abrtd(6297)
...

进程树的结构:

  • pstree 显示的树形结构中:
    • 每个进程 都以一个节点表示。
    • 父进程 在树的上层,子进程 在下层。
    • 进程之间的连接用垂直和水平线条表示。
    • 进程名通常显示在节点上,PID 可以通过 -p 选项显示。

进程树的实际用途:

  • 系统监控和调试:了解进程的层次结构和依赖关系,有助于诊断问题。
  • 资源管理:查看哪些进程是父进程,以及它们如何分布在系统中。
  • 权限和安全分析:识别和检查进程的运行用户,了解不同用户运行的进程。

提示:这里有一个知识点:

在操作系统中,父进程的终止会对子进程产生一定影响。分别情况如下:(在此不过多解释,但进程是很重要的,比如学docker和kubernetes时会用到)

(1)进程的孤儿进程;

(2)孤儿进程的处理;

(3)子进程的终止;

(4)信号处理;

(5)僵尸进程;

  • 孤儿进程:父进程终止后,子进程会被 init 进程收养,继续运行或终止。
  • 僵尸进程:如果父进程没有处理子进程的退出状态,子进程会变成僵尸进程,但最终会由 init 进程清理。

6. kill:终止指定进程

  kill 命令是在 Unix 和 Linux 系统中用于发送信号给进程的命令。它不仅仅用于终止进程,还可以用于发送其他各种信号来控制进程的行为;

格式: kill [options] <pid>...
<pid>:要发送信号的目标进程 ID。可以指定一个或多个进程 ID。

# 常用选项:
-l:列出所有信号的名称。这对于查看系统支持的信号非常有用。
-s <signal> 或 --signal <signal>:指定要发送的信号类型,可以是信号名称或信号编号。
-p:只显示指定进程的 PID,不发送信号。
-n:使用信号的编号而不是名称。

# 常见信号:
★信号是操作系统用来控制进程的机制。信号有很多种,下面列出一些常见的信号及其用途:
SIGTERM (15):终止信号,要求进程正常终止。进程可以捕捉此信号并进行清理工作。
SIGKILL (9):强制终止信号,不允许进程捕捉或忽略此信号。进程会被立即终止,无法进行任何清理操作。
SIGINT (2):中断信号,通常由用户从终端发送,表示中断当前进程的操作(例如,按下 Ctrl+C)。
SIGHUP (1):挂起信号,通常用于通知进程重新读取配置文件或重新启动。
SIGSTOP (19):停止信号,用于暂停进程的执行,不能被捕捉或忽略。可以通过 SIGCONT 恢复进程。
SIGCONT (18):继续信号,用于恢复被 SIGSTOP 或 SIGTSTP 停止的进程。
SIGUSR1 和 SIGUSR2:用户定义信号,可以用于自定义的应用程序行为。
  • 常见命令操作:
# 使用示例:
# 终止单个进程:(拿httpd举例)
[root@hostname ~]# systemctl status httpd  # 查看状态
● httpd.service - The Apache HTTP Server  
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: active (running)     # 这属于运行状态
Main PID: 44048 (httpd)         # 进程 ID

# 这里 44048 是进程 ID,默认发送 SIGTERM 信号,请求进程正常终止。
[root@hostname ~]# kill 44048   

[root@hostname ~]# systemctl status httpd  # 查看状态
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: failed (Result: exit-code)   # 显示失败
# 强制终止进程:
# 这里 -9 是 SIGKILL 信号的编号,用于强制立即终止进程
[root@hostname ~]# kill -9 44048 

# 向进程发送特定信号:
# 这里 -s 选项指定了信号名称 SIGHUP,用于通知进程重新读取配置文件
[root@hostname ~]#  kill -s SIGHUP 44048

# 列出所有信号:
[root@hostname ~]# kill -l
 1) SIGHUP	 2) SIGINT	 3) SIGQUIT	 4) SIGILL	 5) SIGTRAP
 6) SIGABRT	 7) SIGBUS	 8) SIGFPE	 9) SIGKILL	10) SIGUSR1
...

# 发送信号给多个进程:
[root@hostname ~]# kill -9 1234 5678 91011

注意事项:

  • 权限问题:发送信号到进程时,你需要有足够的权限。通常,只有进程的所有者或超级用户可以终止该进程。
  • 信号处理:进程可以捕捉和处理某些信号(如 SIGTERM),从而进行适当的清理工作。SIGKILL 是一个例外,它会立即终止进程,不允许任何处理。
  • 信号的忽略:进程可以选择忽略某些信号(例如,某些重要的信号可能会被忽略以防止意外终止)。

7. pkill:根据名称杀死进程

pkillkill 命令的一个增强版,它能够通过进程名称来操作进程,而不是单独指定进程 ID。

格式: pkill [options] <pattern>
<pattern>:进程名称的模式,可以使用通配符或正则表达式来匹配进程名称
  • 常用选项:
    • -e:显示每个匹配到的进程的 PID。
    • -f:匹配进程的完整命令行,而不仅仅是进程名称。
    • -i:忽略模式的大小写。
    • -n:仅操作最新启动的进程。
    • -o:仅操作最早启动的进程。
    • -u <user>:仅匹配属于指定用户的进程。
    • -signal 或 --signal <signal>:指定要发送的信号类型,可以是信号名称或信号编号。默认信号为 SIGTERM
  • 常用命令操作:
# 使用示例:
# 终止所有名为 httpd 的进程:
[root@hostname ~]# pkill httpd

# 强制终止所有名为 httpd 的进程:
[root@hostname ~]# pkill -9 httpd

# 显示匹配的进程的 PID:
[root@hostname ~]# pkill -e httpd
httpd killed (pid 50118)
httpd killed (pid 50135)
httpd killed (pid 50137)
...

8. killall:杀死所有指定名字的进程

        主要功能是通过进程名称而不是进程ID来终止一个或多个进程;

格式: killall [选项] <进程名>
  • 主要选项和功能:
    • -s, --signal SIGNAL:指定要发送的信号,SIGNAL 可以是信号名称(如 SIGTERM)或信号编号(如 15)。如果没有指定,killall 默认发送 SIGTERM 信号
    • -u, --user USER: 只终止由指定用户拥有的进程。你需要用用户名或用户ID(UID)替代 USER
    • -v, --verbose: 显示详细信息,列出正在终止的进程。
    • -i, --interactive: 在终止每个进程之前提示用户确认。这是一个安全功能,可以防止误终止重要进程。
    • -r, --regexp: 通过正则表达式匹配进程名称。这允许更灵活的进程选择。
    • -e, --exact: 精确匹配进程名称,只终止完全匹配的进程名,忽略部分匹配。
    • -l, --list: 列出所有信号名称。这对于确认可用信号很有用。
    • -n, --signal-number: 列出信号名称及其编号,这可以帮助你找到信号的正确编号。
  • 常用命令操作:
# 使用示例:
# 终止所有名为 firefox 的进程:
[root@hostname ~]# killall firefox

# 终止所有由用户 john 启动的名为 firefox 的进程:
[root@hostname ~]# killall -u john firefox

# 发送 SIGKILL 信号(强制终止)到名为 firefox 的进程:
[root@hostname ~]# killall -s SIGKILL firefox

# 在终止之前提示确认:
[root@hostname ~]# killall -i firefox

# 列出所有信号名称:
[root@hostname ~]# killall -l

注意事项:

  • 使用 killall 时要小心,因为它会终止所有匹配名称的进程,可能会影响到不希望终止的进程。
  • killall 命令的行为可能会因操作系统的不同而有所不同。例如,在某些系统上,killall 可能只会终止用户自己拥有的进程。

9. vmstat:报告虚拟内存统计信息

  vmstat(虚拟内存统计)是一个在类 Unix 操作系统中用于报告系统内存、交换、IO、系统活动和 CPU 使用情况的命令。可以帮助系统管理员监控系统的性能和诊断潜在的问题

格式: vmstat [options] [delay [count]]
1. options:vmstat 支持多种选项来控制其行为
2. delay:指定更新的时间间隔(以秒为单位)
3. ount:指定输出的行数(即更新的次数)

常用选项:

  • -a:显示所有内存统计信息,包括活动和非活动内存。
  • -s:以汇总格式显示系统内存的统计信息。
  • -d:显示块设备的统计信息(如磁盘I/O)。
  • -m:显示内存分配信息,包括 slab 分配。
  • -t:显示时间戳。
# 输出字段:

[root@hostname ~]# vmstat -a
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free  inact active   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 2590940 1549748 1280272    0    0     7     2   28   45  0  0 100  0  0

1. Procs(进程)
    r:就绪队列中的进程数量。系统处于等待 CPU 时间的进程数量
    b:在不可中断的等待状态下的进程数量,通常是等待 I/O 的进程

2. Memory(内存)
    swpd:已使用的交换空间(以 KB 为单位)
    free:空闲内存(以 KB 为单位)
    buff:用于缓冲的内存(以 KB 为单位)
    cache:用于缓存的内存(以 KB 为单位)

3. Swap(交换空间)
    si:从磁盘交换到内存的数量(以 KB 为单位),即交换进程
    so:从内存交换到磁盘的数量(以 KB 为单位),即交换出

4. IO(输入输出)
    bi:每秒从块设备读取的数据量(以 KB 为单位)
    bo:每秒写入到块设备的数据量(以 KB 为单位)

5. System(系统)
    in:每秒中断的数量,包括时钟中断
    cs:每秒上下文切换的数量

6. CPU(CPU)
    us:用户空间占用的 CPU 时间百分比,不包括优先级调度
    sy:内核空间占用的 CPU 时间百分比
    id:CPU 空闲时间百分比
    wa:等待 I/O 操作的时间百分比
    st:从虚拟机偷取的 CPU 时间百分比(仅在虚拟化环境中有用)
  • 常用命令操作:
# 使用示例:
# 查看系统状态(默认输出):
[root@hostname ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 2591036   1772 2330720    0    0     7     2   28   45  0  0 100  0  0

# 每隔 5 秒更新一次,共 10 次:
[root@hostname ~]# vmstat 5 10
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 2590408   1772 2330724    0    0     7     2   28   45  0  0 100  0  0
 0  0      0 2590368   1772 2330724    0    0     0    18  753 1290  0  1 99  0  0
 0  0      0 2590368   1772 2330724    0    0     0     0  155  258  0  0 100  0  0
 0  0      0 2590344   1772 2330724    0    0     0     0  562  982  0  1 99  0  0
...

# 显示所有内存统计信息:
[root@hostname ~]# vmstat -a
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free  inact active   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 2590460 1549748 1280560    0    0     7     2   28   46  0  0 100  0  0

# 显示时间戳:
[root@hostname ~]# vmstat -t
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- -----timestamp-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st                 CST
 1  0      0 2590644   1772 2330724    0    0     7     2   28   46  0  0 100  0  0 2024-08-12 15:42:00

注意事项:

  • vmstat 的输出是基于系统的快照,因此要理解其输出结果,需要对系统行为有一定了解。
  • 输出的字段和解释可能会因操作系统和版本的不同而有所不同。

二、网络和通信:

1. ping:检查网络连接

        用于测试网络连通性,检查目标主机是否可以访问以及网络延迟。它通过向目标主机发送 ICMP 回显请求(Echo Request)并接收 ICMP 回显应答(Echo Reply)来实现这一点。

格式:ping [options] destination

常用选项:

  • -c:指定发送的请求次数。例如,ping -c 4 google.com 发送 4 个请求。
  • -i:设置发送请求的间隔时间(秒)。默认是每秒一次。
  • -t:设置请求的生存时间(TTL,Time To Live),用于控制数据包的跳数。
  • -s:设置发送数据包的大小(字节数)。
  • -W:设置超时时间(秒),等待每个响应的最长时间。
  • -q:以简洁模式显示输出,仅显示总结信息。
# 输出字段:
[root@hostname ~]# ping 192.168.2.71
PING 192.168.2.71 (192.168.2.71) 56(84) bytes of data.
64 bytes from 192.168.2.71: icmp_seq=1 ttl=64 time=0.224 ms
64 bytes from 192.168.2.71: icmp_seq=2 ttl=64 time=0.418 ms
64 bytes from 192.168.2.71: icmp_seq=3 ttl=64 time=0.386 ms
^C
--- 192.168.2.71 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.224/0.342/0.418/0.087 ms

1. PING:显示目标主机的 IP 地址和发送数据包的大小。
2. 64 bytes from:显示接收到的字节数、目标主机的 IP 地址和生存时间(TTL)。
3. icmp_seq:显示序列号,用于跟踪请求的顺序。
4. time:显示从发送请求到接收到响应的时间(毫秒)。
5. rtt:往返时间(Round Trip Time),显示最小、最大和平均延迟。
  • 常用命令操作:
# 使用示例:
# 基本连通性测试:
[root@hostname ~]# ping baidu.com     # ping 域名地址
[root@hostname ~]# ping 192.168.2.10  # ping IP地址

 2. ifconfig 或 ip:配置或显示网络接口参数

ifconfig ip 命令都是用来管理和配置网络接口的工具,但它们在功能和使用上有些区别。

(1)ifconfig 命令:

        ifconfig(interface configuration)是一个传统的命令行工具,用于配置和显示网络接口的状态。它在许多 Unix 和类 Unix 系统上都可用,包括 Linux 和 macOS。

格式:ifconfig [interface] [options]

常用选项:

  • ifconfig显示所有网络接口的信息。
  • ifconfig interface:显示指定接口的信息,例如 ifconfig eth0
  • ifconfig interface up:启用指定接口。
  • ifconfig interface down:禁用指定接口。
  • ifconfig interface ip_address netmask netmask:为指定接口配置 IP 地址和子网掩码。
  • ifconfig interface hw ether mac_address:设置接口的 MAC 地址。
  • 常用命令操作:
# 使用示例:
# 查看所有接口信息:
[root@hostname ~]# ifconfig

# 查看指定接口信息:
[root@hostname ~]# ifconfig eth0

# 启用接口:
[root@hostname ~]# ifconfig eth0 up

# 禁用接口:
[root@hostname ~]# ifconfig eth0 down

# 设置 IP 地址:
[root@hostname ~]# ifconfig eth0 192.168.1.100 netmask 255.255.255.0

(2)ip 命令:

        ip 命令是 Linux 上用于管理网络配置的现代工具,功能更强大且更灵活。它属于 iproute2 套件,ifconfig 的现代替代品

格式:ip [OPTIONS] OBJECT { COMMAND | help }
OBJECT:操作的对象,如 link、addr、route 等。
COMMAND:要执行的操作,如 show、add、del 等。

常用选项和命令:

  • ip link:管理和显示网络接口。

    • ip link show:显示所有接口的信息。
    • ip link set interface up:启用接口。
    • ip link set interface down:禁用接口.
  • ip addr:管理和显示 IP 地址。

    • ip addr show:显示所有接口的 IP 地址。
    • ip addr add ip_address/prefixlen dev interface:为接口添加 IP 地址。
    • ip addr del ip_address/prefixlen dev interface:从接口删除 IP 地址.
  • ip route:管理和显示路由表。

    • ip route show:显示路由表。
    • ip route add destination/prefix via gateway:添加路由。
    • ip route del destination:删除路由。
  • 常用命令操作:
# 使用示例:
# 查看所有接口信息:
[root@hostname ~]# ip link show

# 查看指定接口的 IP 地址:
[root@hostname ~]# ip addr show eth0

# 启用接口:
[root@hostname ~]# ip link set eth0 up

# 禁用接口:
[root@hostname ~]# ip link set eth0 down

(3)两者区别:

  1. 功能范围:

    • ifconfig:主要用于网络接口的配置和显示,功能较为基础。
    • ip:功能更全面,不仅支持网络接口配置,还包括 IP 地址、路由、链路等的管理。
  2. 现代性

    • ifconfig:相对较旧,在现代 Linux 系统中逐渐被 ip 命令取代。
    • ip:现代的网络配置工具,功能强大且灵活,支持更多高级特性。
  3. 输出格式

    • ifconfig:输出格式较为简单。
    • ip:输出格式详细且可以通过不同的命令组合获得更多信息。
  4. 工具套件

    • ifconfig:属于 net-tools 套件。
    • ip:属于 iproute2 套件。

总体而言,ip 命令提供了更为全面和灵活的网络管理功能,是现代 Linux 系统中推荐使用的工具。

3.nmcli:可以用来查看和配置网络(这个用起来还不错)

        nmcli 是一个命令行工具,用于与 NetworkManager 进行交互,管理网络连接。NetworkManager 是 Linux 上一个强大的网络管理工具,它简化了网络连接的配置和管理。nmcli 命令可以用来查看和配置网络接口、网络连接、无线网络、VPN 等。

( 可作为单独学的一条命令,涉及到网卡命名规则 )

格式:nmcli [OPTIONS] OBJECT { COMMAND | help }
OBJECT:操作的对象,如 connection、device、networking 等。
COMMAND:要执行的操作,如 show、add、delete 等。
  • 常用的 nmcli 命令及选项:

        1. nmcli connection :用于管理网络连接
# 显示所有网络连接的信息:ens33网卡
[root@hostname ~]# nmcli connection show
NAME   UUID                                  TYPE      DEVICE 
ens33  72f86704-89fd-4061-a2ce-6f8934dcac4c  ethernet  ens33  

# nmcli connection show [CONNECTION_NAME]:显示指定连接的详细信息
[root@hostname ~]# nmcli connection show ens33

# nmcli connection add type [TYPE] con-name [NAME] [options]:添加新的网络连接
    TYPE 可以是 wifi、ethernet、vpn 等。
    NAME 是连接的名称。
    例如,添加一个新的 ethernet 连接:
[root@hostname ~]# nmcli connection add type ethernet  ifname ens34 con-name ens34
解释:nmcli connection 添加 类型 以太网设备 网卡设备名为eth0 nmcli命令命名为eth0

# nmcli connection modify [NAME] [options]:修改 ens34 IP地址:
[root@hostname ~]# nmcli connection modify ens34 ipv4.method manual ipv4.addresses 192.168.2.10/24 ipv4.gateway 192.168.2.1 autoconnect yes

# nmcli connection up [NAME]:激活:
[root@hostname ~]# nmcli connection up eth0
解释:激活失败有可能添加时或修改时都会引起失败

# nmcli connection down [NAME]:禁用:
[root@hostname ~]# nmcli connection down ens34

# nmcli connection delete [NAME]:删除指定的连接
[root@hostname ~]# nmcli connection delete ens34

!!!以上顺序是可以应用到实际操作中:查看网卡、添加网卡、设置网卡外号、修改网卡IP地址、激活
原则:必须给网卡再起一个外号名字;不能用本名;行业规定:网卡本名叫什么外号还叫什么
        2. nmcli device:用于管理网络设备:
# 显示所有设备的状态:
[root@hostname ~]# nmcli device
DEVICE      TYPE      STATE   CONNECTION 
ens33       ethernet  已连接  ens33      
virbr0      bridge    未托管  --         
lo          loopback  未托管  --         

# 显示指定设备的详细信息:
[root@hostname ~]# nmcli device show ens33
GENERAL.DEVICE:                         ens33
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         00:0C:29:95:AC:D0
GENERAL.MTU:                            1500
GENERAL.STATE:                          100(已连接)
...

# 连接指定的设备:
[root@hostname ~]# nmcli device connect ens33
成功用 "ens3372f86704-89fd-4061-a2ce-6f8934dcac4c" 激活了设备 ""。

# 断开指定的设备:
[root@hostname ~]# nmcli device disconnect ens33
成功断开设备 "ens33"。
        3. nmcli networking:用于管理网络功能:
# 禁用网络管理功能:
[root@hostname ~]# nmcli networking off

# 启用网络管理功能:
[root@hostname ~]# nmcli networking on

# 检查网络连接的状态:
[root@hostname ~]# nmcli networking connectivity check
        4. nmcli general:用于显示 NetworkManager 的总体状态信息:
# 显示 NetworkManager 的状态:
[root@hostname ~]# nmcli general status

# 显示或设置系统的主机名:
[root@hostname ~]# nmcli general hostname
[root@hostname ~]# nmcli general hostname myhostname

4. netstat:显示网络连接、路由表、接口统计等

        netstat 是一个网络实用工具,用于显示网络连接、路由表、接口统计信息等。它可以帮助你了解系统的网络状态和诊断网络问题。

netstat 是一个功能丰富的网络诊断工具,通过不同的选项可以显示网络连接、接口状态、路由表等信息。它在排查网络问题、查看系统网络状态时非常有用。不过需要注意的是,`netstat` 在某些系统上已被 `ss` `ip` 命令所取代,后者提供了更强大的功能和更详细的输出。

  • 常用选项和参数:
    • -a:显示所有连接和监听端口
    • -t:显示 TCP 连接
    • -u:显示 UDP 连接
    • -l:仅显示监听中的端口
    • -p:显示哪个进程正在使用该端口
    • -n:以数字形式显示地址和端口号,而不是域名和服务名
    • -r:显示路由表
    • -i:显示网络接口统计信息
    • -s:显示网络统计信息,包括各种协议的统计数据
    • -e:显示扩展的网络接口信息
    • -c:每隔一段时间重复显示网络状态
  • 常用命令操作:
[root@hostname ~]# netstat -antlp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address   Foreign Address   State  PID/Program name    
tcp        0      0 0.0.0.0:111     0.0.0.0:*         LISTEN      6260/rpcbind        
tcp        0      0 0.0.0.0:22      0.0.0.0:*         LISTEN      6638/sshd              
tcp6       0      0 ::1:631         :::*              LISTEN      6640/cupsd          
tcp6       0      0 ::1:25          :::*              LISTEN      7074/master    
...

# 输出字段解析:
1. Proto (协议):显示协议类型,例如 tcp、udp
2. Recv-Q (接收队列):显示尚未被应用程序读取的数据量(字节数)。对于 TCP 连接,这表示在接收缓冲区中等待处理的数据量。
3. Send-Q (发送队列):显示尚未被对方接收的数据量(字节数)。对于 TCP 连接,这表示在发送缓冲区中等待确认的数据量
4. Local Address (本地地址):显示本地计算机的 IP 地址和端口号。例如 192.168.1.100:22 表示本地 IP 地址为 192.168.1.100,端口号为 22。
5. Foreign Address (远程地址):显示远程计算机的 IP 地址和端口号。例如 192.168.1.101:49152 表示远程 IP 地址为 192.168.1.101,端口号为 49152。
6. State (状态):
    仅适用于 TCP 连接,显示连接的状态。例如:
        LISTEN:监听状态,表示服务正在等待连接。
        ESTABLISHED:已建立连接,表示数据可以传输。
        SYN_SENT:已发送同步请求,等待确认。
        FIN_WAIT1:连接关闭的第一阶段。
        CLOSE_WAIT:等待关闭连接的请求。
# 显示网络接口统计
[root@hostname ~]# netstat -i
Kernel Interface table
Iface             MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
ens33            1500   253936      0      0 0        860362      0      0      0 BMRU
lo              65536    38970      0      0 0         38970      0      0      0 LRU

# 输出字段解析:
1. Iface (接口名):显示网络接口的名称,例如 eth0、wlan0
2. MTU (最大传输单元):显示网络接口的最大数据传输单元大小(字节数)。这是网络接口能够处理的最大数据包大小
3. RX-OK (接收数据包):显示成功接收的数据包数量
4. RX-ERR (接收错误):显示接收过程中发生的错误数量
5. RX-DRP (接收丢包):显示接收过程中丢弃的数据包数量
6. RX-OVR (接收溢出):显示由于接收缓冲区溢出而丢弃的数据包数量
7. TX-OK (发送数据包):显示成功发送的数据包数量
8. TX-ERR (发送错误):显示发送过程中发生的错误数量
9. TX-DRP (发送丢包):显示发送过程中丢弃的数据包数量
10. TX-OVR (发送溢出):显示由于发送缓冲区溢出而丢弃的数据包数量
11. Flg (标志):
    显示网络接口的标志,通常包括:
        B:广播支持
        M:支持多播
        R:运行中
        U:接口处于启用状态

5. ss:显示和分析网络套接字的命令

  ss(Socket Statictics)是用于显示和分析网络套接字的命令,通常用于替代 netstat。它提供了更详细和高效的网络连接信息。

格式:ss [options]

常用选项:

  • -t:显示 TCP 连接。
  • -u:显示 UDP 连接。
  • -l:显示正在监听的套接字。
  • -p:显示相关的进程信息。
  • -n:以数字格式显示地址和端口号,而不是解析成域名。
  • -a:显示所有套接字(包括监听和非监听)。
  • -s:显示统计信息(包括各种套接字的总数)。
  • -r:显示路由信息。
  • 常用命令操作:(可与grep联合使用)
# 显示所有当前监听的 UDP 套接字及其相关的进程信息,地址和端口号以数字形式呈现
[root@hostname ~]# ss -aulnp 
State     Recv-Q Send-Q  Local Address:Port   Peer Address:Port              
UNCONN    0      0       *:67                 *:*        users:(("dhcpd",pid=6645,fd=7))
UNCONN    0      0       *%virbr0:67          *:*        users:(("dnsmasq",pid=1586,fd=3))
UNCONN    0      0       [::]:69              [::]:*     users:(("systemd",pid=1,fd=138))
UNCONN    0      0       [::]:111             [::]:*     users:(("rpcbind",pid=6260,fd=9))

# 列出所有当前监听的 TCP 套接字及其相关进程信息,地址和端口号以数字形式显示
[root@hostname ~]# ss -atlnp
State     Recv-Q Send-Q  Local Address:Port   Peer Address:Port              
LISTEN    0      128     *:111                *:*     users:(("rpcbind",pid=6260,fd=8))
LISTEN    0      128     *:22                 *:*     users:(("sshd",pid=6638,fd=3))
LISTEN    0      128     [::]:111             [::]:*  users:(("rpcbind",pid=6260,fd=11))
LISTEN    0      128     [::]:80              [::]:*  users:(("httpd",pid=51837,fd=4),("httpd",pid=51836,fd=4),("httpd",pid=51835,fd=4),("httpd",pid=51834,fd=4),("httpd",pid=51833,fd=4),("httpd",pid=51814,fd=4))
# 输出字段
1. Netid:套接字类型,如 tcp, udp 等。
2. State:连接状态,如 ESTAB(已建立)、LISTEN(监听中)、CLOSE_WAIT(关闭等待)等。
3. Recv-Q:接收队列的字节数。
4. Send-Q:发送队列的字节数。
5. Local Address:Port:本地地址和端口。
6. Peer Address:Port:远程地址和端口。
7. PID/Program name:相关进程的 PID 和名称(需使用 -p 选项)。

6. route:手工产生、修改和查看路由表(建议使用 nmcli 命令设置网络)

        用于显示和修改系统的网络路由表,它主要用于管理数据包在网络中的传输路径;

格式: route [options] [add|del] [destination] [options]

常用选项:

  • -n:以数字形式显示路由表,不解析域名。
  • -v:显示详细信息。
  • -e:显示路由表。
[root@hostname ~]# route 
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         gateway         0.0.0.0         UG    100    0        0 ens33
192.168.2.0     0.0.0.0         255.255.255.0   U     100    0        0 ens33

# 输出字段:
1. Destination:目标网络或主机的地址。
2. Gateway:数据包通过的网关地址。
3. Genmask:子网掩码。
4. Flags:路由标志,如 U(路由已使用)、G(使用网关)、H(目标是主机)等。
5. MSS:最大报文段大小(TCP)。
6. Window:窗口大小(TCP)。
7. irtt:初始往返时间(RTT)。
8. Iface:路由条目使用的网络接口。
  • 常用命令使用:
# 使用示例:
# 常用子命令
1. add:添加新的路由
2. del:删除现有的路由
3. default:指定默认路由

# 查看当前路由表:
[root@hostname ~]# route 

# 添加路由:添加一个到 192.168.1.0/24 网络的路由,网关为 192.168.1.1
[root@hostname ~]# route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1

# 删除路由:删除到 192.168.1.0/24 网络的路由
[root@hostname ~]# route del -net 192.168.1.0 netmask 255.255.255.0

# 设置默认路由:设置默认网关为 192.168.1.1
[root@hostname ~]# route add default gw 192.168.1.1

# 查看详细的路由表:
[root@hostname ~]# route -v

8. wget 或 curl:下载文件或网页内容

(1)wget 命令:

功能wget 用于从网络上下载文件,支持 HTTP、HTTPS 和 FTP 协议

格式:wget [options] [URL]

示例:wget http://example.com/file.zip
解释:下载 http://example.com/file.zip 文件到当前目录

常用选项:

  • -O <file>:指定输出文件名。例如,wget -O newfile.zip http://example.com/file.zip
  • -r:递归下载整个网站。
  • -N:仅下载比本地文件更新的文件。
  • --limit-rate=<rate>:限制下载速度,例如 --limit-rate=200k

(2)curl 命令:

功能curl 用于与服务器交换数据,支持多种协议(包括 HTTP、HTTPS、FTP、SFTP 等)。

格式:curl [options] [URL]
示例:curl -O http://example.com/file.zip
解释:使用 -O 选项下载 http://example.com/file.zip 文件到当前目录,保持原文件名。

常用选项

  • -o <file>:指定输出文件名。例如,curl -o newfile.zip http://example.com/file.zip
  • -I:仅获取 HTTP 响应头信息。
  • -L:跟随重定向。
  • -u <user:password>:使用基本认证。
  • --limit-rate <rate>限制下载速度,例如 --limit-rate 200k

9. ssh:安全的远程登录到另一台计算机

        ssh(Secure Shell)用于安全地远程登录到另一台计算机。它提供加密的通信,以防止中间人攻击和数据泄露。

格式:ssh [options] [user@]hostname
参数:
1. user:指定要登录的用户名(如果省略,默认为当前用户)。
2. hostname:目标主机的 IP 地址或域名
示例:ssh [email protected]
解释:使用 user 用户名登录到 example.com 主机
  • 常用命令操作:
# -p <port>:指定 SSH 端口(默认为 22)
示例:ssh -p 20 [email protected]

# -i <keyfile>:指定私钥文件进行身份验证
示例:ssh -i ~/.ssh/id_rsa [email protected]

# -C:启用压缩,提高传输速度
示例:ssh -C [email protected]

提示:还有 scp 命令 是(基于ssh)从本地复制文件到远程主机或从远程主机复制文件到本地;后面会详细讲到

10. nslookup:查询一台机器的IP和其对应的域名

        nslookup 是一个用于查询 DNS 记录的网络工具,可以帮助用户获取域名的 IP 地址或其他 DNS 信息

格式:nslookup [options] [hostname]
hostname:要查询的域名或 IP 地址
示例:nslookup example.com
解释:查询 example.com 域名的 DNS 记录
  • 常用命令操作:
# 查询指定主机  baidu.com(hostname) 的 DNS 信息,使用 8.8.8.8(server) 指定 DNS 服务器
[root@hostname ~]# nslookup baidu.com 8.8.8.8
Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
Name:	baidu.com
Address: 39.156.66.10
Name:	baidu.com
Address: 110.242.68.66


# 获取域名对应的 IP 地址
[root@hostname ~]# nslookup baidu.com 
Server:		114.114.114.114
Address:	114.114.114.114#53

Non-authoritative answer:
Name:	baidu.com
Address: 110.242.68.66
Name:	baidu.com
Address: 39.156.66.10

# MX 记录:获取域名的邮件交换服务器信息
[root@hostname ~]# nslookup -query=MX baidu.com
Server:		114.114.114.114
Address:	114.114.114.114#53

Non-authoritative answer:
baidu.com	mail exchanger = 20 usmx01.baidu.com.
baidu.com	mail exchanger = 15 mx.n.shifen.com.
baidu.com	mail exchanger = 20 mx1.baidu.com.
baidu.com	mail exchanger = 10 mx.maillb.baidu.com.
baidu.com	mail exchanger = 20 jpmx.baidu.com.
baidu.com	mail exchanger = 20 mx50.baidu.com.

Authoritative answers can be found from:

# PTR 记录:获取 IP 地址反向解析的域名。
[root@hostname ~]# nslookup  -query=PTR baidu.com
Server:		114.114.114.114
Address:	114.114.114.114#53

Non-authoritative answer:
*** Can't find baidu.com: No answer

Authoritative answers can be found from:
baidu.com
	origin = dns.baidu.com
	mail addr = sa.baidu.com
	serial = 2012148496
	refresh = 300
	retry = 300
	expire = 2592000
	minimum = 7200

  推荐一个持久更新的安全面试网站(看个人需求):面试鸭 - 程序员求职面试刷题神器,高频编程题目免费刷

标签:网络通信,httpd,显示,0.0,hostname,linux,进程,root
From: https://blog.csdn.net/m0_64473089/article/details/141114568

相关文章

  • linux系统常见及常用的命令操作(包管理、文件和目录操作)
    linux系统常见及常用命令(超详细:系统篇)-CSDN博客linux系统常见及常用的命令操作(进程管理、网络通信篇)-CSDN博客一、包管理、压缩解压缩:1.get-apt:用于处理软件包的安装、升级和删除        apt-get是Debian、Ubuntu系列Linux的包管理工具,用于处理软件包的安装、升......
  • linux内核模块 字符设备驱动模板
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、linux内核模块是什么?二、代码示例总结前言提示:这里可以添加本文要记录的大概内容:内核版本5.10.92linux内核模块字符设备驱动模板cdev注册字符设备,创建一个/dev/下设备节点和/sy......
  • Linux基础-总结篇
    作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注作者,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。经过前面30多小节的内容介绍,我们从虚拟机的安装,到Linux文件的基本操作(增删改查),打包解压。磁盘的基本操作(分区,格式化,挂载,inode)。网络的基本操作:配......
  • linux高级编程——IO
    linux高级编程——IO标准IO:stdio.h文件IO标准IO:stdio.hIO也就是输入input和输出output;I:键盘是标准输入设备,默认输入就是指键盘/dev/input;O:显示器是标准输出设备,默认输出就是指显示器;stdio是属于C语言标准库,那么它存在哪呢?stdio.h存放的路径是:/usr/include/std......
  • Linux操作系统的安装和配置
    一、Linux的安装与常用命令1.安装VMware;   2.使用VMware安装配置Linux;3.实现要求的shell函数#hello函数,输入参数个数为0,输出hello,world!到标准输出。functionhello(){echo"hello,world!"}#tell_who_i_am函数,输入参数个数为0,输出当前用户的账号......
  • Linux系统五大资源常用命令(大全)
    系统五大资源常用命令Linux系统五大资源(CPU、内存、磁盘、网络、进程)的常用查询或管理命令,指令列表:资源查询或管理命令说明CPUtop实时显示各进程的CPU和内存使用情况。htop更友好的top替代工具,图形化显示CPU使用情况。mpstat显示每个CPU的使用情况,常用于多核系统。lscpu......
  • Linux下截图并识别文字
    1.安装tesseract-ocr软件:sudoapt-yinstalltesseract-ocr2.安装全部语言:sudoapt-yinstalltesseract-ocr-all3.安装gImageReader软件:sudoapt-yinstallgimagereader4.安装ksnip:sudoapt-yinstallksnip5.截屏,运行ksnip,在系统任务栏上显示“K”字样的图标。设置......
  • arch linux 安装Budgie桌面
    Budgie具体请查看官网:https://wiki.archlinuxcn.org/wiki/Budgie在ArchLinux上安装Budgie桌面环境的步骤如下:首先,确保你的系统是最新的。打开终端并运行以下命令进行系统更新:sudopacman-Syu更新完成后,重启你的系统以应用更新:sudoreboot接下来,你可以从ArchLi......
  • 进程线程(2)
    父子进程的关系子进程是父进程的副本。子进程获得父进程数据段,堆,栈,正文段共享。        在fork之后,一般情况哪个会先运行,是不确定的。如果非要确定那个要先运行,需要IPC机制。     区别:fork的返回值pid不同进程的创建创建之后,父子进程各自拥有4g独立的内存......
  • Linux驱动开发基础(LED驱动)
    所学来自百问网目录1.LED原理2.普适的GPIO引脚操作方法2.1GPIO模块的一般结构2.2GPIO框图2.3寄存器的操作2.3.1一般的操作方式2.3.2高效的操作方式3.基于IMX6UL_6ULL的GPIO操作方法3.1GPIO框图3.2CCM3.3IOMUXC3.4GPIO模块内部3.5读写GPIO4.LED驱......