2015.11.18随笔

Homebrew

brew的几个命令:
1. brew doctor
检测brew的状态,如果有异常,会给出推荐的解决办法
2. brew update
brew版本过低时,需要升级,首先进到brew的git目录(/usr/local),然后执行下面的命令:

git fetch
git reset –hard origin/master
brew update

expect

安装: brew install expect(如果brew版本过低,可以参考上面的Homebrew内容)
功能:实现人机交互的自动化
例子:

#!/usr/bin/expect  -f  

set timeout 5 
set server [lindex $argv 0] 
set user [lindex $argv 1] 
set passwd [lindex $argv 2] 

spawn ssh -l $user $server 
expect { 
"(yes/no)" { send "yes\r"; exp_continue } 
"password:" { send "$passwd\r" } 
} 
expect "*Last login*" 
interact                         
  1. #!/usr/bin/expect
    这一行告诉操作系统脚本里的代码使用那一个shell来执行。这里的expect其实和linux下的bash、windows下的cmd是一类东西。
    :如果使用expect,那执行的时候就要用./xxx而不是sh ./xxx.sh
  2. set timeout 5
    设置超时时间是5**秒**,set timeout -1是永不超时
  3. set server [lindex $argv 0]
    设置server=[lindex $argv 0],即server为输入的第一个参数,下面两句同理
  4. spawn ssh -l $user $server
    执行ssh -l $user $server,其中$user和$server分别为上面set的值
  5. expect {
    “(yes/no)” { send “yes\r”; exp_continue }
    “password:” { send “$passwd\r” }
    }
    针对期待的输入,输出对应的值,从而完成自动化人机交互,
    如果输出(yes/no),则自动输出”yes\r”,exp_continue可以继续执行下面的匹配,简单了许多。
    如果输出password,则自动输出”$passwd\r”,$passwd为上面set的值
  6. interact
    将控制权交回给用户,即ssh 登陆后让用户继续操作

lrzsz

包括两个命令:rz和sz

安装

  1. 安装lrzsz: brew install lrzsz
  2. 安装iTerm2,直接下载安装即可
  3. 安装iterm2-zmodem

    #进入到brew的bin目录
    cd /usr/local/bin
    sudo wget https://raw.github.com/mmastrac/iterm2-zmodem/master/iterm2-send-zmodem.sh
    sudo wget https://raw.github.com/mmastrac/iterm2-zmodem/master/iterm2-recv-zmodem.sh
    sudo chmod 777 /usr/local/bin/iterm2-*

  4. 打开iTerm2,Cmd + , -> Profile -> Advanced -> triggers
    2015.11.18随笔_第1张图片
    加入如下两个triggers:

    Regular expression: **B0100
    Action: Run Silent Coprocess
    Parameters: /usr/local/bin/iterm2-send-zmodem.sh
    Regular expression: **B00000000000000
    Action: Run Silent Coprocess
    Parameters: /usr/local/bin/iterm2-recv-zmodem.sh

使用方法

  • sz filename: 将文件发送到本地机器,如果已经ssh登陆到远程主机,即将远程主机的文件下载到本地
  • rz: 将文件从本地机器中发出,如果已经ssh登陆到远程主机,即本地文件上传到远程主机中

你可能感兴趣的:(Linux)