• 常用的高级系统管理命令


    监测程序

    探查进程  ps

    -A  显示所有进程
    -N  显示与指定参数不符的所有进程
    -a  显示除控制进程(session leader ① )和无终端进程外的所有进程
    -d  显示除控制进程外的所有进程
    -e  显示所有进程
    -C cmdlist  显示包含在 cmdlist 列表中的进程
    -G grplist  显示组ID在 grplist 列表中的进程
    -U userlist  显示属主的用户ID在 userlist 列表中的进程
    -g grplist  显示会话或组ID在 grplist 列表中的进程 ②
    -p pidlist  显示PID在 pidlist 列表中的进程
    -s sesslist  显示会话ID在 sesslist 列表中的进程
    -t ttylist  显示终端ID在 ttylist 列表中的进程
    -u userlist  显示有效用户ID在 userlist 列表中的进程
    -F  显示更多额外输出(相对 -f 参数而言)
    -O format  显示默认的输出列以及 format 列表指定的特定列
    -M  显示进程的安全信息
    -c  显示进程的额外调度器信息
    -f  显示完整格式的输出
    -j  显示任务信息
    -l  显示长列表
    -o format  仅显示由 format 指定的列
    -y  不要显示进程标记(process flag,表明进程状态的标记)
    -Z  显示安全标签(security context)
    -H  用层级格式来显示进程(树状,用来显示父进程)
    -n namelist  定义了 WCHAN 列显示的值
    -w  采用宽输出模式,不限宽度显示
    -L  显示进程中的线程
    -V  显示 ps 命令的版本号

    $ps  -ef     这个例子用了两个参数: -e 参数指定显示所有运行在系统上的进程; -f 参数则扩展了输出,这些扩展的列包含了有用的信息。

    UID PID PPID C STIME TTY TIME CMD
    root 1 0 0 11:29 ? 00:00:01 init [5]
    root 2 0 0 11:29 ? 00:00:00 [kthreadd]
    root 3 2 0 11:29 ? 00:00:00 [migration/0]
    root 4 2 0 11:29 ? 00:00:00 [ksoftirqd/0]
    root 5 2 0 11:29 ? 00:00:00 [watchdog/0]
    root 6 2 0 11:29 ? 00:00:00 [events/0]
    root 7 2 0 11:29 ? 00:00:00 [khelper]
    root 47 2 0 11:29 ? 00:00:00 [kblockd/0]

    UID:启动这些进程的用户。
    PID:进程的进程ID。
    PPID:父进程的进程号(如果该进程是由另一个进程启动的)。
    C:进程生命周期中的CPU利用率。
    STIME:进程启动时的系统时间。
    TTY:进程启动时的终端设备。
    TIME:运行进程需要的累计CPU时间。
    CMD:启动的程序名称。

    $ ps -l  产生一个长格式输出。

    $ ps -l
    F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
    0 S 500 3081 3080 0 80 0 - 1173 wait pts/0 00:00:00 bash
    0 R 500 4463 3081 1 80 0 - 1116 - pts/0 00:00:00 ps

    注意使用了 -l 参数之后多出的那些列。
    F :内核分配给进程的系统标记。
    S :进程的状态(O代表正在运行;S代表在休眠;R代表可运行,正等待运行;Z代表僵化,进程已结束但父进程已不存在;T代表停止)。
    PRI :进程的优先级(越大的数字代表越低的优先级)。
    NI :谦让度值用来参与决定优先级。
    ADDR :进程的内存地址。
    SZ :假如进程被换出,所需交换空间的大致大小。
    WCHAN :进程休眠的内核函数的地址。

    实时监测进程   top

      top 命令跟 ps 命令相似,能够显示进程信息,但它是实时显示的。

    输出的第一部分显示的是系统的概况:第一行显示了当前时间、系统的运行时间、登录的用户数以及系统的平均负载。
    平均负载有3个值:最近1分钟的、最近5分钟的和最近15分钟的平均负载。值越大说明系统的负载越高。由于进程短期的突发性活动,出现最近1分钟的高负载值也很常见,但如果近15分钟内的平均负载都很高,就说明系统可能有问题。说明 Linux系统管理的要点在于定义究竟到什么程度才算是高负载。这个值取决于系统的硬件配置以及系统上通常运行的程序。对某个系统来说是高负载的值可能对另一系统来说就是正常值。通常,如果系统的负载值超过了2,就说明系统比较繁忙了。

    第二行显示了进程概要信息—— top 命令的输出中将进程叫作任务(task):有多少进程处在运行、休眠、停止或是僵化状态(僵化状态是指进程完成了,但父进程没有响应)。

    下一行显示了CPU的概要信息。 top 根据进程的属主(用户还是系统)和进程的状态(运行、空闲还是等待)将CPU利用率分成几类输出。紧跟其后的两行说明了系统内存的状态。第一行说的是系统的物理内存:总共有多少内存,当前用了多少,还有多少空闲。后一行说的是同样的信息,不过是针对系统交换空间(如果分配了的话)的状态而言的。
    最后一部分显示了当前运行中的进程的详细列表,有些列跟 ps 命令的输出类似。
     PID:进程的ID。
     USER:进程属主的名字。
     PR:进程的优先级。
     NI:进程的谦让度值。
    VIRT:进程占用的虚拟内存总量。
     RES:进程占用的物理内存总量。
     SHR:进程和其他进程共享的内存总量。
     S:进程的状态(D代表可中断的休眠状态,R代表在运行状态,S代表休眠状态,T代表跟踪状态或停止状态,Z代表僵化状态)。
     %CPU:进程使用的CPU时间比例。
     %MEM:进程使用的内存占可用内存的比例。
     TIME+:自进程启动到目前为止的CPU时间总量。
     COMMAND:进程所对应的命令行名称,也就是启动的程序名。
    默认情况下, top 命令在启动时会按照 %CPU 值对进程排序。可以在 top 运行时使用多种交互命令重新排序。每个交互式命令都是单字符,在 top 命令运行时键入可改变 top 的行为。键入f允许你选择对输出进行排序的字段,键入d允许你修改轮询间隔。键入q可以退出 top 。用户在 top命令的输出上有很大的控制权。用这个工具就能经常找出占用系统大部分资源的罪魁祸首。

    结束进程

    在Linux中,进程之间通过信号来通信。进程的信号就是预定义好的一个消息,进程能识别它并决定忽略还是作出反应。进程如何处理信号是由开发人员通过编程来决定的。大多数编写完善的程序都能接收和处理标准Unix进程信号。下面为进程信号描述:

    信 号

    名 称 描 述
    1

    HUP

    挂起
    2

    INT

    中断
    3

    QUIT

    结束运行
    9

    KILL

    无条件终止
    11

    SEGV

    段错误
    15

    TERM

    尽可能终止
    17

    STOP

    无条件停止运行,但不终止
    18

    TSTP

    停止或暂停,但继续在后台运行
    19 CONT

    在 STOP 或 TSTP 之后恢复执行

    1. kill 命令

    ill 命令可通过进程ID(PID)给进程发信号。默认情况下, kill 命令会向命令行中列出的全部PID发送一个 TERM 信号。遗憾的是,你只能用进程的PID而不能用命令名,所以 kill 命令有时并不好用。如果要强制终止, -s 参数支持指定其他信号(用信号名或信号值)。你能从下例中看出, kill 命令不会有任何输出。
    # kill -s HUP 3940

    2. killall 命令

    killall 命令非常强大,它支持通过进程名而不是PID来结束进程。 killall 命令也支持通配符,这在系统因负载过大而变得很慢时很有用。
    # killall http*

    监测磁盘空间

    1 挂载存储媒体 

     mount 命令

    $ mount
    /dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)

    mount 命令提供如下四部分信息:
    媒体的设备文件名
    媒体挂载到虚拟目录的挂载点
    文件系统类型
    已挂载媒体的访问状态

    要手动在虚拟目录中挂载设备,需要以root用户身份登录,或是以root用户身份运行 sudo 命令。下面是手动挂载媒体设备的基本命令:
    mount -t type device directory

    type 参数指定了磁盘被格式化的文件系统类型。Linux可以识别非常多的文件系统类型。如
    果是和Windows PC共用这些存储设备,通常得使用下列文件系统类型。
     vfat:Windows长文件系统。
     ntfs:Windows NT、XP、Vista以及Windows 7中广泛使用的高级文件系统。
     iso9660:标准CD-ROM文件系统

    mount命令的参数

    参 数

    描 述
    -a


    挂载/etc/fstab文件中指定的所有文件系统
    -f

    使 mount 命令模拟挂载设备,但并不真的挂载

    -F

    和 -a 参数一起使用时,会同时挂载所有文件系统

    -v

    详细模式,将会说明挂载设备的每一步

    -I

    不启用任何/sbin/mount.filesystem下的文件系统帮助文件

    -l

    给ext2、ext3或XFS文件系统自动添加文件系统标签
    -n


    挂载设备,但不注册到/etc/mtab已挂载设备文件中
    -p num

    进行加密挂载时,从文件描述符 num 中获得密码短语

    -s

    忽略该文件系统不支持的挂载选项

    -r


    将设备挂载为只读的
    -w

    将设备挂载为可读写的(默认参数)
    -L label


    将设备按指定的 label 挂载
    -U uuid


    将设备按指定的 uuid 挂载
    -O

    和 -a 参数一起使用,限制命令只作用到特定的一组文件系统上

    -o

    给文件系统添加特定的选项

    - o 参数允许在挂载文件系统时添加一些以逗号分隔的额外选项。以下为常用的选项。
     ro :以只读形式挂载。
     rw :以读写形式挂载。
    user :允许普通用户挂载文件系统。
    check=none :挂载文件系统时不进行完整性校验。
    loop :挂载一个文件。

    2. umount 命令

    umount [directory | device ]

    3. df 命令

    $ df
    Filesystem 1K-blocks Used Available Use% Mounted on
    /dev/sda2 18251068 7703964 9605024 45% /

    df 命令会显示每个有数据的已挂载文件系统。如你在前例中看到的,有些已挂载设备仅限系统内部使用。命令输出如下:
     设备的设备文件位置;
     能容纳多少个1024字节大小的块;
     已用了多少个1024字节大小的块;
     还有多少个1024字节大小的块可用;
     已用空间所占的比例;
     设备挂载到了哪个挂载点上。

    -h   把输出中的磁盘空间按照用户易读的形式显示,通常用M来替代兆字节,用G替代吉字节。

    $ df -h
    Filesystem Size Used Avail Use% Mounted on
    /dev/sdb2 18G 7.4G 9.2G 45% /

    4. du 命令

    下面是能让 du 命令用起来更方便的几个命令行参数。
     -c :显示所有已列出文件总的大小。
     -h :按用户易读的格式输出大小,即用K替代千字节,用M替代兆字节,用G替代吉字节。
     -s :显示每个输出参数的总计。

    处理数据文件

    1 排序数据   sort

    sort 命令参数

    单破折线                         双破折线                      描 述
    -b               --ignore-leading-blanks     排序时忽略起始的空白
    -C               --check=quiet          不排序,如果数据无序也不要报告
    -c               --check              不排序,但检查输入数据是不是已排序;未排序的话,报告
    -d               --dictionary-order        仅考虑空白和字母,不考虑特殊字符
    -f               --ignore-case            默认情况下,会将大写字母排在前面;这个参数会忽略大小写
    -g               --general-number-sort          按通用数值来排序(跟 -n 不同,把值当浮点数来排序,支持科学计数法表示的值)
    -i               --ignore-nonprinting       在排序时忽略不可打印字符
    -k               --key=POS1[,POS2]        排序从POS1位置开始;如果指定了POS2的话,到POS2位置结束
    -M               --month-sort           用三字符月份名按月份排序
    -m               --merge              将两个已排序数据文件合并
    -n               --numeric-sort           按字符串数值来排序(并不转换为浮点数)
    -o               --output=file            将排序结果写出到指定的文件中
    -R               --random-sort           按随机生成的散列表的键值排序
                    --random-source=FILE      指定 -R 参数用到的随机字节的源文件
    -r                --reverse             反序排序(升序变成降序)
    -S               --buffer-size=SIZE         指定使用的内存大小
    -s               --stable              禁用最后重排序比较
    -T                  --temporary-directory=DIR    指定一个位置来存储临时工作文件
    -t               --field-separator=SEP        指定一个用来区分键位置的字符
    -u               --unique和 -c             参数一起使用时,检查严格排序;不和 -c 参数一起用时,仅输出第一例相似的两行
    -z               --zero-terminated         用NULL字符作为行尾,而不是用换行符

    -n 参数在排序数值时非常有用,比如 du 命令的输出。
    $ du -sh * | sort -nr

    2 搜索数据

    grep [options] pattern [file]

    如果要进行反向搜索(输出不匹配该模式的行),可加 -v 参数。
    $ grep -v t file1
    one
    four
    five
    $
    如果要显示匹配模式的行所在的行号,可加 -n 参数。
    $ grep -n t file1
    2:two
    3:three
    $
    如果只要知道有多少行含有匹配的模式,可用 -c 参数。
    $ grep -c t file1
    2
    $
    如果要指定多个匹配模式,可用 -e 参数来指定每个模式。
    $ grep -e t -e f file1
    two
    three
    four
    five

    3 压缩数据

    Linux文件压缩工具

    工 具             文件扩展名                       描述

    bzip2      .bz2               采用Burrows-Wheeler块排序文本压缩算法和霍夫曼编码
    compress     .Z                 最初的Unix文件压缩工具,已经快没人用了
    gzip        .gz                 GNU压缩工具,用Lempel-Ziv编码
    zip        .zip                 Windows上PKZIP工具的Unix实现

     gzip :用来压缩文件。
     gzcat :用来查看压缩过的文本文件的内容。
     gunzip :用来解压文件。

    $ gzip myprog
    $ ls -l my*
    -rwxrwxr-x 1 rich rich 2197 2007-09-13 11:29 myprog.gz

    4 归档数据  tar

    tar function [options] object1 object2 ...

    tar 命令的功能

    功 能           长 名 称           描 述
    -A         --concatenate      将一个已有tar归档文件追加到另一个已有tar归档文件
    -c           --create          创建一个新的tar归档文件
    -d         --diff           检查归档文件和文件系统的不同之处
              --delete          从已有tar归档文件中删除
    -r         --append          追加文件到已有tar归档文件末尾
    -t         --list            列出已有tar归档文件的内容
    -u          --update          将比tar归档文件中已有的同名文件新的文件追加到该tar归档文件中
    -x         --extract         从已有tar归档文件中提取文件

    tar 命令选项(和命令功能一起使用)

    选 项               描 述
    C dir            切换到指定目录
    -f file              输出结果到文件或设备 file
    -j               将输出重定向给 bzip2 命令来压缩内容
    -p                保留所有文件权限
    -v               在处理文件时显示文件
    -z              将输出重定向给 gzip 命令来压缩内容

    这些选项经常合并到一起使用。首先,你可以用下列命令来创建一个归档文件:
    tar -cvf test.tar test/ test2/
    上面的命令创建了名为test.tar的归档文件,含有test和test2目录内容。接着,用下列命令:
    tar -tf test.tar
    列出tar文件test.tar的内容(但并不提取文件)。最后,用命令:
    tar -xvf test.tar

     

     

  • 相关阅读:
    Intent七大属性之总结 分类: H1_ANDROID 2013-11-10 09:41 1074人阅读 评论(0) 收藏
    使用SQLiteHelper创建数据库并插入数据 分类: H1_ANDROID 2013-11-05 22:44 1398人阅读 评论(0) 收藏
    SharedPreferences基础 分类: H1_ANDROID 2013-11-04 22:35 2559人阅读 评论(0) 收藏
    菜单之二:使用xml文件定义菜单 分类: H1_ANDROID 2013-11-03 09:39 1038人阅读 评论(0) 收藏
    菜单之一:Menu基础内容 分类: H1_ANDROID 2013-11-03 00:23 906人阅读 评论(0) 收藏
    创建ListView的基本步骤 分类: H1_ANDROID 2013-10-31 23:25 1276人阅读 评论(0) 收藏
    事件处理之一:两种方式:监听器与回调 分类: H1_ANDROID 2013-10-31 10:26 3250人阅读 评论(0) 收藏
    ImageView一例 分类: H1_ANDROID 2013-10-30 23:02 1812人阅读 评论(0) 收藏
    TextView之一:子类的常用属性 分类: H1_ANDROID 2013-10-30 15:14 770人阅读 评论(0) 收藏
    TextView之二:常用属性 分类: H1_ANDROID 2013-10-30 12:43 3203人阅读 评论(0) 收藏
  • 原文地址:https://www.cnblogs.com/zhangguilin/p/8962932.html
Copyright © 2020-2023  润新知