设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 手机 数据 公司
当前位置: 首页 > 服务器 > 搭建环境 > Windows > 正文

不可或缺的Bash别名(4)

发布时间:2019-08-05 12:36 所属栏目:117 来源:Seth Kenlon
导读:该别名使用一个鲜为人知的 mv 标志( -t ),使你能够提供作为最终移动目标的参数,而忽略了首先列出要移动的文件的通常要求。现在,你可以使用新命令将文件和文件夹移动到系统垃圾桶: $ ls foo bar $ tcn foo $ l

该别名使用一个鲜为人知的 mv 标志(-t),使你能够提供作为最终移动目标的参数,而忽略了首先列出要移动的文件的通常要求。现在,你可以使用新命令将文件和文件夹移动到系统垃圾桶:

  1. $ ls
  2. foo  bar
  3. $ tcn foo
  4. $ ls
  5. bar

现在文件已“消失”,只有在你一头冷汗的时候才意识到你还需要它。此时,你可以从系统垃圾桶中抢救该文件;这肯定可以给 Bash 和 mv 开发人员提供一些帮助。

注意:如果你需要一个具有更好的 FreeDesktop 兼容性的更强大的垃圾桶命令,请参阅 Trashy。

简化 Git 工作流

每个人都有自己独特的工作流程,但无论如何,通常都会有重复的任务。如果你经常使用 Git,那么你可能会发现自己经常重复的一些操作序列。也许你会发现自己回到主分支并整天一遍又一遍地拉取最新的变化,或者你可能发现自己创建了标签然后将它们推到远端,抑或可能完全是其它的什么东西。

无论让你厌倦一遍遍输入的 Git 魔咒是什么,你都可以通过 Bash 别名减轻一些痛苦。很大程度上,由于它能够将参数传递给钩子,Git 拥有着丰富的内省命令,可以让你不必在 Bash 中执行那些丑陋冗长的命令。

例如,虽然你可能很难在 Bash 中找到项目的顶级目录(就 Bash 而言,它是一个完全随意的名称,因为计算机的绝对顶级是根目录),但 Git 可以通过简单的查询找到项目的顶级目录。如果你研究过 Git 钩子,你会发现自己能够找到 Bash 一无所知的各种信息,而你可以利用 Bash 别名来利用这些信息。

这是一个来查找 Git 项目的顶级目录的别名,无论你当前在哪个项目中工作,都可以将目录改变为顶级目录,切换到主分支,并执行 Git 拉取:

  1. alias startgit='cd `git rev-parse --show-toplevel` && git checkout master && git pull'

这种别名绝不是一个普遍有用的别名,但它演示了一个相对简单的别名如何能够消除大量繁琐的导航、命令和等待提示。

一个更简单,可能更通用的别名将使你返回到 Git 项目的顶级目录。这个别名非常有用,因为当你在一个项目上工作时,该项目或多或少会成为你的“临时家目录”。它应该像回家一样简单,就像回你真正的家一样,这里有一个别名:

  1. alias cg='cd `git rev-parse --show-toplevel`'

现在,命令 cg 将你带到 Git 项目的顶部,无论你下潜的目录结构有多深。

切换目录并同时查看目录内容

(据称)曾经一位著名科学家提出过,我们可以通过收集极客输入 cd 后跟 ls 消耗的能量来解决地球上的许多能量问题。

这是一种常见的用法,因为通常当你更改目录时,你都会有查看周围的内容的冲动或需要。

但是在你的计算机的目录树中移动并不一定是一个走走停停的过程。

这是一个作弊,因为它根本不是别名,但它是探索 Bash 功能的一个很好的借口。虽然别名非常适合快速替换一个命令,但 Bash 也允许你在 .bashrc 文件中添加本地函数(或者你加载到 .bashrc 中的单独函数文件,就像你的别名文件一样)。

为了保持模块化,创建一个名为 ~/.bash_functions 的新文件,然后让你的 .bashrc 加载它:

  1. if [ -e $HOME/.bash_functions ]; then
  2.     source $HOME/.bash_functions
  3. fi

在该函数文件中,添加这些代码:

  1. function cl() {
  2. DIR="$*";
  3. # if no DIR given, go home
  4. if [ $# -lt 1 ]; then
  5. DIR=$HOME;
  6. fi;
  7. builtin cd "${DIR}" && \
  8. # use your preferred ls command
  9. ls -F --color=auto
  10. }

将函数加载到 Bash 会话中,然后尝试:

  1. $ source ~/.bash_functions
  2. $ cl Documents
  3. foo bar baz
  4. $ pwd
  5. /home/seth/Documents
  6. $ cl ..
  7. Desktop  Documents  Downloads
  8. [...]
  9. $ pwd
  10. /home/seth

函数比别名更灵活,但有了这种灵活性,你就有责任确保代码有意义并达到你的期望。别名是简单的,所以要保持简单而有用。要正式修改 Bash 的行为,请使用保存到 PATH 环境变量中某个位置的函数或自定义的 shell 脚本。

附注,有一些巧妙的奇技淫巧来实现 cdls 序列作为别名,所以如果你足够耐心,那么即使是一个简单的别名也永无止限。

开始别名化和函数化吧

可以定制你的环境使得 Linux 变得如此有趣,提高效率使得 Linux 可以改变生活。开始使用简单的别名,进而使用函数,并在评论中发布你必须拥有的别名!

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读