0

0

5 个鲜为人知的 Linux 终端提示和实验

WBOY

WBOY

发布时间:2024-02-09 23:21:33

|

1034人浏览过

|

来源于良许Linux教程网

转载

作为开发人员,我们往往更愿意使用命令行界面(cli)而不是图形用户界面(gui)来进行编程相关的活动。当然,虽然大部分 gui 提供了键盘快捷键,但是我们在使用 gui 时却经常需要通过多次点击鼠标和移动鼠标来完成任务。相反,cli 交互方式激励着开发人员通过使用只需要手放在键盘上的命令和脚本语言来完成几乎所有任务。此外,我们甚至能通过组合多个命令来提高开发活动的效率。

作为程序员,我们通常使用 Unix 或 Linux 命令来执行各种操作,例如文件处理、系统配置和网络请求处理。

如果你能超越已知的 CLI 命令,了解终端内部结构的更多信息,那么你就可以学习更多独特的方法来提高终端界面的生产力和信心。本文将通过实际实验,解释一些鲜为人知的与终端相关的概念。

将内容发送到另一个终端窗口

程序员在他们的计算机上使用多个物理屏幕来同时进行多项开发活动。一些程序员在这些屏幕上打开多个终端窗口。同时,一些程序员通常在同一个物理屏幕上使用多个终端窗口。如果我们需要将特定命令的输出发送到另一个现有的终端窗口怎么办?

每个 GUI 终端程序实例都连接到一个称为伪终端文件的设备文件。这些伪终端文件帮助 GUI 终端从子进程发送和捕获 I/O 数据。打开终端窗口并输入以下命令以查看所有可用的伪终端设备:

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                   
⚡ ls /dev/pts
0  ptmx
5 个鲜为人知的 Linux 终端提示和实验

如果您只打开一个终端窗口,您将看到两个设备文件:ptmx0。当前终端使用/dev/pts/0文件处理进程的I/O数据——您可以使用tty找到当前的伪终端。例如,如果当前终端的伪终端是/dev/pts/0,下面的命令会打印一些文本到当前终端本身:

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                   
⚡ echo "Hello!Linux迷 www.linuxmi.com " > /dev/pts/0
Hello!Linux迷 www.linuxmi.com
5 个鲜为人知的 Linux 终端提示和实验

使用这个实验概念,现在您可以将命令输出直接发送到另一个现有终端窗口,反之亦然,如下所示。

5 个鲜为人知的 Linux 终端提示和实验

在两个终端窗口之间发送命令输出

有效地重新加载 .bashrc 定义

如果我们通过终端REPL定义别名和环境变量,当我们从终端退出时,这些配置将被删除。因此,Bash 解释器提供.bashrc文件以添加所有启动脚本定义。每当你用 Bash 打开一个新的终端窗口时,.bashrc脚本就会被执行——所以我们可以在那里添加永久别名、环境变量和全局函数。

我们经常需要在开发工具配置过程中更新这个启动脚本。您通常如何使用新的启动脚本版本更新您的终端?一些程序员经常进入bash打开一个新的 Bash 解释器实例,但它会创建一个资源密集型进程链,如下所示:

5 个鲜为人知的 Linux 终端提示和实验

GNOME 系统监视器上的 Bash 进程链

有两种主要方法可以.bashrc有效地重新加载文件。第一种方法是使用内置source命令,如下所示。

source ~/.bashrc

上面的命令再次执行.bashrc脚本。第二种方法是用内置exec命令替换当前的 shell 实例。

exec bash

上述两种方式都比bash手动输入或打开新的终端窗口更好、更有效率。

通过铃声和警报了解任务完成情况

程序员在终端窗口中运行各种命令。有时,他们会输入即时命令,例如lspwd。但是,有时,他们必须使用终端命令启动长时间运行的任务。例如,由于深度依赖安装,React 应用程序或 React Native 应用程序创建命令通常需要更多时间。

一些程序员通常会输入这些长时间运行的命令并等待完成。同时,一些程序员从事另一项活动,并经常检查长时间运行的命令的状态。让我们找到一种更高效的方式来管理长时间运行的任务。

如果您总是戴耳机或使用扬声器,播放哔声是识别长时间运行命令完成的好方法。看下面的命令

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                   
⚡ sleep 5; printf "\a"
5 个鲜为人知的 Linux 终端提示和实验

上述命令在sleep命令完成后播放哔声。但是,如果有多个长时间运行的命令,而您的扬声器已静音怎么办?然后,我们可以使用预定义的alert别名,如下所示。

故事AI绘图神器
故事AI绘图神器

文本生成图文视频的AI工具,无需配音,无需剪辑,快速成片,角色固定。

下载
linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                   
⚡ sleep 5; alert
5 个鲜为人知的 Linux 终端提示和实验

警报 alert 别名alias通知Ubuntu上的命令完成

上面的命令显示了使用先前输入的命令片段完成的任务。

alert别名在大多数 GNU/Linux 发行版中都可用,但如果它不适合您,您可以将以下代码段添加到您的.bashrc文件中以激活它:

# 为长时间运行的命令添加“alert”别名。使用像这样:
#   sleep 10; alert
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
使用终端作为计算器

