Chinaunix首页 | 论坛 | 博客
  • 博客访问: 8295442
  • 博文数量: 1413
  • 博客积分: 11128
  • 博客等级: 上将
  • 技术积分: 14685
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-13 10:03
个人简介

follow my heart...

文章分类

全部博文(1413)

文章存档

2013年(1)

2012年(5)

2011年(45)

2010年(176)

2009年(148)

2008年(190)

2007年(293)

2006年(555)

分类: LINUX

2007-07-11 11:27:43

进程管理

一些细节

    进程一般分为交互进程、批处理进程和守护进程三类。

    守护进程总是活跃,在系统启动时通过脚本自动启动,或由root启动,通常在后台运行。


    一个进程可以拥有子进程。当父进程终止时,它的子进程也随之终止;而子进程终止时,父进程通常可以继续运行。

    init 进程为根进程,所有进程都是它的子进程

ps

显示进程信息,参数可省略 -

        aux 以BSD风格显示进程 常用
        -efH 以System V风格显示进程
        -e , -A 显示所有进程
        a 显示终端上所有用户的进程
        x 显示无终端进程
        u 显示详细信息
        f 树状显示
        w 完整显示信息
        l 显示长列表

    示例:

    ps alx                  另一种常用输出格式
    ps aux | less           将输出通过管道,使用 less 查看
    ps aux | grep <关键字>   通过关键字查找进程

    输出字段

    USER         进程所有者
    PID           进程ID
    PPID          父进程
    %CPU          CPU占用率
    %MEM          内存占用率
    NI            进程优先级。数值越大,占用CPU时间越少
    VSZ           进程虚拟大小
    RSS           页面文件占用
    TTY           终端ID
    STAT          进程状态
        D    不可中断     Uninterruptible sleep (usually IO)
        R    正在运行,或在队列中的进程
        S    处于休眠状态
        T    停止或被追踪
        Z    僵尸进程
        W    进入内存交换(从内核2.6开始无效)
        X    死掉的进程


        <    高优先级
        N    低优先级
        L    有些页被锁进内存
        s    包含子进程
        +    位于后台的进程组;
        l    多线程,克隆线程  multi-threaded (using CLONE_THREAD, like NPTL pthreads do)

pstree

树状显示进程信息
    -a 显示完整命令及参数
    -c 重复进程分别显示
    -c 显示进程ID PID
    -n 按 PID 排列进程

pgrep <进程名>

显示进程的PID
    -l 显示进程名和进程PID
    -o 进程起始ID
    -n 进程终止ID

xkill

在图形界面中点杀进程。执行此命令后,鼠标指针变为骷髅图案(一定看过《加勒比海盗》吧)。在窗口中点击左键杀死进程,右键取消

pkill <进程名>

结束进程族。如果结束单个进程,请用 kill

kill [信号代码] <进程PID>

根据PID向进程发送信号,常用来结束进程,默认信号为 -9
    -l [信号数字] 显示、翻译信号代码
    -9 , -KILL 发送 kill 信号退出
    -6 , -ABRT 发送 abort 信号退出
    -15 , -TERM 发送 Termination 信号
    -1 , -HUP 挂起
    -2 , -INT 从键盘中断,相当于 Ctrl+c
    -3 , -QUIT 从键盘退出,相当于 Ctrl+d
    -4 , -ILL 非法指令
    -11 , -SEGV 内存错误
    -13 , -PIPE 破坏管道
    -14 , -ALRM
    -STOP 停止进程,但不结束
    -CONT 继续运行已停止的进程
    -9 -1 结束当前用户的所有进程

renice <优先级表达式> <进程表达式>

重新设定进程优先级(无此必要)

    优先级表达式:
        +|-|=
        nice取值范围: -20~19
    进程表达式:
        -p 通过进程ID进行设定
        -g 通过进程群组ID
        -u 通过进程拥有者UID设定

top

