macOS(m芯片)連接服務器及其進行文件傳輸的各種方式的詳解

說明:使用了macOS后發現,win系統能使用的xshell、xftp等連接服務器及其文件傳輸等軟件均不能使用了,沒有兼容的版本。所以我們剛切換到mac系統該如何去適應呢。

一、連接遠程服務器

macOS中前文也說道我們使用的是iterm2進行終端控制的,所以連接遠程服務器可以通過ssh來連接

方式一:ssh 用戶名@公網ip的方式進行連接

在這里插入圖片描述
缺點:每次都需要輸入命令且輸入密碼來進行登陸,比較繁瑣
疑問:有沒有一種只輸入一次密碼就能每次簡單登陸的方法呢?

方式二:通過腳本進行登陸

  1. 找一個地方創建腳本
  2. 編輯腳本,內容如下:
#!/usr/bin/expect
set timeout 30
spawn ssh -p [lindex $argv 0] [lindex $argv 1]@[lindex $argv 2]
expect {"(yes/no)?"{send "yes\n";exp_continue}"password:"{send "[lindex $argv 3]\n"}
}
interact# 變量說明
# [lindex $argv 0]:端口號
# [lindex $argv 1]:服務器用戶名
# [lindex $argv 2]:服務器IP地址
# [lindex $argv 3]:服務器密碼
  1. 編輯完成給予腳本執行權限
# 文件名字可以隨便取
chmod 777 ssh_server.sh
  1. 打開iTerm2,打開Preferences配置界面,Profiles -> general,左下角點擊+號,新建profile,參考下面圖片在對應位置輸入內容即可。
    在這里插入圖片描述

Name:根據需求輸入,通常選擇標識性較強的內容便于區分,例如服務器的IP地址

Command:這里選擇login Shell

Send text at start :填寫格式形如A B C D E這樣,每一個部分之間用空格隔開,根據自己實際情況填寫,下面是對每一部分內容的解釋

A代表咱們上面寫的本機保存sh腳本的路徑:/Users/iterm/ssh_server.shB代表服務器端口號一般遠程連接端口為:22C代表服務器用戶名一般為:rootD代表服務器IP:根據服務器對外暴露的公網IP填寫E代表服務器密碼:根據自己實際的服務器密碼填寫
  1. 設置好之后打開iTerm2,點擊profiles,點擊前面自己新增的連接遠程服務器的profile的名字。首次連接需要輸入一次服務器密碼,之后再連接就免密碼登陸了。
    在這里插入圖片描述

二、文件傳輸

方式一:通過app去實現文件傳輸

  • transmit(mac系統最推薦的,沒有之一) 官網收費有點貴,可以通過萬能的某寶
  • filezilla
  • 等等

方式二:通過lrzsz

  • 給mac以及服務器都裝上lrzsz
# mac安裝通過homebrew
brew install lrzsz
# Linux系統安裝通過yum
yum -y install lrzsz
  • mac下載iterm2-zmodem
 wget https://raw.github.com/mmastrac/iterm2-zmodem/master/iterm2-send-zmodem.shwget https://raw.github.com/mmastrac/iterm2-zmodem/master/iterm2-recv-zmodem.sh
# 如果wget notfound  
brew install wget# 如果網絡不佳直接去github下載
# https://github.com/robberphex/iTerm2-zmodem
  • 下載下來的兩個文件iterm2-recv-zmodem.sh和iterm2-send-zmodem.sh需要修改一下rz和sz的路徑因為文件對應的還是原來intel芯片下的mac通過homebrew下載的路徑,m芯片homebrew安裝路徑變了

iterm2-send-zmodem.sh

