.zshrc 函数收集

Author Avatar
Tr0y 3月 19, 2019 16:44:45 本文共 522 字
  • 文为知己者书
  • 在其它设备中阅读本文章

打开 ~/.zshrc,写入函数,然后 source ~/.zshrc,即可使用。

在 mac 下发起通知

利用 terminal-notifier 发起通知:

function notify(){
    start_time=`date +%s`;
    cmd=`echo $@`;
    eval $@;
    end_time=`date +%s`
    timer_time=$((end_time-start_time))
    unit="s"

    if [[ $timer_time -gt 60 ]]; then
        unit="m"
        timer_time=`echo $(($timer_time/60.0))|awk '{printf("%.2f", $1)}'`
    fi

    terminal-notifier -title 'Notifier' -message 'command was finished in '${timer_time}${unit}'
'${cmd} -sound default -execute "open /Applications/iTerm.app";
}

通知结果

一个命令解压任意压缩文件

function x {
 if [ -z "$1" ]; then
    echo "Usage: extract <path/file_name>.<zip|rar|bz2|gz|tar|tbz2|tgz|Z|7z|xz|ex|tar.bz2|tar.gz|tar.xz>"
    echo "       extract <path/file_name_1.ext> [path/file_name_2.ext] [path/file_name_3.ext]"
 else
    for n in "$@"
    do
      if [ -f "$n" ] ; then
          case "${n%,}" in
            *.cbt|*.tar.bz2|*.tar.gz|*.tar.xz|*.tbz2|*.tgz|*.txz|*.tar)
                         tar xvf "$n"       ;;
            *.lzma)      unlzma ./"$n"      ;;
            *.bz2)       bunzip2 ./"$n"     ;;
            *.cbr|*.rar)       unrar x -ad ./"$n" ;;
            *.gz)        gunzip ./"$n"      ;;
            *.cbz|*.epub|*.zip)       unzip ./"$n"       ;;
            *.z)         uncompress ./"$n"  ;;
            *.7z|*.arj|*.cab|*.cb7|*.chm|*.deb|*.dmg|*.iso|*.lzh|*.msi|*.pkg|*.rpm|*.udf|*.wim|*.xar)
                         7z x ./"$n"        ;;
            *.xz)        unxz ./"$n"        ;;
            *.exe)       cabextract ./"$n"  ;;
            *.cpio)      cpio -id < ./"$n"  ;;
            *.cba|*.ace)      unace x ./"$n"      ;;
            *)
                         echo "extract: '$n' - unknown archive method"
                         return 1
                         ;;
          esac
      else
          echo "'$n' - file does not exist"
          return 1
      fi
    done
fi
}

使用方式为:
x test.zip 等等…

服务器完成命令后发生通知

执行命令后无需等待,命令完成后会通过 pushover 提醒。
需要购买 pushover 的服务

function notify(){
    start_time=`date +%s`;
    cmd=`echo $@`;
    eval $@;
    end_time=`date +%s`

    timer_time=$((end_time-start_time))
    unit="s"

    if [[ $timer_time -gt 60 ]]; then
        unit="m"
        timer_time=`echo $(($timer_time/60.0))|awk '{printf("%.2f", $1)}'`
    fi

    pushover --user-key XXXXXXXXXX --api-token XXXXXXXXXX --title "Server's job" 'command was finished in '${timer_time}${unit}'
'${cmd}
}

使用方式:notify curl baidu.com
结果:

不记录错误的历史命令

我习惯先打几个字符,再用方向键找历史命令。在这种情况下,错误的历史命令会造成很大干扰,干脆关了它。

建议服务器不要开启,仅仅是方便自己的电脑使用

在 .zshrc 写入:

zshaddhistory() { whence ${${(z)1}[1]} >| /dev/null || return 1 }

End

What do you think?

本文标题: .zshrc 函数收集
原始链接: http://www.tr0y.wang/2019/03/19/zshrc函数收集/
发布时间: 2019.03.19-16:44
最后更新: 2019.05.31-16:36
版权声明: 本站文章均采用CC BY-NC-SA 4.0协议进行许可。转载请注明出处!