如何在 Linux 和 Mac 终端命令中添加别名

news/2024/5/4 1:47:35

在本文中,我们将探讨一种简单的技巧,可以节省您在终端中输入重复命令的时间。

作为开发者,我们花费大量时间在终端上执行命令。无论是浏览目录、运行脚本、更改 Node.js 版本还是版本控制命令,手动输入每个命令都是一项耗时的任务。

对于那些难以记住命令或其关联标志的人来说,这可能变得更加乏味。

别担心!这个问题有一个简单而强大的解决方案。它被称为终端别名。

(本文视频讲解:java567.com)

alias 命令

alias 命令允许您为现有命令创建快捷方式,使它们更容易记住和更快执行。当您定义别名时,实际上是为现有命令创建了一个新标签。

alias 命令的语法

语法很简单:您可以像在大多数编程语言中为变量赋值一样将命令分配给标签。

alias 别名='长命令'

设置别名的语法

让我们解析这个命令以更好地理解它:

  • alias:启用定义别名的终端命令。
  • 别名:这是您要分配给命令的名称或标签。基本上,您将在终端中键入此名称,而不是完整的命令。
  • '长命令':这是您要添加别名的命令。请确保用单引号 (') 包装命令,因为几乎所有命令都包含空格或特殊字符。

预定义别名

终端中已经设置了一些预定义别名。很有可能您甚至不知道它们的存在。

这些别名在系统(/etc/bash.bashrc)或用户特定(~/.bashrc)的 shell 配置文件中定义。

您可以通过执行不带任何选项或标志的 alias 命令来找到所有预定义别名的列表。

alias

以字母顺序列出所有预定义和用户定义的别名。

如何创建跨会话持久的别名

默认情况下,别名仅在当前会话中持久。这意味着,如果您关闭终端,则别名将被删除,之后您将无法使用它。

为了解决这个问题,您必须在 shell 的配置文件中定义别名。Shell 是一个解释器,驻留在终端内部,并在您和操作系统之间建立接口。因此,访问正确的 shell 以及修改正确的配置文件非常重要。

以下是三个最常用的 shell 应用程序的配置文件:

  1. Bash~/.bashrc
  2. Zsh~/.zshrc
  3. Fish~/.config/fish/config.fish

让我们尝试在 Bash 中添加一个新别名。

echo "alias nrd='npm run dev'" >> ~/.bashrc

让我们解析这个命令:

  • echo:一个终端命令,允许您在终端命令中写入内容。
  • "alias ...":这是我们在前面讨论的内容。它是一个别名命令,为 npm run dev 命令添加了 nrd 别名。
  • >>:告诉终端将左侧的内容(别名命令)追加到右侧的文件中。在我们的情况下,我们将其存储在 bash 配置文件中。
  • ~/.bashrc:这是从 echo 命令添加内容的文件。

不要忘记将 ~/.bashrc 替换为您的 shell 配置文件。

如何创建动态别名

通常情况下,您需要使用重复的命令,但根据您的需求稍作修改。最好的例子是 Git 命令。在这种情况下,您可以为命令添加一个替代项,该替代项在终端执行时将被动态选项/参数替换。

alias gpll='git pull --rebase origin ${branch}'

在执行命令时,您需要将 ${branch} 替换为您想要从中拉取更改的分支。这是从 main 分支拉取更改的方式:

gpll main

您还可以为别名添加多个替代项。只需确保以正确的实际值顺序编写别名即可:

alias gpll='git pull --rebase ${remote} ${branch}

在执行命令时,您需要将 ${remote}${branch} 替换为适当的值,如下所示:

gpll origin main

如何为多个命令创建别名

有时您需要按顺序使用多个命令。您也可以为此创建别名。使用 && 将每个命令分隔开,这会在左侧命令执行后执行右侧命令。

gpsh='git pull --rebase && git push'

如何删除别名

如果您想要从当前会话中删除别名,可以使用 unalias 命令。此命令只接受一个参数 —— 别名名称。

unalias my-alias-name

但是,如果您想要删除保存在配置文件中的别名,则需要从文件本身中删除它。您可以使用 Nano 等简单的文本编辑器来执行此操作。

nano ~/.bashrc

向下滚动到底部找到所有别名并删除您不再需要的别名。

完成后,您可以保存后退出编辑器。这是我可以介绍关于无法退出基于终端的文本编辑器的一个段子的地方。但是使用 Nano,很简单:

  1. 如果您在 Linux 上,请按 ctrl+x,如果您在 Mac 上,请按 ^+x
  2. Y 确认更改
  3. 根据您的操作系统按 Enter 或 Return 保存文件。

看?一点都不难 😃

注意事项

在创建别名时,有两件重要的事情您必须记住。

别名受 shell 限制

别名是特定于您正在使用的 shell 的。在一个 shell 中创建的别名在另一个 shell 中不起作用。

如果要在不同的会话中使用别名,您必须创建一个新的别名。没有绕过此注意事项的方法。您可以手动将别名保存到您使用的所有 shell 的配置文件中。

别名默认为会话绑定

别名仅在当前会话中可用。如果打开新的终端窗口或注销,该别名将不可用。

因此,建议始终将别名保存到配置文件中,以便随时使用。

简述

  • alias 命令将 快捷方式 添加到命令或一系列命令中。alias shortcut='existing valid command
  • 将别名保存到 shell 的配置文件中,以便跨会话持久化。每个 shell 都有一个唯一的配置文件。echo "nrd='npm run dev'" >> ~/.bashrc
  • 通过用占位符替换动态值来创建动态别名。占位符必须用 ${} 包装起来。在终端中应执行 alias gp='git pull origin ${branch} 作为 gp main
  • 使用 && 将多个命令添加到别名中。
  • 使用 unalias 命令从当前会话中删除别名。

总结

我希望本文能帮助您优化时间并提高开发者的生产力。如果确实如此,请不要忘记与同事分享,以便他们也可以提高效率。

(本文视频讲解:java567.com)


http://www.mrgr.cn/p/81435483

相关文章

计算机网络(三)数据链路层

数据链路层 基本概念 数据链路层功能: 在物理层提供服务的基础上向网络层提供服务,主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改在为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的…

MFC-error C2589: “(”:“::”右边的非法标记

MFC-error C2589: “(”:“::”右边的非法标记错误信息 出错语句 问题原因 解决办法 错误信息 ① 错误 C2589 “(”:“::”右边的非法标记② 错误 C2059 语法错误:“)” 出错语句inline double getFitnessScore (double max_range = std::numeric_limits<double>::max()…

学习-官方文档编辑方法

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

软件测试入门学习笔记

系统测试流程规范 一.研发模型 1.瀑布模型 从可行性研究&#xff08;或系统分析&#xff09;开始&#xff0c;需求 2.增量迭代模型 3.敏捷开发模型 二.质量模型 三.用例设计方法【重点】 1.等价类划分法 按照输入数据的效果相近或者相同划分类型&#xff0c;然后从这些分类…

ppt技巧:​如何将两个PPT幻灯片文件合并成一个?

第一种方式&#xff1a;复制粘贴幻灯片 1. 打开第一个PPT幻灯片文件&#xff0c;确保你已经熟悉该文件的内容和布局。 2. 打开第二个PPT幻灯片文件&#xff0c;浏览其中的所有幻灯片&#xff0c;选择你想要合并到第一个文件中的幻灯片。 3. 使用快捷键CtrlC&#xff08;Wind…

Python库、包、模块

一、什么是库、包、模块 无论是库、包、模块,其核心都在于封装了一系列的功能。 1、库library,这个概念并非Python里的概念,是从C语言过来的。库这个概念其实就是一堆代码一起完成一个或多个任务。非常类似函数,但是是以文件组织在一起。 2、模块module,这个概念就是Pytho…

解析OceanBase v4.2 Oracle 语法兼容之 LOCK TABLE

背景 在OceanBase V4.1及之前的版本中&#xff0c;尽管已经为Oracle租户兼容了LOCK TABLE相关的语法&#xff0c;包括单表锁定操作&#xff0c;和WAIT N&#xff0c; NOWAIT 关键字。但使用时还存在一些限制。例如&#xff1a;LOCK TABLE只能针对单表进行锁定&#xff0c;并不…

题解:P10365 [PA2024] Kraniki(评分:8.4)

前言 我们一场模拟赛的题,结果原题是新鲜出炉的。 小弟不才,感觉这题是做过的题中几乎最复杂的了。 既然搞懂了,就来写一发题解吧。 (题外话:目前最优解,我的常数真是小小又大大啊) "Up and down,glowin round..." Solution 1、一个经典的 Trick 直接模拟每一…

kubernetes CNI(Container Network Inferface)

为什么需要 CNI 在 kubernetes 中,pod 的网络是使用 network namespace 隔离的,但是我们有时又需要互相访问网络,这就需要一个网络插件来实现 pod 之间的网络通信。CNI 就是为了解决这个问题而诞生的。CNI 是 container network interface 的缩写,它是一个规范,定义了容器…

【LAMMPS学习】八、基础知识(3.6)计算热导率

8. 基础知识 此部分描述了如何使用 LAMMPS 为用户和开发人员执行各种任务。术语表页面还列出了 MD 术语&#xff0c;以及相应 LAMMPS 手册页的链接。 LAMMPS 源代码分发的 examples 目录中包含的示例输入脚本以及示例脚本页面上突出显示的示例输入脚本还展示了如何设置和运行各…

Sentinel 流控注解使用

大概原理&#xff1a;通过反射解析注解 SentinelResource信息完成调用&#xff0c;处理方法&#xff0c;类似AOP编程 处理方法的返回类型要保持一致&#xff0c;参数和顺序保持一致&#xff0c; 可以在参数列表最后加 com.alibaba.csp.sentinel.slots.block.BlockException; …

LLM推理加速,如何解决资源限制与效率挑战

©作者|Zane 来源|神州问学 LLM加速推理&#xff0c;GPU资源破局之道。 引言 大型语言模型&#xff08;LLM&#xff09;已经在多种领域得到应用&#xff0c;其重要性不言而喻。然而&#xff0c;随着这些模型变得越来越普遍&#xff0c;对GPU资源的需求也随之激增&#xff…

WIN11安装FFmpeg

WIN11安装FFmpeg 官网: https://ffmpeg.org/download.html#build-windows 找 Windows builds by BtbN,跳转到:https://github.com/BtbN/FFmpeg-Builds/releases 选择合适的版本下载 。 我这里下载的是 ffmpeg-master-latest-win64-gpl-shared下载完后,进行解压,然后把解压…

C++入门之类和对象(中)

C入门之类和对象(中) 文章目录 C入门之类和对象(中)1. 类的6个默认对象2. 构造函数2.1 概念2.2 特性2.3 补丁 3. 析构函数3.1 概念3.2 特性3.3 总结 4. 拷贝构造函数4.1 概念4.2 特性4.3 总结 1. 类的6个默认对象 如果一个类中什么都没有&#xff0c;那么这个类就是一个空类。…

20.安全性测试与评估

每年都会涉及&#xff1b;可能会考大题&#xff1b;多记&#xff01;&#xff01;&#xff01; 典型考点&#xff1a;sql注入、xss&#xff1b; 从2个方面记&#xff1a; 1、测试对象的功能、性能&#xff1b; 2、相关设备的工作原理&#xff1b; 如防火墙&#xff0c;要了解防…

解析几何简单计算

设点设线 例题 1 题目 已知椭圆方程 \(\dfrac{x^2}{4}+y^2=1\),设直线 \(l\) ,不经过点 \(P(0,1)\)且与椭圆相交于 \(A,B\) 两点,若直线 \(PA\) 与直线 \(PB\) 的斜率和为 \(-1\) ,证明:直线 \(l\) 过定点。 题解 由直线 \(l\) 不过点 \(P(0,1)\) 可设直线 \(l\) 方程: \…

苏维埃日报07.是谁在给二游带节奏?

前言 本人是个混二游圈挺久的老油条(某种意义上算3到4年老油条,方舟2020入的坑,2023跑原和铁那边去了然后又顺便去玩了崩三,2024回坑方舟+入坑雷索纳斯) 但是玩二游哪能不经历些腥风血雨(毕竟二游圈风气还是……) 嗯对,我一个原神玩家,哪能没见过反原反米斗士(甚至有…

双链表的实现

我们知道链表其实有很多种&#xff0c;什么带头&#xff0c;什么双向啊&#xff0c;我们今天来介绍双向带头循环链表&#xff0c;了解了这个其他种类的链表就很简单了。冲冲冲&#xff01;&#xff01;&#xff01; 链表的简单分类 链表有很多种&#xff0c;什么带头循环链表&…

OOP课程第一次博客

目录1.前言2.设计与分析1.第一次pta作业2.第二次pta作业3.第三次pta作业3.踩坑心得4.改进建议5.总结 1.前言 前三次pta题目集的最后一题主要是实现一个模拟小型测试的答题判题程序,第二次题目集在第一次的基础上新增了一个答卷类,第三次题目集在第二次题目集上新增了一个学生…

性能测试——性能测试-linux监控工具-Centos7.x安装Grafana

2个参考: 小菠萝:https://www.cnblogs.com/poloyy/p/12219145.htmlCentos7安装Grafana Grafana官网下载路径:https://grafana.com/grafana/download 1、直接执行以下命令进行安装:wget https://dl.grafana.com/oss/release/grafana-6.5.2-1.x86_64.rpm sudo yum localinsta…