命令别名:定义自己的命令(代码片段)

tealex tealex     2023-03-31     530

关键词:

学习如何创建别名:你可以将太长或难以记忆的命令打包成你自己构建的命令。

命令别名Alias 在 Linux shell 中指的是将一些太长或者太难记的多个命令组合起来,成为一个由用户自己构建的命令。

可以通过 alias 命令来创建命令别名。在 alias 后面跟上想要创建的别名名称、一个等号(=),以及希望使用这个别名来执行的命令,这样一个命令别名就创建好了。举个例子,ls 命令在默认情况下是不会对输出的内容进行着色的,这样就不能让用户一眼分辨出目录、文件和连接了。对此,可以创建这样一个命令别名,在输出目录内容的时候为输出内容着色:

alias lc='ls --color=auto'

其中 lc 是自定义的命令别名,代表 “list with color” 的意思。在创建命令别名的时候,需要先确认使用的别名是不是已经有对应的命令了,如果有的话,原本的命令就会被覆盖掉了。注意,定义命令别名的时候,= 两端是没有空格的。当运行 lc 的时候,就相当于执行了 ls --color 命令。

此后,执行 lc 列出目录内容的时候,就会输出带有着色的内容了。

你可能会发现你在执行 ls 的时候,本来就是输出带有着色的内容。那是因为大部分 Linux 发行版都已经将 ls 设定为带有着色的命令别名了。

可以直接使用的命令别名

实际上,执行不带任何内容的 alias 命令就可以看到当前已经设定的所有命令别名。对于不同的发行版,包含的命令别名不尽相同,但普遍都会有以下这些命令别名:

  • alias ls='ls --color=auto':这个命令别名在前面已经提到过了。--color=auto 参数会让 ls 命令在通过标准输出在终端中显示内容时进行着色,而其它情况(例如通过管道输出到文件)下则不进行着色。--color 这个参数还可以设置为 always 或never
  • alias cp='cp -i'-i 参数代表 “交互interactive”。在使用 cp 命令复制文件的时候,可能会无意中覆盖现有的文件,在使用了 -i 参数之后,cp 命令会在一些关键操作前向用户发出询问。
  • alias free='free -m':在 free 命令后面加上 -m 参数,就可以将输出的内存信息以 MiB 这个更方面阅读和计算的单位输出,而不是默认的 Byte 单位。

你使用的发行版自带的命令别名可能多多少少和上面有些差别。但你都可以在命令前面加上 \\ 修饰符来使用命令的最基本形式(而不是别名)。例如:

\\free

就是直接执行 free,而不是 free -m。还有:

\\ls

执行的就是不带有--color=auto 参数的 ls

如果想要持久地保存命令别名,可以在 .bashrc 文件中进行修改,而它来源于我们的 /etc/skel 目录[1]。

使用命令别名纠正错误

各种发行版的设计者都会尽量设置用户可能需要用到的命令别名。但是不同的用户的习惯各不相同,一些用户可能刚从其它操作系统迁移到 Linux,而不同操作系统的基本命令又因 shell 而异。因此,对于刚从 Windows/MS-DOS 系统迁移到 Linux 系统的用户,不妨使用

alias dir='ls'

这个命令别名来列出目录内容。

类似地,

alias copy='cp'
alias move='mv'

也可以在尚未完全熟悉 Linux 的时候用得顺手。

还有一种情况,就是在经常出现输入错误的场合中做出容错,例如,对于我来说, Administration 这个单词就很难快速正确地输入,因此很多用户都会设置类似这样的别名:

alias sl='ls'

以及

alias gerp='echo "You did it *again*!"; grep'

grep 命令最基本的用途就是在文件中查找字符串,在熟悉这个命令之后,它一定是最常用的命令之一,因此输入错误导致不得不重输命令就很令人抓狂。

在上面 gerp 的例子中,包含的不只是一条命令,而是两条。第一条命令 echo "You did it *again*!" 输出了一条提醒用户拼写错误的消息,然后使用分号()把两条命令隔开,再往后才是 grep 这一条正确的命令。

在我的系统上使用 gerp 来搜索 /etc/skel/.bashrc 中包含 “alias” 这个单词的行,就会输出以下内容:

$ gerp -R alias /etc/skel/.bashrc
You did it *again*! 
       alias ls='ls --color=auto' 
       alias grep='grep --colour=auto' 
       alias egrep='egrep --colour=auto' 
       alias fgrep='fgrep --colour=auto' 
alias cp="cp -i"
alias df='df -h'
alias free='free -m'
alias np='nano -w PKGBUILD' 
alias more=less 
shopt -s expand_aliases

在命令别名中以固定的顺序执行多个命令,甚至更进一步,把多个命令串连起来,让后面的命令可以使用到前面的命令的执行结果。这样的做法已经非常接近 bash 脚本了。这篇文章已经接近尾声,我们将在下一篇文章中详细介绍。

如果想要删除在终端中临时设置的别名,可以使用 unalias 命令。

unalias gerp

