鸟哥的Linux私房菜基础学习篇--进程(process)一 归纳总结
权限!权限!权限!
没有权限,一些资源你是没办法使用的。在Linux中cat filename,结果屏幕显示了filename的内容,为什么你能看见,而我不能?权限。与UID/GID有关,与文件的属性有关,同时与process进程也有关。
在Linux上敲一个命令,实质上是一些二进制文件在执行,也可以说是程序,而二进制文件在运行时,都会产生一个进程,操作系统就是通过进程来管理访问资源,达到效果。
1、进程是如何产生的?有哪些关键要素?
在用户cat命令时,触发事件,则将硬盘内的cat二进制文件加载到内存,同时将用户权限属性参数(如UID/GID)加载到内存,将用户需要打开的文件filename数据加载到内存(这里不知道是不是理解有误),这时候还会产生唯一pid(process ID),到这里一个进程概括的要素就齐全了,然后操作系统根据pid来实现资源访问,这里又涉及UID、GID、EUID、EGID。。。

2、子进程与父进程
进程A在执行某项任务时(快递),基本都会衍生出来另一个进程B,进程A让它衍生出来的进程B来处理搬运任务,然后进程A再衍生一个进程C来出来分拣任务。。。。这里的B和C都是衍生出来的进程,成为子进程,而A就是它们的父进程
那么这之间的父进程产生子进程的一个部分过程(fork-and-exec过程调用)是这样:
进程会通过父进程以复制(fork)的方式产生一个一模一样的子进程(暂存进程),暂存进程与父进程的区别就是PID不同,同时会多个PPID参数(父进程PID),然后暂存进程开始以exec的方式加载实际要执行的程序。

到这里返回来推理,用户test login Linux会获取一个bash,也就是一个PID;用户test2 login Linux也会获取一个bash,另一个PID,test在bash运行的命令都是test bash的子进程,同理test2也是一样的,这不就是多用户、多任务(多任务是因为CPU可以处理很多条工作)环境吗
一个案例:
如果我在Linux下以命令行界面登录,在屏幕当中显示错误信息后就挂掉了,动都不能动,该如何是好?这时候你可以随意按alt + F1~F7来切换到其他终端接口,然后以ps aux找到刚才的错误进程,然后杀掉,回到刚才的终端接口,就又恢复了。
3、工作管理(job control)
jobs只能管理当前的bash,无法有tty1的环境管理tty2的bash
1>、 直接将命令丢到后台中“执行”的&

& 直接让cp命令在后台执行,当然这里会很快就终结cp的pid

Done说明上一次命令cp后台执行结束了的反馈。[2] 表示job number工作号码,后面的4465是dd命令的pid,jobs -l可以查看到当前bash后台工作执行的命令

&后台工作时,如果出现stdout以及stderr时,数据依然会反馈到屏幕上,这样会导致屏幕花,所以可以使用重定向将数据流导入到固定的/tmp/log.txt文件中
2>、 将目前的工作丢到后台中“暂停”: ctrl + z
Linux有些命令是交互式命令,无法通过&放入后台,可以通过ctrl + z暂时将交互式命令放入后台暂停,然后在从后台提取到前台来处理。

ctrl + z将vim命令放入后台暂停中
3>、 fg将后台工作拿到前台来出来

