问题
- 从
bash
切换到zsh
后,发现原先bash
下的bashrc
文件配置都失效了(显示zsh: command not found
字样,当然如果手动通过source FileName
加载是可以的),macOS Catalina(10.15.5)
已经默认切换到zsh
,那么如何实现不用每次加载.bashrc
文件就实现alias
等便捷功能呢?
解决方案
- 使用系统级的
/etc/zshrc
或/etc/zprofile
- 使用用户级的
~/[X]bashrc
或~/[X]profile
- 鉴于
/etc/zshrc
里有较多zsh
特性配置,而且默认全局加载
,因此这里通过编辑用户级的profile
并加载原先的bashrc
(即Bash Shell
下用户文件)来实现我们的需求
详细步骤
- 复制系统文件并修改权限
1 2 3 4 5 6 7 8 9 |
mu@xiaomudeMacBook-Pro ~ % cp /etc/zprofile ~/.zprofile mu@xiaomudeMacBook-Pro ~ % ll ~/.zprofile -r--r--r-- 1 mu staff 255 9 6 09:35 /Users/mu/.zprofile mu@xiaomudeMacBook-Pro ~ % chmod u+w ~/.zprofile #要实现自定义必须添加写权限,否则只有只读权限 mu@xiaomudeMacBook-Pro ~ % ll ~/.zprofile -rw-r--r-- 1 mu staff 255 9 6 09:35 /Users/mu/.zprofile |
- 追加自定义配置项,加载
Bash Shell
的.bashrc
文件
1 2 3 4 |
mu@xiaomudeMacBook-Pro ~ % cat .bashrc alias ll='ls -l' mu@xiaomudeMacBook-Pro ~ % echo "source ~/.bashrc" >> .zprofile |
- 测试
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
mu@xiaomudeMacBook-Pro ~ % ll #配置暂未生效 zsh: command not found: ll mu@xiaomudeMacBook-Pro ~ % source .zprofile #加载配置文件,使其立即生效;下一次打开终端Shell会话,将自动加载 mu@xiaomudeMacBook-Pro ~ % ll total 16 drwx------ 5 mu staff 160 8 23 14:38 Applications drwx------@ 4 mu staff 128 1 2 2019 Applications (Parallels) drwx------@ 4 mu staff 128 9 1 15:23 Desktop drwx------+ 20 mu staff 640 8 29 12:14 Documents drwx------@ 35 mu staff 1120 9 6 09:29 Downloads drwx------@ 85 mu staff 2720 8 30 11:05 Library drwx------+ 4 mu staff 128 8 20 20:17 Movies drwx------+ 8 mu staff 256 8 20 20:17 Music drwx------ 26 mu staff 832 9 6 09:28 Nextcloud drwx------ 3 mu staff 96 1 2 2019 Parallels drwx------+ 6 mu staff 192 8 20 20:01 Pictures drwxr-xr-x+ 4 mu staff 128 11 28 2018 Public drwxr-xr-x 4 mu staff 128 12 9 2018 PycharmProjects -rw-r--r-- 1 mu staff 811 12 15 2018 Untitled.ipynb -rw-r--r-- 1 mu staff 1578 12 29 2018 Untitled1.ipynb drwxr-xr-x 3 mu staff 96 8 25 16:08 VirtualBox VMs drwxr-xr-x 2 mu staff 64 1 25 2019 WeChatProjects |