动态、交互式进程管理器

        -c 显示进程启动状态,包括参数、操作对象等;而不只是进程名
        -d <秒> 刷新频率。 -d 5,表示5秒刷新一次
        -n <次> 刷新次数,然后退出。 -n 5,表示刷新5次后退出;
        -b 以批量模式运行,让输出能够使用管道或重定向。但不能进行交互,最好和 -n <次> 参数一同使用
        -i 禁止显示空闲进程或僵尸进程;
        -p PID 仅监视指定进程的ID;PID是一个数值;
        -s 安全模式运行,禁用一些效互指令;
        -S 累积模式,输出每个进程的总的CPU时间,包括已死的子进程;

    交互命令:
         立即刷新
        k 交互式杀死进程,提示输入进程 PID (默认发送信号15)
        r 设定renice,提示输入PID和renice值

        s 改变两次刷新时间间隔,以秒为单位
        n 设定显示进程数, 0 为不作限制
        i 隐藏空闲进程和僵尸进程
        S 切换到累积时间模式

        l 开关,在顶部显示 uptime 信息
        t 开关,在顶部显示 进程和CPU状态
        m 开关,在顶部显示 free 信息

        c 显示方式切换: 进程名/进程启动状态
        A 按进程启动顺序进行排序。由新到旧
        M 按内存占用排序。由大到小
        N 以进程ID排序。由大到小
        P 按CPU占用排序。由大到小
        T 按时间/累积时间排序

        f ,F 设定显示字段。设定完成后空格退出
        o,O 设定显示字段的排序。大写向前移动,小写向后移动,空格退出
        h,? 显示有关安全模式和累积模式的帮助信息
        W 把当前的配置写到~/.toprc中;

nohup <命令>

将任务提交到后台,输出附加到 ~/nohup.out 文件。即便用户退出登录,提交的命令仍继续执行。
<命令> &

背景执行此命令,如果用户退出登录,则命令停止执行
<命令1> ; <命令2> ; ......

命令队列,从左向右,依次执行以 ; 分隔的命令
<命令1> && <命令2> && ......

命令队列,从左向右,依次执行以 && 分隔的命令。前一个命令执行成功,后一个命令才能执行
<命令>

挂起当前Shell中的任务

jobs

显示背景任务

bg [任务编号]

将挂起的任务背景执行

fg [任务编号]

将背景任务调到前台执行

计划任务

cron anacron

磁盘和内存管理

一些细节

    Linux中,设备用/dev/目录下的文件表示。例如

    /dev/hda1 第一块硬盘的第一主分区
    /dev/hdb5 第二块硬盘的第一逻辑分区
    /dev/sda4 第一块SATA硬盘的第四主分区,或者扩展分区
    /dev/null 黑洞设备

    关于磁盘设备,详见 分区概念

mount <设备文件> [挂载路径]

挂载文件系统

            -t 指定文件系统的类型。通常不必指定,mount自动检测。下面是常用的格式

            reiserfs     ReiserFS 3.6版
            jfs          IBM技术
            xfs          SGI技术(适合高级服务器,桌面用户慎用)
            ext3         Linux传统文件系统
            vfat         fat fat32
            ext2         不带日志的ext3
            ntfs         WINNT
            iso9660      光盘
            smbfs        Windows文件共享

            -o [选项1] [选项2] ......

            loop             环设备。光盘、ISO镜像等
            ro | rw          只读readonly;可读写read-write
            sync | async     同步模式|异步模式。决定修改是否立即写入文件系统
            atime | noattime 读取时是否修改访问时间。对于写入敏感设备,例如闪存、软盘,建议使用 *noatime*
            auto | noauto    自动挂载模式
            exec | noexec    是否允许可执行权限
            defaults         使用预设的选项 rw, suid, dev, exec, auto, nouser, async

            iocharset=UTF-8  指定字符集,可简写为 utf8
            codepage=936     指定代码页,可简写为 cp936  西文系统代码页为 437
            umask=<权限掩码>  设定权限掩码
            uid=        设定归属用户
            gid=        设定归属群组
            remount          以不同选项重新挂载

            -L <卷标>     将带有特殊卷标的分区

        Tip

        权限掩码

        权限=777-权限掩码(三位) | 7777-权限掩码(四位)

        假如权限掩码为 022 ,则新建对象权限为 755 rwxr-xr-x

        可以使用 umask 命令设置权限掩码

    mount -a

        挂载 /etc/fstab 文件中定义的所有设备

        示例:

        sudo mount -t iso9660 -o loop /dev/cdrom0 /media/cdrom
        sudo mount -t vfat -o remount iocharset=utf8,codepage=cp936  /dev/hda5 /media/hda5

