ssh user@ip command
ssh user@ip "command1;command2" #分號隔開
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/ricky02ssh
[root@ricky01 ~]# ssh ricky02@192.168.56.101 "echo $HOME" #雙引號,先把$HOME轉成/root,到目標機器執行echo /root
ricky02@192.168.56.101's password:
/rootspa
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