Linux操作系统----终端设备和进程

终端设备

  • 终端是一种字符型设备,通常使用tty来简称各种类型的终端设备,tty是Teletype的缩写。
  • 在Linux系统中,终端设备非常重要,没有终端设备,系统将无法向用户反馈信息。
  • 中包含3类终端设备:
    • 控制台
    • 串口
    • 伪终端

1 控制台 /dev/ttyn

  • /dev/ttyn是进程虚拟控制台,共享同一个真实的物理控制台。在PC上,用户可以使用ctrl+alt+Fn切换控制台,看起来感觉存在多个屏幕,虚拟控制台对应tty1~n,其中 :
  • /dev/tty1等代表第一个虚拟控制台
  • 当使用CTRL+ALT+F2进行切换时,系统的虚拟控制台为/dev/tty2
  • 比较特殊的是/dev/tty0,代表当前虚拟控制台,不管当前正在使用哪个虚拟控制台系统信息都会发送到/dev/tty0上。只有系统或超级用户root可以向/dev/tty0进行写操作。tty0是系统自动打开的,但不用于用户登录

2. 伪终端pty(pseudo-tty)

伪终端(Pseudo Terminal)是终端的发展,为满足现在需求(比如网络登陆)。它是成对出现的逻辑终端设备(即master和slave设备, 对master的操作会反映到slave上)。

  • 它多用于模拟终端程序,是远程登陆(telnet、ssh、xterm等)后创建的控制台设备。

3. 串口终端

串行端口终端(Serial Port Terminal)是使用计算机串行端口连接的终端设备。计算机把每
个串行端口都看作是一个字符设备。

例如:echo tekkaman> /dev/ttyS1会把“tekkaman”发送到连接在ttyS1(COM2)端口的设备上。

进程 process

  • Linux下所有命令与你能够执行的操作都与权限有关,不同用户身份执行程序时,系统赋予的权限也不相同。系统如何判断你的权限呢?(UID&GID)
    在这里插入图片描述

进程与程序之间的差异

在这里插入图片描述

进程与程序

  • 如何产生一个进程? 【执行一个程序或命令】就可以触发一个事件获得一个PID。
  • 触发后加载到内存中成为一个进程。为了让OS可以管理这个进程,进程会给予执行者权限/属性等参数,以及进程所需要的脚本和数据。
  • 进程:正在运行中的程序;Linux中触发任何一个事件时,系统都会将它定义为一个进程,并给予这个进程一个ID,即PID,同时根据触发这个进程的用户与相关属性关系,给予这个PID一组有效的权限设置。

子进程和父进程

  • 当我们登陆系统之后,获取一个bash的shell。用这个bash提供的接口去执行另一个命令,如再次触发bash等,另外执行的命令被触发成PID,子进程。原本的bash环境称为父进程。
    在这里插入图片描述

进程类型

*针对用户进程,又可以分为交互进程、批处理进程和守护进程三类。

  • (1) 交互进程:由一个shell终端启动的进程,在执行过程中,需要与用户进行交互操作,可以运行于前台,也可以运行在后台。
  • (2) 批处理进程:该进程是一个进程集合,负责按顺序启动其他的进程。
  • (3) 守护进程:守护进程是一直运行的一种进程,经常在linux系统启动时启动,在系统关闭时终止。它们独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。例如httpd进程,一直处于运行状态,等待用户的访问。还有经常用的crond进程,这个进程类似与windows的计划任务,可以周期性的执行用户设定的某些任务。

进程管理

  1. ps 查看进程
  2. ps aux查看系统所有进程
  3. top 动态查看进程的变化
  4. pstree 查看进程树
  5. kill 杀死进程
  6. nice renice 调整进程优先级

在这里插入图片描述

任务管理 Job Control

  • Linux任务管理在bash环境下,在单一终端下同时执行多个任务。执行任务管理操作中,每个任务都是目前bash的子进程,即彼此之间是有相关性的,因此无法用任务管理的方式由tty1的环境去管理tty2的bash。

  • 前台:可以控制和执行命令

  • 后台: 可以自动执行的任务,无法用[ctrl]-c终止

任务管理命令

    1. & 直接将命令丢到后台执行
      [root@wxhost~]# tar –zpcf /tmp/etc.tar.gz /etc &
      [1] 14432 <==[job number] PID
    1. [ctrl]-z
      [root@wxhost~]#vi ~/.bashrc
      [1]+Stopped ~/.bashrc
      [root@wxhost~]#find / -print
      [2]+Stopped find / -print
    1. jobs 查看目前的任务状态
      [root@wxhost~]#jobs -l
      [1]- 14566 Stopped ~/.bashrc
      [2]+14567 Stopped find / -print
    1. fg 将后台任务拿到前台
      [root@wxhost~]#fg %1
    1. bg 让任务在后台下的状态变为运行
      [root@wxhost~]#bg %2;jobs
      [2] Running find / -print &
    1. kill 结束一个任务 [root@wxhost~]#kill %2 ;jobs
      [2] Killed find / -print
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

醉卧考场君莫笑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值