Maison > Tutoriel système > Linux > le corps du texte

5 astuces et expériences peu connues sur les terminaux Linux

WBOY
Libérer: 2024-02-09 23:21:33
avant
1043 Les gens l'ont consulté

En tant que développeurs, nous préférons souvent utiliser l'interface de ligne de commande (CLI) au lieu de l'interface utilisateur graphique (GUI) pour les activités liées à la programmation. Bien sûr, bien que la plupart des interfaces graphiques fournissent des raccourcis clavier, lorsque nous utilisons des interfaces graphiques, nous devons souvent cliquer et déplacer la souris plusieurs fois pour effectuer des tâches. Au lieu de cela, le style d'interaction CLI incite les développeurs à accomplir presque toutes les tâches en utilisant des commandes et des langages de script qui ne nécessitent que les mains sur le clavier. De plus, nous pouvons même rendre les activités de développement plus efficaces en combinant plusieurs commandes.

En tant que programmeurs, nous utilisons généralement des commandes Unix ou Linux pour effectuer diverses opérations telles que le traitement des fichiers, la configuration du système et la gestion des requêtes réseau.

Si vous pouvez aller au-delà des commandes CLI connues et en savoir plus sur les composants internes de votre terminal, vous pouvez découvrir des moyens plus uniques d'augmenter votre productivité et votre confiance dans l'interface de votre terminal. Cet article expliquera certains concepts peu connus liés aux terminaux à travers des expériences pratiques.

Envoyer du contenu vers une autre fenêtre de terminal

Les programmeurs utilisent plusieurs écrans physiques sur leurs ordinateurs pour mener plusieurs activités de développement simultanément. Certains programmeurs ouvrent plusieurs fenêtres de terminal sur ces écrans. De plus, certains programmeurs utilisent souvent plusieurs fenêtres de terminal sur le même écran physique. Que se passe-t-il si nous devons envoyer le résultat d'une commande spécifique à une autre fenêtre de terminal existante ?

Chaque instance de programme de terminal GUI est connectée à un fichier de périphérique appelé fichier pseudo-terminal. Ces fichiers pseudo-terminaux aident les terminaux GUI à envoyer et à capturer les données d'E/S des processus enfants. Ouvrez une fenêtre de terminal et entrez la commande suivante pour afficher tous les pseudo-terminaux disponibles :

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

Si vous ouvrez uniquement une fenêtre de terminal, vous verrez deux fichiers de périphérique : ptmx0。当前终端使用/dev/pts/0文件处理进程的I/O数据——您可以使用tty找到当前的伪终端。例如,如果当前终端的伪终端是/dev/pts/0, et la commande suivante imprimera du texte sur le terminal actuel lui-même :

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

Grâce à ce concept expérimental, vous pouvez désormais envoyer le résultat de la commande directement vers une autre fenêtre de terminal existante et vice versa, comme indiqué ci-dessous.

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

Envoyer le résultat de la commande entre deux fenêtres de terminal

Recharge efficacement les définitions .bashrc

Si nous définissons des alias et des variables d'environnement via le terminal REPL, ces configurations seront supprimées lorsque nous quitterons le terminal. Par conséquent, les scripts fournis par l'interpréteur Bash seront exécutés - nous pouvons donc y ajouter des alias permanents, des variables d'environnement et des fonctions globales. .bashrc文件以添加所有启动脚本定义。每当你用 Bash 打开一个新的终端窗口时,.bashrc

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

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

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

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

source ~/.bashrc
Copier après la connexion

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

exec bash
Copier après la connexion

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

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

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

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

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

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

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

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                   
⚡ sleep 5; alert
Copier après la connexion
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$//'\'')"'
Copier après la connexion
使用终端作为计算器
Copier après la connexion

除了终端、代码编辑器和 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
Copier après la connexion

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

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

(cd backend; npm i)
Copier après la connexion

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

PORT=5000 ./linuxmi.py
Copier après la connexion

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

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

./linuxmi.py `find . -name "*.txt"`
Copier après la connexion

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

/path/bin /path/src
Copier après la connexion

如下图:

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

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

mkdir linuxmi/{linux,debian,ubuntu,fedora}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:lxlinux.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!