MacOS使用iTerm2
介绍
iTerm2
是 Terminal
的替代品,也是 iTerm
的继任者。它适用于装有 macOS 10.14
或更高版本的 Mac
。iTerm2
集成了丰富的功能,比Terminal
更好用。
安装
iterm2网站下载安装即可。
使用
设置背景图片
iTerm2
->Settings
->Profiles
->Window
->Background Image
,选择背景图片设置即可。
设置字体
iTerm2
->Settings
->Profiles
->Text
->Font
,选择字体设置即可。 我目前使用的Powerline
字体,也可以选择其他字体。安装Powerline字体
添加工具脚本
之前用的比较多的就是编写一个登录或发布的.sh
脚本,便捷登录云服务器或发布项目到云服务器。现在把打包脚本和发布脚本合并在一起,配置在各个项目中了,用的比较少了,但是这个功能还是挺好的。
下面通过登录云服务器
介绍一下如何在iTerm2
中添加并使用自定义的脚步,只要是能正常运行的脚步都可以已类似的方式使用,比如打包项目脚本、发布项目脚本等。
提示 下面的脚步中,路径、用户名等这些事写死的,也可以通过参数的形式传入,这样更灵活。但是使用时就失去了便利性,感觉反而不好,不如不同的项目使用不同的脚本去执行。
登录云服务器
我目前主要还是直接使用命令行ssh
+服务器
登录,如:$ ssh tdy-aliyun
。这种脚本登录使用比较少,更多还是做更复杂的任务,但是通过这个例子可以了解一下使用方式。
- 编写登录脚本
假如脚本名称为aliyun-login.sh
。
使用密码登录脚本如下:
#!/usr/bin/expect
###
# @Author: matiastang
# @Date: 2021-12-14 11:11:14
# @LastEditors: matiastang
# @LastEditTime: 2022-02-25 13:52:56
# @Description: 登录服务器
###
# 设置超时时间
set timeout 5
# 启动 SSH 子进程
spawn ssh ipv4地址
# 处理可能出现的提示
expect {
# 初次连接提示,发送 "yes" 并继续
"*yes/no" {
send "yes\r";
exp_continue
}
# 出现密码提示,发送密码
"*password:*" {
send "$password\r"
}
# 登录成功的提示,继续等待用户操作
"*Welcome to*" {
send_user "Login successful!\n"
exp_continue
}
}
# 这里可以添加其他预执行的指令,比如切换到某个目录下面之类的
# 切换到交互模式
interact
使用秘钥登录脚本如下:
#!/usr/bin/expect
###
# @Author: matiastang
# @Date: 2025-01-07 17:03:24
# @LastEditors: matiastang
# @LastEditTime: 2025-01-07 17:30:05
# @Description: 脚本登录测试
###
# 设置超时时间
set timeout 5
# 启动 SSH 子进程
spawn ssh -i ~/.ssh/matiasGithub/id_rsa -p 22 root@ipv4地址
# 处理可能出现的提示
expect {
# 初次连接提示,发送 "yes" 并继续
"*yes/no" {
send "yes\r"
exp_continue
}
# 登录成功的提示,继续等待用户操作
"*Welcome to*" {
send_user "Login successful!\n"
exp_continue
}
}
# 这里可以添加其他预执行的指令,比如切换到某个目录下面之类的
# 切换到交互模式
interact
脚本文件中的第一行#!/usr/bin/expect
,表示使用expect
解释器执行脚本。可以通过which expect
查看expect
路径,如果未安装需要先安装。 其中~/.ssh/matiasGithub/id_rsa
私钥地址,root
是用户名,ipv4地址
是服务器的ipv4
地址。
- 设置脚本权限
在脚本所在目录下,执行如下命令:
$ chmod +x aliyun-login.sh
- 把脚本配置到
iTerm2
的Profiles
中
点击Profiles
->Edit Profiles
,在弹出的窗口中(Settings
的Profiles
项),点击+
,添加一个Profile
,在General
的Name
编辑名称,如:登录aliyun服务器
。然后在Command
中选择Custom shell
,在输入aliyun-login.sh
脚本的地址,如:/Users/matias/matias-shell/MT/aliyun-login.sh
就可以了。
注意 也可以直接通过iTerm2
->Settings
->Profiles
来添加。
- 使用脚本
完成上面的添加后,在iTerm2
的Profiles
中就能看到我们添加的登录aliyun服务器
的脚本了,点击即可登录对应的云服务器。
注意 如果提示A session ended very soon after starting. Check that the command in profile "登录aliyun服务器" is correct.
需要检查一下脚本是否正确。
更新文件到云服务器
通过下面脚本可以将制定路径的前端dist
文件夹中的内容,更新到云服务器指定目录中。
#!/bin/zsh
###
# @Author: matiastang
# @Date: 2021-12-13 15:06:21
# @LastEditors: matiastang
# @LastEditTime: 2021-12-14 10:59:13
# @Description: 前端包更新
###
# 检查目录是否存在
if [ -d "$HOME/文件/dist/" ]
then
# build目录存在
# send_tty命令用来实现在终端上显示提示符字串和一个冒号及空格
set timeout 30
spawn send_tty "确定更新“***”开发包吗?:"
scp -r $HOME/文件/dist/ ipv4地址:/app/front/
expect {
"yes" {
send "yes\r";
exp_continue;
}
"no" {
send "no\r"
}
}
echo "已上传目录"
interact
else
# dist目录不存在
echo "dist目录不存在!"
fi