我珍藏的 Bash 秘籍
创始人
2024-03-02 04:26:25
0

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

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

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

完事吱一声

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

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

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

安装小助手

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

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

GPG 签名

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

alias gibson="gpg --encrypt --sign --armor"
alias ungibson="gpg --decrypt"

Docker

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

alias dc="docker-compose"
alias dcr="docker-compose run --rm"
alias dcb="docker-compose run --rm --build"

Google Cloud 的 gcurl 助手

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

Git 和 ~/.gitignore

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

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

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

我设置了一个克隆函数:

clone(){
    echo Cloning $1 to ~/git/$1
    cd ~/git
    git clone git@github.com:$1 $1
    cd $1
}

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

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

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

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

你可以在 Gitignore.io 或 GitHub 上的 Gitignore 存储库上找到其他建议。

轮到你了

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


via: https://opensource.com/article/20/1/bash-scripts-aliases

作者:Katie McLaughlin 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

基础Ubuntu网络代理的...
Ubuntu系统的网络代理配置是许多用户日常使用中的必备技能,从基...
2025-08-24 16:46:06
编写CentOS系统下的B...
面对重复繁琐的服务器操作,手动输入命令效率低下且易出错。为了解决这...
2025-06-15 08:43:24
在 Linux/Unix ...
在 Linux/Unix 系统中,动态库(.so 文件)的搜索路径...
2025-05-21 10:17:25
CentOS Bash S...
CentOS Bash Shell:从入门到高效操作的全面指南 B...
2025-05-09 06:17:17
【售后科普】ubuntu系...
一、问题描述 在Ubuntu系统中,用户成功安装显卡驱动后,通过命...
2025-04-27 10:16:52
在Linux服务器上绑定域...
要把Linux服务器和域名绑定起来,让我们先简单聊聊这个过程。想象...
2025-02-27 13:49:16

热门资讯

2020 年的 GitHub ... 距离 2020 年结束只剩下区区 24 天,我们即将结束魔幻的 2020 ,迎来新的一年,新的一年或...
开源新闻速递:openSUSE... 今日关注openSUSE 项目组的 Dominique Leuenberger 在他的周报中说:“这...
KDE4.11 Beta1 正...   KDE 项目工作组刚刚发布了 KDE Software Compilation 4.11 Bet...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用时间序列数据,用开源工具助... InfluxData 是一个开源的时间序列数据库平台。下面介绍了它是如何被用于边缘应用案例的。收集到...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
Textual:为 Pytho... 快速入门使用 TextualPython 在 Linux 上有像 TkInter 这样的优秀 GUI...
硬核观察 #1245 Open... #1 OpenAI 悄然删除禁止将 ChatGPT 用于 “军事和战争” 的禁令在 1 月 10 日...