0%

为终端命令设置alias别名

摘要:使用 alias 指令,为终端常用命令设计简称,提升终端操作效率。

一、alias 别名简介


在 Linux 系统当中,alias 命令用于设置指令的别名。
用户可利用 alias,自定指令的别名。

语法:alias[别名]=[指令名称]

若仅输入 alias,则可列出目前所有的别名设置。alias 的效力仅及于该次登入的操作。若要每次登入是即自动设好别名,可在.profile 或.cshrc 中设定指令的别名。

二、macOS 系统 bash 或 zsh 设置别名


一些常用的命令一遍遍的敲比较浪费时间,可以通过别名的方式简化操作。

对于 bash 终端

1、编辑~/.bash_profile, 比如添加 PS:=两边没有空格:

1
2
3
4
alias co='git checkout'
alias myip="ifconfig | grep '192'"
alias fetch=' git fetch upstream'
alias merge='git merge'

PS: 如果没有.bash_profile文件,那就直接创建一个.bash_profile,然后进行编辑。

1
2
touch .bash_profile
vim .bash_profile

2、按照正常的逻辑直接执行(或者重启一下终端)。

1
source ~/.bash_profile

对于 zsh 终端

如果使用的是zsh, 相应配置了oh-my-zsh。那么以上的管理配置会发现无效,因为配置了 zsh 之后,打开新的终端不会按照bash的方式走 .bash_profile,source ~/.bash_aliases没有执行,因此发现就没有起作用。而是走了. zshrc 文件。

简单的操作, 可以直接修改~/.zshrc,把原来的 alias 复制进去,通常 alias 添加到文件的最后,再source一下。

1
2
3
nano ~/.zshrc
## 末尾添加alias并保存 例如:alias rezsh="source ~/.zshrc"
source ~/.zshrc

三、Windows 系统 Powershell 设置别名


原理概述

如果搜索关键词 windows powershell set user alias,通常谷歌会给出微软官方文档,但是这个文档只是告诉我们如何在脚本里面设置临时的别名,如果要设置永久别名,该怎么办?实际上,“别名”这种东西,也就是 alias,几乎所有的脚本语言,都没有所谓的“永久别名”(Permanent alias),我们使用 Linux bash 、Cmder 之类的脚本工具,打开终端时,系统会默认执行一个脚本文件( bash 是用户目录下的 .bashrc,Cmder 是 config/user_aliases.cmd ),而这样的脚本文件里,就包含了别名的定义。这也是为什么,我们在 Linux 类系统中,修改 .bashrc 后,必须要重新登出登录、或者 source .bashrc 的原因了。

所以,我们只要修改 Windows Powershell 启动时执行的文件就行了。很多论坛里面说,默认执行的脚本是 $Home\Documents\profile.ps1 ,也就是 C:\Users\你的用户名\Documents\profile.ps1 ,但是这并不正确,最好的方式是,先启动 PowerShell ,再执行 echo $profile,这样得到的文件路径,才是 PowerShell 的默认执行文件路径。

查看现有别名

  • 查看此 Session 中已经设定的所有别名:Get-Aliasgal
1
2
3
4
5
6
7
PS C:\> Get-Alias
CommandType Name
----------- ----
Alias % -> ForEach-Object
Alias ? -> Where-Object
Alias ac -> Add-Content
Alias asnp -> Add-PSSnapin
  • 查看某别名的原命令,如ls的原命令:> Get-Alias ls
  • 查看某原命令的别名,如Get-ChildItem的别名:> Get-Alias -Definition Get-ChildItem

创建永久的别名

在 PowerShell 中直接使用Set-AliasNew-Alias命令创建的别名在关闭此 Session 后即会失效,防止此现象的方法是将此命令写入Windows PowerShell profile文件。
查看此文件在计算机中的位置:

1
PS C:\> $profile

一般该文件在没有创建前是不存在的,使用以下命令为当前用户创建 profile 命令并返回文件地址:

1
PS C:\> New-Item -Type file -Force $profile

一般创建的位置在~\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

别名格式:function 别名 { 需要替代的命令 }

打开文件,创建别名upmywikiupkibana

1
2
function upmywiki {d:;cd D:\mywiki\mywiki;tiddlywiki --server 23456}
function upkibana {c:;cd C:\kibana-7.8.0-windows-x86_64\kibana-7.8.0-windows-x86_64\bin;./kibana.bat}

重启 PowerShell 试试效果:

1
PS C:\> upmywiki

如果 Powershell 报错

提示权限类问题,尝试以下步骤:

  • 以管理员身份打开 Powershell 执行命令Set-ExecutionPolicy RemoteSigned
  • 重新启动 PowerShell ,应该已经可以了