用惯了Windows和Linux,刚切换到mac系统会有各种不习惯,在这里记录一些mac使用的小技巧吧,内容会慢慢补充。
- 设置命令别名
这一点和Linux没有什么区别,都是在根目录下创建默认的shell配置文件,mac系统默认使用的shell应该是bash,所以创编辑文件 ~/.bash_profile (如果没有这个文件就创建一个), 在里面添加alias命令,注意shell的语法中,= 两边不要有空格。如
alias ll='ls -l'
命令 echo $0 或者 echo $SHELL 都可以查到当前使用的shell
另外还可以在这之前再添加一条:
alias ls='ls -G'
让ll命令的显示结果是彩色的,用不同的颜色区分不同的文件类型。
- 开启root账户
这一点与ubuntu是一样的,root账户在默认情况下是不开启的,要启用root账户,需要先用一个有sudo权限的账户设置root密码:
sudo passwd root
用当前账号进入,重复两次新的root密码,root账户就启用了。安全考虑,建议仅限在个人的有特殊需求的开发机上启用root账户。
- 文本文件中已经设置了UTF-8编码,但是里面的中文在Termianl下用vim编辑还是显示乱码:
编辑.bash_profile文件,添加如下配置:
export LANG=”zh_CN.UTF-8”
export LC_ALL=”zh_CN.UTF-8”
- vim语法高亮
在很多Linux发行版中,vim的语法高亮都是默认开启的,mac上却没有开启。要永久开启也很简单,把开启命令syntax on 放到文件 ~/.vimrc里面就行了:
- shell脚本因为行结尾字符是CRLF而运行报错
使用dos2unix工具转换文本为unix格式就可以了。
dos2unix target.sh
如果提示没有dos2unix命令,就先使用brew install dos2unix安装这个命令。
- shell脚本报错 xxxx: command not found
其中xxxx是某个自定义函数。
这个问题很诡异,xxxx明明是我的一个shell脚本中定义的函数,确认多没有奇怪的字符,拼写完全正确,但是就是报错说函数找不到,同一个文件中的其他函数都能正常调用的。
后来,经过几小时的核对,终于发现是因为在另外一个函数中一个else分支没有代码,如下:
if [ condition ]; then
echo "condition"
some logic
else
# 全是注释
fi
把else分支里面添加上一条echo 语句,一切就都正常了。
shell脚本里面是不允许留空的分支的,正常情况下,这样留空的分支是会报语法错误的。但是不知道是什么原因,在这个大文件里面的一个空分支,没有报语法错误,可能是mac系统上shell的一个bug吧。试了简单情形下的空分支是没有问题的。