C语言中文网 - Shell脚本 - 4

第1章 Shell基础(开胃菜)

4. 进入Shell的两种方式

在 Linux 发展的早期,唯一能用的工具就是 Shell,Linux 用户都是在 Shell 中输入文本命令,并查看文本输出;如果有必要的话,Shell 也能显示一些基本的图形。

而如今 Linux 的环境已经完全不同,几乎所有的 Linux 发行版都使用某种图形桌面环境(例如 GNOME、KDE、Unity 等),这使得原生的 Shell 入口被隐藏了,进入 Shell 仿佛变得困难起来。

进入 Linux 控制台

一种进入 Shell 的方法是让 Linux 系统退出图形界面模式,进入控制台模式,这样一来,显示器上只有一个简单的带着白色文字的“黑屏”,就像图形界面出现之前的样子。这种模式称为 Linux 控制台(Console)。

现代 Linux 系统在启动时会自动创建几个虚拟控制台(Virtual Console),其中一个供图形桌面程序使用,其他的保留原生控制台的样子。虚拟控制台其实就是 Linux 系统内存中运行的虚拟终端(Virtual Terminal)。

从图形界面模式进入控制台模式也很简单,往往按下Ctrl + Alt + Fn(n=1,2,3,4,5...)快捷键就能够来回切换。

例如,CentOS 在启动时会创建 6 个虚拟控制台,按下快捷键Ctrl + Alt + Fn(n=2,3,4,5,6)可以从图形界面模式切换到控制台模式,按下Ctrl + Alt + F1可以从控制台模式再切换回图形界面模式。也就是说,1 号控制台被图形桌面程序占用了。

下图就是进入了控制台模式:

输入用户名和密码,登录成功后就可以进入 Shell 了。$是命令提示符,我们可以在它后面输入 Shell 命令。

在图形界面模式下,输入密码时往往会显示为 *,密码有几个字符就显示几个 *;而在控制台模式下,输入密码什么都不会显示,好像按键无效一样,这一点请大家不要惊慌,只要输入的密码正确就能够登录。

图形界面也是一个程序,会占用 CPU 时间和内存空间,当 Linux 作为服务器系统时,安装调试完毕后,应该让 Linux 运行在控制台模式下,以节省服务器资源。正是由于这个原因,很多服务器甚至不安装图形界面程序,管理员只能使用命令来完成各项操作。

使用终端

进入 Shell 的另外一种方法是使用 Linux 桌面环境中的终端模拟包(Terminal emulation package),也就是我们常说的终端(Terminal),这样在图形桌面中就可以使用 Shell。

以 CentOS 为例,可以在“应用程序”菜单中找到终端,如下图所示:

图:在“收藏”和“工具”分类中都可以找到终端

打开终端后,就可以输入 Shell 命令了:

CentOS 默认的图形界面程序是 GNOME,该终端模拟包也是 GNOME 自带的。

Ubuntu用的也是GNOME。

除了 GNOME 终端,Linux 还有其他的终端模拟包,例如:

  • xterm 终端

最古老最基础的 X Windows 桌面程序自带的终端模拟包就是 xterm。xterm 在 X Windows 出现之前便已经存在了,默认包含在大多数 X Windows 中。xterm 虽然没有太多炫目的特性,但是运行它不需要太多的资源,所以 xterm 在针对老硬件设计的 Linux 发行版中仍然很常见,比如 fluxbox 图形桌面环境就用它作为默认的终端模拟包。

  • Konsole 终端

KDE 桌面项目也开发了自己的终端模拟包,名为 Konsole。Konsole 整合了基本的 xterm 特性以及一些更高级的类似 Windows 应用程序的特性。

参考:

1,进入Shell的两种方式 

进入Shell的两种方式 (biancheng.net)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/100680.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机毕业设计选什么题目好?springboot 社区流浪动物救助领养系统

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

短视频视频号矩阵系统源码独立部署开发对接

一、多账号矩阵管理功能(基于api接口开发与没有官方接口开发的区别) 基于API接口开发,可以通过调用官方提供的接口获取账号信息、创建新账号、更新账号设置等操作,实现自动化的账号管理绑定授权,通过相关的接口开发绑定…

如何在 Spring Boot 中进行文件上传

在 Spring Boot 中进行文件上传 文件上传是Web应用程序中常见的功能之一,它允许用户将文件从客户端上传到服务器。Spring Boot提供了便捷的方式来处理文件上传,并且整合了Spring框架的强大功能,使文件上传变得相对简单。本文将介绍如何在Spr…

FPGA---UDP通信求助

项目场景: 使用UDP进行回环,网络调试助手,发送数据通过UDP接收模块接收,解析出数据,给到UDP发送模块,传回上位机。 问题描述 UDP接收模块中,接收到的CRC校验值与自己计算CRC校验值进行判断&am…

【考研数学】矩阵三大关系的梳理和讨论 | 等价、相似、合同

文章目录 引言一、定义二、判别法写在最后 引言 昨天学了矩阵的合同关系,老汤讲义里也列举了三大关系的定义和判别法,方便我们进行区分。但是光看还是难以入脑,为此,我想自己梳理一遍,顺带也复习一下线代之前的所学。…

数据转换为excel模板下载

一、引入依赖 <dependency><groupId>org.jxls</groupId><artifactId>jxls-poi</artifactId><version>2.12.0</version></dependency> 二、准备解析的数据封装 package com.dst.modules.business.after.sale.parts.sparepa…

