当前位置: 首页 > article >正文

X Window---图形接口

摘抄自 鸟哥的linux私房菜 基础篇 第四版

有鉴于图形用户接口(Graphical User Interface, GUI) 的需求日益加重,在 1984 年由 MIT 与其他第三方首次发表了 X Window System ,并且更在 1988 年成立了非营利性质的 XFree86 这个组织。所谓的XFree86 其实是 X Window System + Free + x86 的整合名称呢。

为什么称图形用户接口为 X 呢?因为由英文单字来看,Window 的 W 接的就是 X 啦!
意指Window 的下一版就是了! 需注意的是,X Window 并不是X Windows 喔!

为了要强化桌面计算机的使用率,Linux 与 X Window System 结合了!要注意的是,X Window 
System 仅只是 Linux 上面的一套软件, 而不是核心喔!所以即使 X Window 挂了,对 Linux 也可能不会有直接的影响呢! 

 Linux 该如何学习

为什么大家老是建议学习Linux 最好能够先舍弃X Window 的环境呢? 这是因为X window 了不起也只是 Linux 内的『一套软件』而不是『Linux 核心』。 此外,目前发展出来的 X-Window 对于系统的管理上还是有无法掌握的地方,举个例子来说,如果 Linux 本身捉不到网络卡的时候,请问如何以 X Window 来捉这个硬件并且驱动他呢? 



Linux 与硬件的搭配 


举例来说,桌面计算机(Desktop)的用户,应该会用到 X Window 系统, 此时,显示适配器的优劣与内存的大小可就占有很重大的影响。

重新启动X Window的快速按钮

一般来说,我们是可以手动来直接修改 X Window 的配置文件的,不过,修改完成之后的设定项目并不会立刻被加载, 必须要重新启动 X 才行(特别注意,不是重新启动,而是重新启动 X!) 。那么如何重新启动 X 呢? 最简单的方法就是:

 直接注销,然后再重新登入即可; 
 在X 的画面中直接按下[Alt] + [Ctrl] + [Backspace] 

       <---第二个方法比较有趣,[backspace]是退格键,你按下三个按钮后 X Window 立刻会被重新启动。 如果你的 X Window 因为不明原因导致有点问题时,也可以利用这个方法来重新启动 X 喔!


 

X window 与文本模式的切换

前面一直谈到的是 X Window 的窗口管理员环境,那么在这里面有没有纯文本接口的环境啊?因
为听说服务器通常是纯文本界面的啊! 当然有啊!但是,要怎么切换 X Window 与文本模式呢?注意喔,通常我们也称文本模式为终端机接口, terminal 或 console 喔!Linux 预设的情况下会提供六个Terminal 来让使用者登入, 切换的方式为使用:[Ctrl] + [Alt] + [F1]~[F6]的组合按钮。   

       那这六个终端接口如何命名呢,系统会将[F1] ~ [F6]命名为 tty1 ~ tty6 的操作接口环境。 也就是说,当你按下[crtl] + [Alt] + [F1]这三个组合按钮时 (按着[ctrl]与[Alt]不放,再按下[F1]功能键), 就会进入到 tty1 的 terminal 界面中了。同样的[F2]就是 tty2 啰!那么如何回到刚刚的 X 窗口接口呢?很简单啊!按下[Ctrl] + [Alt] + [F1]就可以了!我们整理一下登入的环境如下: 

 [Ctrl] + [Alt] + [F2] ~ [F6] :文字接口登入 tty2 ~ tty6 终端机; 
 [Ctrl] + [Alt] + [F1] :图形接口桌面。

由于系统默认的登入界面不同,因此你想要进入 X 的终端机名称也可能会有些许差异。以 CentOS 7 为例,由于我们这次安装的练习机, 默认是启动图形界面的,因此这个 X 窗口将会出现在 tty1 界面中。如果你的 Linux 预设使用纯文本界面,那么 tty1~tty6 就会被文字界面占用。 

在 CentOS 7 环境下,当开机完成之后,默认系统只会提供给你一个 tty 而已,因此
无论是文字界面还是图形界面,都是会出现在 tty1 喔! tty2~tty6 其实一开始是不存在的!但是当你要切换时 (按下 [ctrl]+[alt]+[F2]),系统才产生出额外的 tty2, tty3... 

