前言:
Mac 和 Windows 环境不一样. Windows 靠着资源管理器 explorer.exe, 并且提供桌面环境和 shell 工具比如 xshell. 工作环境切换到 Mac,Mac 属于类 Unix 操作系统 (*NIX). 由于不同的系统框架设定, Windows 好用的工具软件在 Mac 不一定有一样好用的用户体育. Mac OS X 采用的是另一种设计, Linux 的桌面环境(Linux KDE, GNOME 等) 和文件设备管理器 (Nautilus, Dolphin 等).
一, Mac 高效 shell 软件
Mac 上类似与 Xshell 的软件, 目前流行度第一的还是 OS X 系统自带的 iTerm2.
iTerm2 开启多个会话. 支持搜索拦, 命令自动补齐和多配置设定. iterms 还有比 xshell 更好用的一线使用技巧.
比如:
通过打开 iTerm> Preferences (或 + ,), 在 keys->Hotkey 选项中勾选 "Show/hide all windows with a system-wide hotkey". 此后就可以方面通过组合键(options + 空格 隐藏 / 显示 iterms2 窗口)
图 1, 开启一键隐藏 / 显示 iterms 配置
开启新的 Tab 页( + t.), 在当前页面下水平开启多个页( + d, 垂直是 + d +shift).
图 2, 新建多个标签页
左右移动 tab 页面的命令键是 ( + Shift + ] 或者 + Shift + [)
支持在 shell 终端 (包括历史执行的结果, 整个会话的执行历史相当于一个文本) 搜索字符串( + f), 查找下一个( +g)
支持将 shell 命令下发到多个 tab 会话中( + Option + I, 再次敲击快捷键关闭此功能)
图 3, 命令同时下发到多个会话
清理终端屏幕( + k, 或者 ctrl+l),ctrl+l 会保留当前输入的命令行缓冲.
最大化窗口( + Shift + = 或者 + Enter), + Shift + = 会保留菜单栏.
改变字体大小( + + 或者 + -), 找到光标位置( + /)
二, iterms2 可用自由的拖拽上传下载
curl -L https://iterm2.com/misc/install_shell_integration.sh | bash |
---|
图 4, 装完 scp 上传下载插件
再本地 Mac shell 和远程的 shell(要执行上传下载的机器)都装上. 然后会出现一个蓝色的右三角图标.
下载文件, 选择文件, 右击选择 download with scp from,
图 5, 下载文件
因为说通过 scp 上传, 在执行 scp 上传之前, 记得把 host_name 的变量改成 IP 地址
export iterm2_hostname="你的 ip"
upload: 把文件拖拽至 shell, 不要放开鼠标, 接着按下 option 键. 出现将执行 scp 上传的确认对话框.
三, 从 bash 到 Zsh 到 fish
shell 上一个程序把键盘输入的命令发送给操作系统执行, 常用的比如 Bash(Bourne Again Shell).Zsh 作为高阶版的 Bourne shell 扩展. Zsh 做了命令行的补充(数百个命令的扩展), 继承了 bash 的 glob 特性(不需用 find, 直接在执行命令支持正则的找到文件. 比如说 ls go+(.bak) 找到一个文件名为 go 并且出现一次 bak 的文件, 并把它 list 出来. Zsh 还支持命令历史继承, 改善的变量和 array 支持, 一个输入缓冲中支持多行命令编辑, 命令拼写校正. Zsh 兼容在 bash, 执行 / bin/sh 相当于执行 zsh. 甚至可选模块(tcp,uds 网络支持, 数学运算),where 命令支持在所有的 PATH 环境变量定义路径找到命令, 路径文件夹缩写等等.
3.1. fish 特性
Fish(FriendlyInteractive SHell),Fish 致力于作出用户交互性更好的 shell 产品. 它的特点包括
自动完成填充和自动建议
比如说敲了 ls -he, 他会用暗灰色字体建议输入 ls -help. 当从敲命令的第一个字母开始, 这个 建议实时刷新. 一开始会标红, 因为命令不是正确完整的, 一旦敲入所有的命令, 红色的字体会变蓝色.
图 6,fish 的提示和自动补全
按方向键右自动填充建议, tab 键打开补齐选项, 选项说根据 man 页面的选项提示. tab 键按完再按空格进行搜索.
命令输入错误的更正信息更易读懂, 比如 fish 支持 and 和 or 替换 && 和 ||. mkdir ~/something; and echo "Done"; or echo "error"
支持命令嵌套, 统计一个工程每个文件的代码量, wc -l (ls -a myproject).
总之 fish 脚本语言更易用, 语法清晰简洁, 有点像 python, 比较下列两种不同 shell 的写法
- #bash
- export PATH=~/bin:¥(PATH)
- .#fish
- set -gx PATH ~/bin
3.2. 安装 fish
Linux,yum install fish(或者 apt).chsh -l 找到 fish 的二进制路径, chsh -s /usr/bin/fish
另外打开 web 配置页面, fish_config, 浏览器访问 http://localhost:8000. 因为服务器的监听说根据网卡的配置的 ip, 如果说云虚拟机, 此项可能会失败
自动补齐的配置放在~/.config/fish/completions. 然后再执行 fish_update_completions
来源: https://www.qcloud.com/developer/article/1416190