homebrew安装使用
Homebrew是Mac OS上的软件包管理工具,通过它可以很方便地安装/卸载软件工具。类似于apt、npm。
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Homebrew将工具安装在自己创建的/usr/local/Cellar目录下,并在/usr/local/bin建立这工具的符号链接。 常用brew命令:
brew search
brew install
brew update
brew upgrade
brew uninstall
brew list
brew outdated
brew deps
brew services start/stop
redis安装
## 安装redis 4.0
brew install redis@4.0
## 设置开机启动
ln -sfv /usr/local/opt/redis/*.plist ~/Library/LaunchAgents
## 配置redis环境变量
## 在~/.bash_profile中添加以下内容
export PATH="/usr/local/opt/redis@4.0/bin:$PATH"
## 使环境变量生效,执行
source ~/.bash_profile
## (推荐)brew方式启动/停止redis
brew services start/stop redis@4.0
redis配置文件位置:/usr/local/etc/redis.conf
mysql安装
## 安装mysql 5.7
brew install mysql@5.7
## 设置开机启动
ln -sfv /usr/local/opt/mysql@5.7/*.plist ~/Library/LaunchAgents
## 配置mysql环境变量
## 在~/.bash_profile中添加以下内容
export PATH="/usr/local/opt/mysql@5.7/bin:$PATH"
## 使环境变量生效,执行
source ~/.bash_profile
## (推荐)brew方式启动/停止mysql
brew services start/stop mysql@5.7
## mysql自带方式
mysql.server start/stop/restart
修改root密码
use mysql;
update user set authentication_string = password('root') where User = 'root';
flush privileges;
修改字符集
## 查看字符集
show variables where Variable_name like "character\_set\_%" or Variable_name like 'collation%';
## 修改/usr/local/etc/my.cnf,增加以下配置,然后brew services restart mysql@5.7
# private
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
[mysql]
default-character-set=utf8mb4
[client]
default-character-set=utf8mb4
git安装
brew install git
## 生成密钥对
ssh-keygen -t rsa -C "xxx@mail.com"
## 获取公钥
cat ~/.ssh/id_rsa.pub
## 配置用户信息
git config --global user.name "xxx"
git config --global user.email "xxx@mail.com"
## 查看用户信息
git config --global --get user.name
git config --global --get user.email
Java安装
## 安装openJdk11
brew install java11
## 配置环境变量
export JAVA_HOME="/usr/local/Cellar/openjdk@11/11.0.10"
export PATH="$JAVA_HOME/bin:$PATH"
修改系统资源限制
- ulimit ulimit是linux shell的内建命令,用于对shell进程及其子进程进行资源限制,用户登出后失效。 ulimit的设定对各自进程生效,每个进程有自己的limits值。 使用ulimit修改是立即生效的。 可在profile中加入ulimit的设置,变相做到永久生效。
## 查看所有的设定值
ulimit -a
ulimit选项
- -H 设置硬件资源限制.
- -S 设置软件资源限制.
- -a 显示当前所有的资源限制.
- -c size:设置core文件的最大值.单位:blocks
- -d size:设置数据段的最大值.单位:kbytes
- -f size:设置创建文件的最大值.单位:blocks
- -l size:设置在内存中锁定进程的最大值.单位:kbytes
- -m size:设置可以使用的常驻内存的最大值.单位:kbytes
- -n size:设置内核可以同时打开的文件描述符的最大值.单位:n
- -p size:设置管道缓冲区的最大值.单位:kbytes
- -s size:设置堆栈的最大值.单位:kbytes
- -t size:设置CPU使用时间的最大上限.单位:seconds
- -v size:设置虚拟内存的最大值.单位:kbytes
- unlimited 是一个特殊值,用于表示不限制
注意: (1)-n限制文件描述符的最大值,一切皆文件,所以该参数也限制了socket连接数; (2)查询时,若不加H或S,默认显示软限制; (3)修改时,若不加H或S,两个参数一起改变。
-
limits.conf /etc/security/limits.conf文件实际是pam_limits.so的配置文件,pam_limits模块会对用户的会话进行资源限制。 一个shell的初始limits就是由pam_limits设定的。
-
sysctl(linux) sysctl用来修改内核参数,sysctl的修改是立即且临时的(重启失效)。 可以通过修改sysctl.conf配置文件,达到永久生效。 sysctl的选项
- -n 打印值时不打印关键字
- -e 忽略未知关键字错误
- -N 仅打印名称
- -w 当改变sysctl设置时使用此项
- -p 从配置文件“/etc/sysctl.conf”加载内核参数设置
- -a 打印当前所有可用的内核参数变量和值
- -A 以表格方式打印当前所有可用的内核参数变量和值
- launchctl(macos) Linux上有systemd,MacOS也有类似的工具:launchd,它对应的管理工具就是launchctl。
## 查看打开文件限制
launchctl limit maxfiles
## 修改打开文件限制,重启失效
sudo launchctl limit maxfiles 512 unlimited
## 集那个launchctl命令写入/etc/launchd.conf中
limit maxfiles 512 unlimited
unlimited是上限,最大10240。
注意⚠️:
通过launchctl修改maxfiles会导致kern.maxfiles的变化,sysctl -a |grep maxfiles可以观察到。
而通过sysctl -w kern.maxfiles=xxx修改的,launchctl limit maxfiles观察不到,而且可以大于10240。
通过launchctl修改之后,旧shell会话中ulimit -n还是旧值256,心打开的shell终端才是新值2560。
python3安装
brew install python@3.9