若你在纯文本环境中启动 X 窗口,那么图形界面就会出现在当时的那个 tty 上面。举例来说,你在 
tty3 登入系统,然后输入 startx 启动个人的图形界面, 那么这个图形界面就会产生在 tty3 上面!

# 纯文本界面下 (不能有 X 存在) 启动窗口界面的作法 

[dmtsai@study ~]$ startx 


不过 startx 这个指令并非万灵丹,你要让 startx 生效至少需要底下这几件事情的配合: 

 并没有其他的 X window 被启用; 
 你必须要已经安装了X Window system,并且 X server 是能够顺利启动的; 
 你最好要有窗口管理员,例如GNOME/KDE 或者是阳春的 TWM 等; 

其实,所谓的窗口环境,就是:『文字界面加上 X 窗口软件』的组合!因此,文字界面是一定会存在的,只是窗口界面软件就看你要不要启动而已。 所以,我们才有办法在纯文本环境下启动一个个人化的 X 窗口啊!因为这个 startx 是任何人都可以执行的喔!并不一定需要管理员身份的。所以,是否默认要使用图形界面,只要在后续管理服务的程序中,将『 graphical.target 』这个目标服务设定为默认,就能够默认使用图形界面啰!

在终端界面登入 linux 

刚刚你如果有按下[Ctrl] + [Alt] + [F2]就可以来到 tty2 的登入画面,而如果你并没有启用图形窗口界面的话, 那么预设就是会来到tty1 这个环境中。这个纯文本环境的登入的画面 (鸟哥用 dmtsai 账号当入) 有点像这样: 
 

以上这句话怎么理解??为什么会来到tty1不是tty2?
-->
而如果你并没有启动图形窗口界面的话,那么预设就是会来到tty1这个环境?

答:因为tty1也是文字界面,就等于整个tty1到tty6都没有启动图形界面,所以说新启动的图形界面位于tty1.

CentOS Linux 7 (Core) 
Kernel 3.10.0-229.el7.x86_64 on an x86_64 study login: dmtsai 
Password: <==这里输入你的密码 
Last login: Fri May 29 11:55:05 on tty1 <==上次登入的情况 
[dmtsai@study ~]$ _ <==光标闪烁,等待你的指令输入 


上面显示的内容是这样的: 
1. CentOS Linux 7 (Core): 
显示Linux distribution 的名称(CentOS)与版本(7); 

2. Kernel 3.10.0-229.el7.x86_64 on an x86_64: 
显示 Linux 核心的版本为3.10.0-229.el7.x86_64, 且目前这部主机的硬件等级为 x86_64。 

3. study login:: 
那个study 是你的主机名。我们在第三章安装时有填写主机名为: study.centos.vbird,主机名的显示通常只取第一个小数点前的字母,所以就成为study 啦!
至于login:则是一支可以让我们登入的程序。你可以在login:后面输入你的账号。以鸟哥为例,我输入的就是第三章建立的 dmtsai 那个账号啦!
 当然啰,你也可以使用root 这个账号来登入的。不过『root』这个账号代表在 Linux 系统下无穷的权力, 所以尽量不要使用root账号来登入啦!  

4. Password:: 
这一行则在第三行的dmtai 输入后才会出现,要你输入密码啰! 请注意,在输入密码的时候,屏幕上面『不会显示任何的字样!』, 所以不要以为你的键盘坏掉去!很多初学者一开始到这里都会拼命的问!啊我的键盘怎么不能用...  

5. Last login: Fri May 29 11:55:05 on tty1: 
当用户登入系统后,系统会列出上一次这个账号登入系统的时间与终端机名称! 建议大家还是得要看看这个信息,是否真的是自己的登入所致喔! 

6. [dmtsai@study ~]$ _: 
这一行则是正确登入之后才显示的讯息, 最左边的 dmtsai 显示的是『目前用户的账号』,而@之后接的 study 则是『主机名』,至于最右边的~则指的是 『目前所在的目录』,那个$则是我们常常讲的『提示字符』啦!

那么如何离开系统呢?其实应该说『注销 Linux』才对!注销很简单,直接这样做: 

[dmtsai@study ~]$ exit 


