ssh執行命令


  1. 執行一條命令
    • ssh user@ip command
  2. 執行多條命令
    • ssh user@ip "command1;command2"    #分號隔開
  3. 關於轉義
    • ssh user@ip 'echo $HOME'      #單引號,本機不轉義,到目標機器執行
      ssh user@ip "echo $HOME"      #雙引號,先在本機轉義,到目標ip執行
    •  [root@ricky01 ~]# ssh ricky02@192.168.56.101 'echo $HOME' #單引號,先不轉義,到目標機器執行echo $HOME
        ricky02@192.168.56.101's password:
        /home/ricky02

        [root@ricky01 ~]# ssh ricky02@192.168.56.101 "echo $HOME" #雙引號,先把$HOME轉成/root,到目標機器執行echo /root
        ricky02@192.168.56.101's password:
        /root

  4. 關於awk
    • ip a|grep 192.168*|awk '{ print $2 }'
      192.168.56.102/24      #本機可以正確執行
    • [root@ricky01 ~]# ssh 192.168.56.101 ip a|grep 192.168*|awk '{ print $2 }'   #單條命令,不加引號,可以執行
      root@192.168.56.101's password: 
      192.168.56.101/24
    • [root@ricky01 ~]# ssh 192.168.56.101 'ip a|grep 192.168*|awk '{ print $2 }''  #加單引號,報錯
      root@192.168.56.101's password: 
      awk: cmd. line:1: {
      awk: cmd. line:1:  ^ unexpected newline or end of string
    • [root@ricky01 ~]# ssh 192.168.56.101 "ip a|grep 192.168*|awk '{ print $2 }'"  #加雙引號,沒有執行awk
      root@192.168.56.101's password: 
          inet 192.168.56.101/24 brd 192.168.56.255 scope global dynamic enp0s8
    • [root@ricky01 ~]# ssh 192.168.56.101 "ip a|grep 192.168*|awk '{ print \$2 }'"  #雙引號,$前加轉義符號\,正確執行
      root@192.168.56.101's password: 
      192.168.56.101/24
    • [root@ricky01 ~]# ssh 192.168.56.101 'ip a|grep 192.168*|awk '{ print \$2 }''  #單引號,$前加轉義符號\,報錯
      root@192.168.56.101's password:  awk: cmd. line:1: { awk: cmd. line:1: ^ unexpected newline or end of string


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM