linux 笔记--while循环、函数和进程管理
while:
break:提前退出循环
continue:提前结束循环,而进入下一轮循环
while :; do
********
done (死循环)
函数:function
代码重复使用,结构化,不能单独运行,需要被调用时才可以被使用
1.function 函数名{ 2.function(){
********* *********
} }
return # : 自定义返回值
OS = kernel(内核) + process(进程)
应用程序 --> 进程 --> 多个线程
多个进程只能在一个cpu上切换运行,但是多个线程可以同时在多个cpu核心上同时运行
init:是所有进程的父进程(pstree命令可以查看进程树),init负责生成其他任务的进程
进程优先级关系:0-139
100-139:用户可控制
0-99:内核调整
优先级高的进程:
1.获得更多的cpu运行时间
2.更优先获得运行的机会
nice值:
默认为0,-20--19 与 100-139 相对应,某些进程的默认优先级,普通用户仅能调大自己的进程nice值
PID:每一个进程都有一个ID号,在/proc目录中每一组数都是一个进程,init的进程ID号永远都为1
且进程分两类:跟终端相关的进程 和 跟终端无关的进程
ps:查看进程状态,默认显示跟终端有关的进程,参数格式有两种:
一种是:sysV(罗马数字):参数可以不用-
a 显示跟终端有关的进程
u 显示用户等其他信息
x 显示跟终端无关的进程
另一种是:BSD
一般常用:-elF -ef -eF
ps -o 属性1(pid) 指定查看 ,常用 -axo
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
用户名 id号 cpu使用率 内存使用率 虚拟内存级 常驻内存级 终端 状态 开始时间 运行总时间 命令或可执行的文件
进程状态:D 不可中断的睡眠 R 运行或就绪 S 可中断的睡眠 T 停止 z 僵死的进程
< 高优先级的进程 N 低优先级的进程 + 前台进程组中的进程 l 多线性进程
s 会话进程的首进程
pgrep命令:搜索进程且只显示进程号
pidof命令:指定进程名查id号
top命令:显示当前服务器的各种状态
-d 指定刷新时长 (秒)
-b 翻屏显示
-n # 只显示几屏
top - 21:48:11 up 8:57, 4 users, load average: 0.03, 0.02, 0.00
Tasks: 206 total, 1 running, 205 sleeping, 0 stopped, 0 zombie
Cpu0 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu1 : 0.3%us, 0.3%sy, 0.0%ni, 99.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 1881040k total, 1007900k used, 873140k free, 125956k buffers
Swap: 4095996k total, 0k used, 4095996k free, 438080k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 19356 1524 1216 S 0.0 0.1 0:01.80 init
注:buffers和cached显示的都是物理内存
交互命令:
M 根据驻留内存大小进行排序
P 根据cpu使用百分比进行排序
T 根据累计时间排序
l 是否显示平均负载和启动时间
t 是否显示进程和cpu状态的相关信息
1 显示cpu所有核心的相关信息
m 是否显示是内存的相关信息
c 是否显示完整的命令行信息
q 退出 k 终止某个进程
进程间的通信: 共享内存 信号 stmaphore
进程之间发送信号控制进程:
kill -l 显示所有可用信号
1 SIGHUP 让一个进程不用重启,就可以重读其配置文件,并让新的配置信息生效
2 SIGINT ctrl + c 中断一个进程
9 SIGKILL 杀死一个进程
15 SIGTERM 终止一个进程
指定pid发送信号:
信号号码:kill -15 pid
信号名称:kill -SIGKILL pid
信号名称简写:kill -KILL pid
kill pid :默认为15号信号
killall 进程名:杀死相同进程名
调整nice值:
renice # pid 调整已经启动的进程的nice值
renice -n # command:在启动是指定nice值
前台:占据了命令提示符
后台:启动之后,释放命令提示符后续的操作在后台完成
command & : 在命令执行时&符让命令直接切换到在后台运行
前台-->后台 的切换:ctrl+z 让正在运行的命令转换到后台运行
后台-->前台 的切换:fg # 切换后台任务到前台执行
bg命令让暂停在后台的任务继续执行,若有多个后台任务,则bg #(命令号,可用jobs查看当前的
后台任务,+为bg命令默认将继续操作的任务 -为bg默认第二个执行的任务)
kill %# 结束#任务
vmstat命令:系统状态查看命令
vmstat 1 每隔1秒刷新一次
vmstat 1 5 每隔1秒刷新一次,共刷新5次
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 868724 130380 438112 0 0 7 5 59 231 1 0 98 1 0
procs:r队列长度 b阻塞长度
memory:swpd交换大小 free空闲 buff缓冲 cache缓存
swap:si内存-->交换空间 so交换空间-->内存
io:bi磁盘-->内存 bo内存-->磁盘
system:in中断个数 cs进程上下文切换次数
cpu:us用户空间 sy内存空间 id空闲 wa等待 st被偷走的空间
uptime命令:显示的信息和top的第一行一样
注:
/proc/meminfo 内存信息
/proc/cpuinfo cpu信息
/proc/进程号/maps 该进程在内存中读取的信息
转载于:https://blog.51cto.com/benniaoxianhui/1679219
linux 笔记--while循环、函数和进程管理相关推荐
- Linux内核源码分析《进程管理》
Linux内核源码分析<进程管理> 前言 1. Linux 内核源码分析架构 2. 进程原理分析 2.1 进程基础知识 2.2 Linux进程四要素 2.3 进程描述符 task_stru ...
- 408 知识点笔记——操作系统(绪论、进程管理)
文章目录 1 绪论 2 进程管理 1 绪论 [实时操作系统] 实时的含义是指计算机对于外来信息能够以足够快的速度进行处理,并在被控制对象允许的时间范围内做出快速反应 实时操作系统的主要特点是提供 及时 ...
- 四十二、Linux网络管理,软件安装,进程管理总结
@Author: Runsen 文章目录 1.⽹络管理 1.1 网络状态查看 1.2 网络配置文件 1.3 ⽹络故障排除命令 1.4 ⽹络服务管理 1.5 设置静态ip 2. 软件安装 2.1 rpm ...
- tableau linux无网络安装_四十二、Linux网络管理,软件安装,进程管理总结
「@Author: Runsen」 1.⽹络管理 1.1 网络状态查看 在Linux中经常使用ifconfig,route和netstat查看网络状态,它们就是. net-tools工具,下面我来使用 ...
- Linux实操-网络配置、进程管理、服务管理、动态监控进程、监控网络状态
网络配置 网络配置原理图 查看网络IP和网关 查看虚拟网络编辑器 修改虚拟网卡ip地址 查看网关 linux网络环境配置 第一种方法(自动获取) 第二种方法(指定固定的 ip) 进程管理(重点) 显示 ...
- Linux内核设计与实现:进程管理
1. 关于进程 在linux操作系统中,进程通过fork()函数调用,通过复制一个现有的进程来创建一个新的进程: 调用fork()的叫做父进程,而创建的进程叫子进程,fork()调用从内核返回两次,一 ...
- linux进程的高级管理,sched_yield()函数 高级进程管理
1.让出处理器 Linux提供一个系统调用运行进程主动让出执行权:sched_yield.进程运行的好好的,为什么需要这个函数呢?有一种情况是用户空间线程的锁定.如果一个线程试图取得另一个线程所持有的 ...
- 【SCNU课堂笔记】计划任务、进程管理、Linux启动流程(未完待续)
自己整理的课堂笔记,方便复习.
- 别人的Linux私房菜(17)进程管理与SELinux初探
程序在磁盘中,通过用户的执行触发.触发事件时,加载到内存,系统将它定义成进程,给予进程PID,根据触发的用户和属性,给予PID合适的权限. PID和登陆者的UID/GID有关.父进程衍生出来的进程为子 ...
最新文章
- Delphi解析类似\u97e9这样的Unicode字符串
- python的回溯信息_基于Python的回溯算法
- PSO-LSSVM算法及其MATLAB代码
- java定义基础变量语句_编程语言第一:JAVA语言基础,变量
- 保利管道微服务1_.netcore 3.1高性能微服务架构:webapi规范
- MySQL设置当前时间为默认值的方法
- 蓝点中文_linux2.0 实验二 简单shell命令
- android系统签名
- c#抽取pdf文档标题(1)
- 集体智慧编程Python
- OpenCV-特征提取与检测(03、自定义角点检测器)
- python 电话簿排序
- 七天学会php,十天学会PHP之第六天
- P-6002-10PK,P-6002-2PK脂质研究工具解析
- Windowsmobile 的第一篇 为什么选择windows mobile 的分析
- 文件同步工具GoodSync简介
- 在线旅游OTA行业调研报告-携程美团同程飞猪booking对比分析
- 计算机组装主机怎么拆,【电脑组装知识网】电脑主机组装教程之戴尔显示器底座拆卸教程...
- 不知道如何入门编程?最全在线教程网站汇总来了,还不赶快收藏
- Win11宽带连接错误651怎么解决?
热门文章
- Python: Monitoring a Directory
- [转]linux解压 tar命令
- [歌曲]心愿(by 四个女生)
- 三张图读懂机器学习 :基本概念、五大流派与九种常见算法
- Microsoft SharePoint Server 2016 部署文档(2)
- WCF步步为营(五):数据契约
- Linux下 su命令与su - 命令的区别
- Django error信息邮件通知功能配置部署
- Nginx如何实现支持HTTPS协议详细说明
- 给UIScrollView添加category实现UIScrollView的轮播效果