Bash设置

  • 从 macOS Catalina 版开始,您的 Mac 将使用 zsh 作为默认登录 Shell 和交互式 Shell。您还可以在较低版本的 macOS 中将 zsh 设置为默认 Shell。
  • 修改:选取苹果菜单  >“系统偏好设置”,然后点按“用户与群组”。在左侧的用户列表中,按住 Control 键点按您的用户名,然后选取“高级选项,从“登录 Shell”菜单中选取一个 Shell,然后点按“好”以存储更改。
  • 既然官方不用bash,那我就跟着使用zsh。

zsh配置

  • 类似bash 有 ~/.bash_profile 和 ~/.bash配置环境变量。zsh使用 ~/.zshrc作为配置文件。

  • 常用别名

    1
    2
    3
    alias ll='ls -alF'
    alias la='ls -A'
    alias l='ls -CF'
  • Bash修改终端显示

    1
    2
    export CLICOLOR=1
    export PS1='\[\033[01;33m\]\u@\h\[\033[01;31m\] \W\$\[\033[00m\] '
  • zsh 方式

    1
    export PS1="%10F%m%f:%11F%1~%f \$ "

忽略大小写

  • Mac 终端默认是大小写不敏感的,cd desktop 其实也能切到桌面,但是无法通过tab补全。

  • 如果你已经使用了zsh,那么一般情况下,修改.inputrc 并没有效果。可以在.zshrc 里添加下面两个命令,再执行 source ~/.zshrc

    1
    2
    autoload -Uz compinit && compinit
    zstyle ':completion:*' matcher-list 'm:{[:lower:][:upper:]}={[:upper:][:lower:]}' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]} l:|=* r:|=*' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]} l:|=* r:|=*' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]} l:|=* r:|=*'
  • 直接建立 .zshrc 文件可能遇到的问题

    1
    2
    zsh compinit: insecure directories, run compaudit for list.
    Ignore insecure directories and continue [y] or abort compinit [n]?
  • 解决

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    # 运行compaudit返回如下:
    $ compaudit
    There are insecure directories:
    /usr/local/share/zsh/site-functions
    /usr/local/share/zsh

    # 关闭group-writable权限

    % chmod g-w /usr/local/share/zsh
    % chmod g-w /usr/local/share/zsh/site-functions

github 访问

  • 网站检索 : https://www.ipaddress.com/

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    # Github Hosts
    # Update 20210707
    # domain: github.com
    140.82.113.4 github.com
    140.82.113.9 nodeload.github.com
    140.82.114.5 api.github.com
    140.82.113.9 codeload.github.com
    185.199.108.133 raw.github.com
    185.199.108.153 training.github.com
    185.199.108.153 assets-cdn.github.com
    185.199.108.153 documentcloud.github.com
    185.199.108.154 help.github.com

    # domain: githubstatus.com
    185.199.108.153 githubstatus.com

    # domain: fastly.net
    199.232.69.194 github.global.ssl.fastly.net

    # domain: githubusercontent.com
    185.199.108.133 raw.githubusercontent.com
    185.199.108.133 cloud.githubusercontent.com
    185.199.108.133 gist.githubusercontent.com
    185.199.108.133 marketplace-screenshots.githubusercontent.com
    185.199.108.133 repository-images.githubusercontent.com
    185.199.108.133 user-images.githubusercontent.com
    185.199.108.133 desktop.githubusercontent.com
    185.199.108.133 avatars.githubusercontent.com
    185.199.108.133 avatars0.githubusercontent.com
    185.199.108.133 avatars1.githubusercontent.com
    185.199.108.133 avatars2.githubusercontent.com
    185.199.108.133 avatars3.githubusercontent.com
    185.199.108.133 avatars4.githubusercontent.com
    185.199.108.133 avatars5.githubusercontent.com
    185.199.108.133 avatars6.githubusercontent.com
    185.199.108.133 avatars7.githubusercontent.com
    185.199.108.133 avatars8.githubusercontent.com
    # End of the section
  • 修改 Hosts 文件, macOS 上可以使用 VSCode 打开修改 Hosts 文件,比之前介绍的 vim更佳直观。当然需要安装 VSCode 以及配置 code环境变量。用其他的文本编辑器也可以打开编辑。

    1
    2
    3
    4
    5
    6
    # vscode editing
    sudo code /etc/hosts
    # texteditor editing
    sudo open /etc/hosts
    # vim editing
    sudo vim /etc/hosts
  • 应用 DNS 的修改需要刷新一下网络缓存。

    1
    2
    3
    4
    # macOS
    sudo killall -HUP mDNSResponder
    # Windows
    ipconfig /flushdns

git 乱码

  • core.quotepath设为false的话,就不会对0x80以上的字符进行quote

    1
    git config --global core.quotepath false
  • 别名

    1
    2
    3
    4
    5
    git config --global alias.st status
    git config --global alias.ci commit
    git config --global alias.co checkout
    git config --global alias.br branch
    git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cd) %C(bold blue)<%an>%Creset' --date=format:'%Y-%m-%d %H:%M:%S' --abbrev-commit"