就能够注销 Linux 了。但是请注意:『离开系统并不是关机!』 基本上,Linux 本身已经有相当多的工作在进行,你的登入也仅是其中的一个『工作』而已, 所以当你离开时,这次这个登入的工作就停止了,但此时 Linux 其他的工作是还是继续在进行的!
 

相关文章:

X Window---图形接口

摘抄自 鸟哥的linux私房菜 基础篇 第四版 有鉴于图形用户接口(Graphical User Interface, GUI) 的需求日益加重&#xff0c;在 1984 年由 MIT 与其他第三方首次发表了 X Window System &#xff0c;并且更在 1988 年成立了非营利性质的 XFree86 这个组织。所谓的XFree86 其实是…...

数据序列化协议 Protobuf 3 介绍(Go 语言)

Protobuf 3 入门 1. 什么是序列化&#xff1f; 1.1 概念 序列化&#xff08;Serialization 或 Marshalling&#xff09; 是指将数据结构或对象的状态转换成可存储或传输的格式。反向操作称为反序列化&#xff08;Deserialization 或 Unmarshalling&#xff09;&#xff0c;它…...

FineReport 操作注意

1.父单元格重复的时候&#xff0c;如何取消合并 效果如下&#xff1a; 只需要在单元格中&#xff0c;将数据设置为【列表】即可。 2.待定...

3D手眼标定转换详细实施步骤及原理概述

3D手眼标定转换详细实施步骤及原理概述 一、手眼标定的核心目标二、3D手眼标定的原理概述一、基本概念与坐标系定义**二、数学建模与方程推导****1. 坐标变换的齐次矩阵表示****2. 手眼标定方程推导** **三、方程求解方法****1. 分离旋转与平移****2. 旋转矩阵求解****3. 平移向…...

Verilog:SCCB控制器

目录 一、SCCB协议 &#xff08;1&#xff09;SCCB时序 &#xff08;2&#xff09;与I2C的区别 二、Verilog 实现 &#xff08;1&#xff09;设计要求 &#xff08;2&#xff09;设计要点 &#xff08;3&#xff09;模块完整代码 三、功能验证 &#xff08;1&#xff09;写…...

维度建模基础篇:从理论到核心组件解析

维度建模基础篇:从理论到核心组件解析 引言 在数据仓库与商业智能(BI)领域,维度建模​(Dimensional Modeling)作为一种经典的数据组织方法论,自Kimball提出以来,已成为构建高效分析型系统的核心范式1,2,3。其以业务需求为导向,通过事实表与维度表的组合,实现对复杂…...

与中国联通技术共建:通过obdiag分析OceanBase DDL中的报错场景

中国联通软件研究院&#xff08;简称联通软研院&#xff09;在全面评估与广泛调研后&#xff0c;在 2021年底决定采用OceanBase 作为基础&#xff0c;自研分布式数据库产品CUDB&#xff08;即China Unicom Database&#xff0c;中国联通数据库&#xff09;。目前&#xff0c;该…...

大数据与网络安全讲座

&#x1f345; 点击文末小卡片 &#xff0c;免费获取网络安全全套资料&#xff0c;资料在手&#xff0c;涨薪更快 大数据的价值为大家公认。业界通常以4个“V”来概括大数据的基本特征——Volume(数据体量巨大)、Variety(数据类型繁多)、Value(价值密度低)、Velocity(处理速度快…...

AtCoder Beginner Contest 395 E

点我写题 题意&#xff1a;给个有向图&#xff0c;从1出发&#xff0c;每次可以走一条有向边&#xff0c;花费为1&#xff0c;也可以选择把全部有向边翻转&#xff0c;花费x&#xff0c;问到n的最小花费 思路&#xff1a;最短路dp&#xff0c;定义dis[i][0/1]表示走到i为止&…...

Linux进程管理6 - CFS调度

0、CFS调度器 CFS调度器使用完全公平调度算法。 完全公平调度算法引入虚拟运行时间的概念:虚拟运行时间 = 实际运行时间 * nice_0_weight / 进程的权重。完全公平调度算法使用红黑树把进程按虚拟运行时间从小到大排序,每次调度选择虚拟运行时间最小的进程。时间片 操作系统进…...

张驰咨询:用六西格玛重构动力电池行业的BOM成本逻辑

