MacOS/Linux下的小知识
Tip.1 更新Locate的数据库
1 | $ sudo /usr/libexec/locate.updatedb #MacOS |
Tip.2 当使用源文件编译安装,configure默认–prefix=/Applications/Xcode.app/**下面时,make失败大部分因为没有安装command line tools造成的
1 | $ xcode-select --install #MocOS |
Tip.3 MacOX修改HostName
1 | $ sudo scutil --set HostName yourhostname #MacOS |
Tip.4 MocOX启动ssh服务
修改/etc/ssh/sshd_config, 打开RSAAuthentication & PubkeyAuthentication & AuthorizedKeysFile等项
~/.ssh中生成rsa key-pair, 然后启动ssh服务
1 | $ sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist |
Tip.5 MocOX zsh环境变量加载顺序
特别注意,/etc/zprofile中只是调用了/usr/libexec/path_helper -s, 而path_helper会生成主要的PATH部分,path_helper主要工作是读取/etc/paths以及/etc/paths.d/目录下的文件的内容以生成PATH环境变量,如果需要修改顺序,则需要修改这两项的内容。
Global Order: etc/ ——> ~/. : zshenv, zprofile, zshrc, zlogin
Tip.6 Linux下docker非sudo下运行:将用户加入docker工作组
1 | $ sudo usermod -aG docker <username> #Linux |
Tip.7 chmod命令改变文件权限是有限制的,只对linux分区有效,如果是挂在目录,则命令失效
Tip.8 git vi报错:原因是vim版本的问题,并且git支持的是vi,更换为最高版本的vim即可正常
1 | $ git config --global core.editor vim |
Tip.9 查看Ubuntu版本号
1 | $ sudo lsb_release -a |
Tip.10 更改时区
1 | $ sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime |
Tip.11 更新pip
1 | $ sudo python -m pip install --upgrade --force pip |
Tip.12 经常出现的路径权限问题
1 | $ sudo chown -R `whoami` /to/your/path |
Tip.13 Python’s Error – TypeError: cal() takes exactly 2 arguments (1 given)
1 | $ sudo vim ~*/Python/2.7/site-packages/packaging/requirements.py |
And
1 | MARKER_EXPR = originalTextFor(MARKER_EXPR())("marker") |
Change it to
1 | MARKER_EXPR = originalTextFor(MARKER_EXPR(""))("marker") |
Tip.14 Mac安装软件出现”应用已损坏”的解决办法
1 | $ sudo spctl --master-disable |
Tip.15 查看Cpu相关
1 | # 查看物理CPU个数 |
Tip.16 MySql的my.cnf的加载顺序
1 | # 以下命令可以查看加载顺序 |
文件名 | 目的 |
---|---|
/etc/my.cnf | 全局选项 |
/etc/mysql/my.cnf | 全局选项 |
SYSCONFDIR/my.cnf | 全局选项 |
$MYSQL_HOME/my.cnf | 服务器特定选项(仅限服务器) |
defaults-extra-file | 指定的文件 –defaults-extra-file,如果有的话 |
~/.my.cnf | 用户特定选项 |
~/.mylogin.cnf | 用户特定的登录路径选项(仅限客户端) |
一般顺序如下:
- /etc/my.cnf
- /etc/mysql/my.cnf
- SYSCONFDIR/my.cnf
basedir/my.cnf - $MYSQL_HOME/my.cnf
datadir/my.cnf - 加启动指定参数
-defaults-file=#, 只读取指定的文件(不再读取其他配置文件)
-defaults-extra-file=#,从其他优先级更高的配置文件中读取全局配置后,再读取指定的配置文件 - ~/my.cnf
Tip.17 缺少ps命令应该安装的工具类:
1 | $ sudo apt-get udpate && sudo apt-get install procps |
Tip.18 docker在中国区pull遇到的网络问题:
Tip.19 查看网络带宽
1 | $ nload |
Tip.20 传输大文件需网络经过跳板机,ssh无法直连时
1 | # 使用nc传输,接收端 |
监听、发送端均可对传输文件加密
安装qpress参考qpress官网:qpress
qpress在linux直接安装,qpress在mac下需要自己编译,并需要修改如下代码:
1 | --- a/qpress.cpp |
然后make编译即可使用
参考网站:Fix_qpress_bug
nc传输压缩文件流:
1 | # -k表示当client断开发送时server接收不断开 |
Tip.21 添加用户并分配用户权限
1 | $ groupadd [-r] -g 20999 xijia |
Tip.22 python升级版本后yum失效
1 | ## 将#!/usr/bin/python 修改为 #!/usr/bin/python2.6 |
Tip.23 设置代理
可以修改.bashrc或者/etc/profile
1 | export http_proxy=http://username:password@proxyserver:port/ |
yum可以修改/etc/yum.conf
1 | proxy=http://username:password@proxyserver:port |
Tip.24 最新版MacOS防火墙开启允许任何
1 | $ sudo spctl --master-disable |
Tip.25 scp传文件
1 | # 本地文件传到远端服务器 |
Tip.26 Linux设置docker代理
1 | $ mkdir -p /etc/systemd/system/docker.service.d/ && touch /etc/systemd/system/docker.service.d/http-proxy.conf |
在http-proxy.conf中添加如下内容:
1 | [Service] |
then重启docker服务:
1 | $ sudo systemctl daemon-reload |
Tip.27 Linux永久修改hostname
1 | # 另外把{hostname}放到/etc/hostname文件中 |
Tip.28 IntelliJ HTTP_PROXY setting
设置项: Preferences -> Appearance and Behavior -> System Settings -> HTTP Proxy
Tip.29 git每次需要密码的解决
1 | $ git config --global credential.helper store |
Tip.30 IntelliJ解决两个JVM环境的问题
1 | # help->edit custom properties |
Tip.31 Linux反选文件删除
1 | $ shopt -s extglob ## 打开extglob模式 |
Tip.32 批量重命名
1 | $ for i in `ls`; do mv -f $i `echo $i | sed 's/\.bak$//'`; done |
Tip.33 CentOS懒人安装py
1 | $ yum install epel-release -y |
Tip.34 百度云命令上传/下载
1 | $ pip3 install bypy --user |
Tip.35 pip升级所有包
1 | $ pip3 freeze --local | grep -v '^\-e' | cut -d = -f 1 | xargs pip3 install -U |
Tip.36 修复pip丢失
1 | $ curl https://bootstrap.pypa.io/get-pip.py | sudo python3 |
Tip.37 安装本地python包项目
1 | $ pip3 install git+https://github.com/xxxxx/xxxx.git@master |
Tip.38 限制允许sshd连接的ip
1 | $ vim /etc/hosts.allow |
至于经常sshd无法启动,一般会发现是因为默认22端口已被bind,sshd_config配置一个新的连接端口即可。
Tip.39 Centos设置防火墙80/8080端口的权限
1 | $ firewall-cmd --zone=public --add-port=80/tcp[--add-port=8080/tcp] --permanent |
Tip.40 history命令显示命令时间信息
1 | $ export HISTTIMEFORMAT='%F %T ' |
Tip.41 Mysql更改连接权限
1 | # 顺便修改配置密码 |
Tip.42 Linux查看缓存行大小
1 | $ cat /sys/devices/system/cpu/cpu0/cache/index0/coherency_line_size |
Tip.43 Linux jmap命令报错
1 | ## 问题往往是debuginfo没有安装 |
Tip.44 jstatd如何使用
1 | ## 知晓:一般安装java-1.8.0-openjdk |
Tip.45 git拉取远程分支
1 | $ git branch -r # 假设有master和feature两个分支 |
Tip.46 Python3的CFLAGS等环境变量取址
1 | # 查找方式:入口是python3-config --cflags; |
Tip.47 CentOS更改docker启动service配置
1 | $ vim /usr/lib/systemd/system/docker.service |
Tip.48 nc命令直接传输文件目录
1 | ## 接收端 |
Tip.49 垃圾Centos,只能升级gcc
1 | $ yum -y update |
Tip.50 查看硬盘与分区的有用命令
1 | $ lsblk -a |
Tip.51 ping无效
1 | ## 查看gateway是否正确 |
Tip.52 读取网卡UUID
1 | $ yum -y install NetworkManager && service NetworkManager start |
打印信息:
1 | NAME UUID TYPE DEVICE |
Tip.53 查询网卡状态
1 | $ mii-tool ethx |
Tip.54 vagrant+virtualbox添加usb支持
首先安装virtualbox扩展:Extension下载地址
1 | $ VBoxManage list usbhost |
1 | Host USB Devices: |
Vagrantfile添加配置内容:
1 | vb.customize ["modifyvm", :id, "--usb", "on"] |
Tip.55 内存/CPU监控
1 | $ vmstat 2 1000 ## 每2秒执行,执行1000次 |
Tip.56 限制网卡对某端口的访问
1 | ## 观察一下iptables状态 |
对于打算禁止eth0访问docker映射出的外部端口,使用外部INPUT、FORWARD直接禁止端口发现都是无效的。
如开启容器使用了-p 8099:8080,可以通过iptables-save观察到如下内容:
1 | -A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE |
我们大概可以猜到docker是将eth0流量转发至docker0中的8099端口,又通过DNAT映射至容器8080端口,故而我们的iptables规则应书写如下:
1 | ## 我们将eth0进入的转发流量关闭与docker0的连接即可 |