Linux 中的多个命令的别名

Alias Multiple Commands in Linux

我正在使用 git 管理网站。 git repository 的要求之一是 bare = true。它使用 post-receive 挂钩来管理来自本地计算机的推送。问题是有时我想使用 wp-admin 在线视图更改我网站上的 WordPress 目录。那么我会 ssh 进入目录和 运行 git --work-tree="BLAH" add .git --work-tree="BLAH" commit -m "BLAH"。有没有办法设置一个别名,比如 alias git="git --work-tree=\"BLAH\"" 并使它适用于所有 git 命令?

Linux 中有一个 .bashrc 文件。您可以编辑它以创建 alias 作为您最喜欢和经常使用的命令。

要永久创建别名,请将别名添加到您的 .bashrc 文件

gedit ~/.bashrc

别名应如下所示:

alias al='cmd'

您可以在 here 上阅读更多相关信息。

有时候 alias 是一个很棒的工具。然后有时候事情开始变得太复杂,而 shell 脚本更好。

要创建一个执行其他命令的命令,只需创建一个文件(可以称之为 git-add-all),然后键入以下内容:

#! /bin/bash

git --work-tree="BLAH" add .
git --work-tree="BLAH" commit -m "BLAH"

然后您可以 运行 脚本,只需执行以下操作:

bash git-add-all

更好的是,使脚本可执行:

chmod +x git-add-all

然后你就可以像使用任何命令一样使用它了:

./git-add-all

高级提示:

为了能够从任何 git 目录 运行 脚本,您可以 copy/move 将文件 $PATH 中的一个目录。例如 /usr/loca/bin。然后你可以简单地 运行 git-add-all 而不是 ./git-add-all.

更好的方法是创建您自己的个人脚本目录并将其包含在 $PATH 中。我个人使用~/bin。要将目录添加到 $PATH,您只需将以下内容添加到 .bashrc.profile

export PATH=/home/username/bin:$PATH

或者如果您是为 root 用户执行此操作:

export PATH=/root/bin:$PATH

如果有人好奇我是如何解决它的(感谢 ),我写了一个 bash 脚本然后提示用户输入,如下所示:

#!/bin/bash
function fix {
        git --work-tree="PATH_TO_WORKING_TREE" 
}
echo -n "git "
read -e INPUT
until [ "$INPUT" = "quit" ]; do
        fix $INPUT
        echo -n "git "
        read -e INPUT
done

运行它:

user@server [repo.git] $ git-fix
git status
# On branch master
nothing to commit (working directory clean)
git quit