linux与shell介绍 - 进程与线程
linux
linux与windows的区别
linux的文件结构
Linux基本命令
- ls: 列出目录
- cd: 切换目录
- pwd: 显示当前目录
- mkdir: 创建一个新的目录
- rmdir: 删除一个空的目录
- rmdir -r: 删除目录及目录下所有子文件
- rmdir -rf: 强制删除目录及目录下所有子文件
- cp: 复制文件或目录
- rm: 移除文件或目录
- mv: 移动文件与目录,或者修改文件与目录的名称
shell基础
shell是与linux交互的桥梁,shell是比较底层的一个工具,可以与linux内核进行交互
常见的shell
- bourne Shell(/user/bin/sh或/bin/sh)
- Bourne Ahaim Shell(/bin/bash) --->最常用、免费、功能强大
- C Shell(/user/bin/csh)
- K Shell(user/bin/ksh)
- Shell for Root(/sbin/sh)
运行shell
- chmod +x ./test.sh #给与脚本具有执行的权限
- 运行方法1>>>./test.sh # 执行脚本
- 使用 ./ 运行shell,它会自动识别是使用哪一种shell
- 运行方法2>>>/bin/sh test.sh #指定shell运行,脚本中的第一行就会失效
linux进程与线程
进程
- 可执行程序的运行态
- 当linux文件(可执行程序、shell脚本)被系统调度、即,你去运行它的时候,操作系统会解析这个文件并判断文件中的指令通过内存、cpu去进行调度和运行,这就是一个可执行程序的运行态,此时它就从一个静态的文件变成一个动态化的进程
- 操作系统调度的基本单位
- 进程可以从文件中提取出所需要的数据、指令,数据放到内存、cpu去调度指令,然后指令再去操纵内存中的数据,从而完成复杂的数据处理
- 线程容器
- 一个进程,它最底层的单元是线程,cpu在去调度的时候,调度的是其中的一个线程,所以,进程的本身是一个线程的容器,它包含线程,同时也包含线程之外的一些指令和数据
- 进程本身包含指令、数据等资源
- 进程由内核去生成、进程包含代码、指令、数据、堆栈等,内核会对进程对象进行调度维护
线程
- 进程中被执行的最小单元
- cpu调度的基本单位
- 线程带有指令、数据等资源
进程的生命周期
- created: 当执行一个脚本、程序的时候 (./demo.py)内核会调度demo.py文件,创建进程,操作系统会维护这些进程的状态
- ready:当进程被创建之后,就会进入ready状态,即可以被cpu进行调度,此时,当cpu空闲出来或者跑完其他指令,就会运行demo.py,大部分cpu都基于分片运行,根据给与的指令进行不断的运行,它是并发来进行执行的
- running:从ready到running中,有一个状态切换,比如在运行的过程中需要等待磁盘、或者遇到外部指令强行被终止,此时会重新回到ready,或者进入waiting的状态
- waiting: 当进程进入到waiting状态的时候,直到满足条件之后,才会重新再进入ready状态
- terminated: 当给与一些指令之后,比如kill进程,就会进入正常的一个状态,terminated
常见进程管理命令
-
ps: 进程列表快照
-
列出当前所有进程快照
-
unix风格参数:ps -ef | less 找到当前所有进程列表
-
bsd风格参数: ps aux |less 比 -ef更详细
-
ps au -m :能显示进程的线程数
-
-
gnu风格参数: ps --pid pidlist
-
ps -o :自定义输出指标
- ps -o pid,ppid,psr,thcount,tid,cmd -M
- ps -o pid,ppid,psr,thcount,tid,cmd -M
-
-
top: 交互式进程观察
- 可以查看当前进程状态
-
kill: 结束进程
- 结束进程
-
fg: 进程切换到前台
- 前台进程:当进程具有交互界面
-
bg: 进程切换到后台
- 后台进程:脱离桌面,但还处于执行状态
-
ctrl z 挂起进程
|
|
|
|
ps:
下一篇:linux常用命令之文件处理
本文来自博客园,作者:稀饭配菜根,转载请注明原文链接:https://www.cnblogs.com/zwnong/p/15786361.html