(十六)Linux命令大全:Linux系统管理

1.进程管理

    1).进程查看
        ①.查看系统中所有进程
            ps aux【查看系统中所有进程,使用BSD操作系统格式】
            ps -le【查看系统中所有进程,使用Linux标准命令格式】
                >USER:该进程是由哪个用户产生的.
                >PID:进程的ID号.
                >%CPU:该进程占用CPU资源的百分比,占用越高,进程越耗费资源.
                >%MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源.
                >VSZ:该进程占用虚拟内存的大小,单位KB.
                >RSS:该进程占用实际物理内存的大小,单位KB.
                >TTY:该进程是在哪个终端中运行的.其中tty1-tty7代表本地控制台终端,tty1-tty6是本地的字符界面终端,tty7是图形终端.pts/0-255代表虚拟终端.
                >STAT:进程状态.常见的状态有,R:运行,S:睡眠,T:停止状态,s:包含子进程,+:位于后台
                >START:该进程的启动时间
                >TIME:该进程占用CPU的运算时间,注意不是系统时间
                >COMMAND:产生此进程的命令名
        ②.查看系统健康状态
            top [选项]【-d 秒数:指定top命令每隔几秒更新.默认是3秒】
            在top命令的交互模式当中可以执行的命令:
                ?或h:显示交互模式的帮助
                P:以CPU使用率排序,默认就是此项
                M:以内存的使用率排序
                N:以PID排序
                q:退出top
            ------------说明top命令后的信息----------------------
            第一行信息为任务队列信息
                12:25:12-----系统当前时间
                up 1 day, 13:22-----系统的运行时间,本机已经运行1天13小时22分钟
                2 users-----当前登录了两个用户
                load average: 0.00, 0.00, 0.00-----【重点】系统在之前1分钟,5分钟,15分钟的平均负载.一般认为小于1时,负载较小.如果大于1,系统已经超出负荷.
            第二行为进程信息
                Tasks:  84 total-----系统中的进程总数
                1 running-----正在运行的进程数
                94 sleeping-----睡眠的进程
                0 stopped-----正在停止的进程
                0 zombie-----僵尸进程.如果不是0,需要手工检查僵尸进程
            第三行为CPU信息
                Cpu(s):  0.0%us-----用户模式占用的CPU百分比
                0.1%sy-----系统模式占用的CPU百分比
                0.0%ni-----改变过优先级的用户进程占用的CPU百分比
                99.7%id-----【重点】空闲CPU的CPU百分比
                0.1%wa-----等待输入/输出的进程的占用CPU百分比.
                0.0%hi-----硬中断请求服务占用的CPU百分比.
                0.1%si-----软中断请求服务占用的CPU百分比.
                0.0%st-----st(Steal time)虚拟时间百分比.就是当有虚拟机时,虚拟CPU等待实际CPU的时间百分比.
            第四行为物理内存信息
                Mem:   1030532k total-----物理内存的总量,单位KB
                213760k used-----已经使用的物理内存数量
                816772k free-----【重点】空闲的物理内存数量,我们使用的是虚拟机,总共只分配了1024MB内存,所以只有816MB的空闲内存了
                22836k buffers-----作为缓冲的内存数量
            第五行为交换分区(swap)信息
                Swap:  1048568k total-----交换分区(虚拟内存)的总大小
                0k used-----已经使用的交互分区的大小
                1048568k free-----空闲交换分区的大小
                118624k cached-----作为缓存的交互分区的大小
        ③.查看进程树
            pstree [选项]【-p:显示进程的PID,-u:显示进程的所属用户】
    2).进程管理
        ①.kill命令
            kill -l【查看可用的进程信号】
                -----------常用信号-----------------------
                1:SIGHUP:该信号让进程立即关闭,然后重新读取配置文件之后重启.
                2:SIGINT:程序终止信号,用于终止前台进程.相当于输出ctrl+c快捷键.
                8:SIGFPE:在发生致命的算术运算错误时发出.不仅包括浮点运算错误,还包括溢出及除数为0等其他所有的算术的错误.
                9:SIGKILL:用来立即结束程序的运行.本信号不能被阻塞、处理和忽略.一般用于强制终止进程.
                14:SIGALRM:时钟定时信号,计算的是实际的时间或时钟时间.alarm函数使用该信号.
                15:SIGTERM:正常结束进程的信号,kill命令的默认信号.有时如果进程已经发生问题,这个信号是无法正常终止进程的,我们才会尝试SIGKILL信号,也就是信号9.
                18:SIGCONT:该信号可以让暂停的进程恢复执行,本信号不能被阻断.
                19:SIGSTOP:该信号可以暂停前台进程,相当于输入ctrl+z快捷键.本信号不能被阻断.
              eg:
                  

        ②.killall命令
            killall [选项][信号] 进程名【按照进程名杀死进程】
                -i:交互式,询问是否要杀死某个进程
                -I:忽略进程名的大小写
           eg:
             

        ③.pkill命令
            pkill [选项][信号] 进程名【按照进程名终止进程】
                -t 终端号:按照终端号踢出用户
                ---------按照终端号踢出用户--------------------
                w【使用w命令查询本机已经登录的用户】
                pkill -9 -t pts/0【强制杀死从pts/0虚拟终端登录的进程,注意:-9和-t的位置不能换,否则踢出失败】
             eg:
             ![](https://img2020.cnblogs.com/blog/1223444/202004/1223444-20200428013154714-1434753185.png)



        ④.终止进程
            kill -15 [进程的PID]

2.工作管理

    1).把进程放入后台
        >eg1: tar -zcf etc.tar.gz /etc &【在命令后面加上"&"符号,后台运行】
        >eg2: top【在top命令执行的过程中,按下ctrl+z快捷键,后台暂停】
    2).查看后台的工作
        jobs -l【-l:显示工作的PID】
        注:"+"号代表最近一个放入后台的工作,也是工作恢复时,默认恢复的工作."-"号代表倒数第二个放入后台的工作.
    3).将后台暂停的工作恢复到前台执行
        fg %工作号【%工作号:"%"号可以省略,但是注意工作号和PID的区别】
    4).将后台暂停的工作恢复到后台执行
        bg %工作号【注:后台恢复执行的命令,是不能和前台有交互的,否则不能恢复到后台执行(top、vim这些命令是不能在后台运行的)】

