Linux-Ch04

进程和作业管理

查看系统负载:

  • 显示目前登入系统的用户信息:w

  • 显示系统总共运行了多长时间和系统的平均负载:uptime

依次为:当前时间,系统运行了多长时间,目前有多少用户登录,过去1、5、15分钟的平均负载

  • 显示系统有哪些使用者正在上面:who

进程管理:

  • 某个时刻的进程情况:ps

    语法:

    ps -aux 观察系统所有的进程数据
    ps -lA 所有进程的另一种形式
    ps -axjf 查看进程树

    选项:

    -A 所有进程都显示
    -a 不与终端有关的所有进程
    -u 有效使用者(某个用户)相关进程
    -x 与a一起使用,列出较完整信息

    输出格式:

    -l(小写L) 详细信息
    -j 作业也输出
    -f 更为完整的输出

  • 进程列表常用属性值

    字段 含义
    uid 进程所有者用户ID
    pid 进程的id
    ppid 父进程的id
    PRI 优先权值
    STAT 进程状态
    TTY 进程所属终端
    TIME 已运行时间
    COMMAND 进程运行过程执行的命令
  • 动态进程管理:top

    实时监控进程的活动状态

    1
    2
    3
    4
    5
    top [-d 数字] | top [-bnp]
    # -d:参数为秒,默认是5,top更新的频率
    # -b:以批次的方式执行top,搭配数据流
    # -n:与-b搭配,需要几次top的输出结果
    # -p:指定某个PID进行监测

作业管理:

  • 前台执行/运行:一般情况下,在shell敲入命令后,shell程序将执行权交给命令程序,等待命令结束后回到shell,这种执行方式称为前台执行

  • 后台执行/运行:当命令在执行过程中,shell同时可以执行其他命令程序,这种执行方式称为后台执行,处于后台的进程称为作业

  • 作业管理就是通过一系列的命令和操作让进程在前后台切换

  • 作业管理相关命令:

    • 命令后面加 &:使命令在后台执行

    • 使用 fg 和 bg 命令进行前后台切换

    • Jobs命令显示所有作业

    • Ctrl + c :终止一个前台进程或作业

    • Ctrl + z :将一个前台进程或作业挂起

    • kill:发送终止信号,作业ID必须以%开始

网络管理

  • 网络相关参数常用配置文件

  • 基础网络管理常用命令

    命令 功能
    ifconfig 查询、设置网卡和ip网络等参数
    ifup/ifdown 两个脚本文件,启动和关闭网络
    route 查看、配置路由表
    ip 整合上述功能
  • ping命令

    1
    2
    3
    4
    5
    6
    ping [-cnstW] IP
    # -c:指定次数
    # -n:不反查主机名,效率较高
    # -s:指定发送ICMP数据包的大小
    # -t:指定TTL的值,默认255
    # -W:指定等待响应的秒数
  • traceroute命令

    1
    2
    3
    4
    5
    6
    7
    8
    # 发送数据包进行路由的跟踪
    traceroute [-nUITwp] IP
    # -n:不反查主机名
    # -U:使用UDP数据报文,默认值
    # -I:使用ICMP数据包
    # -T:使用tcp数据报文
    # -w:指定等待响应的秒数
    # -p:当使用UDP或TCP时, -p指定端口

  • netstat命令

    用于查询本机网络状态的相关信息

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    netstat [-rn] #与路由有关的信息
    netstat [-antulpc] #与网络接口有关的信息

    # -n:不反查主机名
    # -r:列出路由表
    # -a:列出所有连接
    # -t:列出使用TCP的连接信息
    # -u:列出使用UDP的
    # -l:列出已在监听的
    # -p:列出连接的PID和进程名
    # -c:设置数据刷新的频率

数据流重定向和管道命令

  • 基本概念

    将数据从指定的流输入或输出,称为数据流重定向

  • 使用

    1
    2
    3
    4
    5
    # 使用 > 将数据输出重定向到文件
    # >默认为覆盖文件内容 >>为追加
    # 2> 以覆盖方式将错误信息输出到指定文件或设备
    # 2>> 以追加方式将错误信息输出到指定文件或设备
    # 2> /dev/null 将错误信息忽略,及输出到黑洞

    1
    2
    3
    # < 标准输入流默认从键盘输入
    # << 用于设定结束输入的关键字 例: << "eof"
    # Ctrl + d结束输入

  • 管道命令

    界定符号为 |

    仅处理stdout,忽略stderr

    管道命令必须要能接收来自前一个命令的数据作为stdin

  • 常用管道命令

    • cut:同一行的数据进行切割和分解

    • grep:多行数据中选取某行,常结合正则表达式使用

      1
      2
      3
      4
      5
      grep [-cinv] '关键字'
      # -c: 对匹配次数进行统计
      # -i:忽略大小写
      # -n:连同行号一起输出
      # -v:反选,即输出不匹配的
    • sort:对输出内容进行排序

    • wc:对输出内容进行统计

    • uniq:去除输出的重复项