很棒的命令行技巧,可将您的工作效率提高 10 倍
原始帖子:https://www.coderscat.com/awesome-linux-command-line-tips
像代码一样管理您的配置
假设你需要在另一台机器上工作,将你的配置保存在 GitHub 中将为你重新定制工作环境时节省大量时间。
许多开发人员已经在做同样的事情了。使用 Git 管理任何配置(.bashrc、.vimrc、.emacs 等)是一个好习惯,你应该从工作一开始就养成Linux/Mac
。
使用 Git 控制配置的好处是:
- 查看您的更改历史记录,这对于故障排除很有用。
- 积累技巧和配置。
- 在多台机器上使用它。
如果您还没有准备好与他人分享您的配置,请使用private
GitHub repo 以确保安全。
目前,我们可以在 GitHub 上使用私有 repo,无需支付任何费用。
记得将敏感文件添加到 .gitignore 中,并将DO NOT
包含密码或机密的文件推送到 GitHub。
我看到很多开发者把敏感文件推送到 GitHub,结果出了安全问题。别傻了。
如何获得帮助
不要害怕命令行工作环境中有这么多的命令选项。
开发人员不需要记住所有的事情,
手册和文档以相同的模式组织,Google 是您的最终救生圈。
当您需要任何命令的帮助时,请尝试以下操作:
查询手册的人
命令man
用于显示我们可以在终端上运行的任何命令的用户手册。
在 Ubuntu/Debian 上,您需要从终端安装它:sudo apt-get install man
。
除了查询命令手册之外,您还可以使用man
来阅读您感兴趣的函数或文件的手册和详细信息。
man exec
屏幕上将显示:
使用 –Help/-H 的命令
任何命令或脚本都会附带帮助信息。如果您不知道该使用哪个选项,可以尝试一下command --help
。Linux/Unix 的帮助信息通常采用类似的格式,您需要适应它。
有效地谷歌
学习如何以开发人员的身份有效地使用谷歌,这需要时间,但对你的开发生涯来说是有益的。
您应该知道使用哪些关键字来搜索命令行问题。
对于 Linux 命令,“Linux 命令#keyword#
” 应该是一个不错的尝试。
Shell 别名
当您在 Linux/Mac 上工作时,Shell 别名是最有用的提示。
每当您认为某个命令行稍后会重复出现(尤其是较长的命令行)时,您都应该将其作为别名添加到您的配置中。
我的部分配置包括:
alias nis="npm install --save "
alias www='python -m SimpleHTTPServer 8000'
alias svim='sudo vim'
alias mkcd='mkdir_with_name(){ mkdir -p "$1"; cd "$1" }; makedir_with_name '
alias install='sudo apt get install'
alias update='sudo apt-get update; sudo apt-get upgrade'
alias ..="cd .."
alias ...="cd ..; cd .."
alias sock5='ssh -D 8080 -q -C -N -f user@your.server'
其他方便的别名:
适用于 Linux / Unix / Mac OS X 的 30 个实用的 Bash Shell 别名
壳牌提示
返回上一个工作目录
假设您将工作目录更改为 /tmp,完成一些任务并想要返回到之前的工作目录,在这种情况下,cd -
将帮助您节省时间。
执行历史记录中的命令
history
将显示最近执行的命令
从输出来看,!5
将重新执行命令“pwd”,如果要重新执行最后一个命令,可以使用!!
来完成它。
免费/热门
free/top
用于显示资源使用情况统计信息,例如内存和 CPU 使用率。一个更友好的替代方案是htop
,它以可视化的方式显示所有类型的统计信息。
网络状态
netstat
是一个命令行网络实用程序,可显示传输控制协议的网络连接、路由表以及多个网络接口和网络协议统计信息。
此处列出了更多用法示例。
结合命令完成你的任务
使用 Linux/Unix 的最佳方法是使用 awk、sed、grep、xargs、find、sort 等命令,并将它们组合成您想要的功能。就像我之前检查 Git 仓库时所做的那样。
大多数简单的任务,例如从文件中查找单词、使用模式过滤文件,都可以通过这些微小的 until 命令完成。
cat/head/tail
:显示文件内容,bat是 Rust 的克隆版cat
,支持大量编程和标记语言的语法高亮。
grep
:搜索文件中含有该关键字的任意行。
sort
:逐行对文本文件的内容进行排序。
uniq
:从字符串或文件中删除重复的部分。
find
:查找或过滤具有模式的文件。
xargs
:允许工具或命令接受标准输入作为参数。
awk
:用于处理数据和生成报告的脚本语言。
一些提升生产力的奇特工具
Httpie
httpie是一款精美的命令行 HTTP 客户端,拥有直观的用户界面,支持 JSON 格式,并带有高亮显示和众多插件。也许你曾经使用过 curl 或 wget,但尝试过之后你就会忘记它们httpie
。
多路复用
tmux是一个终端多路复用器,它可以管理终端中的窗口和会话。您可以将屏幕拆分为多个子面板,还可以分离和重新连接会话。
如果您想频繁连接到远程服务器,这对您来说是一个非常宝贵的工具。
使用哪个 Shell
Bash 是当今许多 Linux 发行版的默认 shell。
Zsh是一种现代的 shell,具有其他 Unix/GNU Linux shell 的功能,例如 bash、tcsh 和 ksh。
Fish是一款智能且用户友好的 Linux 和 macOS 命令行 Shell。它支持语法高亮、自动建议和 Tab 键补全等强大功能,无需任何学习或配置即可使用。
如果您使用Mac工作:我最推荐的是iterm2上的 Zsh 。
Oh My Zsh是一个优秀的开源社区驱动框架,用于管理你的 Zsh 配置。使用社区提供的配置,可以节省你大量的时间。
鏂囩珷鏉ユ簮锛�https://dev.to/snj/awesome-command-line-tips-to-10x-your-productivity-1le2