这里的1表示job number,指定工作号码为1的工作提取到前台来
4>、 让工作在后台下的状态变成为运行中:bg
bg与fg格式一样, bg %3.。。。。
5>、也可以通过kill将在后台或者前台的命令杀掉
kill -15 pid
END
鸟哥的Linux私房菜基础学习篇--进程(process)一 归纳总结的更多相关文章
- 拒绝从入门到放弃_《鸟哥的 Linux 私房菜 — 基础学习篇(第三版)》必读目录
目录 目录 前言 关于这本书 必看知识点 最后 前言 相信部分刚进入这个行业的新同学会对一个问题感到疑惑,为什么从培训学校出来的学员不被欢迎? 这里记录下一些我个人的看法(博主也曾有面试新员工的经历) ...
- 每周一书-《鸟哥的Linux私房菜基础学习篇(第四版)》台湾原版,你想要吗?
首先说明,本周活动有效时间为2016年10月19日到2016年10月31日. 目在介绍这本书之前,首先要感谢QQ号为:1084830483(路在远方),来自哈尔滨工程大学的同学赠送给玄魂工作室的 ...
- 【Linux】鸟哥的Linux私房菜基础学习篇整理(一)
最近,一直在写PPC的模拟器和汇编器,也在做设计.所以重新看了看<鸟哥的Linux私房菜>,还是有好多命令不太熟悉.就打算写几篇blog记下来. 1. nl [-bnw] filename ...
- 《鸟哥的Linux私房菜-基础学习篇(第三版)》(三)
第2章 Linxu怎样学习 1. Linux当前的应用角色 当前的Linux常见的应用可略分为企业应用和个人应用双方面. 首先谈了企业环境的利用. 1)网络server. 2)关键任务 ...
- 鸟哥的Linux私房菜 基础学习篇读书笔记(9):Linux磁盘与文件系统管理(2)
上一篇文章主要从理论上分析了Linux的Ext2文件系统.这一篇主要解说怎样查看Linux的文件系统的容量以及解说Linux文件系统中的连接文件. 能够通过df和du命令来查看磁盘与文件夹的容量.df ...
- 《鸟哥的Linux私房菜-基础学习篇(第三版)》(四)
第3章 主机规划与磁盘分区 1. Linux与硬件的搭配 首先谈了认识计算机的硬件配置. 然后谈了选择与Linux搭配的主机配置. 在Linuxserver中,内存的重要性 ...
- 《鸟哥的Linux私房菜-基础学习篇(第三版)》(六)
第5章 首次登陆与在线求助man page 1. 首次登陆系统 首先谈了首次登陆CentOS 5.x界面.登陆选项中的会话是能够使用不同的图形界面来操作整个Linux系统. ...
- 当时学习《鸟哥的Linux私房菜-基础学习篇》记录的点
1.当执行一个指令的时候,举例来说[ls],系统会依照PATH的设定去每个PATH定义的目录下搜寻文件名为ls的可执行文件,如果在PATH定义的目录中含有多个文件名为ls的可执行文件,那么先搜寻到的同 ...
- 鸟哥的Linux私房菜基础学习篇(第三版)——阅读笔记(二)
第一章 Linux是什么 1.Linux是什么 一套操作系统 早期的Linux是针对386开发的 具有可移植性 2.Unix及Linux的发展史 1973年,Unix诞生,Ritchie等人以C语言写 ...
随机推荐
- Go语言协程并发---条件变量
package main import ( "fmt" "sync" "time" ) func main() { //要监听的变量 bit ...
- 策略模式干掉if-else,switch
1.传统if -else 写法 String nodeModelStr = ""; if (nodeType == NodeType.START){ StartModel star ...
- VTA硬件
VTA硬件 提供了VTA硬件设计的自上而下的概述.本硬件设计涵盖两个级别的VTA硬件: VTA设计及其ISA硬件-软件接口的体系结构概述. VTA硬件模块的微体系结构概述以及计算核心的微代码规范. V ...
- ARM-CPU卷积网络的自动调谐
ARM-CPU卷积网络的自动调谐 为特定的ARM设备自动调谐对于获得最佳性能至关重要.这是一个关于如何调整整个卷积网络的资料. 以模板的形式编写了TVM中ARM CPU的操作实现.模板有许多可调旋钮( ...
- 剑指 Offer 04. 二维数组中的查找
链接:https://leetcode-cn.com/problems/er-wei-shu-zu-zhong-de-cha-zhao-lcof/ 标签:数组.双指针.二分 题目 在一个 n * m ...
- 【NX二次开发】Block UI 对象颜色选择器
属性说明 常规 类型 描述 BlockID String 控件ID Enable Logical 是否可操作 Group Logical ...
- 【NX二次开发】开发好几年,还只会用ufusr?其他用户出口函数介绍
用户出口(User Exit)是NX Open 中的一个重要概念.NX在运行过程中某些特定的位置存在规定的出口,当进程执行到这些出口时,NX会自动检查用户是否在此处已定义了指向内部程序位置的环境变量: ...
- 【SQLite】教程07-C/C++上使用SQLite3
1.配置好C/C++项目环境 2.源码 1 #include <iostream> 2 #include <vector> 3 #include <string> ...
- Django基础之模型层(01)
内容概要 查询关键字 MySQL select from where group by having order by distinct limit r ...
- asp.net core 实现 face recognition 使用 tensorflowjs(源代码)
功能描述 上传照片文件名及是系统要识别标签或是照片的名称(人物标识) 提取照片脸部特征值(调用 facemesh模型) 保存特征值添加样本(调用 knnClassifier) 测试上传的图片是否识别正 ...