标签 终端 下的文章

在其上一个主要版本发布一年后,Xfce Terminal 1.0.0 终于来了。兴奋地想了解一下新的改进吗?让我们来看看!

作为几乎在所有采用 Xfce 的发行版上流行的终端模拟器,Xfce Terminal 刚刚由新的维护者(及新的版本计划)发布了它的第一次重大升级。

让我们来看看这个版本的一些亮点。

新的维护者和版本管理方案

Igor Zakharov 从 2016 年到 2020 年一直在领导它的开发工作。不幸的是,在 2021 年它就没有被维护过了,直到新的维护者 Sergios Anestis Kefalidis(也是 Thunar 文件管理器的开发者)接手。

而且,自从 Sergios 接管了这个项目后,版本管理方案也发生了变化。经过与社区的协商,采用了 Thunar 的旧版本计划。

例如,1.1.x 版本将是开发版本,而 1.2.0 版本将是下一个主要升级版本。

现在,随着 Xfce Terminal 1.0.0 的发布,一些令人兴奋的新特性已经被纳入。

新特性

Xfce Terminal 1.0.0 的一些新特性包括:

  • 改进了自定义选项
  • 支持叠加滚动条
  • 命令行选项的改进
  • 更多使用 XfceTitledDialog

更好的自定义选项

和现在许多应用的更新一样,Xfce Terminal 1.0.0 包括大量新的自定义选项。也许我最喜欢的是,图像背景功能现在有一个“填充”风格选项。伴随着这一点的是暂时禁用不安全的粘贴对话框的能力,它也被改造了。

最后,Xfce Terminal 也成为首批支持新的 Xfce 快捷键编辑器的应用之一。因此,用户不再需要潜心研究配置文件,而是有了一个可以使用的简单 UI。

有了这么多新的定制选项,我相信很多人都会对一个只是包含这些的版本感到满意。但是!开发者设法加入了更多令人兴奋的新功能,其中下一个是改进的命令行参数。

更好的命令行参数

在这个版本中,修复了 -tab-window 命令行参数,变得更加直观。这修复了 Xfce Terminal 中一个 长期存在的错误,它已经存在了近 6 年。

尽管等待了很久,但现在它已经被修复了。迟到总比不到好,是吧?

不管怎么说,看到每一个新版本的错误被修复总是很好的,这个趋势在这里继续。

更多使用 Xfce 专用的小工具

虽然我相信很多用户可能会认为这是一个退步,但 Xfce Terminal 使用更多的 Xfce 专用小工具带来了很多好处。虽然这对非 Xfce 用户确实意味着要安装更多的依赖关系,但它意味着与 Xfce 更好的整合。

可以说,大多数的 Xfce Terminal 用户都坚持使用同样的 Xfce 桌面环境。所以,这种改变应该会带来更大的一致性和用户体验的改善。

其他变化

这个版本的其他变化包括:

  • “输出滚动”偏好设定的改进
  • 右键点击行为的自定义选项
  • 为缩小代码库而进行的代码重写

关于完整的功能列表,请随时参考 发布说明。发布说明中还提到了下一个主要版本的未来计划,即 v1.2.0。

总结

总的来说,Xfce Terminal 1.0.0 看起来是一个不错的版本,也说明了其新的维护者的奉献精神。

如果你想试试 Xfce Terminal 1.0.0,它应该会在接下来的几周内进入你的发行库,如果现在还没有的话。


via: https://news.itsfoss.com/xfce-terminal-1-0-0-release/

作者:Jacob Crume 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

学习 Linux 终端命令、参数的区别,以及如何使用它们来控制你的计算机。

 title=

距离我的住处几条街远的地方,有一家咖啡馆,我在每个周日都会去那里参加固定的 “ 龙与地下城 Dungeons & Dragons ”(D&D) 游戏。他们有一份菜单,前几次我去点餐时,我总是要翻看好几分钟,才能确定要点些什么。熟悉了之后,我就不用看菜单了,因为我清楚地知道他们在卖什么,也清楚地知道自己想要什么。现在点餐对我来说很简单,只要说一声“老规矩”就好了,接下来就是等待一杯咖啡、一碗薯片和烤饼被送来(通常不方便的是,在我们 做出决定 roll for initiative 的那一刻,但这也不是他们的问题)。(LCTT 译注: 做出决定 roll for initiative 是 D&D 玩家的黑话,它指的是在比赛开始前掷骰子的行为)

