Linux终端类型的详解

unix是一个多用户多任务的操作系统。早期电脑昂贵,所以当时使用便宜的设备连接到电脑上(当时还没有键盘和显示器,使用纸带和卡片来输入输出)来使用操作系统,这个便宜的设备就是终端,也可以认为终端是一种控制台。所以可以认为电脑本身是console终端,便宜的连接设备是物理终端pty。

Linux是类unix系统,所以也继承了终端的特性。但是后来电脑逐渐便宜,也出现了显示器和键盘,所以可以使用键盘当作输入终端,显示器当作输出终端,这些终端就是虚拟终端,虚拟终端其实就是虚拟控制台,或者说是一个虚拟设备。

Linux提供了很多种虚拟终端,使用ttyN表示,使用Ctrl+Alt+F[1-6]可以进行虚拟终端的切换,这些终端设备记录在/dev/目录下。

[root@xuexi ~]# ls /dev/ttytty    tty12  tty17  tty21  tty26  tty30  tty35  tty4   tty44  tty49  tty53  tty58  tty62  ttyS0 tty0   tty13  tty18  tty22  tty27  tty31  tty36  tty40  tty45  tty5   tty54  tty59  tty63  ttyS1 tty1   tty14  tty19  tty23  tty28  tty32  tty37  tty41  tty46  tty50  tty55  tty6   tty7   ttyS2 tty10  tty15  tty2   tty24  tty29  tty33  tty38  tty42  tty47  tty51  tty56  tty60  tty8   ttyS3 tty11  tty16  tty20  tty25  tty3   tty34  tty39  tty43  tty48  tty52  tty57  tty61  tty9

tty加上数值的就是虚拟终端,CTRL+ALT+F1表示切换到tty1终端,ctrl+alt+f2表示切换到tty2终端,一般Linux上只提供了ctrl+alt+f[1-6]这6个终端之间切换的功能。两个特殊的终端是tty和tty0,tty表示当前正在使用的终端,tty0表示当前已被激活的所有虚拟终端。还有ttySN,这些表示串行终端。

还有从ssh或telnet等从网络连接到电脑上的终端,或者从图形虚拟终端打开的命令行终端,都称为伪终端,使用pts/N表示,对应的设备为/dev/pts目录下的数值N文件。

[root@xuexi ~]# ls /dev/pts/0     ptmx

0表示第一个伪终端,1表示第二个伪终端。

伪终端和其它所有终端的管理方式都不一样,它是通过连接电脑的程序管理的,例如ssh连接则由ssh负责申请伪终端资源,并要求输入用户名和密码。如果ssh连接进程被杀,则此伪终端也相应的退出。

另外,有些身份验证的程序并非一定会为连接从程序分配终端,例如执行sudo ssh时,sudo就不一定会为ssh分配伪终端。

在现代Linux上,console终端已经和原始的意义不太一样了,其设备映射在/dev/console上,所有内核输出的信息都输出到console终端,而其他用户程序输出的信息则输出到虚拟终端或伪终端。

总结下:

/dev/console:控制台终端

/dev/ttyN:虚拟终端,ctrl+alt+f[1-6]切换的就是虚拟终端

/dev/ttySN:串行终端

/dev/pts/N:伪终端,ssh等工具连接过去的活着图形终端下开启的命令行终端就是伪终端。

 

以上就是Linux终端类型的详解的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/288367.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
三翼鸟以场景品牌再登“中国500最具价值品牌”榜
上一篇 2026年10月20日 09:17:28
基于社区支持最强大的PHP框架
下一篇 2025年11月9日 18:28:37