#!/bin/bash
# Author: Matt Mastracci (matthew@mastracci.com)
# AppleScript from http://stackoverflow.com/questions/4309087/cancel-button-on-osascript-in-a-bash-script
# licensed under cc-wiki with attribution required
# Remainder of script public domainosascript -e 'tell application "iTerm2" to version' > /dev/null 2>&1 && NAME=iTerm2 || NAME=iTerm
if [[ $NAME = "iTerm" ]]; thenFILE=$(osascript -e 'tell application "iTerm" to activate' -e 'tell application "iTerm" to set thefile to choose file with prompt "Choose a file to send"' -e "do shell script (\"echo \"&(quoted form of POSIX path of thefile as Unicode text)&\"\")")
elseFILE=$(osascript -e 'tell application "iTerm2" to activate' -e 'tell application "iTerm2" to set thefile to choose file with prompt "Choose a file to send"' -e "do shell script (\"echo \"&(quoted form of POSIX path of thefile as Unicode text)&\"\")")
fi
if [[ $FILE = "" ]]; thenecho Cancelled.# Send ZModem cancelecho -e \\x18\\x18\\x18\\x18\\x18sleep 1echoecho \# Cancelled transfer
else# 此處需要修改# usr/local/bin/sz "$FILE" --escape --binary --bufsize 4096/opt/homebrew/Cellar/lrzsz/0.12.20_1/bin/sz "$FILE" --escape --binary --bufsize 4096sleep 1echoecho \# Received "$FILE"
fi

iterm2-recv-zmodem.sh

#!/bin/bash
# Author: Matt Mastracci (matthew@mastracci.com)
# AppleScript from http://stackoverflow.com/questions/4309087/cancel-button-on-osascript-in-a-bash-script
# licensed under cc-wiki with attribution required
# Remainder of script public domainosascript -e 'tell application "iTerm2" to version' > /dev/null 2>&1 && NAME=iTerm2 || NAME=iTerm
if [[ $NAME = "iTerm" ]]; thenFILE=$(osascript -e 'tell application "iTerm" to activate' -e 'tell application "iTerm" to set thefile to choose folder with prompt "Choose a folder to place received files in"' -e "do shell script (\"echo \"&(quoted form of POSIX path of thefile as Unicode text)&\"\")")
elseFILE=$(osascript -e 'tell application "iTerm2" to activate' -e 'tell application "iTerm2" to set thefile to choose folder with prompt "Choose a folder to place received files in"' -e "do shell script (\"echo \"&(quoted form of POSIX path of thefile as Unicode text)&\"\")")
fiif [[ $FILE = "" ]]; thenecho Cancelled.# Send ZModem cancelecho -e \\x18\\x18\\x18\\x18\\x18sleep 1echoecho \# Cancelled transfer
elsecd "$FILE"# /usr/local/bin/rz --rename --escape --binary --bufsize 4096 /opt/homebrew/Cellar/lrzsz/0.12.20_1/bin/rz --rename --escape --binary --bufsize 4096sleep 1echoechoecho \# Sent \-\> $FILE
fi
  • 查看路徑方法
brew list lrzsz
# 以下是輸出結果
/opt/homebrew/Cellar/lrzsz/0.12.20_1/bin/lrb
/opt/homebrew/Cellar/lrzsz/0.12.20_1/bin/lrx
/opt/homebrew/Cellar/lrzsz/0.12.20_1/bin/lrz
/opt/homebrew/Cellar/lrzsz/0.12.20_1/bin/lsb
/opt/homebrew/Cellar/lrzsz/0.12.20_1/bin/lsx
/opt/homebrew/Cellar/lrzsz/0.12.20_1/bin/lsz
/opt/homebrew/Cellar/lrzsz/0.12.20_1/bin/rz
/opt/homebrew/Cellar/lrzsz/0.12.20_1/bin/sz
/opt/homebrew/Cellar/lrzsz/0.12.20_1/share/man/ (2 files)
  • 賦予兩個腳本的執行權限
chmod 777 /usr/local/bin/iterm2-*
  • 設置iterm2的觸發器
    在這里插入圖片描述
    在這里插入圖片描述
# 設置內容Regular expression: rz waiting to receive.\*\*B0100Action: Run Silent CoprocessParameters: /usr/local/bin/iterm2-send-zmodem.shInstant: checkedRegular expression: \*\*B00000000000000Action: Run Silent CoprocessParameters: /usr/local/bin/iterm2-recv-zmodem.shInstant: checked
  • 重啟iTerm 2 ,連接上服務器,就能通過rz、sz來上傳下載文件了

