# SOFTWARE软件 ## 运维工具 ```{toctree} ./software/mdadm.md ``` ### nmon 查看各个磁盘的读写速度 ### htop [各种内存的概念](https://www.orchome.com/298) virt: 虚拟内存(可能你申请了很大, 但是实际上映射到物理内存数量很小) res: 驻留内存(包含了程序自身占用的物理内存和占用的共享内存) shr: 共享内存(动态链接库会只保留一份) ``` htop -u wangx # 仅看某个用户的进程 ``` ### iftop: ``` iftop -i ens3 -P 查看某个网卡的网络进出情况 ``` ### ip: 查看网卡端口 `ip link show` ### hddtemp: 查看硬盘的温度 ## 字符处理 ### awk ```bash awk '{print $1}' filename ``` ## Mac ```{toctree} ./mac/shortcut.md ./mac/software软件安装卸载brew.md ``` ## 服务类 ```{toctree} :maxdepth: 2 ./software/supervisor.md ./celery/README.md ./rabbitmq/README.md ./nfs.md ``` ### [syncthing](https://docs.syncthing.net/intro/getting-started.html) 界面美观易用的同步软件 ```bash syncthing serve --gui-address=example.com:8384 ``` ### [airflow](../airflowtest/README.md) ## 开发工具类 ```{toctree} ./git.md ./vim.md ./terminal.md ./markdown.md ``` ### bat 和cat一样,但是输出会有格式化 ### htpasswd * 添加用户 ``` htpasswd ``` * 验证用户 ``` htpasswd -v ``` [交互式的tutorial教程](http://www.openvim.com/) * [multiple-cursor](https://github.com/terryma/vim-multiple-cursors#quick-start) `:MultipleCursorsFind ` ### vscode ``` .vscode/settings.json { "files.exclude": { "*.wxss": true, "*/*.wxss": true } } ``` ## 网络类 ```{toctree} ./nginx.md ./shadowsocks/shadowsocks的用法.md ./net网络.md ``` ### chromium * 代理 ``` chromium-browser --proxy-server="socks5://127.0.0.1:1080" --host-resolver-rules="MAP * 0.0.0.0 , EXCLUDE localhost" & ``` * 调试 ``` -scheme:chrome-extension 关闭插件的network ``` ### chromium插件 #### cvim [github: 1995eaton/chromium-vim](https://github.com/1995eaton/chromium-vim) 一款优秀的vim插件, 为了兼容tower的网站,需要加以下配置 ``` let searchlimit = 4 let blacklists = ["https://ecs.console.aliyun.com/*"] let hintcharacters = "abcdefghijklmnpqrstuvwxyz" showTodoRest -> {{ var doms = document.getElementsByClassName("todo-rest") for (var i=0; i ``` ## rinetd: 用来端口转发 ## rsync 用来同步数据的软件 1. [官网](https://rsync.samba.org/documentation.html) 2. [教程](https://everythinglinux.org/rsync/) * 简介 有点: 快速(只上传改动部分, 压缩上传), 安全(ssh上传). 但是好像无法上传后加密 ### 基础用法 rsync -r --verbose / # 这样会把from_directory 复制到 to_directory/from_directory rsync -r --verbose / / # 这样会把from_directory下的内容复制到 to_directory rsync -r --verbose version1/ version_latest/ # 先复制version1的 rsync -r --verbose version2/ version_latest/ # 后复制version2的, 这样就是最新的了 ### 参数 [官网](https://download.samba.org/pub/rsync/rsync.html) * -u * --update: 如果receiver的文件比较新,就跳过 * [ ] --inplace * --append: 把数据添加到短的文件上面, 之前的数据不动. 只能加,不能改 * [ ] --append-verify * -n: 不操作,只看看 * -v: 显示所有日志 * --ignore-existing: 忽略存在的文件 ### 示例 * 把文件上传到服务器 rsync --verbose --progress --stats --compress --update --rsh=/bin/ssh \ --recursive --times --perms --links \ --exclude "*bak" --exclude "*~" \ /home/wangx/rsync_test/ localhost:/home/wangx/rsync_server/ rsync --verbose --progress --stats --compress --update --rsh=/bin/ssh \ --recursive --times --perms --links \ --exclude "*bak" --exclude "*~" \ /home/wangx/rsync_test2/ localhost:/home/wangx/rsync_server/ * 把服务的文件下载下来 rsync --verbose --progress --stats --compress --update --rsh=/bin/ssh \ --recursive --times --perms --links \ --exclude "*bak" --exclude "*~" \ /home/wangx/rsync_server/ localhost:/home/wangx/rsync_test/ rsync --verbose --progress --stats --compress --update --rsh=/bin/ssh \ --recursive --times --perms --links \ --exclude "*bak" --exclude "*~" \ /home/wangx/rsync_server/ localhost:/home/wangx/rsync_test2/ * 复制文件夹 rsync -vrn --ignore-existing from_directory/* to_directory # 先看看 ## shadowsocks * 各个服务器的测速 * [linode](https://www.linode.com/speedtest) ``` wget http://speedtest.newark.linode.com/100MB-newark.bin 23kb/s(宿舍,长城宽带,凌晨1点) wget http://speedtest.atlanta.linode.com/100MB-atlanta.bin wget http://speedtest.dallas.linode.com/100MB-dallas.bin wget http://speedtest.fremont.linode.com/100MB-fremont.bin wget http://speedtest.frankfurt.linode.com/100MB-frankfurt.bin wget http://speedtest.london.linode.com/100MB-london.bin wget http://speedtest.singapore.linode.com/100MB-singapore.bin wget http://speedtest.tokyo2.linode.com/100MB-tokyo2.bin 330kb/s(宿舍,长城宽带,晚上11点) ``` * [digitalocean](http://speedtest-sfo1.digitalocean.com/) * [服务器上测试中国各地区的网址](https://github.com/oooldking/script) ``` wget https://raw.githubusercontent.com/oooldking/script/master/superspeed.sh sh superspeed.sh ``` * [多个地点ping服务器](http://ping.chinaz.com/) ## samba 用来安装共享文件夹,方便多台电脑共享文件 [安装部署教程](https://www.digitalocean.com/community/tutorials/how-to-set-up-a-samba-share-for-a-small-organization-on-ubuntu-16-04) ## split 分割文件 ```bash split -b 1900 test result # 将文件分割成1900字节 split -C 500 test result # 将文件分割成每个最多500字节 split -l 100 test result # 将文件分割成每个100行 split -d -l 10000 test result/block_ # -d 用数字进行编号 ``` ## [SQLite](./sqlite/README.md) ## ssh ``` ssh -D 1080 # 本地1080端口访问remote ``` * 使用ssh开启代理克隆github [参考链接](https://randyfay.com/content/git-over-ssh-tunnel-through-firewall-or-vpn) ``` ssh -L3333:github.com:22 wangx@singapore.ramwin.com # 把本地3333端口,通过singapore.ramwin.com去访问github.com git clone ssh://git@localhost:3333/ninja-build/ninja.git # 通过本地3333端口,访问singapore.ramwin.com来克隆github的项目 ``` * 测试密码登录是否关闭 ```shell ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no ``` * SetEnv 登录后修改环境变量,一般服务器sshd只会允许设置`LC_*` ```shell ssh -o "SetEnv LC_A=2" # 这样服务器的 LC_A就是2了。 ``` ## sshd [配置文档](https://linux.die.net/man/5/sshd_config) ``` vim /etc/ssh/sshd_config ClientAliveInterval: 60 #如果超过多少时间没有消息,就主动发送一个, 不要设置太小,不然ssh可能无法重启(因为发送频率太高了) ClientAliveCountMax 3 PasswordAuthentication no 是否允许密码登录 ``` ## tsocks 让应用启动的时候走代理 ``` # 配置tsocks vim /etc/tsocks.conf server = 127.0.0.1 server_port = 1080 server_type = 5 # 启动 tsocks firefox ``` ## [terminal终端](./terminal.md) ## [tldr](https://github.com/tldr-pages/tldr) too long don't read, 解决用man查看文档过于冗长的情况. 快速查看命令的文档 ``` sudo pip3 install tldr # 临时使用 tldr ls -s "http://tldr.ramwin.com/pages/" # 永久设置ramwin源 export TLDR_PAGES_SOURCE_LOCATION="http://tldr.ramwin.com/pages/" tldr ls ``` ## other * alarm-clock-applet 闹钟 * except: 自动输入账号密码的工具,用来自动化脚本里面避免卡住 * [gnome](./gnome.md) * [gpg](https://statistics.berkeley.edu/computing/encrypt) * 创建密钥 gpg --full-gen-key * 加密文件 gpg -e -r USERNAME 生成file.gpg文件 * 解密文件 gpg -d -o <新的文件名> <加密的gpg文件> * iotop: `查看磁盘当前读写速度` * kazam 录屏软件 此外还有 greenrecorder, vokoscreen, simplescreenrecorder(manjaro上好用) * [php](https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-in-ubuntu-16-04) * [postfix](https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-postfix-on-ubuntu-18-04) * [screen](./screen.md) *用来开启后台shell* ``` screen -list screen -S sjtupt # 创建新的screen ctrl + A + D # 关闭当前screen screen -r sjtupt # 还原之前的screen ctrl + a 然后 esc 可以复制滚动 最后按esc退出 ``` * simplescreenrecorder *录屏软件* * smtp邮件服务器 **新版参考postfix** * [digitalocean.com教程](https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-postfix-as-a-send-only-smtp-server-on-ubuntu-18-04) ``` sudo apt install mailutils sudo apt install postfix 修改 inet_interfaces = loopback-only 或者 localhost service postfix restart ``` * [配置文档](http://blog.csdn.net/reage11/article/details/9295005) * [阮一峰的oauth讲解](http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html) * 7z