如果想要持久保存命令别名,可以将命令别名放在用户主目录的 .bashrc 文件中,

bash的特性(代码片段)

一、命令的别名——(自定义命令)aliasalias-定义或显示别名。格式:alias[-p][名称[=值]...]注意:如果alias命令不带任何选项和参数,则表示显示所有已经定义并生效的别名设置;unaliasunalias-从别名定义列表中删除每一个"名字"。格... 查看详情

ualias命令详解(代码片段)

 基础命令学习目录首页 原文链接:https://blog.csdn.net/yexiangcsdn/article/details/82782667 个人分类:LinuxCommand所属专栏:Linux/Unix系统命令全集 alias命令用来设置指令的别名。我们可以使用该命令可以将一些较长的命令进... 查看详情

10个提高效率的linux命令别名(代码片段)

...nux环境下工作的工程师,一定会对那些繁琐的指令和参数命令行印象深刻吧。而且,可怕的不是繁琐,而是需要大量重复输入这些繁琐的命令。在Linux下我们有个别名命令alias,可以将那些繁琐的命令自定义为我们容易记住的别... 查看详情

10个提高效率的linux命令别名(代码片段)

...nux环境下工作的工程师,一定会对那些繁琐的指令和参数命令行印象深刻吧。而且,可怕的不是繁琐,而是需要大量重复输入这些繁琐的命令。在Linux下我们有个别名命令alias,可以将那些繁琐的命令自定义为我们容易记住的别... 查看详情

如何(是否可能)创建运行多个命令的hg命令别名?(代码片段)

我想在我的hgrc文件中定义一个调用多个命令的Mercurial命令别名。例如,我想做类似以下的事情:[alias]giveup=revert--all--no-backup;purgesyncprod=fetchproduction;pushproduction这将允许我调用hgsyncprod并让它调用fetch然后推送。无法确定是否存在... 查看详情

alias命令(代码片段)

查看ll命令出处:whichll查看系统有那些alias命令:alias扩展:查看PATH变量内容:echo$PATH使用which命令查看命令在哪:which+命令例:whichmv自定义命令别名:alias名字=‘命令‘例:aliasceshi=‘ls-lha‘删除命令别名:unalias+命令别名例:... 查看详情

常用命令(代码片段)

...息SEEALSO其它帮助参考infohelpcommand--helpcommand-h别名,内部命令,外部命令的优先级为:别名>内部命令>外部命令文件管理目录操作alias定义别名:对常用较长的命令设置一个简单的别名,方便使用unlais撤消别名??-a取消所有别名... 查看详情

命令别名

定义一个命令别名,引用另一个命令的执行结果命令别名功能:在管理和维护Linux系统的过程中,将会使用到大量命令,有一些很长的命令或用法经常被用到,重复而频繁地输入某个很长命令或用法是不可取的。这时可以使用命... 查看详情

cmder:懒癌必备!从此告别记事本记命令的日子(代码片段)

前言平时开发中遇到这样那样的命令需要记下来,一般做法是这样。新建记事本将需要记下的关键命令保存。每次需要使用时,粘贴复制即可。好像没什么毛病!直到遇到了Cmder。。。当看到同事分析问题时在Cmder里命令快捷键... 查看详情

window添加命令别名的方法(代码片段)

...设置别名CMD添加别名的方法设置临时的别名可以通过doskey命令实现。doskeyls=echo======^&^&dir/b$*^&^&echo===== 查看详情

text常用git命令的别名(代码片段)

查看详情

sh有用的bash别名或命令(代码片段)

查看详情

linux操作系统常用命令的汇总(代码片段)

Linux操作系统常用命令的汇总一、设置别名功能:通过别名机制简化常用的、比较长的命令格式:alias命令别名='命令'#(“=”两边不能有空格)unalias命令别名#取消设置别名思路:先设置别名,... 查看详情

ruby打印命令历史记录的排序列表。有助于确定需要别名的命令。(代码片段)

查看详情

linux别名,yum源,vim使用技巧(代码片段)

本篇主要讲述:1 命令的别名2 软件包管理3 配置永久主机名 4 使用vim创建/修改文件 1、命令的别名alias简化复杂命令的输入[root@A/]#aliasmyls=‘ls-lh‘#定义别名等号两边不能有空格[root@A/]#myls/root/[root@A/]#alias#... 查看详情

命令定义别名

如何定义一个命令的别名,如何在命令中引导另一个命令的执行结果命令:alias语法:aliaszzz=‘ll’例子:创建别名2016-09-25_16-46-29.png[[email protected]zzz]#aliaszzz=‘ll‘[[email protected]zzz]#[[email protected]zzz]#lsaaazlm[[email 查看详情

markdown命令行别名(代码片段)

查看详情

git基础教程(11)git命令别名(代码片段)

...是你大概应该知道如何使用它们。Git并不会在你输入部分命令时自动推断出你想要的命令。如果不想每次都输入完整的Git命令,可以通过gitconfig文件来轻松地为每一个命令设置一个别名。这里有一些例子你可以试试:$gitc... 查看详情