#### 安装expect
```shell
brew install expect
```
#### 编写expect脚本
例如在`~/.ssh`下新建`login.exp`文件。
```shell
#!/usr/bin/expect -f
# 第一个参数为目标server的ip
set ip [lindex $argv 0 ]
# 第二个参数为目标server的用户名
set username [lindex $argv 1 ]
# 第三个参数是端口号,默认22、
set port [lindex $argv 2]
# 第四个参数为目标server的密码
set mypassword [lindex $argv 3 ]
set timeout 10
spawn ssh $username@$ip -p $port
expect {
# 如果返回的内容里面有'yes/no',则输入yes
"*yes/no" { send "yes\r"; exp_continue}
# 如果返回的内容里面有assword(我们的server有些返回'password', 有些返回'Password')的文本, 则输入密码
"*assword:" { send "$mypassword\r" }
}
send_user "It's OK\r"
interact
```
#### 在iTerm2中新建profile
例如profile叫`bl`,在`profile->general->command`中,输入
```sh
~/.ssh/login.exp {地址} {username} {password}
```
之后,如需登陆,`command+o`,打开profile界面,选择`bl`即可。
- Welcome
- fzf使用
- git回滚
- 安装gollum使用github作为wiki端
- 使用github的issue
- linux的脚本
- git冲突解决
- sphinx生成python文档
- 使用aria2作为下载客户端
- tmux使用
- anaconda的虚拟环境构建
- git commit message
- tensorflow指定GPU,限制显存
- pycharm professional
- 好用的命令行工具
- lrzsz使用
- 使用iTerm2的profile免密登陆远程主机
- quicklook 插件
- docker基本使用
- jupyter notebook转html和pdf
- jupyter-notebook几个有用命令
- mongodb安装
- pytorch载入与训练模型
- git覆盖分支
- Jetson TX2资源
- GitHub上fork的repo和上游分支保持一致的方法
- vscode调试前端代码
- github hosts
- git添加远程仓库
- 其它语言好用的库/包
- git强制拉取和强制提交
- chrome扩展发布
- mac的CPP lib
- vscode远程