在动力电池行业&#xff0c;BOM&#xff08;物料清单&#xff09;成本每降低1%&#xff0c;都可能改写企业的利润曲线。某头部企业的三元锂电池BOM成本曾较行业标杆高出11%&#xff0c;单电芯利润率被压缩至3%的生死线。然而&#xff0c;通过张驰咨询的六西格玛方法论&#xff…...

pyside6学习专栏(九):在PySide6中使用PySide6.QtCharts绘制6种不同的图表的示例代码

PySide6的QtCharts类支持绘制各种型状的图表&#xff0c;如面积区域图、饼状图、折线图、直方图、线条曲线图、离散点图等&#xff0c;下面的代码是采用示例数据绘制这6种图表的示例代码,并可实现动画显示效果&#xff0c;实际使用时参照代码中示例数据的格式将实际数据替换即可…...

SpringBoot获取YAML配置文件中的属性值(二):使用Environment环境组件读取值

Spring Boot 使用 Properties 和 YAML 配置文件文件,系列文章: 《Spring使用@Value注解与@PropertySource注解加载配置文件》 《SpringBoot获取YAML配置文件中的属性值(一):使用@Value注解、@ConfigurationProperties注解》 《SpringBoot获取YAML配置文件中的属性值(二)…...

14天 -- Redis 的持久化机制有哪些?Redis 主从复制的实现原理是什么? Redis 数据过期后的删除策略是什么?

Redis 的持久化机制有哪些&#xff1f; Redis 是一种高性能的键值存储系统&#xff0c;主要用于缓存、消息队列等场景。为了防止数据丢失&#xff0c;Redis 提供了多种持久化机制&#xff0c;主要包括以下两种&#xff1a; 1. RDB&#xff08;Redis Database Backup&#xff…...

《深度学习实战》第10集:联邦学习与隐私保护

第10集&#xff1a;联邦学习与隐私保护 2025年3月4日更新了代码&#xff0c;补充了实例程序运行截图 和 如何提高模型准确率的方法 系统梳理 集集精彩 代码验证 保证实战 随着数据隐私问题日益受到关注&#xff0c;联邦学习&#xff08;Federated Learning&#xff09; 作为一…...

如何解决跨域请求的问题(CORS)?

文章目录 1. 引言2. 理解 CORS2.1 CORS 基本概念2.2 同源策略与跨域分类 3. CORS 的核心机制3.1 预检请求&#xff08;Preflight Request&#xff09;3.2 简单请求 4. 服务器端配置 CORS4.1 关键响应头4.2 Node.js (Express) 示例4.3 其他后端语言配置 5. 前端处理 CORS 请求5.…...

【数据结构】二叉树总结篇

遍历 递归 递归三部曲&#xff1a; 1.参数和返回值 2.终止条件 3.单层逻辑&#xff08;遍历顺序&#xff09; var preorderTraversal function(root) { // 第一种let res[];const dfsfunction(root){if(rootnull)return ;//先序遍历所以从父节点开始res.push(root.val);//递归…...

软考-数据库开发工程师-3.1-数据结构-线性结构

第3章内容比较多&#xff0c;内容考试分数占比较大&#xff0c;6分左右 线性表 1、线性表的定义 一个线性表是n个元素的有限序列(n≥0)&#xff0c;通常表示为(a1&#xff0c;a2, a3,…an). 2、线性表的顺序存储(顺序表) 是指用一组地址连续的存储单元依次存储线性表中的数据元…...

【五.LangChain技术与应用】【2.LangChain虚拟环境搭建(下):环境优化与调试】

一、Docker化部署:别让你的环境成为薛定谔的猫 经历过"在我机器上能跑"惨案的老铁都懂,传统虚拟环境就像个黑盒子。去年我帮客户部署LangChain应用,因为glibc版本差了0.1,整个服务直接崩成烟花。从那天起,我所有项目都强制上Docker! Dockerfile生存指南: #…...

deepseek+mermaid【自动生成流程图】

成果&#xff1a; 第一步打开deepseek官网(或百度版&#xff08;更快一点&#xff09;)&#xff1a; 百度AI搜索 - 办公学习一站解决 第二步&#xff0c;生成对应的Mermaid流程图&#xff1a; 丢给deepseek代码&#xff0c;或题目要求 生成mermaid代码 第三步将代码复制到me…...

Java实现大数据量导出报表

