Mac终端shell命令总结

987 阅读1分钟

bash和zsh命令切换

  • 查看当前终端用的哪个shell:echo $0
  • 切换为bash:chsh -s /bin/bash
  • 切换为zsh:chsh -s /bin/zsh注意:切换完需要重启终端才能生效

在终端使用expr报错: expr: syntax error

  • 因为Mac上面expr不是 GNU coreutils' expr。所以在Mac上通过brew install coreutils安装 GNU coreutils(通过调用命令gexpr而不是expr解决)

Zsh 数组的第一个元素索引为 1 而不是 0

  • 几乎所有的 shell 数组(Bourne、csh、tcsh、fish、rc、es、yash)都从 1 开始。ksh 是我所知道的唯一例外(bash 只是复制了 ksh)
  • 查找子字符串时,子字符串的下标也是从1开始,比如
string="runoob is a great site"
echo `expr index "$string" io` # 输出 4
  • 但是从左边提取子字符串时,索引是从0开始的,比如以下实例从字符串第 2 个字符开始截取 4 个字符:${string: start :length}

string="runoob is a great site"
echo ${string:1:4# 输出 unoo

Zsh中获取关联数组的键值数组

image.png

ruby开发Mac终端打印env

printf "\n\"env\": {\n \"PATH\": \"$PATH\",\n \"GEM_HOME\": \"$GEM_HOME\",\n \"GEM_PATH\": \"$GEM_PATH\",\n \"RUBY_VERSION\": \"$RUBY_VERSION\"\n}\n\n"