注意:如果是用expect腳本登錄的,無法使用lszrz。上述的腳本連接就是使用的cxpect
解決方式待更新!!!!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/38173.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/38173.shtml
英文地址,請注明出處:http://en.pswp.cn/news/38173.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

基于深度信念神經網絡的礦石產量預測,基于DBN的礦石產量預測,DBN的詳細原理

目錄 背影 DBN神經網絡的原理 DBN神經網絡的定義 受限玻爾茲曼機(RBM) DBN的礦石產量預測 基本結構 主要參數 數據 MATALB代碼 結果圖 展望 背影 DBN是一種深度學習神經網絡,擁有提取特征,非監督學習的能力,是一種非常好的分類算法,本文將DBN算法進行礦石產量預測 DB…

Spring Boot Maven package時顯式的跳過test內容

在pom.xml的編譯插件部分顯式的增加一段內容&#xff1a; <plugin> <!-- maven打包時&#xff0c;顯式的跳過test部分 --><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>3.…

流量日志分析--實操

[鶴城杯 2021]流量分析 <--第一道流量分析不難,主要就是布爾盲注的流量包分析,直接查看http請求包即可我們可以通過觀察看到注入成功的響應長度不同,這里成功的為978字節,失敗的994字節.不要問為什么.其實也可以直接判斷.978的流量比994的少了非常多 顯然就是成功的(因為這里…

Docker中部署redis

1.部署redis要求 2.部署教程 連接容器中的redis redis部署完畢

大模型基礎:GPT家族與提示學習

大模型基礎:GPT 家族與提示學習 從 GPT-1 到 GPT-3.5 GPT(Generative Pre-trained Transformer)是 Google 于2018年提出的一種基于 Transformer 的預訓練語言模型。它標志著自然語言處理領域從 RNN 時代進入 Transformer 時代。GPT 的發展歷史和技術特點如下: GPT-12018年6月…

QQ附近人引流的幾個詳細方法,qq附近人引流腳本實操演示教程

大家好我是你們的小編一辭腳本&#xff0c;今天給大家分享新的知識&#xff0c;很開心可以在CSDN平臺分享知識給大家,很多伙伴看不到代碼我先錄制一下視頻 在給大家做代碼&#xff0c;給大家分享一下qq引流腳本的知識和視頻演示 不懂的小伙伴可以認真看一下&#xff0c;我們一…

【CSS】CSS 布局——常規流布局

<h1>基礎文檔流</h1><p>我是一個基本的塊級元素。我的相鄰塊級元素在我的下方另起一行。</p><p>默認情況下&#xff0c;我們會占據父元素 100%的寬度&#xff0c;并且我們的高度與我們的子元素內容一樣高。我們的總寬度和高度是我們的內容 內邊距…

Flink筆記

下面是你提供的文字整理后的結果&#xff1a; 1. Flink是一個針對流數據和批數據的分布式處理引擎&#xff0c;同時支持原生流處理的開源框架。 - 延遲低(毫秒級)&#xff0c;且能夠保證消息傳輸不丟失不重復。 - 具有非常高的吞吐(每秒千萬級)。 - 支持原生流處理。…

echarts-convert.js使用

echarts-convert.js demo 點擊下載 1、本地安裝phantom.js插件 點擊下載 2、更改文件路徑 &#xff08;D:\phantomjs-2.1.1-windows\bin&#xff09;改為本地項目文件路徑 3、打開cmd命令行&#xff0c;并格式化語言 運行以下命令 將命令行語言改為中文簡體 chcp 65001…

(二分查找) 11. 旋轉數組的最小數字 ——【Leetcode每日一題】

?劍指 Offer 11. 旋轉數組的最小數字 難度&#xff1a;簡單 把一個數組最開始的若干個元素搬到數組的末尾&#xff0c;我們稱之為數組的旋轉。 給你一個可能存在 重復 元素值的數組 numbers &#xff0c;它原來是一個升序排列的數組&#xff0c;并按上述情形進行了一次旋轉…

springboot整合kafka多數據源

整合kafka多數據源 項目背景依賴配置生產者消費者消息體 項目背景 在很多與第三方公司對接的時候&#xff0c;或者處在不同的網絡環境下&#xff0c;比如在互聯網和政務外網的分布部署服務的時候&#xff0c;我們需要對接多臺kafka來達到我們的業務需求&#xff0c;那么當kafk…

【Vue-Router】路由過渡動效

在 Vue Router 中&#xff0c;你可以通過過渡動效&#xff08;Transition Effects&#xff09;為路由切換添加平滑的過渡效果&#xff0c;從而提升用戶體驗。過渡動效可以使用 Vue 的 <transition> 組件和 CSS 過渡來實現。 基本使用&#xff1a; 對導航使用動畫&#…

HTML-文本標簽

歷史上&#xff0c;網頁的主要功能是文本展示。所以&#xff0c;HTML 提供了大量的文本處理標簽。 <div> <div>是一個通用標簽&#xff0c;表示一個區塊&#xff08;division&#xff09;。它沒有語義&#xff0c;如果網頁需要一個塊級元素容器&#xff0c;又沒有…

leetcode 494. 目標和

2023.8.14 一杯茶&#xff0c;一包煙&#xff0c;一道dp做一天... ps&#xff1a;nums[i]均大于等于0。本題先轉化為0-1背包問題&#xff1a;將數組元素分成兩堆&#xff1a;一堆為正號&#xff0c;另一堆為負號。設正號堆的和為x&#xff0c;則負號堆的和為sum-x。&#xff08…

CentOS系統環境搭建(十)——CentOS7定時任務

centos系統環境搭建專欄&#x1f517;點擊跳轉 使用CentOS系統環境搭建&#xff08;九&#xff09;——centos系統下使用docker部署項目的項目做定時任務。 CentOS7定時任務 查看現有的定時任務 crontab -l編輯定時任務 crontab -e示例 每天凌晨兩點運行腳本 清理內存 0 2 *…

【Linux的開胃小菜】常用的RPM軟件包與YUM倉庫包管理器使用

一、系統初始化進程 systemd與System V init的區別以及作用&#xff1a; System V init運行級別systemd目標名稱systemd目標作用0poweroff.target關機1rescue.target單用戶模式2multi-user.target多用戶的文本界面3multi-user.target多用戶的文本界面4multi-user.target多用戶…

【SpringBoot】88、SpringBoot中使用Undertow替代Tomcat容器

SpringBoot 中我們既可以使用 Tomcat 作為 Http 服務,也可以用 Undertow 來代替。Undertow 在高并發業務場景中,性能優于 Tomcat。所以,如果我們的系統是高并發請求,不妨使用一下 Undertow,你會發現你的系統性能會得到很大的提升。 1、Tomcat 介紹 Tomcat是一個開源的Ja…

【數據結構】“單鏈表”的練習題(二)

&#x1f490; &#x1f338; &#x1f337; &#x1f340; &#x1f339; &#x1f33b; &#x1f33a; &#x1f341; &#x1f343; &#x1f342; &#x1f33f; &#x1f344;&#x1f35d; &#x1f35b; &#x1f364; &#x1f4c3;個人主頁 &#xff1a;阿然成長日記 …

Django框架 靚號管理(增刪改查)

Django框架 靚號管理&#xff08;增刪改查&#xff09; 新建一個項目 backend 使用pycharm創建app startapp app項目目錄 C:\code\backend ├── app | ├── admin.py | ├── apps.py | ├── migrations | ├── models.py | ├── tests.py | ├── views.…

關于微信臨時文件wxfile://tmp文件如何處理,微信小程序最新獲取頭像和昵稱

分享-2023年資深前端進階&#xff1a;前端登頂之巔-最全面的前端知識點梳理總結&#xff0c;前端之巔 *分享一個使用比較久的&#x1fa9c; 技術棧&#xff1a;taro框架 vue3版本 解決在微信小程序獲取微信頭像時控制臺報錯&#xff1a;找不著wxfile://tmp 文件路徑,失敗&…