总结记录几个shell小工具,都是很常用且很好用的东西.
最终实现了,高效的登录至服务器,不用输入密码.以及使用ccat查看源码,使用htop观察机器内存等信息.
Expect是Unix系统中用来进行自动化控制和测试的软件工具,由Don Libes制作.
通俗的讲,就是允许你在脚本里设定一些”原本要手动输入”的东西.
mac OS: brew install expect
#!/usr/local/bin/expect
set server [lindex $argv 0]
set timeout -1
set passwd XXXXXXX
spawn ssh jump
expect {
"*Enter passphrase*" {send "$passwd\r";exp_continue}
"*Welcome to*" {send "$server\r";}
}
interact
这是实现的一个expect的简单应用.实现了自动登录跳板机并选择机器进行登入.具体解释一下.
server=输入的第一个参数
passwd=密码
ssh jump
命令,Enter passphrase
时输入密码.welcome*
时输入server
.<a href=”http://xstarcd.github.io/wiki/shell/expect.html” 很不错的expect教程</a> 中有多个常用的expect的示例.可以参考.
brew install ccat
输出一个java文件
brew install htop
F1 : 查看htop使用说明
F2 : 设置
F3 : 搜索进程
F4 : 过滤器,按关键字搜索
F5 : 显示树形结构
F6 : 选择排序方式
F7 : 减少nice值,这样就可以提高对应进程的优先级
F8 : 增加nice值,这样可以降低对应进程的优先级
F9 : 杀掉选中的进程
F10 : 退出htop
/ : 搜索字符
h : 显示帮助
l :显示进程打开的文件: 如果安装了lsof,按此键可以显示进程所打开的文件
u :显示所有用户,并可以选择某一特定用户的进程
s : 将调用strace追踪进程的系统调用
t : 显示树形结构
H :显示/隐藏用户线程
I :倒转排序顺序
K :显示/隐藏内核线程
M :按内存占用排序
P :按CPU排序
T :按运行时间排序
上下键或PgUP, PgDn : 移动选中进程
左右键或Home, End : 移动列表
Space(空格) : 标记/取消标记一个进程。命令可以作用于多个进程,例如 "kill",将应用于所有已标记的进程
在这个界面,可以使用f3
搜索,f4
过滤,具体操作
经过上面的第一个步骤,我们有了一个jump
的脚本,但是每次都要去执行脚本也是一件非常麻烦的事情.
我们希望可以像使用mysql
等等命令那样在全局都可以.
这里有两种实现方式:
在/usr/local/bin
目录下设置一个目标脚本的软连接即可.
ln -s ~/jump /usr/local/bin/jump
在~/.zshrc文件中加入alias="~/jump"
即可.
这个名字真的是简洁.
这是一个快速管理你的cd命令的脚本.github仓库
基本实现就是:
你安装了z,之后你的cd会被记录到.z文件,然后当你想切换目录的时候,只需要z xx + tab
即可. xx是你想去的目录的部分名字即可,z使用正则表达式来匹配,所以只要你输入的xx
足够不重复
,基本是无敌精准的.
使用zsh的朋友,打开~/.zshrc
,将其中的plugins={git}
添加z,变成plugins={git z}
,然后执行source ~/.zshrc
即可.
先瞎cd几下.然后z
:
查看磁盘IO的工具.
在ubuntu环境下:
wget http://guichaz.free.fr/iotop/files/iotop-0.6.tar.bz2
tar -xjvf iotop-0.6.tar.bz2
cd iotop-0.6/
之后执行./iotop.py
即可.
如果嫌麻烦,可以设置软连接即可全局使用啦.
# 仅显示实际在做io的进程
iotop -o
# 根据pid进行筛选
iotop -p
完.
2019-04-02 完成 2019-04-03 添加Z 2019-04-21 添加iotop
以上皆为个人所思所得,如有错误欢迎评论区指正。
欢迎转载,烦请署名并保留原文链接。
联系邮箱:huyanshi2580@gmail.com