002-自定义打开terminal,以及快捷键,其他程序类似,ssh管理-sshpass, Shuttle
一、利用Automator软件完成服务设定
1、使用Command+Space,打开Spotlight,搜索Automator
2、搜索到之后,双击打开,选择“服务【或快速操作】”
3、将“服务收到【或工作流程收到当前】“选为“没有输入”,
4、并在在左侧工具栏“资源库”中将操作选为“实用工具”中的“运行 AppleScript"双击选择之后右侧空白出将会出现代码编辑界面,输入代码
on run {input, parameters} (* Your script goes here *) tell application "Terminal" reopen activate end tell end run
5、输入完成之后可点击右上角的运行,点击后如出现Terminal窗口证明指令生效
6、Command+S保存,将该项服务储存为“打开终端”即可
二、为服务设定快捷键
2.1、打开系统偏好设置并选择键盘
选择快捷键->服务->勾选Open Terminal->并将快捷键设置为自己所需的类型;将快捷键设置Control+Option+T
三、终端样式设置
打开终端后,顶部菜单栏,终端➡️偏好设置,可以设置显示样式等
终端定制化:012-mac下shell,zsh,oh-my-zsh,以及插件
四、ssh管理
1、sshpass
1.1、下载
sshpass: 用于非交互的ssh 密码验证ssh登陆不能在命令行中指定密码, 也不能以shell中随处可见的,sshpass 的出现,解决了这一问题。它允许你用 -p 参数指定明文密码,然后直接登录远程服务器。 它支持密码从命令行,文件,环境变量中读取。
下载:http://sourceforge.NET/projects/sshpass/
1.2、安装
进入下载目录
tar zxvf sshpass-1.06.tar.gz cd sshpass-1.06 ./configure make & make install
1.3、示例
sshpass -p 123456 ssh -o StrictHostKeyChecking=no root@192.168.1.1
-p:指定ssh的密码
-o StrictHostKeyChecking=no 避免第一次登录出现公钥检查。
执行多条命令
sshpass -p 123456 ssh -o StrictHostKeyChecking=no root@192.168.1.1 'ls -a && pwd'
2、Shuttle
2.1、下载Shuttle
https://github.com/fitztrev/shuttle/releases 的zip,将解压后的Shuttle.app复制到自己指定目录 或者应用程序目录
2.2、配置
"hosts":[ { "Test Server":[ { "cmd":"sshpass -p '123456' ssh -o StrictHostKeyChecking=no root@192.168.1.3", "name":"名称", "title":"title" } ] } ]
运行即可
2.3、.shuttle.json简述
- editor: 使用什么编辑器打开.shuttle.json文件(可选值:default, nano, vi, vim或其他可在终端编辑文件的命令)
- launch_at_login: 是否自动启用shuttle(可选值: true, false)
- terminal: 设置执行命令的默认终端(可选值:Terminal.app, iTerm)
- iTerm_verison: 当terminal参数设置为iTerm时必填(可选值:stable, nightly)
- default_theme: 设置终端主题
- open_in: 命令窗口展示方式(可选值:tab, new)
- show_ssh_config_hosts: 是否解析ssh config,并显示对应的主机到菜单列表中(可选值:true, false)
- ssh_config_ignore_hosts: 在ssh config需要忽略显示在菜单的主机数组(值为主机名)
- ssh_config_ignore_keywords: 在ssh config需要忽略的关键字
hosts键值
- cmd: 需要执行的命令
-
shuttle 除了可以用来当SSH管理工具以外,还能执行多条命令操作,提高效率,只要用分号分隔即可
例如 pwd; ls; cd /; 就会按顺序执行以上三条命令。
-
- name: 菜单名
- inTerminal: 命令执行窗口模式(可选值:new, tab, current)
- theme: 终端主题
- title: 终端显示标题(缺失时使用name作为标题)