3.系统资源查看

    1).vmstat命令监控系统资源
        vmstat [刷新延时 刷新次数]【vmstat 1 3:监听3次我的系统资源,每次间隔1秒】
    2).dmesg开机时内核检测信息(用来查看相关的硬件信息)
        dmesg | grep CPU
        

        每次开机后会重新检测 /proc/cpuinfo 文件。
    3).free命令查看内存使用状态
        free [-b|-k|-m|-g]
            -b:以字节为单位显示
            -k:以KB为单位显示,默认就是以KB为单位显示
            -m:以MB为单位显示
            -g:以GB为单位显示
    4).查看CPU信息
        cat /proc/cpuinfo
    5).uptime命令
        uptime【显示系统的启动时间和平均负载,也就是top命令的第一行.w命令也可以看到这个数据】
    6).查看系统与内核相关信息
        uname [选项]【-a:查看系统所有相关信息,-r:查看内核版本,-s:查看内核名称】
        file /bin/ls【判断当前系统的位数】
        lsb_release -a【查询当前Linux系统的发行版本】
    7).列出进程打开或使用的文件信息
        lsof [选项]【列出进程调用或打开的文件的信息】
            -c 字符串:只列出以字符串开头的进程打开的文件
            -u 用户名:只列出某个用户的进程打开的文件
            -p pid:列出某个PID进程打开的文件

4.系统定时任务

    1).crond服务管理与访问控制【系统默认自启动】
        service crond restart【】
        chkconfig crond on【】
    2).用户的crontab设置
        crontab [选项]【-e:编辑crontab定时任务,-l:查询crontab任务,-r:删除当前用户所有的crontab任务】
        ----------格式----------------------------------------------------------------------------------------------------------
        * * * * * 执行的任务

        -----------“*”的含义--------------------------------------------------------------------------------------------------
        第一个"*":一小时当中的第几分钟:0-59
        第二个"*":一天当中的第几小时:0-23
        第三个"*":一个月当中的第几天:1-31
        第四个"*":一年当中的第几月:1-12
        第五个"*":一周当中的星期几:0-7(0和7都代表星期日)
        eg:
        

        ----------------特殊符号说明---------------------------------------------------------------------------------------------
        *:代表任何时间.比如第一个"*"就代表一小时中每分钟都执行一次的意思.
        ,:代表不连续的时间.比如"0 8,12,16 * * * 命令",就代表在每天的8点0分,12点0分,16点0分都执行一次命令.
        -:代表连续的时间范围.比如"0 5 * * 1-6 命令",代表在周一到周六的凌晨5点0分执行命令
        */n:代表每隔多久执行一次.比如"*/10 * * * * 命令",代表每隔10分钟就执行一遍命令
        --------------例子-----------------------------------------------------------------------------------------------------------
        45 22 * * * 命令-----在22点45分执行命令
        0 17 * * 1 命令-----每周一的17点0分执行命令
        0 5 1,15 * * 命令-----每月1号和15号的凌晨5点0分执行命令
        40 4 * * 1-5 命令-----每周一到周五的凌晨4点40分执行命令
        */10 4 * * * 命令-----每天的凌晨4点,每隔10分钟执行一次命令
        0 0 1,15 * 1 命令-----每月1号和15号,每周一的0点0分都会执行命令.注意:星期几和几号最好不要同时出现,因为它们定义的都是天.非常容易让管理员混乱.
    3).定时操作
        crontab -l 【定时任务列表】
        crontab -e【编辑定时任务】
        crontab -r【清空定时任务】
原文地址:https://www.cnblogs.com/everyingo/p/12791485.html