与餐厅的菜单类似,计算机的图形界面也为用户提供了操作选项。这里有图标、窗口和按钮,你可以搜索你想要的东西,点击项目,拖动其他项目,操纵图形界面,直到你的任务完成。不过,一段时间后,这可能会变得繁琐,甚至是效率低下。既然你清楚地知道需要做什么,那么,如果只需告诉计算机你想要发生什么,无需耗费大量的体力和脑力来搜索项目、舞动鼠标,就能达到目的,岂不是更好吗?

Linux 终端是什么

Linux 终端是一个基于文本的交互界面,它是用来控制 Linux 计算机的。虽然它只是帮助 Linux 用户完成任何特定任务的众多工具之一,但是它被广泛地认为是最有效的方法。除了编写代码,这无疑是最直接的方法。事实上,它是如此受欢迎,以至于苹果公司将操作系统的基础改为 Unix,从而获得了 Bash 和 Z shell,而微软公司开发了它自己的开源命令行 PowerShell

Linux 命令是什么

命令 commands 是一种特殊的关键词,你可以在终端中使用它,告诉计算机去执行一个动作。大多数命令是很小的应用程序,它们与你的操作系统的其他部分一起安装。你可能没有意识到它们的存在,因为它们通常被保存在相对模糊的目录中,如 /bin/sbin/usr/bin/usr/sbin,但你的终端知道在哪里可以找到它们(多亏了一个叫 PATH 的东西)。其他的命令是内置在终端中的。你不必担心一个命令是安装的还是内置的,无论是哪一种,终端都能执行。更棒的是,在大多数 Linux 发行版上,当终端找不到一个命令时,它会在互联网上搜索提供该命令的软件包,然后会主动为你提供安装软件包、运行该命令的服务。

下面是一个简单的命令:

$ ls

ls 命令是 “list” 的缩写,它会列出当前目录的内容。试一试吧!先打开一个终端窗口,然后打开一个文件管理器窗口(Linux 上叫 “ 文件 Files ”,macOS 上叫 “ 访达 Finder ”,Windows 上叫 “ 资源管理器 Windows Explorer ”)。比较一下这两个窗口,它们是同一数据的两种不同表现方式。

Linux 命令中的参数是什么

参数 argument 是命令中的任意一个“不是命令本身”的部分。例如,要列出一个特定目录的内容,你可以提供该目录的名称作为参数。

$ ls Documents

在这个例子中,ls 是命令,Documents 是参数。该命令将列出 Documents 目录的内容。

Linux 命令中的选项是什么

命令的 选项 option ,也叫 标志 flag 开关 switch ,它是命令参数的一部分。命令参数是跟在命令后面的任何东西,而选项通常(但不总是)用一个连接号(-)或两个连接号(--)来划分。请看下面这个例子:

$ ls --classify Documents

在这个例子中,--classify 是一个选项。它也有一个简短的版本,因为终端用户更喜欢少打点字来提高效率。

$ ls -F Documents

短的选项通常可以合并。下面是一个 ls 命令,它将 -l 选项与 --human-readable-h)、--classify-F) 和 --ignore-backups-B) 选项结合了起来:

$ ls -lhFB

一些选项本身可以带参数。例如,ls--format 选项可以让你改变信息的呈现方式。默认情况下,目录的内容是以列的形式提供给你的,但如果你需要它们显示为逗号分隔的列表,你可以把 --format 设置为 comma

$ ls --format=comma Documents
alluvial, android-info.txt, arduinoIntro, dmschema,
headers.snippet, twine, workshop.odt

等于号(=)是可选的,所以这样做也可以:

$ ls --format comma Documents
alluvial, android-info.txt, arduinoIntro, dmschema,
headers.snippet, twine, workshop.odt

学习使用 Linux 终端

学习如何使用终端可以提高工作效率和生产力,同时也可以使计算变得非常有趣。当我运行一个精心设计的命令时,我常常会坐下来,为我在空白屏幕上输入几个字就能实现的事情而惊叹。终端可是和很多东西相关 —— 编程、诗歌、拼图和实用主义,但无论你如何看待,它都是一个值得学习的持续创新。

