网站首页 > 文章中心 > 其它

linux中进程切换命令

作者:小编 更新时间:2023-09-22 19:08:47 浏览量:225人看过

Linux 史上最全命令大全

①.、ls命令

linux中进程切换命令-图1

cd /root

ls #显示当前目录下所有的非隐藏文件

ls -a #显示当前目录下所有文件,包含隐藏文件

ls -l #显示当前目录下所有的非隐藏文件的详情

ls -al #显示当前目录下所有文件,包含隐藏文件 的详情

ls -lh #以列表形式显示当前目录下所有的非隐藏文件的大小(K M T)

ls -alh #以列表形式显示所有文件,包含隐藏文件的文件大小(K M T)

常用的组合:

ls

ll #等价于 ls -l

ls /etc #显示/etc目录下的文件

用来显示当前所在的路径

linux中进程切换命令-图2

绝对路径: 从/目录开始的路径

/root

/etc/sysconf

相对路径: 相对当前的路径

mkdir mytest #在当前目录创建文件夹

mkdir /root/mydemo #使用绝对路径来创建

这个命令既可以删除文件,也可以删除目录

删文件:

rm a.txt #删除时,会给出提醒确认,输入y删除,n不删除

rm -f b.txt #强制删除 等价于 rm -f /root/b.txt

touch a.java b.java c.java

rm a.java b.java c.java #一次可以删除多个文件

rm *.java -fr #可以删除当前目录下的所有.java文件

cd dir

rm * -fr #删除当前目录的所有内容

删目录:

rm -r 111 #删除目录,依次提醒删除

rm -rf mytest #强制删除 等价于 rm mytest -fr

常用组合:

rm -fr 文件或目录

cd 命令可以进入一个目录,类似于对windows上的文件夹进行双击

cd #直接cd 可以从任何一个目录回到/root目录

cd /root #进入root目录

cd /opt/server/data-integration/system/

cd .. #回到上一级目录

cd ../.. #回到上上一级目录

cd - #可以在最近的两次目录之间切换

cd dir1

使用上下方向键可以找出历史命令

table键:

cd /opt/ #两次table可以列出/opt目录下所有的文件和子目录

cd /opt/s #一次table可以自动补全目录内容,前提是/opt目录下只有一个s开头的目录

touch a.java #在当前目录创建a.txt文件

touch b.java c.java #创建多个文件

touch /root/d.java #通过绝对路径创建

移动:

①.、mv 文件 目录 #将文件移动到目录中区

cd /root/dir1

touch a.txt

重命名:

mv a.txt aaa.txt #将a.txt 重命名为aaa.txt

mv dir1 dirx #将dir1重命名为dirx

显示文件内容

cat user.txt

①.0、cp命令

复制文件

cp user.txt /opt/ #将当前目录的user.txt 复制到/opt目录,文件名保持不变

cp /opt/server/data-integration/pan.sh ./ #将指定目录里的文件复制到当前目录(.后边的/可以去掉)

cp /opt/server/data-integration/pan.sh ./dirx #将指定目录里的文件复制到当前目录下的dirx目录(.后边的/比可以去掉)

cp /opt/server/data-integration/pan.sh /root/dirx #作用同上

①.1、解压和压缩

Linux的压缩包后缀一般是: .tar.gz

解压:

.tar.gz

将snappy-1.1.1.tar.gz上传到/root/dir1目录

tar -zxvf snappy-1.1.1.tar.gz #默认解压到当前目录

tar -xvf snappy-1.1.1.tar.gz #默认解压到当前目录

tar -xvf snappy-1.1.1.tar.gz -C /opt #将压缩包解压到/opt目录

.zip格式

压缩:

tar -czvf snappy-1.1.1.tar.gz snappy-1.1.1 #将snappy-1.1.1文件夹进行打包压缩

tar -czvf /root/dir/snappy-1.1.1.tar.gz /opt/server/snappy-1.1.1

用来实现文件的查找

find / -name 'a.txt' #从/目录开始查找a.txt文件