umount <设备文件> | <挂载路径>

卸载已挂载文件系统

df

查看已挂载文件系统的磁盘空间占用
    -a 显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统,如/proc文件系统
    -T 显示文件系统类型
    -k 以k字节为单位显示
    -i 显示i节点信息,而不是磁盘块
    -t <文件系统类型> 显示指定类型的文件系统的磁盘空间使用情况
    -x <文件系统类型> 列出不是某一指定类型文件系统的磁盘空间使用情况(与t选项相反)。
    -l 只显示本地文件系统

free

查看内存、缓冲区、交换空间的占用
    -b 以字节为单位显示数值
    -k 以千字节为单位显示数值
    -m 以兆字节为单位显示数值
    -g 以吉字节为单位显示数值
    -l 显示内存占用峰值
    -o 不显示缓冲区占用
    -t 统计结果
    -s <秒> 刷新频率

sync

同步文件系统。将缓冲区中的数据写入文件系统

fdisk <磁盘设备文件>

分区表修改工具

    交互命令:
        m 使用帮助
        l 查看已知文件系统类型
        p 显示分区信息
        n 新建分区 (p:主分区 l:扩展分区 参见 分区概念 )
        d 删除分区
        t 改变分区类型
        w 将改动写入分区表
        q 放弃改动并退出

        * 磁盘设备名称为整块磁盘,而不是磁盘中的分区。例如 /dev/hda ,而不是 /dev/hda1


fdisk -l

查看所有磁盘分区信息

cfdisk

更加友善的分区表修改工具

mkfs.<文件系统类型> <分区设备文件>

将分区格式化为文件系统。 文件系统类型

    示例:

    sudo mkfs.reiserfs /dev/hda1


mkfs <分区设备文件>
    -t <文件系统类型> 指定文件系统类型
    -c 格式化前检查磁盘


mkisofs -o <镜像文件> [源文件目录]

用光盘或者文件制作iso镜像
    -b 可启动镜像

hdparm <磁盘设备文件>

设置硬盘参数
    -d <0|1> DMA模式开关
    -a <0|1> 预计模式开关
    -t 性能测试
    -T 缓存性能测试
    -c <0|1|3> 32位传输模式开关
    -g 显示柱面,扇区等信息
    -i -I 显示磁盘信息

网络和硬件管理

ifconfig


配置网络接口
    -a 显示所有网络接口


ifconfig <网卡> up|down

激活|禁用网卡

    示例: ::
        sudo ifconfig eth0 up


ifconfig <网卡> add [ netmask <子网掩码> ]

给网卡指定IP地址或子网掩码

route

配置路由及网关

route add -net <路由地址> gw <网关地址> [ netmask <子网掩码> ] dev <网卡>

指定路由及网关

route del -net <网关地址> gw <网关地址> [ netmask <子网掩码> ]

删除路由及网关

ip

配置网络

    子命令:
        link 网卡配置
        address 配置地址。相当于 ifconfig
        route 配置路由。相当于 route
    参数:
        show 显示 (默认)
        set 设置
        add 添加
        del 删除

    示例:

    ip link show                    显示网卡配置
    ip link set eth0 name xxx       重命名网络接口

ping

向目标地址发送ICMP封包,常用来测试网络
    -b <广播地址> ping整个网段
    -c 发送封包次数
    -s <封包大小> 默认为64字节

netstat

网络连接状态

        -r 显示路由表,同 route
        -a 所有连接
        -t 只显示TCP协议
        -U 只显示UDP协议
        -l 只显示正在监听的端口
        -p 显示PID和进程名
        -c <秒> 刷新频率

        * http/ftp/ssh…… 为应用层协议
        * TCP/UDP为传输层协议
        * IP/ICMP为网络层协议

lspci

查看PCI总线连接的设备

lsusb

查看USB接口连接的设备

lsmod

查看已加载模块

        * /lib/modules/uname -r 目录下为所有可用模块

modprobe <模块名称>

启用模块
阅读(2705) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~