Linux 纯字符界面的用途##

  1. 装逼必备
  2. 省资源,服务器一般不安装图形界面
  3. 图形界面崩溃后紧急救援

进入字符界面的正确方式##

目前新的 Linux 发行版基本上都使用 Systemd 作为 init 程序,不再使用 SysV init 和 Upstart init。所以如果想让系统启动后直接进入字符界面,应该使用如下命令:

sudo systemctl set-default multi-user.target

反过来,要让系统启动后直接进入图形界面,应该使用如下命令:

sudo systemctl set-default graphical.target

另外,Linux 本身提供有虚拟控制台的功能,使用 Ctrl + Alt + F1Ctrl + Alt + F7 进行切换,其中有一个是图形界面,剩下的是字符界面。图形界面玩崩溃了,就不得不使用 Ctrl + Alt + F3 切换到字符界面进行救援。

关于 Framebuffer##

字符界面分两种,一种是不开启 Framebuffer 的,另一种是开启 Framebuffer 的。Framebuffer 是一种图形驱动,不开启 Framebuffer 就是真的全字符,不能改变分辨率,不能显示图像,不能截图。目前最新的 Linux 发行版默认开启 Framebuffer。控制 Framebuffer 开启和关闭,以及分辨率的方法,是设置 Grub2 的参数。修改 /etc/default/grub 文件,添加如下参数可以设置分辨率:

GRUB_GFXPAYLOAD_LINUX=1024x768x32

然后使用如下命令更新 GRUB2 配置:

sudo update-grub

其中的分辨率必须是我们的硬件支持的。可以通过 GRUB2 命令行中的 videoinfo 命令查看我们的硬件支持的分辨率。

如果要关闭 Framebuffer,则这样更改 GRUB2 的配置:

GRUB_GFXPAYLOAD_LINUX=text

同样,需要:

sudo update-grub

然后重启。

字符界面下联网##

以前在图形界面的时候,设置个网络、连接个 wifi 非常简单,玩儿似的,结果一进入纯字符界面就抓瞎。不联网,就不能下载和安装软件包,后面就玩不下去了。所以进入纯字符界面后,要解决的第一件事就是怎么联网。说到管理网络的工具,大家可以列举一大堆,什么 ipconfigiwconfigip 等等。但是,在最新的 Linux 发行版中,已经是使用 NetManager 管理网络了。通过阅读 NetManager 的文档,可以知道它提供一个功能很强大的命令行工具,那就是 nmcli。通过 man nmcli 可以查看该工具的用法。如下图:

使用如下命令可以查看可用的 wifi 热点以及连接 wifi:

nmcli device status                                         #查看网络连接的状态,可以看到各网卡的名称
nmcli device wifi list iface 网卡名称 #查看可用的 wifi 热点
nmcli device wifi connect **** password **** #连接 wifi,需要提供 wifi 的名称和密码

如下图:

连上了网,Ubuntu 就可以在纯字符界面下起飞了。

使用 fbterm##

通过上面的截图,发现两个问题:

  1. 在我的 1920x1080 的笔记本电脑屏幕上,默认的字实在是太小;
  2. 不能显示中文,上图中 wifi 热点名称含有中文的,都显示不出来。

解决办法是使用 fbterm。一举解决字体大小问题和中文显示问题。先安装 fbterm,使用如下命令:

sudo apt-get install fbterm

先使用sudo fbterm启动 fbterm 一次,再用exit命令退出,这样,fbterm 会自动生成一个默认的配置文件~/.fbtermrc,然后修改 ~/.fbtermrc 配置文件中的两行,设置使用的字体和字体大小,如下:

font-names=DejaVu\ Sans\ Mono
font-size=16

然后使用 sudo fbterm 命令启动 fbterm,就可以了。下面是看对比图,使用 fbterm 之前,Vim 的启动界面是不能显示中文的:

使用 fbterm 之后,中文可以正常显示:

