0%

Mac 个人开发环境搭建

​ 个人的Mac环境,主要是解决一些更换电脑时需要重新搞一些东西,以及分享一下个人mac的配置,以及一些命令的推荐!

安装常用命令

brew和zsh

1
2
3
sh -c "$(curl -fsSL https://anthony-wangpan.oss-accelerate.aliyuncs.com/software/2021/6-17/brew.sh)"

sh -c "$(curl -fsSL https://anthony-wangpan.oss-accelerate.aliyuncs.com/software/2021/6-17/zsh.sh)"

安装GNU命令行

主要是解决,我们Linux用户的痛点,发现很多命令macos使用方式不一样!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 备份下
cp ~/.zshrc ~/.zshrc_copy

# install grep sed awk gtar
brew install grep
brew install gnu-sed
brew install gawk
brew install gnu-tar

# install coreutils, eg: ls,cd,nc, ...
brew install coreutils

# install find utils, eg: find, xargs ..
brew install findutils

# install mysql-client
brew install mysql-client

环境变量配置:

1
2
3
4
5
6
7
8
9
10
11
12
# alias
alias awk=gawk

# export gnu bin
export PATH="/usr/local/opt/gnu-sed/libexec/gnubin:$PATH"
export PATH="/usr/local/opt/gnu-tar/libexec/gnubin:$PATH"
export PATH="/usr/local/opt/grep/libexec/gnubin:$PATH"
export PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"
export PATH="/usr/local/opt/findutils/libexec/gnubin:$PATH"

# export software
export PATH="/usr/local/opt/mysql-client/bin:$PATH"

系统工具安装

  1. brew install htop

高亮配置

vim 高亮

  1. 移动文件,cp /usr/share/vim/vimrc ~/.vimrc
  2. 修改一下 ~/.vimrc 配置,尾部添加
1
2
3
syntax on
set nu!
set autoindent

ls 高亮

alias 下 alias ls='ls -F --show-control-chars --color=auto'

维护的个人脚本

1. 同步文件脚本

  1. 记得在 ${SYNC_HOME}/.fileignore 创建文件,主要是申明一些不需要同步的文件目录和文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
*.swp
*.pyc
*.pyo
.git
.DS_Store
.idea
.vscode-upload.json
output
*.class
*.log*
mvnw*
target
*.iml
.m2
  1. ${SYNC_HOME}/sync.sh 创建文件,并且copy下面文件
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#!/bin/bash

########################### 配置开始
# 远程服务器配置
# 远程服务器的用户名称
readonly DEV_USER="fanhaodong.516"
# 远程服务器的地址
readonly DEV_IP="xx.xxx.xxx.xxx"
# 远程同步目录,推荐用户的根目录,例如可以执行 echo "$HOME" 查看用户根目录
readonly REMOTE_PATH="/home/fanhaodong.516"

# 本地配置
# 同步脚本目录
readonly SYNC_HOME="/Users/local/go/bin/sync-devbox"
# 同步目录的白名单
readonly WHITE_LIST=("/Users/local/go/src/github.com" "/Users/local/data")
########################### 配置结束


## 获取当前路径
if [[ -z "${1}" ]]; then
PWD=$(pwd)
else
PWD=${1}
fi

PASS="false"
NOT_PASS_DIR=""
for elem in "${WHITE_LIST[@]}"; do
if echo "${PWD}" | grep -e "^${elem}.*"; then PASS="true"; fi
NOT_PASS_DIR=${NOT_PASS_DIR}"$elem, "
done

if [[ "${PASS}" == "false" ]]; then echo "${PWD} 无法同步,原因是目录不在${NOT_PASS_DIR}目录下!"; exit 1; fi

if [[ "${PWD: -1}" == "/" ]]; then
echo "${PWD} 无法同步,原因是目录最后包含 '/' "
exit 1;
fi

# 替换 当前路径的 ${HOME}${REMOTE_PATH}
REMOTE_PWD=${PWD/${HOME}/${REMOTE_PATH}}

echo "rsync -avz --delete --progress --log-file=${SYNC_HOME}/sync-devbox.log --log-file-format='%t %f %b' --exclude-from=${SYNC_HOME}/.fileignore ${PWD}/ ${DEV_USER}@${DEV_IP}:${REMOTE_PWD}/"

# 用法参考: https://www.ruanyifeng.com/blog/2020/08/rsync.html
# -a 递归替换且文件元信息也替换
# -v 展示信息
# --delete 删除只存在于目标目录、不存在于源目录的文件。
rsync -avz \
--delete \
--progress \
--log-file=${SYNC_HOME}/sync-devbox.log \
--log-file-format='%t %f %b' \
--exclude-from=${SYNC_HOME}/.fileignore \
"${PWD}/" "${DEV_USER}@${DEV_IP}:${REMOTE_PWD}/"

echo "rsync ${PWD}/ -> ${REMOTE_PWD}/ success!"
  1. 在远程服务器,配置本地服务的公钥,进行免密登陆!

mac系统配置

image-20211129001649131

这个不能过快,不然双击无法选中东西!

vim

  1. 翻页
  • control + f 向下翻一页, f的意思是 forward
  • control + b 向上翻一页, b的意思是 back forward
  • control + d 向下翻半页, d的意思是 down
  • control + u 向下翻半页, u的意思是 up
  • control + e 向下滚动一行, e的意思是 ``
  • control + y 向上滚动一行,y的意思是``
  1. 操作

d删除(Delete),c剪切(Cut),y复制(Yank),p粘贴(Paste)

本人坚持原创技术分享,如果你觉得文章对您有用,请随意打赏! 如果有需要咨询的请发送到我的邮箱!