百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 优雅编程 > 正文

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

sinye56 2024-11-12 12:43 4 浏览 0 评论

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

作为开发者,我们花费大量时间在终端上执行命令。无论是浏览目录、运行脚本、更改 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)

相关推荐

RHEL8和CentOS8怎么重启网络

本文主要讲解如何重启RHEL8或者CentOS8网络以及如何解决RHEL8和CentOS8系统的网络管理服务报错,当我们安装好RHEL8或者CentOS8,重启启动网络时,会出现以下报错:...

Linux 内、外网双网卡路由配置

1.路由信息的影响Linux系统中如果有多张网卡的情况下,如果路由信息配置不正确,...

Linux——centos7修改网卡名

修改网卡名这个操作可能平时用不太上,可作为了解。修改网卡默认名从ens33改成eth01.首先修改网卡配置文件名(建议将原配置文件进行备份)...

CentOS7下修改网卡名称为ethX的操作方法

?Linux操作系统的网卡设备的传统命名方式是eth0、eth1、eth2等,而CentOS7提供了不同的命名规则,默认是基于固件、拓扑、位置信息来分配。这样做的优点是命名全自动的、可预知的...

Linux 网卡名称enss33修改为eth0

一、CentOS修改/etc/sysconfig/grub文件(修改前先备份)为GRUB_CMDLINE_LINUX变量增加2个参数(net.ifnames=0biosdevname=0),修改完成...

CentOS下双网卡绑定,实现带宽飞速

方式一1.新建/etc/sysconfig/network-scripts/ifcfg-bond0文件DEVICE=bond0IPADDR=191.3.60.1NETMASK=255.255.2...

linux 双网卡双网段设置路由转发

背景网络情况linux双网卡:网卡A(ens3)和网卡B(...

Linux-VMware设置网卡保持激活

Linux系统只有在激活网卡的状态下才能去连接网络,进行网络通讯。修改配置文件(永久激活网卡)...

VMware虚拟机三种网络模式

01.VMware虚拟机三种网络模式由于linux目前很热门,越来越多的人在学习linux,但是买一台服务放家里来学习,实在是很浪费。那么如何解决这个问题?虚拟机软件是很好的选择,常用的虚拟机软件有v...

Rocky Linux 9/CentOS Stream 9修改网卡配置/自动修改主机名(实操)

推荐...

2023年最新版 linux克隆虚拟机 解决网卡uuid重复问题

问题描述1、克隆了虚拟机,两台虚拟机里面的ip以及网卡的uuid都是一样的2、ip好改,但是uuid如何改呢?解决问题1、每台主机应该保证网卡的UUID是唯一的,避免后面网络通信有问题...

Linux网卡的Vlan配置,你可能不了解的玩法

如果服务器上连的交换机端口已经预先设置了TRUNK,并允许特定的VLAN可以通过,那么服务器的网卡在配置时就必须指定所属的VLAN,否则就不通了,这种情形在虚拟化部署时较常见。例如在一个办公环境中,办...

Centos7 网卡绑定

1、切换到指定目录#备份网卡数据cd/etc/sysconfig/network-scriptscpifcfg-enp5s0f0ifcfg-enp5s0f0.bak...

Linux搭建nginx+keepalived 高可用(主备+双主模式)

一:keepalived简介反向代理及负载均衡参考:...

Linux下Route 路由指令使用详解

linuxroute命令用于显示和操作IP路由表。要实现两个不同子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。在Linux系统中,设置路由通常是为了解决以下问题:该...

取消回复欢迎 发表评论: