大数据正式3
进程
- 定义:
- 操作系统与进程
- 操作系统的一个重要功能就是为进程提供方便,比如启动进程,为进程分配内存空间管理进程的相关信息等
- 如何产生进程
- 执行一个程序或命令
- 进程启动后,操作系统会为其分配相对应的系统内唯一的进程ID(PID)
- Linux的第一个进程
- 程序被加载为进程示意图
- 执行者->某程序->加载到内存->(PID,执行者权限参数,程序执行相关资料)
- ps aux lgrep bash
- su tom
- ps aux |grep base
- service httpd start(启动httpd服务)
- ps aux | grep hpptd -|管道符(进行管理)
- 注:不同用户执行相同程序,注意其权限不同
- 如何查看进程
- ps 将某个时间点的程序运作情况截取下来(process status)
- 选项和参数
- a和输入终端关联的所有的process,通常与x一起使用,列出完整信息
- x后台进程,通常与a一起使用,列出完整信息
- u有效使用者相关的process
- 常用组合
- ps aux观察系统所有的程序数据
- ps -|A观察所有系统的数据
- ps axjf连同部分程序数状态
- 如何查看自己的base相关的进程
- 观察系统所有程序
- 以下个选项的含义
USER |
PID |
%CPU |
%MEN |
VSZ |
RSS |
TTY |
STAT |
START |
TIME |
COMMAND |
属于哪个使用者 |
程序标识符 |
使用掉的CPU的百分比 |
所占物理的内存百分量 |
使用掉的虚拟内存量 |
占用的物理的内存量 |
在哪个终端运作,与终端无关则显示? |
目前状态 |
被触发的启动时间 |
实际使用CPU运作的时间 |
该程序的实际命令为何 |
Linux进程状态
- R正在被CPU运行或就绪状态
- S可中断的睡眠状态,等待状态,一旦被该进程等待的资源释放,那么该程序进入运行状态
- D不可中断的睡眠状态,该进程只能等待wake_up()函数唤醒
- T当进程收到SIGSTOP,SIGTSTP,SIGTTIN或SIGTTOU时就会进入暂停状态,可向其发送SIGCONT信号让进程进入可运行状态。
- Z僵尸进程,当进程已经终止运行,但是父进程还没有询问其状态的情况不可以被kill,即不响应任务信号,无法用SIGKILL杀死。
- 僵尸进程:该进程已经执行完毕,或是因故停止,但该进程的父进程却无法完整的将进程结束掉,而造成进程一直存在内存中
- 如果发现某个进程的CMD后面接上时,就代表该进程就是僵尸进程
动态查看进程
- top
- ps是截取一个时间点的程序状态,而top则可以持续观察进程的运行状态
- top的选项与参数
- d 秒数 程序画面更新的秒数
- b 以批次的方式执行top,通常搭配数据流重导向来将批次的结果输出为档案
- n与-b搭配,意义是需要进行几次top的输出结果
- p 指定某些个PID来进行观察检测而已
- 在top中可以使用按键命令
- ?显示在top当中可以输入的按键指令
- P以CPU的使用资源排序显示
- M以 memory的使用资源排序来显示
- N以PID来排序
- T使用CPU的时间积累来排序
- k给予某个PID后kill该进程
- r 给予某个PID后,重新制订一个nice值
- q离开top软件的按键
- top默认使用CPU使用率作为排序的重点,如果想使用内存的使用率来排序,则可以按下M,若要恢复则按下p
- 将top信息进行三次并输入到文件中
- top -b -n 3 > /tmp/top.txt
查看进程树
- pstree
- 选项与参数
- A各程序树之间的连接以ASCII字符来连接
- U万国码连接
- P并同时列出每个process的PID
- u并同时列出每个process的所属账号的名称
进程管理
- kill发送信号,并不只是杀进程
- 选项与参数
- l列出kill能够使用的 信号有哪些
- 15以正常的方式来结束一个进程
- 9立刻强制终止一个进程
- 2代表由键盘输入[ctrl]-c同样的动作
- 1如果为非守护进程,默认终止进程
- 查看某个进程
- 重新加载并启动
- killall -signal终止以某命令名称启动的全部进程
系统资源情况
- free观察内存使用情况
- b 单位
- k 单位
- m 单位
- g 单位
- t输出结果的同时,显示物理内存与swap的总量
Mem |
Swap |
total |
shared |
buffers |
cached |
物理内存 |
虚拟内存 |
总量 |
共享内存 |
将写磁盘的内容 |
已写磁盘或者已从磁盘读出的内容 |
- uname查阅系统与核心相关信息
- a所有相关信息都列出来
- s系统内核名称
- r内核版本
- m本系统的硬件名称
- p类型:cpu的类型
- i硬件的平台
- uptime观察系统启动时间与工作负载
- netstat网络监控
- a将系统上的所有连接,监听,Socket数据都列出
- t列出tcp网络包的信息
- u列出udp网络包的信息
- n以端口的方式来显示
- l列出目前正在的监听的服务
- p列出该网络的进程id
- vmstat侦测系统资源变化
- a
- f系统开机到目前为止的复制的进程树
- s情况列表说明
- S后面可以接单位
- d列出磁盘读写总量统计表
- p后面列出磁盘分区
- vmstat 1 4 统计目前CPU状态,每秒一次,一共四次
防火墙的启动,状态查看、关闭
- service iptables start
- service iptables status
- service iptables stop
- 开关防火墙
- chkconfig iptables off
- chkconfig iptables on
任务管理
- 登录base之后,就会取得一个名为base的进程,在这个环境中所执行的其他指令几乎都是所谓的子进程了
- 前台:可以控制与执行命令的base环境
- 后台:在操作系统中自行运行,无法认为控制,不能接受终端的输入
- 直接把&放在命令后面
- 将目前的工作丢到后台暂停ctrl+z
- 观察后台任务
- jobs查看当前工作状态
- l列出number,指令串,同时列出PID的号码
- r仅列出在后台run的任务
- s仅列出正在后台暂停的任务
- 将后台的程序放到前台来执行
- 让任务在后台中变成执行状态
- 终止任务
- 脱机及注销后任务执行
- nohup 命令参数 在当前终端前台执行
- nohup 命令参数 &在后台执行
压缩文件
- tar -czPf /tmp/文件 /tmp/存放文件目录 &(加入&后表示后台执行)
vim命令
- vi为之前的编译器--没有颜色表示,是之前的文本编辑器
- 文本编辑器,和Emacs并称为类Unlix系统用户最喜爱的编辑器
- 代码补全,编译,错误跳转
- vim的三种模式
- 一般模式(vim命令直接打开的,可以使用移动光标来删除字符或整行来处理文件内容)
- 编辑模式(删除,复制,粘贴)
- 按下(i,I,o,O,a,A,r,R)任意字母进入编辑模式
- Esc返回一般模式
- 命令模式(:/?任意一个字符输入,将光标移动到最下面的一行)(查询,替换,同时存盘,离开vi,显示行号)
1. vim test
2. i
3. 输入内容后,Esc
4. :wq保存
一般模式快捷键
- h左移
- 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相反(反向查找)
- :s/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从第一行到最后一行将word1替换成word2,替换前confirm是否替换
- x向后删除一个字符
- nx向后删除n个字符
- X向前删除一个字符
- dd删除光标所在的行
- ndd删除光标所在行的一下n行(n为数字,包含当前行)
- d1G删除光标所在行到第一行所有数据
- dG删除光标所在行到最后一行
- d$删除光标所在处到同行的最后一个字符
- d0删除光标所在处到同行的第一个字符
- yy复制光标所在的行
- nyy复制光标所在向下n行(n为数字)
- y1G复制光标所在行到第一行所有数据
- yG复制光标所在行到最后一行的数据
- y$复制光标处到同一行的最后一个字符
- y0复制光标处到同一行的第一个字符
- p将已复制的数据黏贴到光标所在的下一行
- P将已复制的数据粘贴到光标所在的上一行
- u复制前一个操作(类似于windows中的ctrl+z)
编辑模式下的快捷键
- 一般模式到编辑模式的转换
- i从光标处插入
- l从光标所在行的非空白字符处插入
- a从光标下一个字符处插入
- A从光标所在行的最后一个字符处插入
- o在光标所在处下一行插入新的一行
- O在光标处的上一行插入新的一行
- r替换光标所在字符一次
- R一直替换光标所处文字直到按下Esc
命令模式下的快捷键
- :w [filename]另存为filename
- :r [filename]读取filename指定文件中的内容到光标所在的行
- :n1,n2 w [filename] 将n1到n2行另存为filename
- :! command临时切换命令模式下执行command命令
- :wq!保存后离开
- :q!不保存离开
- set nu 显示行号
- set nonu 取消显示行号