在阅读和练习了这些文章中的课程后,你可以下载我们的免费电子书 系统管理员的 Bash 脚本指南,在终端中获得更多乐趣。


via: https://opensource.com/article/21/8/linux-terminal

作者:Seth Kenlon 选题:lujun9972 译者:lkxed 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

想练习 Linux 命令吗?你不需要为此而安装一个完整的发行版。

有很多 让你在线使用 Linux 终端的网站。这些网站在桌面上运行良好,但在移动设备上却不适合。

别担心。安卓毕竟是基于 Linux 内核的。有几个应用程序可以让你用你的安卓智能手机练习 Linux 命令,或通过 SSH 连接到远程服务器。

当然,你不应该指望它能取代你在台式机上使用的常规 Linux 终端仿真器。在安卓上有相当多的这类应用。

为了方便起见,我添加了两个不同的类别,一个涵盖了终端模拟器,另一个是为远程连接功能(SSH)以及终端界面量身定做的。

非 FOSS 提醒!

这里提到的一些应用程序不是开源的,它们都做了适当的提示。它们被涵盖在这里是因为它们可以让你在安卓上使用 Linux 终端。

Linux 终端仿真器应用

请注意,你需要在你的安卓手机上有 root 权限,才能使用 ls 等命令在目录中导航、复制/粘贴、并执行高级操作。

注意: 对于大多数应用程序/终端,没有 root 权限你将只限于基本的操作,如测试 ping、更新,以及在支持的地方安装包。

1、Qute 终端仿真器(非 FOSS)

Qute 终端模拟器提供了对你的安卓设备上的内置命令行 Shell 的访问。

你可以在你的智能手机上使用常见的命令,如 pingtracecdmkdir 等等。除了一些 有用的 Linux 命令 之外,你还可以安装 bin 文件和创建 shell 脚本

伴随着 bash 脚本编辑器和对已 root 的设备的支持,它应该是一个令人兴奋的选择,可以尝试。

它还提供了启用浅色主题、隐藏键盘、切换语法高亮和其他一些功能。

不幸的是,开发者提到,根据谷歌最新的隐私政策,安卓 11 及更新版本存在一些已知的问题。因此,如果没有一个已 root 的设备,你可能做不了什么。

2、安卓终端仿真器(FOSS)

Jack Palevich 的 “终端仿真器” 是最古老的可用于安卓的 Linux 终端仿真器之一。

你可以使用简单的命令、添加多个窗口,并使用启动器的快捷键进行快速操作。

它最好的地方是没有任何广告和应用内购买选项,也没有干扰性元素。然而,它已经很久没有被维护了,它的 GitHub 页面 也在 2020 年被归档,这标志着它的开发已经结束。

但即使在目前的状态下,它似乎也对众多用户有用。因此,在否定它之前,你可以试试。

3、Material Terminal(非 FOSS)

Material Terminal 是 “安卓终端仿真器” 的重新换肤版本。

你可以获得相同的功能,有多个窗口、没有广告、基本命令开箱即用,还可以选择在已 root 的设备上安装 Busy Box,以及其他命令行工具。

简单的说,就是前一个选项中的一切,加上一个 Material Design 用户界面。很好,对吗?

SSH 客户端和 Linux 终端

你想要一个能够使用 SSH 连接的安卓终端仿真器吗?或者,也许只是为 SSH 远程连接而定制?

这里有一些选择:

4、Termux(FOSS)

Termux 是一个相当流行的可用于安卓的终端仿真器。它有一个全面的软件包集合,让你体验 bash 和 zsh。

如果你有 root 权限,你还可以 用 nnn 管理文件,并用 nanovimemacs 来编辑文件。用户界面除了终端外没有其他东西。

你还可以 使用 SSH 访问服务器。除此之外,你还可以用 clang、makegbd 进行 C 语言开发。当然,这些都取决于你的需要,以及你是否有一个已 root 的设备。

你也可以查看它的 GitHub 页面 来解决发现的问题。截至目前,由于一些技术原因,Play Store 版本的更新已停止了。因此,如果可用的 Play Store 版本不能工作,你可以通过 F-Droid 安装最新版本。

