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常用命令之文件处理
linux与shell介绍 - 进程与线程的更多相关文章
- .Neter玩转Linux系列之四:Linux下shell介绍以及TCP、IP基础
基础篇 .Neter玩转Linux系列之一:初识Linux .Neter玩转Linux系列之二:Linux下的文件目录及文件目录的权限 .Neter玩转Linux系列之三:Linux下的分区讲解 .N ...
- (转)如何在Linux中统计一个进程的线程数
如何在Linux中统计一个进程的线程数 原文:http://os.51cto.com/art/201509/491728.htm 我正在运行一个程序,它在运行时会派生出多个线程.我想知道程序在运行时会 ...
- 如何在 Linux 中统计一个进程的线程数
编译自:http://ask.xmodulo.com/number-of-threads-process-linux.html作者: Dan Nanni原创:LCTT https://linux.cn ...
- 在Linux上显示某个进程的线程的几种方式
方法一:PS 在ps命令中,"-T"选项可以开启线程查看.下面的命令列出了由进程号为的进程创建的所有线程. 1.$ ps -T -p 方法二: Top top命令可以实时显示各个线 ...
- Linux centos7 shell 介绍、 命令历史、命令补全和别名、通配符、输入输出重定向
一.shell介绍 shell脚本是日常Linux系统管理工作中必不可少的,不会shell,就不是一个合格管理员. shell是系统跟计算机硬件交互使用的中间介质,一个系统工具.实际上在shell和计 ...
- 06 Linux下Shell介绍
一.概述 每个人在成功登陆Linux后,系统会出现不同的提示符号,例如$,~,#等,然后你就可以开始输入需要的命令.若命令正确,系统就会依据命令的要求来执行,直到注销系统为止,在登陆到注销期间,输入的 ...
- 如何在Linux中统计一个进程的线程数(转)
方法一: /proc proc 伪文件系统,它驻留在 /proc 目录,这是最简单的方法来查看任何活动进程的线程数. /proc 目录以可读文本文件形式输出,提供现有进程和系统硬件相关的信息如 CPU ...
- 【Linux】程序、进程和线程的区别
程序.进程和线程的区别 程序是一组指令及参数的集合,指令按照既定的逻辑控制计算机运行.进程则是运行着的程序,是操作系统执行的基本单位.线程则是为了节省资源而可以在同一个进程中共享资源的一个执行单位. ...
- Linux下查看某个进程的线程数量(转)
转自:https://www.cnblogs.com/caosiyang/archive/2012/10/15/2724585.html 有些时候需要确实进程内部当前运行着多少线程,那么以下几个方法值 ...
随机推荐
- 2、动态规划接替套路框架——Go语言版
前情提示:Go语言学习者.本文参考https://labuladong.gitee.io/algo,代码自己参考抒写,若有不妥之处,感谢指正 关于golang算法文章,为了便于下载和整理,都已开源放在 ...
- WebRTC音频通话升级为视频通话
我们有时候在音频通话过程中,想要改成视频通话.如果挂断当前通话再重新发起视频通话就会显得比较麻烦. 因此很多app提供了将音频通话升级成视频通话的功能,同时也有将视频通话降为音频通话的功能. 本文演示 ...
- UVA10079 Pizza Cutting 题解
Content 求用 \(n\) 条直线最多能将平面分成多少块区域. 多组输入,以一个负数结束. 数据范围:\(0\leqslant n\leqslant 2.1\times 10^8\). Solu ...
- props 使用场景 及 布局提升
一对一一边写html 一边写css一小块为单位html csscss html整块单位html csscss html react/first-react/src/views/Wk/index.jsx ...
- 【九度OJ】题目1073:杨辉三角形 解题报告
[九度OJ]题目1073:杨辉三角形 解题报告 标签(空格分隔): 九度OJ http://ac.jobdu.com/problem.php?pid=1073 题目描述: 输入n值,使用递归函数,求杨 ...
- D. Puzzles(Codeforces Round #362 (Div. 2))
D. Puzzles Barney lives in country USC (United States of Charzeh). USC has n cities numbered from 1 ...
- Java学到什么程度可以面试工作?
先说结论: 1 大多数公司,对于Java初级开发的要求是,会用Spring Boot+JPA做增删改查 2 所以零基础的Java小白,无需学太多的内容,只要掌握Spring Boot+JPA做增删改 ...
- [linux]ubuntu18.04 屏幕分辨率不适应问题
今天换了新显示器,发现更大的屏幕不适应原有的屏幕分辨率,看起来特别变扭. 在设置处查看最高分辨率仅为1024*748,没有与屏幕相适应的1920*1080(16:9). 解决方式: 1. 终端输入命令 ...
- Java EE数据持久化框架 • 【第4章 MyBatis动态SQL】
全部章节 >>>> 本章目录 4.1 MyBatis动态标签 4.1.1 MyBatis动态标签介绍 4.1.2 < if >标签 4.1.3 update语 ...
- Java程序设计基础笔记 • 【第1章 初识Java】
全部章节 >>>> 本章目录 1.1 程序的概念及Java语言介绍 1.1.1 生活中的程序 1.1.2 计算机程序 1.1.3 算法和流程图 1.1.4 实践练习 1.2 ...