渣渣小本求职复习之路每天一博客系列——Unix&Linux入门(5)
前情回顾:昨天简单地介绍了一下如何使用vi编辑器,例如命令模式和插入模式的切换,以及一些简单命令的讲解。
—————————————————————————直接就开始吧—————————————————————————
第六章:作业控制和进程管理
这一个章节呢,我们会介绍启动和停止进程、如何向正在运行的程序发送信号、查看正在运行的进程上的信息、shell作业控制等内容。
第一节:进程
一句话概括:进程(process)是一个正在运行的程序的实例。
操作系统在启动时创建init进程,它是所有进程的父进程,进程ID是1.在启动其他程序时,即启动子进程,系统会为每个进程分配一个惟一的进程标识符,叫做PID。
我们可以先通过echo命令看看shell的PID是多少——
通常情况下,进程ID是按从小到大的顺序依次分配的。当进程停止时,可以重复使用以前用过的PID。通常,PID的取值范围从1到32768.
第二节:查看进程
通过运行ps(process status)命令可以方便地查看用户所拥有的进程。不带任何参数的ps命令,将会显示用户所拥有的进程,而这些进程是与一个终端相关联的。使用这条命令,可以查看是哪个进程耗尽了内存或过多地占用了CPU。
在前面示例中,输出并没有显示有关进程状态的信息。要使ps输出这项额外的信息,可以使用u参数——
根据以上显示的信息,我们可以得知正在运行进程的用户、进程ID、进程占用CPU的百分比、实际内存的百分比、以千字节为单位的虚拟内存的大小、所有的物理内存的大小、所连接的终端、状态、进程开始时间、进程使用CPU的总时间和命令名。
第三节:停止进程
有几种不同的方法可以结束进程。通常情况下,从基于控制台的命令界面发送CTRL+C按键(默认的中断字符)将退出命令。但是有时候进程会捕获或忽略中断字符。
用于结束进程的标准工具是kill。从技术角度来讲,kill命令并没有杀死一个命令,只是向进程发送一个特殊的信号(信号用于进程间的简单通信)。
要使用kill命令,只需要将进程ID作为命令行参数。例如要kill掉shell进程,就可以输入命令:
kill 1952
进程树将子进程和它的父进程放在一起,显示了不同进程之间的衍生关系。需要注意的是,每个子进程只存在一个父进程,但是每个父进程可以用多个子进程。例如下图:
由于屏幕尺寸的缘故,使用pstree命令,只能截取一部分。不过我们还是能清楚地看出,init是所有进程的父进程。
第四节:shell的威力
本节内容参考《程序员修炼之道》。
其实基本所有的计算机学生在上大学之前都没有接触过Unix,都是在用Windows系统。对于在GUI界面和集成开发环境(IDE)上成长起来的程序员,似乎觉得,学习shell没有任何的必要,事实上,真的是这样的么?
对于操纵文本文件的程序员,工作台就是命令shell。在shell提示下,我们可以调用我们的全套工具,并使用管道、以这些工具原来的开发者从未想过的方式把它们组合在一起。在shell下,我们可以启动应用、调试器、浏览器、编辑器以及各种实用程序。我们可以搜索文件、查询系统状态、过滤输出。通过对shell进行编程,我们可以构建复杂的宏命令,用来完成经常需要将进行的各种活动。
如果我们只是实用GUI完成所有的工作,或许会错过了环境的某些能力。我们将没有办法使得那些常见的任务自动化,或是利用各种可用工具的全部力量。GUI的好处就是所见即所得,但缺点则是所见即全部所得,因为GUI环境通常受限于它们的设计者想要提供的能力。
我们可以举个例子,说明一下shell的威力——
找出修改日期比你的Makefile的修改日期更近的全部.c文件。
Shell finde .-name'*.c'-newer Makefile -print
GUI 打开资源管理器,转到正确的目录,点击Makefile,记下修改时间。然后调出“工具/查找”,在指定文件处输入*.c。选择“日期”选项卡,在第一 个日期字段中输入我们记下的Makefile的日期。然后点击“确定”。
去熟悉shell,会发现我们的效率会提高得很快。如果花足够多的时间去研究shell,会发现,我们根本离不开它。
——————————————————————倒数第三天————————————————————————
不知不觉,已经要结束了。
1.给自己承诺的三十天,就要在本周日结束了。时间过得真快!
2.这一系列的博客,主要是记录我复习的过程,其实分享价值并不高。在下一个系列,我会好好精心准备一些内容。
3.谢谢每个鼓励我的朋友,没有你们,我坚持不到现在。
渣渣小本求职复习之路每天一博客系列——Unix&Linux入门(5)的更多相关文章
- 渣渣小本求职复习之路每天一博客系列——数据库基础(MySQL)(5)
前情回顾:昨天学习了MySQL中索引的设计与使用,还了解了一些常见的SQL注入攻击的手段以及防范方法,一般来说,在面试的时候如果不是要求比较高,基本就够用了. 今天碰见一个拿了TP-LINK的offe ...
- 渣渣小本求职复习之路每天一博客系列——TCP/IP协议栈(5)
前情回顾:一篇短短的博客明显不能满足TCP和UDP这两个饥渴的汉子,而且还被应用协议占了一小半的篇幅.在昨天结束之后,相信大家都基本对TCP/IP协议栈的轮廓有一个大概的印象了,能够对整体有所把握. ...
- 渣渣小本求职复习之路每天一博客系列——Java基础(9)
———————————————————————今天不闲聊————————————————————————————— 第十一章:线程 第四节:synchronized与同步 首先,我们来看一段代码: p ...
- 用RecyclerView做一个小清新的Gallery效果 - Ryan Lee的博客
一.简介 RecyclerView现在已经是越来越强大,且不说已经被大家用到滚瓜烂熟的代替ListView的基础功能,现在RecyclerView还可以取代ViewPager实现Banner效果,当然 ...
- 鸿蒙内核源码分析(静态链接篇) | 完整小项目看透静态链接过程 | 百篇博客分析OpenHarmony源码 | v54.01
百篇博客系列篇.本篇为: v54.xx 鸿蒙内核源码分析(静态链接篇) | 完整小项目看透静态链接过程 | 51.c.h.o 下图是一个可执行文件编译,链接的过程. 本篇将通过一个完整的小工程来阐述E ...
- 重回程序员之路。重写博客。我的ecshop小京东二开问题汇总与解决方案。
问题1:混合支付(余额支付+在线支付)不跟更新订单状态问题. 解决方案:http://bbs.ecshop.com/viewthread.php?tid=156761&highlight= i ...
- 2019基于Hexo快速搭建个人博客,打造一个炫酷博客(1)-奥怪的小栈
本文转载于:奥怪的小栈 这篇文章告诉你如何在2019快速上手搭建一个像我一样的博客:基于HEXO+Github搭建.并完成SEO优化,打造一个炫酷博客. 本站基于HEXO+Github搭建.所以你需要 ...
- 博客与微信小程序的同步
在此之前,先说说自己最近的打算,才购买了阿里云的服务器,想做一个网站和图床网盘之类的方便自己使用. 考虑到小程序,又打算将自己的博客内容放到小程序中.从零开发实属困难,应该还要一段时间才能完成. 目前 ...
- 使用小书匠及markdown here编辑博客和微信公众号
1. 使用小书匠连接Evernote并发布笔记到博客园 1.1 小书匠初探 我平时的信息收集的主要方法是采用Pocket+Evernote. 简单来说: 如果访问到非常有用,而且是必须要立刻记录的内容 ...
随机推荐
- 解决PKIX(PKIX path building failed) 问题 unable to find valid certification path to requested target
最近在写java的一个服务,需要给远程服务器发送post请求,认证方式为Basic Authentication,在请求过程中出现了 PKIX path building failed: sun.se ...
- CSS 部件
1.导航菜单: [荐]抽屉式菜单 jQuery.mmenu jQuery.mmenu 实现了类似手机上经常使用的抽屉式菜单,效果很好.http://mmenu.frebsite.nl/ 2.jQuer ...
- Red hat 6.4下面的qt安装
运行环境:Red hat 6.4 去官网下载qt5.2并且安装 当启动的时候会出现如下错误 核心载入失败: /opt/Qt5.2.0/Tools/QtCreator/lib/qtcreator/plu ...
- jQuery操作Dom、jQuery事件机制、jQuery补充部分
jQuery操作Dom: 修改属性: //使用attr()方法 //attr(name, value) //name:要修改的属性的属性名 //value:对应的值 //attr方法,如果当前标签有要 ...
- css怎样让HTML中超出的内容显示为省略号
文字超出了需要隐藏并显示省略号这个在工作中很多时候都要用到,我想很多人都碰到过吧,这个有两种解决方法第一种.用程序开截取字符长度,这个其实也是可以的.第二种就是接下来分享的内容,用css样式来做,话也 ...
- HtmlAgilityPack组件
HtmlAgilityPack组件用于解析Html字符串,一个典型的应用场景是用于网页爬虫. 示例程序 using Common.Tools; using Datebase.Entity; using ...
- 高速PCB之EMC设计47则
高速PCB之EMC设计47则 差模电流和共模电流 辐射产生 电流导致辐射,而非电压,静态电荷产生静电场,恒定电流产生磁场,时变电流既产生电场又产生磁场.任何电路中存在共模电流和差模电流,差模信号携带数 ...
- 二叉搜索树、B树
二叉搜索树又叫二叉排序树. B树又可写为B-树,“B-树”种的“-”无区分意义. 此外,还有B+树,B*树.
- 数据分析和R语言的那点事儿_1
最近遇到一些程序员同学向我了解R语言,有些更是想转行做数据分析,故开始学习R或者Python之类的语言.在有其他编程语言的背景下,学习R的语法的确是一件十分简单的事.霸特,如果以为仅仅是这样的话那就图 ...
- oracle中imp命令详解 .
转自http://www.cnblogs.com/songdavid/articles/2435439.html oracle中imp命令详解 Oracle的导入实用程序(Import utility ...