修改vim显示效果的设置

  • 切换到主用户目录:

    1
    cd ~
  • 复制vim的系统配置文件:

    1
    cp /usr/share/vim/vimrc ~/.vimrc
  • 编辑用户配置文件.vimrc:

    1
    vim .vimrc
  • 按 i 进入插入模式,在文件末尾添加如下代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    colorscheme default     " 设置颜色主题

    syntax on " 语法高亮

    filetype on " 检测文件的类型

    set number " 显示行号
    set cursorline " 用浅色高亮当前行
    "autocmd InsertLeave * se nocul
    "autocmd InsertEnter * se cul

    set ruler " 在编辑过程中,在右下角显示光标位置的状态行
    set laststatus=2 " 显示状态栏 (默认值为 1, 无法显示状态栏)
    set statusline=\ %<%F[%1*%M%*%n%R%H]%=\ %y\ %0(%{&fileformat}\ %{&encoding}\ %c:%l/%L%)\
    " 设置在状态行显示的信息

    set tabstop=4 " Tab键的宽度
    set softtabstop=4
    set shiftwidth=4 " 统一缩进为4

    set autoindent " vim使用自动对齐,也就是把当前行的对齐格式应用到下一行(自动缩进)
    set cindent " (cindent是特别针对 C语言语法自动缩进)
    set smartindent " 依据上面的对齐格式,智能的选择对齐方式,对于类似C语言编写上有用

    set scrolloff=3 " 光标移动到buffer的顶部和底部时保持3行距离

    set incsearch " 输入搜索内容时就显示搜索结果
    set hlsearch " 搜索时高亮显示被找到的文本

    set foldmethod=indent " 设置缩进折叠
    set foldlevel=99 " 设置折叠层数
    nnoremap <space> @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo')<CR>
    " 用空格键来开关折叠

    " 自动跳转到上次退出的位置
    if has("autocmd")
    au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
    endif

brew安装

  • 苹果电脑标准安装脚本:(推荐 优点全面 缺点慢一点)

    1
    /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
  • 苹果电脑极速安装脚本:(优点安装速度快 缺点update功能需要命令修复 )

    1
    /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" speed
  • Linux 标准安装脚本:

    1
    rm Homebrew.sh ; wget https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh ; bash Homebrew.sh
  • 苹果电脑卸载脚本:

    1
    /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/HomebrewUninstall.sh)"
  • Linux卸载脚本:

    1
    rm HomebrewUninstall.sh ; wget https://gitee.com/cunkai/HomebrewCN/raw/master/HomebrewUninstall.sh ; bash HomebrewUninstall.sh

NVM安装

  • 使用 brew 安装 nvm

    1
    brew install nvm
  • 添加配置到 .zshrc 文件

    1
    2
    3
    export NVM_DIR="$HOME/.nvm"
    [ -s "/usr/local/opt/nvm/nvm.sh" ] && . "/usr/local/opt/nvm/nvm.sh" # This loads nvm
    [ -s "/usr/local/opt/nvm/etc/bash_completion.d/nvm" ] && . "/usr/local/opt/nvm/etc/bash_completion.d/nvm" # This loads nvm bash_completion
  • 国内源切换

    1
    echo -e "\nexport NVM_NODEJS_ORG_MIRROR=http://npmmirror.com/mirrors/node" >> ~/.zshrc
  • npm 源

    1
    npm install -g nrm --registry https://registry.npmmirror.com/ # windows下使用 yrm 修复了 nrm 的错误

MySQL配置

  • 安装 mysql 后需要配置环境变量,否则 MySQL 等命令无法识别, 在 .zshrc 文件中添加如下配置

    1
    echo -e "\nexport PATH=${PATH}:/usr/local/mysql/bin" >> ~/.zshrc

JDK安装

  • 安装包直接安装即可

  • 安装JDK1.8和JDK11双版本并任意切换,这里使用安装包方式安装 jdk8, 下载jdk 的 11 压缩包

    • 安装jdk1.8: 略

    • 安装jdk11: 解压到安装目录即可

      1
      sudo tar -zxvf jdk-11_osx-x64_bin.tar.gz -C /Library/Java/JavaVirtualMachines/
    • 验证:进入jdk安装目录并查看该目录

      1
      2
      3
      4
      cd /Library/Java/JavaVirtualMachines
      $ ls -al
      drwxr-xr-x 3 667 staff 96 8 23 2018 jdk-11.jdk/
      drwxr-xr-x 3 root wheel 96 8 8 16:26 jdk1.8.0_201.jdk/
    • 可以看到两个版本安装成功

配置环境变量

  • 配置环境变量

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    vim ~/.zshrc

    #添加下面的代码
    export JAVA_8_HOME="$(/usr/libexec/java_home -v 1.8)"
    export JAVA_11_HOME="$(/usr/libexec/java_home -v 11)"

    #默认设为JDK1.8
    export JAVA_HOME=$JAVA_8_HOME

    #alias命令动态切换JDK版本
    alias jdk8="export JAVA_HOME=$JAVA_8_HOME"
    alias jdk11="export JAVA_HOME=$JAVA_11_HOME"
  • 保存并执行以下命令:

    1
    2
    3
    4
    5
    6
    source ~/.zshrc

    fulsundeMacBook-Pro:~ $ java -version
    java version "1.8.0_201"
    Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
    Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)
  • 切换jdk11:现在在bash中输入jdk11就会切换版本了,输入java -version即可查看

    1
    2
    3
    4
    5
    6
    fulsundeMacBook-Pro:~ $ jdk11
    fulsundeMacBook-Pro:~ $ java -version
    java version "11" 2018-09-25
    Java(TM) SE Runtime Environment 18.9 (build 11+28)
    Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11+28, mixed mode)
    fulsundeMacBook-Pro:~ $