使用 fbterm 之前,阅读代码是这样的:

字非常的小,NERDTree 和 Tagbar 里面的符号显示也有问题。使用 fbterm 之后,就很漂亮了,如下图:

这才是全高清屏该有的显示效果嘛。关于在 fbterm 下输入中文,我尝试过 fbterm-ucimf,也尝试过 fcitx-frontend-fbterm,都没有成功。后来我就不试了,反正我也没有在全字符界面下输入中文的需求。

显示 Framebuffer 的信息##

使用 fbset 可以查看 Framebuffer 的信息,包括 Framebuffer 是否开启,分辨率是多少,由哪个内核模块提供支持等。使用如下命令安装 fbset:

sudo apt-get install fbset

使用sudo fbset -i命令查看 Framebuffer 的信息,如下图:

在 Framebuffer 下截图##

使用 fbgrab 可以在 Framebuffer 下进行截图。使用如下命令安装 fbgrab:

sudo apt-get install fbgrab

使用 fbgrab 命令的方式如下:

sudo fbgrab -c N filename.png      #对 /dev/ttyN 对应的终端进行截图
sudo fbgrab -C N filename.png #先跳转到 /dev/ttyN 对应的终端,再进行截图
sudo fbgrab -s N filename.png #先等待 N 秒,再进行截图

我前面的图片都是使用 fbgrab 截的,这里就不贴图了。

在 Framebuffer 下查看图片##

使用 fbi 可以在 Framebuffer 下查看图片,同样使用sudo apt-get install fbi安装这个软件。在看图界面下按 H 键,还会显示帮助信息。如下图:

在纯字符界面下上网##

使用老牌的上网工具 w3m,安装方式sudo apt-get install w3m,然后使用w3m https://www.cnblogs.com/就可以访问博客园了,只有文字哦,图片就不要想了。效果如下图:

当然,必须在 fbterm 下执行才能显示中文。

视频播放##

使用 mplayer 播放器可以播放视频,通过mplayer -vo help命令可以看到,mplayer 支持很多种视频驱动,而 Framebuffer 正是其中一种。使用sudo mplayer -vo fbdev2 badapple.mp4播放 Bad Apple 的 PV 视频,效果如下:

因为这里要录制 gif 动画,所以我使用了虚拟机运行 Linux,Framebuffer 的分辨率设置为 1024x768。同样,通过上面的mplayer -vo help命令,还可以看到 mplayer 支持使用 libaa 库,将视频播放为字符画。据我观察,只有在图形界面下效果才可以,纯字符界面不行。使用mplayer -vo aa -moniterpixelaspect 0.5 badapple.mp4播放,效果如下:

屏保和装逼##

当然是 cmatrix 啦。效果如下:

Linux 纯字符界面的玩法的更多相关文章

  1. linux纯字符界面不支持中文

    [2017-01-17] linux纯字符界面不支持中文

  2. Ubuntu纯字符界面的一些设置

    由于Ubuntu的纯字符界面不支持中文显示,所以进行了一些配置,为了更好的显示 1. 把环境语言配置为英文 在用户目录下的".bashrc"文件的结尾处添加以下内容,然后重新登录 ...

  3. Linux 切换字符界面和图形界面

    1. 切换方式 # root 权限 systemctl get-default # 获取当前模式 systemctl set-default graphical.target # 设置开机为图形界面 ...

  4. linux终端 字符界面 显示乱码

    方法一:配置SSH工具 SecureCRT中文版配置 [全局选项]→[默认会话]→[编辑默认设置]→[终端]→[外观]→[字体]→[新宋体 10pt CHINESE_GB2312]→[字符编码 UTF ...

  5. 转 linux终端 字符界面 显示乱码 .

    方法一:配置SSH工具 SecureCRT中文版配置 [全局选项]→[默认会话]→[编辑默认设置]→[终端]→[外观]→[字体]→[新宋体 10pt CHINESE_GB2312]→[字符编码 UTF ...

  6. linux 纯字符界面显示中文

    yum -y groupinstall "Chinese Support" sed -i 's/en_US/zh_CN/' /etc/sysconfig/i18n

  7. linux下的QQ执行玩法:pidgin-lwqq

    安装pidgin: sudo apt-get install pidgin 安装pidgin-lwqq: sudo add-apt-repository ppa:lainme/pidgin-lwqq ...

  8. 全网络最正确的让 Linux 开机进入字符界面的方法及设置 FrameBuffer 分辨率的方法

    引言 这个标题有点长,是为了在标题中就把问题说清楚,以便搜索引擎能够把有需要的朋友准确地带到我这里来.目前在网络上,很多关于 Linux 方面的知识是过时的和错误的.我标题中指出的两个知识点就是其中的 ...

  9. Linux字符界面下用户账户的设置

    在Linux系统字符界面下创建.修改以及删除用户账户主要使用useradd,usermod和userdel这3个命令. 一.创建用户账户 创建用户账户就是在系统中创建一个新账户,然后为新账户分配用户U ...

随机推荐

  1. 小程序 movable-view 在页面中的可移动图标

    项目中需要一个可拖动的小图标, 1.小程序组件movable-view 文档地址:https://developers.weixin.qq.com/miniprogram/dev/component/ ...

  2. 1、阿里云ECS内部机器端口被100.117.90段的ip疯狂扫描导致业务异常

    故障现象: 解决方案: 1.临时解决 iptables -I INPUT -s 100.117.0.0/12 -j DROP 2.后续解决 提交工单,寻找阿里服务. 后续定位是以前配置过的SLB在搞鬼 ...

  3. shell脚本之不同系统上ftp交互使用

    场景:当公司将有文件要自动将ubuntu系统的文件要上传到windows上面,或者windows上的文件要下载到ubuntu上面,尤其是像什么日志啊,编译结果啊,测试结果啊等等,做个备份或者做分析处理 ...

  4. .net基础学java系列(六)Java基础

    一.废话 .net学java为何一直没入坑?其实大家都知道,语法很相似,就是使用的习惯不同 稍微的语法差异 结构体系不同 IDE不同 类库集不同 各种框架不同 对于我来说,我一直被第三道坎拦住了,所以 ...

  5. OpenCV函数学习:alignPtr对齐指针

    转载地址:https://www.tuicool.com/articles/q2QrQr 在某些架构上,只有能被指定数(如4,16)整除的内存地址才能够被访问,否则程序会crash,或者出现错误的结果 ...

  6. python3控制语句---选择结构语句

    python中的控制语句主要有if.if--else.if--slif--else.pass语句.其实python的控制语句与其他语言的控制语句工作原理基本一样.控制语句可以分为选择结构语句和循环结构 ...

  7. Kubernetes系列之Helm介绍篇

    本次系列使用的所需部署包版本都使用的目前最新的或最新稳定版,安装包地址请到公众号内回复[K8s实战]获取 介绍 Helm 是 Deis 开发的一个用于 Kubernetes 应用的包管理工具,主要用来 ...

  8. python程序入门 基础教程

    1.VSCode基础使用+VSCode调试python程序入门 2.pip 安装 3.scrapy安装 4.python解析xml

  9. Python爬虫爬取豆瓣读书

    一,准备工作. 工具:win10+Python3.6 爬取目标:爬取图中红色方框的内容. 原则:能在源码中看到的信息都能爬取出来. 信息表现方式:CSV转Excel. 二,具体步骤. 先给出具体代码吧 ...

  10. Makefile自学

    MakeFile的规则 如果这个工程没有编译过,那么我们的所有C文件都要编译并被链接. 如果这个工程的某几个C文件被修改,那么我们只编译被修改的C文件,并链接目标程序. 如果这个工程的头文件被改变了, ...