5、Termius(非 FOSS)

Termius 是一个 SSH 和 SFTP 的定制客户端,专门用于从安卓设备进行远程访问。

通过 Termius,你可以管理 UNIX 和 Linux 系统。Play Store 页面将其描述为一个漂亮的安卓版 Putty 客户端,这一点是正确的。

用户界面很容易理解,看起来并不令人困惑。它还支持 Mosh 和 Telnet 协议。

当你连接到一个远程设备时,它可以检测到操作系统,如树莓派、Ubuntu、Fedora。你也可以用你的键盘连接到运行这个应用程序的手机上工作。最重要的是,没有任何广告或横幅,使它成为一个完美的远程连接应用程序。

它确实提供了可选的高级服务(14 天免费试用),具有更多的功能,如加密的交叉同步、SSH 密钥代理转发、SFTP、终端标签等。你也可以在其 官方网站 上了解更多关于它的信息。

6、JuiceSSH(非 FOSS)

JuiceSSH 是另一个流行的 SSH 客户端,有大量免费的功能和一个可选的专业版升级。

除了支持 Telnet 和 Mosh 之外,你还可以使用一些第三方插件来扩展功能。你可以从一系列可用的选项中调整外观,并按组轻松组织你的连接。

不要忘了,还有 IPv6 支持。

如果你选择专业版升级,你可以与 AWS 集成,启用安全同步,自动备份等等。

7、ConnectBot(FOSS)

如果你想要的只是一个简单的 SSH 客户端,ConnectBot 应该能满足你的需求。

你可以管理同时进行的 SSH 会话、创建安全隧道,并获得在其他应用程序之间复制/粘贴的能力。

赠品:无需 root 设备就能访问 Linux 发行版和命令

如果你没有已 root 的安卓手机,也不打算去 root 它,你有一个独特的选择,让你在智能手机上安装 Linux 发行版。

你可以得到广泛的 Linux 发行版和琳琅满目的桌面环境以及窗口管理器。

最重要的是,你不需要一个已 root 的设备来使用各种 Linux 命令。你只需要安装你最喜欢的发行版就可以做到这一切。

除了使用方便外,它还提供高级选项,使你能够获得离线发行版安装和跨设备同步命令的能力。

当然,你安装了一个 Linux 发行版并不意味着你可以做所有事情,但它仍然是一个很好的选择。你可以在 Play Store 找到它,并在 GitHub 上了解关于它的更多信息。

总结

在安卓上访问 Linux 终端并不像选择一个终端模拟器那么简单。你需要检查对命令的支持,以及它能让你在已 root 的、未 root 的设备上做什么,然后再继续。

如果你想做实验,任何一个选项都应该做得很好。

你的个人最爱是什么?我们是否错过了列出任何你的最爱?请在下面的评论中告诉我。


via: https://itsfoss.com/using-linux-terminal-android/

作者:Ankush Das 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

想象一下:有人伤了你的心,而你想要的是心无旁骛地在日记中写下你的感受。你明白这种感受吗?没有吗?我也不知道。我没有心碎过(或者也许我心碎了,但我不想告诉你)。

但我还是想向你展示一个奇妙的极简的开源的记事应用来保存日记。

这个方便的小程序是 Jrnl,它可以让你在终端中直接创建、搜索和查看日记条目。

用 Jrnl 创建新的笔记就像下面一样简单:

jrnl yesterday: I read an amazing article on It’s FOSS. I learn about a minimalist app called Jrnl, I should try it.

看起来很简单,不是吗?关键字 “yesterday” 在这里是一个触发器,它把你的笔记保存到昨天的日期。记住,它被称为 Jrnl(日记)是有原因的。它的主要目的是保存日记。

如果你喜欢把你的想法写成日记,或者只是想尝试一下,让我分享一下安装和使用的一些细节。

在你的 Linux 系统上安装和使用 Jnrl

Jrnl 可以用 pipx 或 Homebrew 包管理器安装。

我在测试中使用了 Homebrew,所以我将列出这些步骤。首先获取 Homebrew:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Installing Homebrew on your system

这就好了!如果你需要更多的信息,我们有一个关于 在 Linux 上安装 Homebrew 的详细教程。

当你安装了 Homebrew 包管理器后,用它来安装 Jrnl:

