我珍藏的 Bash 秘籍 | Linux 中国

Posted Linux中国

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我珍藏的 Bash 秘籍 | Linux 中国相关的知识,希望对你有一定的参考价值。

通过别名和其他捷径来提高你经常忘记的那些事情的效率。
-- Katie Mclaughlin

要是你整天使用计算机,如果能找到需要重复执行的命令并记下它们以便以后轻松使用那就太棒了。它们全都呆在那里,藏在 ~/.bashrc 中(或 的 ~/.zshrc 中),等待着改善你的生活!

在本文中,我分享了我最喜欢的这些助手命令,对于我经常遗忘的事情,它们很有用,也希望这可以帮助到你,以及为你解决一些经常头疼的问题。

完事吱一声

当我执行一个需要长时间运行的命令时,我经常采用多任务的方式,然后就必须回头去检查该操作是否已完成。然而通过有用的  命令,现在就不用再这样了(这是在 MacOS 上;请根据你的本地环境更改为等效的方式):

  
    
    
  
  1. function looooooooong {
  2. START=$(date +%s.%N)
  3. $*
  4. EXIT_CODE=$?
  5. END=$(date +%s.%N)
  6. DIFF=$(echo "$END - $START" | bc)
  7. RES=$(python -c "diff = $DIFF; min = int(diff / 60); print('%s min' % min)")
  8. result="$1 completed in $RES, exit code $EXIT_CODE."
  9. echo -e "\n⏰ $result"
  10. ( say -r 250 $result 2>&1 > /dev/null & )
  11. }

这个命令会记录命令的开始和结束时间,计算所需的分钟数,并“说”出调用的命令、花费的时间和退出码。当简单的控制台铃声无法使用时,我发现这个超级有用。

安装小助手

我在小时候就开始使用 Ubuntu,而我需要学习的第一件事就是如何安装软件包。我曾经首先添加的别名之一是它的助手(根据当天的流行梗命名的):

  
    
    
  
  1. alias canhas="sudo apt-get install -y"

GPG 签名

有时候,我必须在没有 GPG 扩展程序或应用程序的情况下给电子邮件签署  签名,我会跳到命令行并使用以下令人讨厌的别名:

  
    
    
  
  1. alias gibson="gpg --encrypt --sign --armor"
  2. alias ungibson="gpg --decrypt"

Docker

Docker 的子命令很多,但是 Docker compose 的更多。我曾经使用这些别名来将 --rm 标志丢到脑后,但是现在不再使用这些有用的别名了:

  
    
    
  
  1. alias dc="docker-compose"
  2. alias dcr="docker-compose run --rm"
  3. alias dcb="docker-compose run --rm --build"

Google Cloud 的 gcurl 助手

对于我来说,Google Cloud 是一个相对较新的东西,而它有。gcurl 是一个别名,可确保在用带有身份验证标头的本地  命令连接 Google Cloud API 时,可以获得所有正确的标头。

Git 和 ~/.gitignore

我工作中用 Git 很多,因此我有一个专门的部分来介绍 Git 助手。

我最有用的助手之一是我用来克隆 GitHub 存储库的。你不必运行:

  
    
    
  
  1. git clone git@github.com:org/repo /Users/glasnt/git/org/repo

我设置了一个克隆函数:

  
    
    
  
  1. clone(){
  2.     echo Cloning $1 to ~/git/$1
  3.     cd ~/git
  4.     git clone git@github.com:$1 $1
  5.     cd $1
  6. }

即使每次进入 ~/.bashrc 文件看到这个时,我总是会忘记和傻笑,我也有一个“刷新上游”命令:

  
    
    
  
  1. alias yoink="git checkout master && git fetch upstream master && git merge upstream/master"

给 Git 一族的另一个助手是全局忽略文件。在你的  中,你应该看到一个 core.excludesfile。如果没有,请,然后将你总是放到各个 .gitignore 文件中的内容填满它。作为 MacOS 上的 Python 开发人员,对我来说,这些内容是:

  
    
    
  
  1. .DS_Store     # macOS clutter
  2. venv/         # I never want to commit my virtualenv
  3. *.egg-info/*  # ... nor any locally compiled packages
  4. __pycache__   # ... or source
  5. *.swp         # ... nor any files open in vim

你可以在  或 GitHub 上的 上找到其他建议。

轮到你了

你最喜欢的助手命令是什么?请在评论中分享。


via: 

本文由  原创编译, 荣誉推出

以上是关于我珍藏的 Bash 秘籍 | Linux 中国的主要内容,如果未能解决你的问题,请参考以下文章

Emacs 调试秘籍之 GUD 调试器 | Linux 中国

使用 Argbash 来改进你的 Bash 脚本 | Linux 中国

shell秘籍Linux系统服务硬件监控邮件告警四式

通过 ssh 会话执行 bash 别名 | Linux 中国

求生之路2秘籍大全

献给命令行重度用户的一组实用 BASH 脚本 | Linux 中国