Linux基础(三)

Linux基础(三)

一、进程
  1.什么是进程 : 是程序的具体实现,执行程序的具体过程
  2.操作系统与进程 : 操作系统的一个重要功能就是为进程提供方便,比如启动进程,为进程分配内存空间,管理进程的相关信息等等
  3.linux启动的第一个进程 pidof init
  4.查看进程 ps(process status):将某个时间点的程序运作情况截取下来
  选项和参数:
   a:和输入终端关联的所有process,通常与x一起使用,列出完整信息
   x:后台进程,通常与a这个参数一起使用,可列出较完整信息
   u:有效使用者相关的process
  常用组合
   ps aux 观察系统所有的程序数据
   ps -lA 也是能够观察所有系统的数据
   ps axjf 连同部分程序树状态
   以上可以通过man ps 查看 仅查看自己的bash相关的进程 
   ps -l 查看进程 ps -aux|head -4 显示进程前四行内容
  USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
   USER:该process属于哪个使用者
   PID:该process的程序标示符
   %CPU 该process使用掉的CPU资源百分比
   %MEN 该process 所占用的物理内存百分比
   VSZ 该process使用掉的虚拟内存量(Kbytes)
   RSS 该process占用的物理的内存量(Kbytes)
   TTY 该process是在哪个终端机上面运作,若与终端机无关则显示?,
   另外tty1-tty6是本机上面的登入者程序,若为 pts/0等等的,则表示为由网络连接进主机的程序
    STAT 该进程目前的状态,状态显示与ps -l的S旗标相同(R/S/D/T/Z)
    START 该进程被触发启动的时间
    TIME 该process实际使用CPU运作的时间
    COMMAND 该程序的实际命令为
  5.linux进程状态
   R(TASK_RUNNING) 指正在被CPU运行或者就绪的状态(在run_queue队列里的状态)
   S(TASK_INTERRUPTIBLE),可中断的睡眠状态;处于等待状态中的进程,一旦被该进程等待的资源被释放,那么该进程就会进入运行状态
   D(TASK_UNINTERRUPTIBLE),不可中断的睡眠状态,该状态的进程只能用wake_up()函数唤醒
   T(TASK_STOPPED or TASK_TRACED),当进程收到信号SIGSTOP,SIGTSTP,SIGTTIN或SIGTTOU时就会进入暂停状态可向其发送SIGCONT信号让进程转换到可运行状态
   Z(TASK_DAED-EXIT_ZOMBIE)僵尸进程:当进程已经终止运行,但是父进程还没有询问其状态的情况,不可被kill,即不影响任务信号,无法用SIGKILL杀死。通常造成僵尸进程的原因是该进程应该已经执行完毕,或者是因故应该要终止,但该进程的父进程却无法完整的将子进程结束,而造成进程一直存在内存当中
   如果发现在某个进程的CMD后面接上时,就代表该进程是僵尸进程
  6.top:动态观察进程的变化
   ps是截取一个时间点的进程状态,而top则可以持续观察进程运行的状态
   选项与参数
    -d 后面可以接秒数,就是整个程序画面更新的秒数,默认5秒
    -b 以批次的方式执行top,还有更多的参数可以使用,通常会搭配数据流重导向来将批次的结果输出成为档案
    -n 与-b搭配,意思是需要进行几次top的输出结果
    -p 指定某些个PID来进行观察检测
    top -d 2 指定2秒更新一次
    top -b -n 5>a.log 批次方式进行5次输出结果并且写入到a.log文件中
   top中执行过程当中可以使用的按键指令
    ? 显示在top当中可以输入的按键指令
    P 以CPU的使用资源排序显示
    M 以Memory的使用资源排序显示
    N 以PID来排序
   T 由该Process使用的CPU时间累积(TIME+)排序
   k 给予某个PID后kill该进程
   r 给予某个PID重新指定一个nice值
   q 离开top软件的按键
  9.进程管理
   Kill发送信号(并不只是杀进程)
   选项与参数
    -l这个是L的小写,列出目前kill能够使用的信号(signal有哪些)   
    signal:向进程发送信号,指示其进行不同的操作,用man 7 signal可知
    -15:以正常的程序方式终止一个进程
    -9:立刻强制终止一个进程
    -2:代表由键盘输入 [ctrl]-c同样的动作
    -1:对于sshd这样的守护进程,重新读取一次参数的配置文件(类似reload),如果进程为非守护进程,默认为终止进程
    9.1查看其中某个进程 ps aux|grep sshd
    终止以某命令名称启动的全部进程 Killall -9 httpd 强制终止所有以httpd启动的进程
   10.系统资源监控
    10.1 free 观察内存使用情况
     -b 直接输入free时,显示的单位是kbytes我们可以使用b(bytes),m(Mbytes),k(Kbytes)及g(Gbytes)来定义显示单位
     -t 在输出的最终结果时,显示物理内存与swap的总量
     Mem一行显示的是物理内存的量
     Swap 虚拟内存的量
     total是总量 used是已被使用的量 free则是剩余可用的量 shared 共享内存 buffers将写磁盘的内容 cached 已写磁盘或者已从磁盘读出的内容
    10.2 uname 查阅系统与核心相关信息
     -a 所有系统相关的信息,包括以下的数据都会被列出来
     -s 系统内核名称
     -r 内核版本
     -m 本系统的硬件名称
     -p cpu的类型 与-m类似 是显示的是cpu的类型
     -I 硬件的平台
    10.3 uptime 观察系统启动时间与工作负载
     显示目前系统当前时间,已经开机多长时间,用户数以及1,5,15分钟的平均负载
    10.4 netstat 网络监控
     -a 将目前系统上所有的已经连接,监听,socket数据都列出来
     -t 列出tcp网络包的信息
     -u 列出udp网络包的信息
     -n 以端口方式来显示
     -l 列出目前正在监听的服务
     -p 列出改网络服务的进程id
     常用命令:netstat -atp 所有tcp协议的链接,并输出pid号,netstat -antp,netstat -lntp