brew install jrnl

Installing Jrnl with Homebrew

安装后,只要初始化 jrnl 并开始写你的随机想法。

你还记得本文开头的第一个例子吗?让我们再来看看它吧!

jrnl yesterday: I read an amazing article in It’s FOSS. I learn about a minimalist app called Jrnl, I should try it.

Writing an entry

在这一行中,我用命令 jrnl 在一个时间戳旁启动程序,在这个例子中是 yesterday。我写了一个冒号 :,表示我将开始写一些东西,在第一个句子标记 .?!:(在这里是句号 .)之前包含的所有内容将是标题。最后,这个句号旁边的所有内容将被视为文件的主体。

目前,Jnrl 有两种模式:撰写和查看;前面的步骤用于撰写条目,但如果你想查看,例如,之前写过的条目,语法也很简单,你只需输入下一行。

jrnl -on yesterday

Viewing an entry

认为有人可能会阅读你的日记和想法?你也可以对你的条目进行加密。

这就好了! 当然,Jrnl 还有很多功能,你可以通过下面这行轻松找到:

jrnl --help

你也可以参考 其官方网站 上的文档。记住,在这样的一个开源项目中,文档是你最好的朋友。享受它吧!

总结

当然,Jrnl 并不适合所有人。大多数命令行工具都不适合。但如果你在终端中生活和呼吸,并喜欢记录你的想法,它就适合你。

请不要忘记在评论中与我们分享你的个人经验,或者更好的是,如果你想让更多的人了解这个项目,你可以在各个社区和论坛上分享这个帖子。


via: https://itsfoss.com/jrnl/

作者:Marco Carmona 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

用这个开源的终端会话记录器 Asciinema 来展示终端会话。

 title=

支持电话是很重要的,而且最后往往是令人满意的,但明确的沟通行为对每个参与的人来说都是艰巨的。如果你曾经参加过支持电话,你可能会花好几分钟拼出了最短的命令,并详细解释了空格和回车的位置。虽然直接拿过来用户电脑的控制权往往更容易,但这并不是真正的教育的最佳方式。你可以尝试向用户发送一个屏幕记录,而他们可以复制命令并粘贴到自己的终端。

Asciinema 是一个开源的终端会话记录器。与 scriptscriptreplay 命令类似,Asciinema 准确记录了你的终端显示。它将你的“电影”记录保存到一个文本文件中,然后根据需要进行回放。你可以把你的电影上传到 Asciinema.org,就像你在互联网上分享任何其他视频一样,你甚至可以把你的电影嵌入到网页中。

安装 Asciinema

在 Linux 上,你可以使用你的包管理器安装 Asciinema。

在 Fedora、CentOS、Mageia 或类似系统上:

$ sudo dnf install asciinema

在 Debian、Linux Mint 或类似系统上:

$ sudo apt install asciinema

在 macOS 上,你可以用 Homebrew 安装:

$ sudo brew install asciinema

在 BSD 和任何其它平台上使用 Pkgsrc

$ cd /usr/pkgsrc/misc/py-asciinema
$ sudo bmake install clean

从文本中制作电影

要用 Asciinema 开始录制,你可以使用 rec 子命令:

$ asciinema rec mymovie.cast
asciinema: recording asciicast to mymovie.cast
asciinema: press <ctrl-d> or type "exit" when you're done

一些友好的输出信息提醒你,你正在录制,并告诉你如何停止:按 Ctrl+D 或直接输入 exit

当 Asciinema 处于活动状态时,你在终端所做的一切都会被记录下来。这包括输入、输出、错误、尴尬的停顿、错误或成功。如果在录制时,在你的终端中查看它,它就会被剪断。

当你演示完终端如何工作时,按 Ctrl+D 或输入 exit 来停止记录。

在这个例子中,产生的文件 mymovie.cast 是一个时间戳和动作的集合,它用作回放所使用的脚本(像电影脚本一样)。

