Mac上ZSH的使用小技巧


=Start=

缘由:

工欲善其事,必先利其器。在Mac上工作,和终端打交道比较多,出于效率和易用性考虑,使用的是iTerm2+ZSH的组合,能力和颜值都不错。在此基础上再配合一些自己的小技巧,效率又会蹭蹭蹭的提升。如果你也有一颗不断追求效率的内心的话,一起来试试吧。内容不定期更新。

正文:
问题1:如何在退出终端的时候不影响已有用「nohup + &」启动的后台进程?「zsh: you have running jobs.

解决方案:

$ disown %1  #具体的数值和后台进程号有关
#或
$ nohup ./my_script.sh &! #在以往的'&'后面多加了一个'!'
#或
$ nohup ./my_script.sh &| #在以往的'&'后面多加了一个'|'
#或
$ setopt NO_HUP
$ setopt NO_CHECK_JOBS

参考链接:

问题2:如何在ZSH中使用和Bash类似的快捷键功能?

将下面3行添加到 ~/.zshrc ,然后就可以在 Mac + iTerm2 + zsh 上使用之前在 Linux + Bash 上的组合快捷键了:

bindkey "[D" backward-word
bindkey "[C" forward-word
bindkey "≥" insert-last-word
  • option + ← #在原生的 iTerm-2 和 oh-my-zsh 上的作用为向终端发送 “[D” 字符,在终端上以单词为单位向左移动
  • option + → #在原生的 iTerm-2 和 oh-my-zsh 上的作用为向终端发送 “[C” 字符,在终端上以单词为单位向右移动
  • option + . #在原生的 iTerm-2 和 oh-my-zsh 上的作用为向终端发送 “≥” 字符,在终端上快速插入上个命令的最后一个参数

修改完后,如果需要在当前shell中立即生效,需要执行命令:

source ~/.zshrc

参考链接:

问题3:为 ZSH(oh-my-zsh) 添加命令的时间戳

参考解答:

$ vim ~/.oh-my-zsh/lib/history.zsh
将
alias history='fc -l 1'
修改成
alias history='fc -il 1'

$ source ~/.zshrc

参考链接:

问题4:为 ZSH(oh-my-zsh) 添加历史命令统计的function
function zsh_stats() {
  fc -l 1 | awk '{CMD[$2]++;count++;}END { for (a in CMD)print CMD[a] " " CMD[a]/count*100 "% " a;}' | grep -v "./" | column -c3 -s " " -t | sort -nr | nl |  head -n20
}

参考链接:

=END=

, ,

《“Mac上ZSH的使用小技巧”》 有 9 条评论

  1. https://github.com/Bash-it/bash-it
    Bash-it是一个有社区支持的Bash框架(其实就是一堆Bash命令和脚本的集合),从oh-my-zsh获得灵感。
    虽然现在在Mac上都用的是zsh+oh-my-zsh的组合,但是到了线上服务器上,还是得习惯于用Bash,一般也用不到上面的Bash-it框架/集合,不过还是可以从该框架/集合中吸收一些比较有用的alias/custom functions/autocompletion,以此来不断补充自己的常用工具集。

  2. iterm2整合Tmux利器
    https://tried.cc/2017/12/18/Iterm2TmuxIntegration/
    `
    最实用且一定要掌握的快捷键:
    Command + T 新建Tab
    Command + W 关闭选中panes, tab, window
    Command + D 纵向分割选中的pane
    Command + Shift + D 横向分割选中的pane
    Command + Shift + Enter 最大化选中的pane,隐藏其它panes,再次按下就还原布局。
    Command + ; 提示输入过的命令
    Command + Shift + H 根据时间弹出历史记录
    `

  3. 打造Mac OS 最强终端利器 iTerm2
    https://www.studytime.xin/article/mac-os-iterm.html
    `
    1. iTerm2 安装
    2. oh-my-zsh
    3. 主题选择
    – 3.1. 将 zsh的主题更改为 Dracula
    4. 修改 iterm 配色为 Dracula
    5. 目录和文件名区分设置
    6. 快速跳转目录
    7. 命令设置别名
    8. 左右键跳转
    9. iTerm2 快速隐藏和显示
    10. 命令自动补齐插件 zsh-autosuggestions
    11. 增加指令高亮效果
    12. iTerm2 快速隐藏和显示窗体:
    13. iTerm2 配置代理
    14. 全局环境便利加载
    – 14.1. 将bash配置文件~/.bash_profile中的环境变量等配置复制到zsh配置文件~/.zshrc中
    – 14.2. 在zsh配置文件~/.zshrc中添加下面这行
    15. 快捷命令
    `

回复 hi 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注