以前在mac环境下只使用默认终端工具,最近接触zsh和oh-my-zsh感觉功能挺强大,特此记录。同时对常用的screen命令进行简要介绍。

1.Iterm2

1.1.修改Item2配色方案

iterm2终端preferences下Profiles/Default/Colors,Color Presets选择导入解压包中schemes下.itermcolors后缀的主题文件.推荐homebrew

1.2.新建窗口跟随之前的目录

iterm2->preferences->Profiles/Default/General,Working DIrectory选择 Reuse previous session’s directory

1.3.快捷键

⌘ + Click:可以打开文件,文件夹和链接

⌘ + n:新建窗口

⌘ + t:新建标签页

⌘ + w:关闭当前页

⌘ + 方向键:切换标签页

⌥⌘ + 方向键:切换窗口

⌘ + enter:切换全屏

⌘ + d:左右分屏

⇧⌘ + d:上下分屏

⌘ + ;:自动补全历史记录

⇧⌘ + h:自动补全剪贴板历史

⌥⌘ + e:查找所有来定位某个标签页

⌘ + r :清屏

⌘ + /:显示光标位置

⌥⌘ + b:历史回放

⌘ + f:查找,然后用 tab 和 ⇧ + tab 可以向右和向左补全,补全之后的内容会被自动复制, 还可以用 ⌥ + enter 将查找结果输入终端.选中即复制,鼠标中键粘贴

control + u:清空当前行

control + a:移动到行首

control + e:移动到行尾

control + f:向前移动

control + b:向后移动

control + p:上一条命令

control + n:下一条命令

control + r:搜索历史命令

control + y:召回最近用命令删除的文字

control + h:删除光标之前的字符

control + d:删除光标所指的字符

control + w:删除光标之前的单词

control + u:删除从光标到行首的内容

control + k:删除从光标到行尾的内容

control + t:交换光标和之前的字符

2. zsh

brew install zsh  #安装最新版的zsh
zsh --version     #查看zsh版本
echo $ZSH_VERSION #查看当前使用的zsh 版本
cat /etc/shells   #查看包含的shell
echo /user/local/bin/zsh>>/etc/shells #添加brew安装zsh
chsh -s /user/local/bin/zsh #修改默认shell

3. oh-my-zsh

  • 官网

  • 默认安装在~/.oh-my-zsh下

    #curl
    sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
    #wget
    sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
    
  • 添加插件

默认开启git插件。插件目录在~/.oh-my-zsh/plugins下。 启用插件 在配置文件~/.zshrc中添加使用空格分隔

plugins=(rails git textmate ruby lighthouse)

4. screen

经常在服务器后台跑程序的同学会发现ssh连接到服务器运行程的时候,如果关闭窗口一段时间后服务就自动停止了,需要一直开着窗口。但是由于网络等等原因,一段时间后连接会自动关闭退出.

如果想通过其他设备查看程序运行的状态可能只看到一个程序在运行,除非一直在后台写执行日志。

有什么办法能够保证程序一直在运行。在不同的设备访问后能回到命令执行的窗口呢 ?

推荐使用screen

  • mac通过brew install screen进行安装

  • 开启输入screen如果退出当前窗口执行 exit

  • 如果需要screen一直运行我在当前窗口开启top,然后通过control + a + c新建窗口,在新的窗口执行需要运行的命令.比如scp拷贝或者ftp上传命令

  • +  ```screen -S name```创建一个指定名字的会话
    +  ```screen -wipe```删除无法连接的会话(dead)
    +  ```screen -r```  重新连接一个断开的会话
    +  ```screen -d```  断开处于Attached状态的连接
    +  ```screen -d -r ```连接一个scrren,如果是Attached先踢掉远程用户再连接
    +  ```screen -D -r ```连接一个scrren,与上一命令类似.如果是Attached先踢掉远程然后关闭对方窗口,然后再连接
    +  ```control + a + d ```   暂时断开窗口
    +  ```control + a + k ```   杀死当前窗口
    +  ```control + a    ```    切换窗口 
    +  ```control + a + p```    切换上一个窗口 
    +  ```control + a + n```    切换下一个窗口 
    +  ```control + a + w```    列出所有窗口 
    +  ```control + a + 0-9 ``` 如果窗口太多可以通过数字切换窗口
    
    
    ## 2017-08-15 追加
    
    切换到zsh不加载/etc/profile需要执行
    
    

echo “source /etc/profile” >>~/.zshrc ```