一、实现方式 在Java中&#xff0c;导出数据到Excel有多种方式&#xff0c;每种方式都有其优缺点&#xff0c;适用于不同的场景。以下是常见的几种方式及其特点&#xff1a; 1.1 Apache POI Apache POI 是 Java 中最流行的库&#xff0c;支持读写 Excel 文件&#xff08;包括…...

在 Element Plus 的 <el-select> 组件中,如果需要将 <el-option> 的默认值设置为 null。 用于枚举传值

文章目录 引言轻松实现 `<el-option>` 的默认值为 `null`I 实现方式监听清空事件 【推荐】使用 v-model 绑定 null添加一个值为 null 的选项处理 null 值的显示引言 背景:接口签名规则要求空串参与,空对象不参与签名计算 // 空字符串“” 参与签名组串,null不参与签…...

Spring Boot 接口 JSON 序列化优化:忽略 Null 值的九种解决方案详解

一、针对特定接口null的处理&#xff1a; 方法一&#xff1a;使用 JsonInclude 注解 1.1 类级别&#xff1a;在接口返回的 ‌DTO 类或字段‌ 上添加 JsonInclude 注解&#xff0c;强制忽略 null 值&#xff1a; 类级别&#xff1a;所有字段为 null 时不返回 JsonInclude(Js…...

解码未来!安徽艾德未来智能科技有限公司荣获“GAS消费电子科创奖-产品创新奖”!

在2025年“GAS消费电子科创奖”评选中&#xff0c;安徽艾德未来智能科技有限公司提交的“讯飞AI会议耳机iFLYBUDS Pro 2”&#xff0c;在技术创新性、设计创新性、工艺创新性、智能化创新性及原创性五大维度均获得评委的高度认可&#xff0c;荣获“产品创新奖”。 这一殊荣不仅…...

Velox 之 Expression

Round 函数 velox/functions/prestosql/Arithmetic.h template <typename T> struct RoundFunction {template <typename TInput>FOLLY_ALWAYS_INLINE voidcall(TInput& result, const TInput& a, const int32_t b = 0) {result = round(a, b);} };/// R…...

【零基础到精通Java合集】第二十四集:ZGC收集器详解

课程标题:ZGC收集器——突破停顿时间极限的下一代垃圾回收器(15分钟) 目标:掌握ZGC的核心技术原理、适用场景与调优策略,理解其如何实现亚毫秒级停顿 0-1分钟:课程引入与ZGC设计目标 以“高速公路无障碍通行”类比ZGC核心思想:通过染色指针与读屏障技术,实现垃圾回收…...

力扣hot100刷题——栈

文章目录 69.有效的括号题目描述思路&#xff1a;栈code 70.最小栈题目描述思路&#xff1a;双栈法code优化&#xff1a;单栈法code 71.字符串解码题目描述思路&#xff1a;栈code 73.每日温度题目描述思路&#xff1a;单调栈code 74.柱状图中最大的矩形题目描述思路&#xff1…...

TMS320F28P550SJ9学习笔记2:Sysconfig 配置与点亮LED

今日学习使用Sysconfig 对引脚进行配置&#xff0c;并点亮开发板上的LED4 与LED5 我的单片机开发板平台是 LAUNCHXL_F28P55x 我是在上文描述的驱动库C2000ware官方例程example的工程基础之上进行添加功能的 该例程路径如下&#xff1a;D:\C2000Ware_5_04_00_00\driverlib\f28p…...

STM32MP1xx的启动流程

https://wiki.st.com/stm32mpu/wiki/Boot_chain_overview 根据提供的知识库内容&#xff0c;以下是STM32 MPU启动链的详细解析&#xff1a; 1. 通用启动流程 STM32 MPU启动分为多阶段&#xff0c;逐步初始化外设和内存&#xff0c;并建立信任链&#xff1a; 1.1 ROM代码&…...

开源之夏经验分享|Koupleless 社区黄兴抗:在开源中培养工程思维

开源之夏经验分享&#xff5c;Koupleless 社区黄兴抗&#xff1a;在开源中培养工程思维 文|黄兴抗 电子信息工程专业 Koupleless 社区贡献者 就读于南昌师范学院&#xff0c;电子信息工程专业的大三学生。 本文 2634 字&#xff0c;预计阅读 7​ 分钟​ 今天 SOFAStack 邀…...