二、任务管理
  1. 概念
   前台:可以控制与执行命令的bash环境称为前台进程
   后台:在操纵系统中自动运行,你无法使用[ctrl]+c终止,可以使用bg/fg命令操作的任务,后台执行的任务不能接受终端的输入。
   1,直接将命令放到后台执行 &
   2.将目前的工作丢到后台暂停 [ctrl]+z
   3.观察后台任务
    jobs 查看当前工作状态
     -l :除了列出 job number 与指令串之外,同时列出 PID 的号 码;
     -r :仅列出正在后台 run 的任务;
     -s :仅列出正在后台暂停 (stop) 的任务。
     fg 1 将任务号为1的进程调到前台执行。+作用“表示当前的”,如果命令fg后面没有跟任务号,默 认将带+的进程调到前台执行。-表示+号对应的进程被调 前台后,“-”对应的进程立即变为“+”
     bg 2 执行后台进程中任务号为2的进程。
    4.脱机及注销后任务执行
      nohup 可以让你在脱机或注销后(比如exit退出当前shell),还能
够让工作继续进行
     nohup [命令与参数] 在当前终端前台执行
     nohup [命令与参数] 在当前终端前台执行
三、vim
  1.vim介绍
   vim是一个类似vi的文本编辑器,不过在vi的基础上增加了很多新特性,vim被公认为类vi编辑器中最好用的一个。vim是vi发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编 程的功能丰富,在实际工作中被广泛使用。和Emacs并列称为类Unix系统用户最喜爱的编辑器。
  2.vim三种模式
   1.一般模式
    以vim打开一个文件就直接进入一般模式(默认模式)
    可以使用上下左右移动光标来移动,也可以使用删除字符或删除整行来处理文件内容,也可以使用复制、粘贴来处理文件数据。
   2.编辑模式
    在一般模式中可以删除、复制、粘贴等,但无法编辑文件内容。
    按下i、I、o、O、a、A、r、R等任何一个字母后进入编辑模式。并在左下 方出现INSERT或REPLACE。该模式下可以输入文件内容。按下返回一般模式。
   3.命令模式
    在一般模式当中,输入:/?三个字符中的任何一个按钮,就可以将光标移动到最下面那一行。
    在这个模式当中,可以提供查询、替换等功能。同时存盘、离开vi、显示行号等等命令都是在此模式进行。
  3.一般模式快捷键
   h或光标左移一个字符。如果是20h,表示左移20个字符。
   j或 光标下移一个字符 同上
   k或 光标上移一个字符 同上
   l或 光标右移一个字符 同上
   [Ctrl]+[f ]屏幕向下移动一页
   [Ctrl]+[b]屏幕向上移动一页
   0或[Home]移动到此行最前面字符处
   $ 或[End]移到光标所在行的行尾
   H 光标移到当前屏幕最上方行的第一个字符
    M光标移到当前屏幕中间行的第一个字符
    L光标移动到当前屏幕最下方行第一个字符
    G移到此文件最后一行
    nG移到第n行
    gg相当于1G,即移到第一行
    n[Enter]光标下移n行
    /word向下查找单词“word”(!!)
    ?word向上查找单词“word”(!!)
    n表示重复前一个查找操作
    N与n相反(反向查找
    2.一般模式替换
     ?/word1/word2/g 在当前行将word1替换成word2(!!)
     :%s/word1/word2/g 在当前文件将word1替换成word2(!!)
     :n1,n2s/word1/word2/g在n1到n2行查找word1替换成word2 (n1、n2为 数字)
     :1,$ s/word1/word2/g从第一行到最后一行查找word1替换成word2
     :1,$ s/word1/word2/gc同上,在替换前confirm是否替换。(!!!)
    3.一般模式删除
     x向后删除一个字符
     nx向后删除n个字符(n为数字)
     X向前删除一个字符
     dd删除光标所在行(!!!)
     ndd删除光标所在行以下n行(n为数字,包含当前行在内)
     d1G删除光标所在行到第一行所有数据(包括所在的行)
     dG删除光标所在行到最后一行(!!)
     d$ 删除光标所在处到同行最后一个字符(!)
     d0删除光标所在处到同行第一个字符。(!)
     yy复制光标所在行(!!)
     nyy复制光标所在向下n行(n为数字)
     yG复制光标所在行到最后一行所有数据
     y$复制光标所在处到同行最后一个字符
     y0复制光标所在处到同行第一个字符
     p将已复制的数据粘贴到光标所在下一行
     P将已复制的数据粘贴到光标所在上一行
     u复原前一个操作(类似于windows中的ctrl+z)!!!
    4. 一般模式到编辑模式切换
     i从光标所在处插入(!!!)
     I从所在行第一个非空白字符处插入(!)
     a从光标所在下一个字符处插入
     A从光标所在行最后一个字符处插入
     o在光标所在处下一行插入新的一行(!)
     O在光标所在处上一行插入新的一行
     r替换光标所在处字符一次
     R一直替换光标所在处文字直到按下Esc(!!!)
    5.命令模式快捷键
     :w [filename] 另存为filename
     :r [filename] 读取filename指定文件中的内容到光标所在的行。
     :n1,n2 w [filename] 将n1到n2行另存为filename
     :! command 临时切换到命令行模式下执行command命令。
     例如 “:!ls /home”即可在vim当中查看/home下面以ls输出的文 件信息。
     :wq 保存后离开
     :q! 不保存离开
     :set nu 显示行号
     :set nonu 取消显示行号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值