{"version": 2, "width": 139, "height": 36, "timestamp": 1641457358, "env": {"SHELL": "/bin/bash", "TERM": "xterm-256color"}}
[0.05351, "o", "\u001b]0;seth:~\u0007"]
[0.05393, "o", "\u001b[1;31m$ \u001b[00m"]
[1.380059, "o", "e"]
[1.443823, "o", "c"]
[1.514674, "o", "h"]
[1.595238, "o", "o"]
[1.789562, "o", " "]
[2.09658, "o", "\""]
[2.19683, "o", "h"]
[2.403994, "o", "e"]
[2.466784, "o", "l"]
[2.711183, "o", "lo"]
[3.120852, "o", "\""]
[3.427886, "o", "
hello
"]
[...]

如果你犯了一个错误,你可以通过删除重现错误的行来去除这个错误。如果你发现自己在录制过程中做了很多命令行修改或冗长的停顿,你可以安装并使用 asciinema-edit 工具,它可以通过你定义的时间戳或消除空闲时间来剪掉这些“镜头”片段。

播放 Asciinema 电影

你可以使用 play 子命令回放你的 Asciinema:

$ asciinema play mymovie.cast

这会接管你的终端会话,并使其成为最接近银幕的形式(除了那次你通过 telnet 观看 ASCII 格式的星球大战)。这个基于文本的电影播放,向你的用户展示了一个复杂的任务是如何完成的。当然,播放的 实际 命令并不真正执行。这不是一个正在运行的 shell 脚本,所以即使你在电影中创建了一个 hello.txt 文件,在播放后也不会有一个新的 hello.txt。这只是为了展示。

然而,它又不仅仅是一个展示。你可以暂停 Asciinema 电影,选择你在屏幕上看到的文本,并将其粘贴到一个活动终端以运行该命令。Asciinema 是有用的文档。它向用户展示了如何完成一项任务,并允许他们进行复制和粘贴以确保准确性。

上传你的 Asciinema 电影

目前还没有像大片一样的 Asciinema 电影,但你可以把你的电影上传到 Asciinema.org,与全世界分享:

$ asciinema upload mymovie.cast

如果你习惯了 YouTube 上传所花费的时间,你会对 Asciinema 电影的传输速度感到惊喜。一个 .cast 文件通常只有几千字节,最多几兆字节,所以上传几乎是瞬间完成的。你不需要注册账户来分享你的电影,但所有无人认领的电影将在七天后会被删除。为了保存你的杰作,你可以在 Asciinema 上开设一个账户,然后坐等电影学院的电话。

Asciinema 作为文档

Asciinema 是演示最基本概念的好方法。因为它保留了从录制中复制和粘贴代码的能力,提供了按需暂停和播放的能力,并且完全准确地描绘了它的内容,它不仅仅是屏幕录像,它要好得多。无论你是用它来向你的朋友炫耀你的终端技能,还是用它来教育同事和学生,Asciinema 都是一个无价的、社交的、可利用的工具。


via: https://opensource.com/article/22/1/record-terminal-session-asciinema

作者:Seth Kenlon 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

谈到 Linux 和 UNIX 时,你一定听说过 “TTY” 这个术语,但是,这玩意是什么?

作为一个桌面用户,它对你有用吗?你需要它吗?你能用它做什么?

在本文中,让我向你介绍这些,帮助你熟悉 Linux 中的 TTY。

注意:这个问题没有明确的答案,但它与过去的输入/输出设备的交互方式有关。因此,你必须了解一些历史,才能清楚地了解情况。

“TTY” 背后的历史

一切始于 19 世纪 30 年代的 电传打印机 Teleprinter

电传打印机可以让你通过电线发送或接受消息,它取代了摩尔斯电码通信,那是一种需要两个操作员才能有效地相互通信的方式。

一台电传打印机只需要一个操作员就可以轻松地传递消息。虽然它没有现代布局的键盘,但它的系统后来由 Donald Murray 在 1901 年进行了改良,包括了一个类似打字机的键盘。

Murray 电码减少了操作员发送消息的工作量。这才使得电传打印机在 1908 年有了发展成为商业 电传打字机 Teletypewriter 的可能。TTY 即是电传打字机的缩写。

二战期间在伦敦实际使用的电传打字机 | 图片来源于维基百科

电传打字机和普通 打字机 typewriter 的区别在于,电传打字机连接到通信设备,直接发送输入的消息。

电传打字机使人类在没有计算机的情况下通过电线进行更快的通信成为可能

从这时起,“TTY” 一词就存在了。

(相对)现代的概念

现在,你一定想知道,它是如何进入现代计算机和 Linux 的?

最初是当电传打字机进入了市场,几年后半导体晶体管发展起来,然后演变成微处理器,为计算机的出现做好了准备。

最初的计算机没有键盘的概念, 打孔卡 Punch card 就是输入的方法。

一种插入计算机而不是通过键盘(TTY)输入的打孔卡计算机程序 | 图片来源于维基百科

随着计算机的发展,批量输入的打孔卡最终被电传打字机取代,成为一种方便的输入/输出设备。

1956 年的 LGP-30 计算机,附带 TTY

随着技术的进步,电传打字机被电子技术“虚拟化”了。因此,你不需要一个物理的、机械的 TTY,而是一个虚拟的电子 TTY。

早期的计算机甚至没有视频屏幕。字符被打印在纸上而不是显示在屏幕上。因此,你会看到“ 打印 print ”这个术语而不是“ 显示 display ”。随着技术的进步,视频显示后来被添加到终端中。

换句话说,你可能听说过把它们称为“视频终端”。或者,你可以称它们为“物理”终端。

后来,它们演变成具有更强的能力和功能的软件仿真的终端。

这就是所谓的“ 终端仿真器 terminal emulator ”,如 GNOME 终端或 Konsole,或者其他 你在 Linux 上找到的各种终端仿真器

所以,Linux 中的 TTY 到底是什么?

在 Linux 或 UNIX 中,TTY 变为了一个抽象设备。有时它指的是一个物理输入设备,例如串口,有时它指的是一个允许用户和系统交互的虚拟 TTY(参考此处)。

TTY 是 Linux 或 UNIX 的一个子系统,它通过 TTY 驱动程序在内核级别实现进程管理、行编辑和会话管理。

在编程的场景下,你还需要深入研究。但是考虑到本文的范围,这可能是一个容易理解的定义。

如果你好奇的话,你可以查看一个有点旧的资源(TTY 揭秘),它尽可能的澄清了 Linux 和 UNIX 系统中的 TTY 的各种技术细节。

事实上,每当你在系统中启动一个终端仿真器或使用任何类型的 shell 时,它都会与虚拟 TTY(也被称为 伪 TTY pseudo-TTY ,即 PTY)进行交互。

你可以在终端仿真器中输入 tty 来找到相关联的 PTY。

如何在 Linux 中访问 TTY?

在 Linux 中很容易访问 TTY。事实上,当我不知道它是什么时,我不小心打开了它,于是对要做什么、如何摆脱它感到恐慌。

在大多数 发行版 中,你可以使用以下键盘快捷键来得到 TTY 屏幕:

  • CTRL + ALT + F1 – 锁屏
  • CTRL + ALT + F2 – 桌面环境
  • CTRL + ALT + F3 – TTY3
  • CTRL + ALT + F4 – TTY4
  • CTRL + ALT + F5 – TTY5
  • CTRL + ALT + F6 – TTY6

你最多可以访问六个 TTY。但是,前两个快捷方式指向发行版的锁定屏幕和桌面环境。

而其他快捷方式将会让你进入一个命令行界面。

什么时候应该使用 TTY?

TTY 不仅是一个技术宝藏,即使像我这样不是开发人员的用户,它也很有用。

在图形桌面环境冻结的情况下,它应该可以派上用场。在某些情况下,从 TTY 重建桌面环境能帮助解决程序问题。

或者,你也可以选择在 TTY 中执行任务,例如更新 Linux 系统等。在这些情况下,你不希望显示问题中断你的进程。

最坏的情况是,如果图形用户界面失去响应,你可以进入 TTY 并重新启动计算机。

有些用户还喜欢在 TTY 的帮助下传输大文件(我不是其中之一)。

Linux 中的 TTY 命令

当你在终端模拟器中输入 tty 时,它将打印连接到标准输入的终端文件名,就像手册页描述的一样。

换句话说,要知道你连接的 TTY 编号,只需输入 tty。并且,如果有多个用户远程连接到 Linux 机器,你可以使用 who 命令来检查其他用户连接到的是哪个 TTY。


via: https://itsfoss.com/what-is-tty-in-linux/

作者:Ankush Das 选题:lujun9972 译者:MjSeven 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出