相关推荐

  • Linux中FTP服务器的搭建步骤

    Linux中FTP服务器的搭建步骤Linux中FTP服务器的搭建步骤Linux中FTP服务器的搭建步骤Linux中FTP服务器的搭建步骤

    vmware12上安装的centos6.8,最终实现物理机上的windows10能正常访问centos上的ftp服务器。 一、查看是否安装有ftp相关的安装包。 # rpm -qa | grep vsftpd        //ftp的安装包就是vsftpd 查看到我的系统中没有安装相关的包,所以先…

    2026年10月20日 • 用户投稿
    000
  • 分享linux中可用更新源

    Kali 2.0更新源kali-rolling:#中科大deb  kali-rolling main non-free contribdeb-src  kali-rolling main non-free contrib #阿里云#deb  kali-rolling main non-free co…

    用户投稿 2026年10月20日
    000
  • 在VSCode中配置Kotlin开发环境

    在VSCode中配置Kotlin开发环境在VSCode中配置Kotlin开发环境在VSCode中配置Kotlin开发环境在VSCode中配置Kotlin开发环境

    首先安装JDK和Kotlin编译器,再在VSCode中安装Kotlin Language Support等扩展,然后配置tasks.json实现编译运行任务,最后可选集成Gradle构建工具,从而完成Kotlin开发环境的搭建。 要在VSCode中配置Kotlin开发环境,关键在于安装合适的插件和配…

    2026年10月20日 • 用户投稿
    000
  • linux无锁化的实例详解

    linux支持的哪些操作是具有原子特性的?知道这些东西是理解和设计无锁化编程算法的基础。 下面的东西整理自网络。先感谢大家的分享! sync_fetch_and_add系列的命令,发现这个系列命令讲的最好的一篇文章,英文好的同学可以直接去看原文。Multithreaded simple data t…

    2026年10月20日
    100
  • linux可用更新源

    Kali 2.0更新源kali-rolling:#中科大deb  kali-rolling main non-free contribdeb-src  kali-rolling main non-free contrib #阿里云#deb  kali-rolling main non-free co…

    用户投稿 2026年10月20日
    200
  • (一)在Linux上安装和编译OpenCV3.0.0

    (一)在Linux上安装和编译OpenCV3.0.0(一)在Linux上安装和编译OpenCV3.0.0(一)在Linux上安装和编译OpenCV3.0.0(一)在Linux上安装和编译OpenCV3.0.0

        opencv的全称是:open source computer vision library。opencv是一个基于(开源)发行的跨平台计算机视觉库,可以运行在linux、windows和mac os操作系统上。它轻量级而且高效——由一系列c函数和少量c++ 类构成,同时提供了python、…

    2026年10月20日 • 用户投稿
    100
  • 在VSCode中配置Swift开发环境

    在VSCode中配置Swift开发环境在VSCode中配置Swift开发环境在VSCode中配置Swift开发环境在VSCode中配置Swift开发环境

    首先安装 Swift 工具链并验证版本,接着安装 sourcekit-lsp 语言服务器,然后在 VSCode 中安装 Swift 插件并配置 sourcekit-lsp 路径,最后通过 Swift Package Manager 创建项目并配置调试支持,即可实现完整开发功能。 要在 VSCode …

    2026年10月20日 • 用户投稿
    100
  • Windows安装时选择哪个分区作为系统盘

    Windows安装时选择哪个分区作为系统盘Windows安装时选择哪个分区作为系统盘Windows安装时选择哪个分区作为系统盘Windows安装时选择哪个分区作为系统盘

    选择系统盘需根据硬盘配置和需求决定:单硬盘时选主分区并分配足够空间;多硬盘优先选SSD;双系统则选空闲分区;注意分区格式与数据备份。 在安装Windows操作系统时,选择哪个分区作为系统盘取决于你的硬盘配置、使用需求以及是否已有其他系统存在。以下是几种常见情况和建议: 1. 单硬盘新装系统 如果你的…

    2026年10月20日 • 用户投稿
    100
  • [20170705]理解linux su命令.txt

    [20170705]理解linux su命令.txt –//我一般在维护时经常使用root用户登录,然后su – oracle 转到其他用户操作–//一般都加入 – 参数.这个已经成了条件反射…^_^. # man su       cha…

    2026年10月20日
    200
  • OneDrive如何在Linux上使用_OneDrive在Linux系统配置方法

    OneDrive如何在Linux上使用_OneDrive在Linux系统配置方法OneDrive如何在Linux上使用_OneDrive在Linux系统配置方法OneDrive如何在Linux上使用_OneDrive在Linux系统配置方法OneDrive如何在Linux上使用_OneDrive在Linux系统配置方法

    答案:通过PPA或Snap安装OneDrive客户端,在Ubuntu 24.04上配置账户授权、同步目录及忽略规则,并启用systemd用户服务实现后台自动同步。 如果您希望在Linux系统中同步和管理OneDrive云端文件,但系统原生不支持OneDrive客户端,则可以通过开源工具实现完整的同步…

    2026年10月20日 • 用户投稿
    100
  • Linux上有哪些命令行快捷键

    Ctrl+a:光标移到行首。 Ctrl+e:光标移到行尾。 Ctrl+l:清除终端。该快捷操作与在命令行键入clear作用相同。 Ctrl+d:删除光标后一个字符; Ctrl+u:清除当前行。假如在命令行下工作,使用这一快捷操作可以清除从光标处到行首的字符。 Ctrl+Alt+功能键之一会显示一个新…

    用户投稿 2026年10月20日
    200
  • 如何在Linux中使用update-alternatives管理JDK

    如何在Linux中使用update-alternatives管理JDK如何在Linux中使用update-alternatives管理JDK如何在Linux中使用update-alternatives管理JDK如何在Linux中使用update-alternatives管理JDK

    使用update-alternatives可管理多JDK版本,1.查看配置状态,2.添加JDK路径并设置优先级,3.交互式切换版本,4.验证java -version,实现灵活切换。 在Linux系统中,当需要在同一台机器上安装多个JDK版本并灵活切换时,update-alternatives 是一…

    2026年10月20日 • 用户投稿
    100
  • 使用VSCode内置终端提升开发效率

    使用VSCode内置终端提升开发效率使用VSCode内置终端提升开发效率使用VSCode内置终端提升开发效率使用VSCode内置终端提升开发效率

    VSCode内置终端整合命令行,提升开发效率。1. 用Ctrl+快速开关终端,Ctrl+Shift+新建实例,Ctrl+方向键切换标签;2. 在设置中配置默认shell,支持PowerShell、bash、zsh、cmd及WSL;3. 通过分屏功能并行运行多个命令,如左侧启动服务右侧执行构建;4. …

    2026年10月20日 • 用户投稿
    200
  • 怎么看 linux 是否安装了 mysql

    怎么看 linux 是否安装了 mysql怎么看 linux 是否安装了 mysql怎么看 linux 是否安装了 mysql怎么看 linux 是否安装了 mysql

    查看linux是否安装mysql的方法:1、打开终端命令窗口;2、执行命令“service mysqld start”或者“chkconfig –list mysqld”命令即可。 本文操作环境:linux5.9.8系统、mysql5.5、DELL G3电脑 怎么看 linux 是否安装…

    2026年10月20日 • 用户投稿
    300
  • linux的相关命令介绍

            最近都在和linux打交道,这方面基础比较薄弱的我只好买了本鸟哥的书看看,感觉还不错。我觉得linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人喜欢linux的原因,比较短小但却功能强大。为了方便大家查找linux的相关命令,我就将我了解到的命令列举…

    2026年10月20日
    100
  • 在Java中如何使用命令行运行Java程序_Java命令行开发方法分享

    在Java中如何使用命令行运行Java程序_Java命令行开发方法分享在Java中如何使用命令行运行Java程序_Java命令行开发方法分享在Java中如何使用命令行运行Java程序_Java命令行开发方法分享在Java中如何使用命令行运行Java程序_Java命令行开发方法分享

    首先编译Java源文件生成class文件,再通过java命令运行;若含包结构需按目录存放并使用完整类名执行;可传递参数给main方法,并用-cp指定类路径加载外部依赖。 在Java中使用命令行运行程序是开发中的基础技能,尤其适用于学习、调试和轻量级项目。掌握命令行操作能帮助你更深入理解Java编译与…

    2026年10月20日 • 用户投稿
    000
  • LINUX怎么使用tcpdump抓取网络包_Linux Tcpdump抓取网络包方法

    LINUX怎么使用tcpdump抓取网络包_Linux Tcpdump抓取网络包方法LINUX怎么使用tcpdump抓取网络包_Linux Tcpdump抓取网络包方法LINUX怎么使用tcpdump抓取网络包_Linux Tcpdump抓取网络包方法LINUX怎么使用tcpdump抓取网络包_Linux Tcpdump抓取网络包方法

    tcpdump是Linux下强大的命令行抓包工具,可用于分析网络通信问题。首先通过sudo apt install tcpdump安装,使用tcpdump -i any -D查看可用接口。基本抓包命令为sudo tcpdump -i eth0,可实时显示数据包信息,按Ctrl+C停止并生成统计。为避…

    2026年10月20日 • 用户投稿
    100
  • 在VSCode中配置Rust开发环境

    在VSCode中配置Rust开发环境在VSCode中配置Rust开发环境在VSCode中配置Rust开发环境在VSCode中配置Rust开发环境

    首先安装Rust工具链并配置VSCode插件。Windows用户下载rustup-init.exe,macOS/Linux用户用curl命令安装,完成后验证rustc和cargo版本;接着在VSCode中安装Rust Analyzer、CodeLLDB等插件;然后用cargo new创建项目,在VS…

    2026年10月20日 • 用户投稿
    000
  • 视频发布:十、部署(下) Linux与Azure

    %ign%ignore_a_1%re_a_1%tps://www.bilibili.com/video/av58096866/?p=10 以上就是视频发布:十、部署(下) Linux与Azure的详细内容,更多请关注创想鸟其它相关文章!

    2026年10月20日
    000
  • 如何在VSCode中配置PHP开发环境

    如何在VSCode中配置PHP开发环境如何在VSCode中配置PHP开发环境如何在VSCode中配置PHP开发环境如何在VSCode中配置PHP开发环境

    首先安装PHP并配置系统路径,确保php -v可执行;接着在VSCode中安装PHP Intelephense、PHP Debug等插件;然后配置Xdebug扩展,修改php.ini启用调试功能;最后设置launch.json并使用php -S启动内置服务器进行调试。 要在VSCode中配置PHP开…

    2026年10月20日 • 用户投稿
    100

发表回复

登录后才能评论
关注微信