【python web开发知识点整理5】- Linux基础

【python web开发知识点整理1】- Python基础
【python web开发知识点整理2】- Python Web基础
【python web开发知识点整理3】- 容器基础
【python web开发知识点整理4】- 数据库基础
【python web开发知识点整理5】- Linux基础
【python web开发知识点整理6】- 设计模式

5. Linux基础

5.1. 利用 ps 怎么显示所有的进程? 怎么利用 ps 查看指定进程的信息?

  1. ps -ef (system v 输出)
  2. ps -aux bsd 格式输出
  3. ps -ef | grep pid

5.2. 哪个命令专门用来查看后台任务?

job -l

5.3. 查看文件内容有哪些命令可以使用?

  1. vi 文件名 #编辑方式查看,可修改
  2. cat 文件名 #显示全部文件内容
  3. more 文件名 #分页显示文件内容
  4. less 文件名 #与 more 相似,更好的是可以往前翻页
  5. tail 文件名 #仅查看尾部,还可以指定行数
  6. head 文件名 #仅查看头部,还可以指定行数

5.4. 目录创建用什么命令?创建文件用什么命令?复制文件用什么命令?

  1. 创建目录: mkdir
  2. 创建文件:典型的如 touch,vi 也可以创建文件,其实只要向一个不存在的文件输出,都会创建文件
  3. 复制文件: cp 7. 文件权限修改用什么命令?格式是怎么样的?
  4. 文件权限修改: chmod

5.5. 建立软链接(快捷方式),以及硬链接的命令。

  1. 软链接: ln -s slink source
  2. 硬链接: ln link source

5.6. Ls 命令执行什么功能? 可以带哪些参数,有什么区别?

  1. ls 执行的功能: 列出指定目录中的目录,以及文件
  2. 哪些参数以及区别: a 所有文件l 详细信息,包括大小字节数,可读可写可执行的权限等

5.7. 怎么清屏?怎么退出当前命令?怎么执行睡眠?怎么查看当前用户 id?查看指定帮助用什么命令?

  1. 清屏: clear
  2. 退出当前命令: ctrl+c 彻底退出
  3. 执行睡眠 : ctrl+z 挂起当前进程fg 恢复后台
  4. 查看当前用户 id: ”id“:查看显示目前登陆账户的 uid 和 gid 及所属分组及用户名
  5. 查看指定帮助: 如 man adduser 这个很全 而且有例子; adduser --help 这个告诉你一些常用参数; info adduesr;

5.8. 怎么查看当前进程?怎么执行退出?怎么查看当前路径?

  1. 查看当前进程: ps
  2. 执行退出: exit
  3. 查看当前路径: pwd

5.9. 解释下孤儿进程和僵尸进程?

5.9.1 僵尸进程

即子进程先于父进程退出后,子进程的PCB需要其父进程释放,但是父进程并没有释放子进程的PCB,这样的子进程就称为僵尸进程,僵尸进程实际上是一个已经死掉的进程。
一个进程在调用exit命令结束自己的生命的时候,其实它并没有真正的被销毁,而是留下一个称为僵尸进程(Zombie)的数据结构(系统调用exit,它的作用是使进程退出,但也仅仅限于将一个正常的进程变成一个僵尸进程,并不能将其完全销毁)。在Linux进程的状态中,僵尸进程是非常特殊的一种,它已经放弃了几乎所有内存空间,没有任何可执行代码,也不能被调度,仅仅在进程列表中保留一个位置,记载该进程的退出状态等信息供其他进程收集,除此之外,僵尸进程不再占有任何内存空间。这个僵尸进程需要它的父进程来为它收尸,如果他的父进程没有处理这个僵尸进程的措施,那么它就一直保持僵尸状态,如果这时父进程结束了,那么init进程自动会接手这个子进程,为它收尸,它还是能被清除的。但是如果如果父进程是一个循环,不会结束,那么子进程就会一直保持僵尸状态,这就是为什么系统中有时会有很多的僵尸进程。

5.9.2 孤儿进程

一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。
子进程死亡需要父进程来处理,那么意味着正常的进程应该是子进程先于父进程死亡。当父进程先于子进程死亡时,子进程死亡时没父进程处理,这个死亡的子进程就是孤儿进程。
但孤儿进程与僵尸进程不同的是,由于父进程已经死亡,系统会帮助父进程回收处理孤儿进程。所以孤儿进程实际上是不占用资源的,因为它终究是被系统回收了。不会像僵尸进程那样占用ID,损害运行系统。

5.9.3 僵尸进程处理方式

任何一个子进程(init除外)在exit()之后,并非马上就消失掉,而是留下一个称为僵尸进程(Zombie)的数据结构,等待父进程处理。这是每个子进程在结束时都要经过的阶段。如果子进程在exit()之后,父进程没有来得及处理,这时用ps命令就能看到子进程的状态是“defunct”。如果父进程能及时处理,可能用ps命令就来不及看到子进程的僵尸状态,但这并不等于子进程不经过僵尸状态。如果父进程在子进程结束之前退出,则子进程将由init接管。init将会以父进程的身份对僵尸状态的子进程进行处理。所以孤儿进程不会占资源,僵尸进程会占用资源危害系统。我们应当避免僵尸进程的出现。

发布了86 篇原创文章 · 获赞 251 · 访问量 32万+

猜你喜欢

转载自blog.csdn.net/qq_23934063/article/details/104563642