find / -name 'ins*' #从/目录开始查找以ins开头的文件

find / -type f -size +100M #查找/目录下文件大小大于100M的文件

grep lang anaconda-ks.cfg #从anaconda-ks.cfg文件中查找包含lang的内容

ps #查看依赖终端的进程

ps -ef #查看Linux系统中所有的进程

管道就是把前边命令的结果作为后边命令的输入

ps -ef | grep mysql #查找和mysql相关的进程

ll /etc | grep java #在/etc目录中查找java相关的文件

用户创建和密码设置

useradd itheima #创建新用户itheima

passwd itheima #设置用户itheima密码

用户删除

userdel -r itheima #删除用户itheima

所属用户: root 文件的创建者

所属用户组: root 和文件创建者在一个组的用户

其他用户: itcast 既不是文件创建者,也和文件创建者不在同一组

r: 可读

w:可写

x: 可执行

chmod命令:

方式1:

chmod u+rw a.txt #在所属用户之前的权限基础上添加可读和可写权限

chmod u=rw a.txt #将所属用户的权限直接修改为可读,可写

chmod +x #给所属用户,所属用户组和其他用户全部加上可执行权限

用来清屏

快捷键: ctrl + l

用来查看所有的历史命令

vi a.txt #打开a.txt文件

vim a.txt #vim是vi的增强

hostname :查看主机名

修改主机名: /etc/hostname

ifconfig :查看ip地址

服务问题:

service network restart

新手必须掌握的linux命令

常见执行Linux命令的格式是这样的:

注意,命令名称、命令参数、命令对象之间请用空格键分隔.

命令对象一般是指要处理的文件、目录、用户等资源,而命令参数可以用长格式(完整的选项名称),也可以用短格式(单个字母的缩写),两者分别用--与-作为前缀.

命令参数的长格式与短格式示例

①..echo命令

①.0.killall命令

如果我们在系统终端中执行一个命令后想立即停止它,可以同时按下Ctrl + C组合键(生产环境中比较常用的一个快捷键),这样将立即终止该命令的进程.

或者,如果有些命令在执行时不断地在屏幕上输出信息,影响到后续命令的输入,则可以在执行命令时在末尾添加上一个符号,这样命令将进入系统后台来执行.

①..ifconfig命令

第三段:工作目录切换命令

①..pwd命令

①..cat命令

第五段:文件目录管理命令

①..touch命令

第六段:打包压缩与搜索命令

①..tar命令

Linux 进程管理之进程调度与切换

我们知道,进程运行需要各种各样的系统资源,如内存、文件、打印机和最

宝贵的 CPU 等,所以说,调度的实质就是资源的分配.系统通过不同的调度算法(Scheduling Algorithm)来实现这种资源的分配.通常来说,选择什么样的调度算法取决于资源分配的策略(Scheduling Policy).

有关调度相关的结构保存在 task_struct 中,如下:

active_mm 是为内核线程而引入的,因为内核线程没有自己的地址空间,为了让内核线程与普通进程具有统一的上下文切换方式,当内核线程进行上下文切换时,让切换进来的线程的 active_mm 指向刚被调度出去的进程的 active_mm(如果进程的mm 域不为空,则其 active_mm 域与 mm 域相同).

在每个 CPU 中都有一个自身的运行队列 rq,每个活动进程只出现在一个运行队列中,在多个 CPU 上同时运行一个进程是不可能的.

运行队列是使用如下结构实现的:

tast 作为调度实体加入到 CPU 中的调度队列中.

系统中所有的运行队列都在 runqueues 数组中,该数组的每个元素分别对应于系统中的一个 CPU.在单处理器系统中,由于只需要一个就绪队列,所以呢数组只有一个元素.

内核也定义了一下便利的宏,其含义很明显.

Linux、c/c++服务器开发篇-------我们来聊聊进程的那些事

Linux内核 进程间通信组件的实现

学习地址:C/C++Linux服务器开发/后台架构师【零声教育】-学习视频教程-腾讯课堂