Mac M1通过homebrew安装Redis报错(perl: unknown or unsupported macOS version: :dunno)

〇、解决方案 升级homebrew&#xff0c;命令如下&#xff1a; brew update-reset一、问题现象 通过命令brew install redis安装Redis&#xff0c;异常如下&#xff1a; fatal: not in a git directory Warning: No remote origin in /opt/homebrew/Library/Taps/homebrew/h…

【OCR】合同上批量贴印章

一、需求 OCR算法在处理合同等文件时&#xff0c;会由于印章等遮挡导致文本误识别。因此在OCR预处理时&#xff0c;有一个很重要的步骤是“去除印章”。其中本文主要聚焦在“去除印章”任务中的数据构建步骤&#xff1a;“合同伪印章”的数据构建。下面直接放几张批量合成后效果…

Godot 添加信号

前言 Godot 里面C#和GDScirpt 的用法完全不一样&#xff0c;网上相关资料太少了。 什么是信号 信号分为信号源&#xff0c;触发&#xff0c;目的节点。信号源在某些条件下触发信号&#xff0c;比如按钮点击&#xff0c;鼠标悬停等事件 #mermaid-svg-wyr9ARVcBFmUUu8y {font-…

C++ shared_ptr类型转换的实现原理与type traits类型萃取

思考下面这个问题&#xff1a; #include <memory> #include <iostream> using namespace std;class A{ public:int data; };class B : public A{ };template <typename _Ty> class TypeCast{ };int main() {shared_ptr<B> b make_shared<B>();…

做了个 chrome 插件实现 B 站视频截图功能,直接从当前视频帧无损复制

起因是看 B 站视频想截个图很麻烦&#xff0c;右下角暂停按钮无法去除&#xff0c;于是写了一行代码把暂停按钮隐藏。 后经提醒&#xff0c;发现可以通过 canvas 获取视频帧来截取图片&#xff0c;于是写了如下代码完美获取视频帧。 var v document.querySelector(".bpx…

从Django模型创建复合索引

目录 什么是复合索引&#xff1f;在Django中创建复合索引示例说明 什么是复合索引&#xff1f; 复合索引是由多个列组成的索引&#xff0c;在数据库中使用多个列的值作为索引键。相比于单个列的索引&#xff0c;复合索引可以更加精确地过滤数据并提高查询的速度。 通过创建复…

【window10】Dart+Android Studio+Flutter安装及运行

安装Dart SDK安装Android Studio安装Flutter在Android Studio中创建并运行Flutter项目 安装前&#xff0c;请配置好你的jdk环境&#xff0c;准备好你的梯子~ 安装Dart SDK 浅浅了解一下Dart&#xff1a; Dart 诞生于2011年&#xff0c;是由谷歌开发的一种强类型、跨平台的客户…

【java学习】对象的产生(18)

文章目录 1. 初始化赋值2. 匿名对象3. 练习3.1. 习题一3.2. 习题二 4. 总结 1. 初始化赋值 当一个对象被创建时&#xff0c;会对其中各种类型的成员变量自动进行初始化赋值。除了基本数据类型之外的变量类型都是引用类型&#xff0c;如上节的 Person 和前面讲过的数组。 成员…

提取Android盒子dtb文件

概述 最近从某鱼上掏了一个CM201-1 YS的盒子&#xff0c;动手倒腾倒腾&#xff0c;准备安装Armbian&#xff0c;用来做矿机&#xff0c;但该型号的盒子ophub上面没有完全适配的镜像&#xff0c;故而想尝试下&#xff0c;看能否整个适配镜像出来。 操作系统 Windows Linux 工…

【MediaSoup---源码篇】(五)接收RTP数据的处理

通过前面的文章我们可以了解到&#xff0c;当创建好Transport的时候&#xff0c;socket已经建立好。具备了相应的网络传输能力。我们来看一下socket接收到数据是如何处理的。 UdpSocketHandler::OnUvRecv Socket接收数据 inline void UdpSocketHandler::OnUvRecv(ssize_t nr…

TDengine时序数据库学习使用

数据库要求&#xff1a; 1.目前服务器只能在linux运行&#xff0c;先安装服务器版本v1 2.下载与v1完全匹配的客户端版本v1&#xff08;客户端与服务器的版本号不匹配可能访问不了服务器&#xff09; 第一步 安装 安装服务器注意&#xff0c;安装教程&#xff1a; 使用安装…

Linux中scp命令复制文件

scp命令是在Linux中用于在本地主机和远程主机之间进行安全传输文件的命令。下面是使用scp命令的语法&#xff1a; scp [参数] [来源路径] [目标路径]参数&#xff1a; -r&#xff1a;递归复制整个目录。-P&#xff1a;指定远程主机的端口。-p&#xff1a;保留原文件的修改时间…

(蓝宝书)网络安全——CTF那些事儿

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和技术。关…

CocosCreator 面试题(七)优化cocos creator 包体体积

优化 Cocos Creator 包体体积是一个重要的任务&#xff0c;可以通过以下几个方面进行优化&#xff1a; 图片文件体积优化&#xff1a; 压缩图片&#xff1a;使用工具如 TinyPNG、ImageOptim 等对图片进行压缩&#xff0c;减小文件大小而保持可接受的质量。图片格式选择&#…