渣渣小本求职复习之路每天一博客系列——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. 简单来说: 如果访问到非常有用,而且是必须要立刻记录的内容 ...
随机推荐
- oracle for loop循环以及游标循环
1. for in loop形式 DECLARE CURSOR c_sal IS SELECT employee_id, first_name || last_name ename, salar ...
- eclipse如何安装cdt
原文地址:http://zhidao.baidu.com/link?url=9vSDAkpKJjLIIXP9wFqfjTSf-PmrEr9excDc-A3rzRh46jgzzbud0Z7gzjfxT8 ...
- java反射案例
Java反射经典实例 2007-08-29 17:55:25 分类: Java Java提供了一套机制来动态执行方法和构造方法,以及数组操作等,这套机制就叫——反射.反射机制是如今很多流行框架的实现 ...
- Orchard源码--初步(1)
1.打开解决方案Orachard.sln 2.直接启动项目调试 3.接着你会看到下图 呵呵,有点啰嗦( ̄︶ ̄)↗ 涨 4.点击上图的‘Finish Setup’后
- BZOJ2933: [Poi1999]地图
Description 一个人口统计办公室要绘制一张地图.由于技术的原因只能使用少量的颜色.两个有相同或相近人口的区域在地图应用相同的颜色.例如一种颜色k,则A(k) 是相应的数,则有: 在用颜色 ...
- 【学习】JAVA的第一天(补)
补上1024第一天的JAVA学习,也刚好是程序员节.今天学习了JAVA的一些历史和基础环境的配置,以及HelloWorld入门程序. JAVA体系:JAVAME(一些简单的移动端开发).JAVAEE( ...
- linux指令记录
sudo mount /dev/sda3 data 挂载硬盘到当前目录下的data文件夹
- java读取properties配置文件总结
java读取properties配置文件总结 在日常项目开发和学习中,我们不免会经常用到.propeties配置文件,例如数据库c3p0连接池的配置等.而我们经常读取配置文件的方法有以下两种: (1) ...
- Unity4升级Unity5后Image Effects问题
Assets\Editor\Image Effects\CameraMotionBlurEditor.js 会出现Ambiguous reference 'preview'错误提示,解决方法 查找pr ...
- C#匿名函数的坑
在for循环中catch索引 for (int i = 0; i < n; i++) { foo(() =>{ if (i == x) //这里的i始终都是最后一个... { //bala ...