在分析调度流程之前,我们先来看在什么情况下要执行调度程序,我们把这种情况叫做调度时机.

Linux 调度时机主要有.

时机1,进程要调用 sleep() 或 exit() 等函数进行状态转换,这些函数会主动调用调度程序进行进程调度.

Linux 的调度程序是一个叫 Schedule() 的函数,这个函数来决定是否要进行进程的切换,如果要切换的话,切换到哪个进程等.

进程上下文切换包括进程的地址空间的切换和执行环境的切换.

switch_to 把寄存器中的值比如esp等存放到进程thread结构中,保存现场一边后续恢复,同时调用 __switch_to 完成了堆栈的切换.

在进程的 task_struct 结构中有个重要的成分 thread,它本身是一个数据结构 thread_struct, 里面记录着进程在切换时的(系统空间)堆栈指针,取指令地址(也就是"返回地址")等关键性的信息.

关于__switch_to 的工作就是处理 TSS (任务状态段).

TSS 全称task state segment,是指在操作系统进程管理的过程中,任务(进程)切换时的任务现场信息.

linux 为每一个 CPU 提供一个 TSS 段,并且在 TR 寄存器中保存该段.

linux 中之所以为每一个 CPU 提供一个 TSS 段,而不是为每个进程提供一个TSS 段,主要原因是 TR 寄存器永远指向它,在任务切换的适合不必切换 TR 寄存器,从而减小开销.

在从用户态切换到内核态时,可以通过获取 TSS 段中的 esp0 来获取当前进程的内核栈 栈顶指针,从而可以保存用户态的 cs,esp,eip 等上下文.

TSS 在任务切换过程中起着重要作用,通过它实现任务的挂起和恢复.所谓任务切换是指,挂起当前正在执行的任务,恢复或启动另一任务的执行.

在任务切换过程中,首先,处理器中各寄存器的当前值被自动保存到 TR(任务寄存器)所指定的任务的 TSS 中;然后,下一任务的 TSS 被装入 TR;最后,从 TR 所指定的 TSS 中取出各寄存器的值送到处理器的各寄存器中.由此可见,通过在 TSS 中保存任务现场各寄存器状态的完整映象,实现任务的切换.

所以呢,__switch_to 核心内容就是将 TSS 中的内核空间(0级)堆栈指针换成 next-esp0.这是因为 CPU 在穿越中断门或者陷阱门时要根据新的运行级别从TSS中取得进程在系统空间的堆栈指针.

thread_struct.esp0 指向进程的系统空间堆栈的顶端.当一个进程被调度运行时,内核会将这个变量写入 TSS 的 esp0 字段,表示这个进程进入0级运行时其堆栈的位置.换句话说,进程的 thread_struct 结构中的 esp0 保存着其系统空间堆栈指针.当进程穿过中断门、陷阱门或者调用门进入系统空间时,处理器会从这里恢复期系统空间栈.

由于栈中变量的访问依赖的是段、页、和 esp、ebp 等这些寄存器,所以当段、页、寄存器切换完以后,栈中的变量就可以被访问了.

所以呢 switch_to 完成了进程堆栈的切换,由于被切进的进程各个寄存器的信息已完成切换,所以呢 next 进程得以执行指令运行.

由于 A 进程在调用 switch_to 完成了与 B 进程堆栈的切换,也即是寄存器中的值都是 B 的,所以 A 进程在 switch_to 执行完后,A停止运行,B开始运行,当过一段时间又把 A 进程切进去后,A 开始从switch_to 后面的代码开始执行.

schedule 的调用流程如下:

linux 进程中切换用户

可以使用su命令来切换用户,su是switch user切换用户的缩写.可以是从普通用户切换到root用户,也可以是从root用户切换到普通用户.从普通用户切换到root用户需要输入密码,从root用户切换到普通用户不需要输入密码.

命令格式:su [参数] [-] [用户名]

用户名的默认值为root.

用法示例:

su zhidao #切换到zhidao用户

su #切换到root用户

以上就是土嘎嘎小编为大家整理的linux中进程切换命令相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章