码迷,mamicode.com
首页 > 系统相关 > 详细

linux 笔记--while循环、函数和进程管理

时间:2015-07-29 06:46:40      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:linux

while:
    break:提前退出循环
    continue:提前结束循环,而进入下一轮循环
    while :; do
           ********
    done      (死循环)

函数:function
    代码重复使用,结构化,不能单独运行,需要被调用时才可以被使用
    1.function 函数名{         2.function(){
         *********                      *********
        }                    }
return # : 自定义返回值

OS = kernel(内核) + process(进程)

应用程序 --> 进程 --> 多个线程
    多个进程只能在一个cpu上切换运行,但是多个线程可以同时在多个cpu核心上同时运行

init:是所有进程的父进程(pstree命令可以查看进程树),init负责生成其他任务的进程

进程优先级关系:0-139
    100-139:用户可控制
    0-99:内核调整

优先级高的进程:
    1.获得更多的cpu运行时间
    2.更优先获得运行的机会
nice值:
    默认为0,-20--19 与 100-139 相对应,某些进程的默认优先级,普通用户仅能调大自己的进程nice值

PID:每一个进程都有一个ID号,在/proc目录中每一组数都是一个进程,init的进程ID号永远都为1
    且进程分两类:跟终端相关的进程 和 跟终端无关的进程

ps:查看进程状态,默认显示跟终端有关的进程,参数格式有两种:
    一种是:sysV(罗马数字):参数可以不用-
    a 显示跟终端有关的进程
    u 显示用户等其他信息
    x 显示跟终端无关的进程
    另一种是:BSD
    一般常用:-elF  -ef  -eF
    ps -o 属性1(pid) 指定查看 ,常用 -axo

     USER       PID     %CPU       %MEM        VSZ         RSS      TTY    STAT    START      TIME         COMMAND
    用户名     id号  cpu使用率  内存使用率  虚拟内存级  常驻内存级  终端   状态   开始时间  运行总时间  命令或可执行的文件
    进程状态:D 不可中断的睡眠     R 运行或就绪    S 可中断的睡眠       T 停止    z 僵死的进程
          < 高优先级的进程    N 低优先级的进程    + 前台进程组中的进程    l 多线性进程
          s 会话进程的首进程

pgrep命令:搜索进程且只显示进程号
pidof命令:指定进程名查id号

top命令:显示当前服务器的各种状态
    -d 指定刷新时长 (秒)
    -b 翻屏显示
    -n # 只显示几屏

    top - 21:48:11 up  8:57,  4 users,  load average: 0.03, 0.02, 0.00
    Tasks: 206 total,   1 running, 205 sleeping,   0 stopped,   0 zombie
    Cpu0  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
    Cpu1  :  0.3%us,  0.3%sy,  0.0%ni, 99.3%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
    Mem:   1881040k total,  1007900k used,   873140k free,   125956k buffers
    Swap:  4095996k total,        0k used,  4095996k free,   438080k cached
    PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
     1   root      20   0 19356 1524 1216 S  0.0  0.1   0:01.80  init
    注:buffers和cached显示的都是物理内存  
    
    交互命令:
        M 根据驻留内存大小进行排序
        P 根据cpu使用百分比进行排序
        T 根据累计时间排序
        l 是否显示平均负载和启动时间
        t 是否显示进程和cpu状态的相关信息
        1 显示cpu所有核心的相关信息
        m 是否显示是内存的相关信息
        c 是否显示完整的命令行信息
        q 退出  k 终止某个进程

进程间的通信: 共享内存 信号 stmaphore

进程之间发送信号控制进程:
     kill -l 显示所有可用信号
        1 SIGHUP 让一个进程不用重启,就可以重读其配置文件,并让新的配置信息生效
        2 SIGINT ctrl + c 中断一个进程
        9 SIGKILL 杀死一个进程
        15 SIGTERM 终止一个进程
    指定pid发送信号:
        信号号码:kill -15 pid
        信号名称:kill -SIGKILL pid
        信号名称简写:kill -KILL pid
        kill pid :默认为15号信号
        killall 进程名:杀死相同进程名

调整nice值:
    renice # pid 调整已经启动的进程的nice值
    renice -n # command:在启动是指定nice值

前台:占据了命令提示符
后台:启动之后,释放命令提示符后续的操作在后台完成
     command  & : 在命令执行时&符让命令直接切换到在后台运行
    前台-->后台 的切换:ctrl+z 让正在运行的命令转换到后台运行
    后台-->前台 的切换:fg # 切换后台任务到前台执行
    bg命令让暂停在后台的任务继续执行,若有多个后台任务,则bg #(命令号,可用jobs查看当前的
        后台任务,+为bg命令默认将继续操作的任务 -为bg默认第二个执行的任务)
    kill %# 结束#任务

vmstat命令:系统状态查看命令
    vmstat 1 每隔1秒刷新一次
    vmstat 1 5 每隔1秒刷新一次,共刷新5次
    procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
     r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
      0  0      0 868724 130380 438112    0    0     7     5   59  231  1  0 98  1  0
    procs:r队列长度 b阻塞长度
    memory:swpd交换大小 free空闲 buff缓冲 cache缓存
    swap:si内存-->交换空间 so交换空间-->内存
    io:bi磁盘-->内存 bo内存-->磁盘
    system:in中断个数 cs进程上下文切换次数
    cpu:us用户空间 sy内存空间 id空闲 wa等待 st被偷走的空间
    
uptime命令:显示的信息和top的第一行一样

  注:
    /proc/meminfo  内存信息
    /proc/cpuinfo  cpu信息
    /proc/进程号/maps 该进程在内存中读取的信息

本文出自 “笨鸟先辉” 博客,请务必保留此出处http://benniaoxianhui.blog.51cto.com/10463960/1679219

linux 笔记--while循环、函数和进程管理

标签:linux

原文地址:http://benniaoxianhui.blog.51cto.com/10463960/1679219

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!