除了终端、代码编辑器和 Web 浏览器之外,程序员不会经常使用许多 GUI 应用程序。但是,在某些情况下,Web 开发人员倾向于使用像 Postman 这样的 GUI 工具来测试 Web API,而不是像curl这样的命令行工具。

每个 GNU/Linux 操作系统都提供一个 GUI 计算器程序,但大多数程序员并不倾向于将它用于日常计算。如果我们需要进行单位换算或者货币换算,我们可以在搜索引擎中输入它来寻找答案。当我们使用算法解决问题时,我们经常需要进行各种计算。如果你需要计算一个数学表达式——当你处理一个编程任务时怎么办?

bc -l我们可以使用命令(-l启用浮点计算)打开一个命令行计算器。看下面的预览:

5 个鲜为人知的 Linux 终端提示和实验

尽管程序名称是基本计算器basic calculator(也称为bc),但它支持变量定义、复杂表达式和数学函数。如果您需要使用现代语言语法执行数学运算,您还可以将 Python REPL 用作简单的计算器。例如,以下 Python 表达式计算半径为 7 个单位的圆的周长:

2 * math.pi * 7

子shell、命令组合和大括号扩展

Bash 是一种命令语言,因此它提供了许多功能来高效地编写命令并制作更好的自动化脚本。Bash 提供了一种创建子 shell 的方法,我们可以使用它来初始化隔离的脚本执行环境。例如,我们可以更改特定命令的当前工作目录,而不会影响终端上的当前工作目录,如下所示

(cd backend; npm i)

Bash 还允许您更改进程的环境变量。看下面的例子:

PORT=5000 ./linuxmi.py

上述命令PORT只为 Python 脚本执行环境设置环境变量,不更新原始 shell 实例。

有时,我们可以组合几个命令来更快地完成任务。&&我们可以使用、|||和等 Bash 运算符将多个命令连接成一个命令;。命令替换功能还可以帮助我们组合多个命令。例如,我们可以使用以下命令仅将当前目录的文本文件作为参数发送到脚本:

./linuxmi.py `find . -name "*.txt"`

大括号扩展功能有助于根据范围定义生成字符串。例如,{1..5}扩展定义生成一个以空格分隔的整数列表,范围为15。同样,/path/{bin,src}返回以下输出:

/path/bin /path/src

如下图:

5 个鲜为人知的 Linux 终端提示和实验

现在我们可以结合mkdir命令和大括号替换来一次创建多个子目录。

mkdir linuxmi/{linux,debian,ubuntu,fedora}

相关专题

更多
python开发工具
python开发工具

php中文网为大家提供各种python开发工具,好的开发工具,可帮助开发者攻克编程学习中的基础障碍,理解每一行源代码在程序执行时在计算机中的过程。php中文网还为大家带来python相关课程以及相关文章等内容,供大家免费下载使用。

769

2023.06.15

python打包成可执行文件
python打包成可执行文件

本专题为大家带来python打包成可执行文件相关的文章,大家可以免费的下载体验。

661

2023.07.20

python能做什么
python能做什么

python能做的有:可用于开发基于控制台的应用程序、多媒体部分开发、用于开发基于Web的应用程序、使用python处理数据、系统编程等等。本专题为大家提供python相关的各种文章、以及下载和课程。

764

2023.07.25

format在python中的用法
format在python中的用法

Python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

639

2023.07.31

python教程
python教程

Python已成为一门网红语言,即使是在非编程开发者当中,也掀起了一股学习的热潮。本专题为大家带来python教程的相关文章,大家可以免费体验学习。

1305

2023.08.03

python环境变量的配置
python环境变量的配置

Python是一种流行的编程语言,被广泛用于软件开发、数据分析和科学计算等领域。在安装Python之后,我们需要配置环境变量,以便在任何位置都能够访问Python的可执行文件。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

549

2023.08.04

python eval
python eval

eval函数是Python中一个非常强大的函数,它可以将字符串作为Python代码进行执行,实现动态编程的效果。然而,由于其潜在的安全风险和性能问题,需要谨慎使用。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

579

2023.08.04

scratch和python区别
scratch和python区别

scratch和python的区别:1、scratch是一种专为初学者设计的图形化编程语言,python是一种文本编程语言;2、scratch使用的是基于积木的编程语法,python采用更加传统的文本编程语法等等。本专题为大家提供scratch和python相关的文章、下载、课程内容,供大家免费下载体验。

709

2023.08.11

Java JVM 原理与性能调优实战
Java JVM 原理与性能调优实战

本专题系统讲解 Java 虚拟机(JVM)的核心工作原理与性能调优方法,包括 JVM 内存结构、对象创建与回收流程、垃圾回收器(Serial、CMS、G1、ZGC)对比分析、常见内存泄漏与性能瓶颈排查,以及 JVM 参数调优与监控工具(jstat、jmap、jvisualvm)的实战使用。通过真实案例,帮助学习者掌握 Java 应用在生产环境中的性能分析与优化能力。

19

2026.01.20

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.5万人学习

Git 教程
Git 教程

共21课时 | 2.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号