zoukankan      html  css  js  c++  java
  • 渣渣小本求职复习之路每天一博客系列——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.谢谢每个鼓励我的朋友,没有你们,我坚持不到现在。

  • 相关阅读:
    Codevs 2296 仪仗队 2008年省队选拔赛山东
    Codevs 1535 封锁阳光大学
    Codevs 1069 关押罪犯 2010年NOIP全国联赛提高组
    Codevs 1218 疫情控制 2012年NOIP全国联赛提高组
    Codevs 1684 垃圾陷阱
    洛谷 P1108 低价购买
    Vijos P1325桐桐的糖果计划
    Codevs 3289 花匠 2013年NOIP全国联赛提高组
    Codevs 2611 观光旅游(floyed最小环)
    C语言基础之彩色版C语言(内含linux)
  • 原文地址:https://www.cnblogs.com/levenyes/p/3426234.html
Copyright © 2011-2022 走看看