iT邦幫忙

2021 iThome 鐵人賽

DAY 25
0
自我挑戰組

大二萌新的學習紀錄系列 第 25

Day 25 : Linux - 如何在windows使用scp去傳送檔案至Linux上?

如標題,這篇想和大家介紹scp的用法,它可以讓你「遠端傳送檔案」到另一台電腦裡
這邊我們在「本機端」實測即可,假設我們的VM本身是一台獨立電腦


首先,你要先去install net-tools,這樣才能使用ifconfig查我們的IP位址
https://ithelp.ithome.com.tw/upload/images/20211009/20141088yXlEvTHhkJ.png

之後我們到「設定」
https://ithelp.ithome.com.tw/upload/images/20211009/20141088zQ7p97sQGB.png

去「網路」那,將介面卡改為「橋接介面卡」,這樣Linux它才會跑出一組「虛擬的」IP位址讓你去做傳送
https://ithelp.ithome.com.tw/upload/images/20211009/20141088pwYZX7GqBS.png

在還沒設定「橋接介面卡」前,使用ifconfig結果如下圖所示:
https://ithelp.ithome.com.tw/upload/images/20211009/20141088Ip9J0gVPQx.png

設定好「橋接介面卡」後,inet那就會出現一組虛擬IP位址,這是你等等要用scp做「傳送」時會使用到的
https://ithelp.ithome.com.tw/upload/images/20211009/20141088cVzLG4GI1L.png

接著install openssh-server,讓Ubuntu支援SSH server的功能
https://ithelp.ithome.com.tw/upload/images/20211009/201410884pkxI5HP0u.png

先來說一下scp的格式:

scp 欲傳送的檔案or目錄 你VM的root名稱@你VM的IP位址:欲傳送的目的地目錄

Ex 1:
這裡我們先用cd創一個test.txt的檔案,再用scp傳送到「家目錄」,傳送完需輸入VM的密碼,才可完成傳送。這裡的~/為家目錄
https://ithelp.ithome.com.tw/upload/images/20211009/20141088GETQQ53opf.png

等他傳送跑至100%後,你的「家目錄」下就會多一個test.txt的檔案囉
https://ithelp.ithome.com.tw/upload/images/20211009/20141088Jl75ddASBD.png


Ex 2:
這裡我們先mkdir一個目錄叫test,並到test裡建立2個檔案,分別叫test_1.txttest_2.txt,再用cd ..返回至前一個目錄,再用scp傳送到家目錄

這裡你會發現它「傳送失敗」,並顯示not a regular file(不是一個普通文件)
因為你現在傳的是一個「目錄」,而不是一個「檔案
https://ithelp.ithome.com.tw/upload/images/20211009/201410883MpoT0p6pY.png

如果想傳送「目錄」,只要加上-r這個參數即可,-r代表的是「遞迴的做某件事」,所以它會遞迴的將目錄下「所有」檔案傳過去
https://ithelp.ithome.com.tw/upload/images/20211009/20141088ESJ5VW0cI8.png

再到家目錄看,就會看到它囉!
https://ithelp.ithome.com.tw/upload/images/20211009/20141088NGjLHcDwcq.png

點進去看,也會看到剛剛建立的兩個txt檔
https://ithelp.ithome.com.tw/upload/images/20211009/201410889DyrITUdgW.png


Ex 3:
如果你想將test_3.txt傳到/根目錄,卻看到它「傳送失敗」,並顯示permission denied(沒有權限),表示這需要「root身分」才可以傳送到此目錄

但sudo指令只在Linux才有,這時候該怎麼辦呢?
https://ithelp.ithome.com.tw/upload/images/20211009/20141088gijnkpTpNo.png

你可以先傳送到/tmp這個目錄底下「暫存」,它預設是所有人皆可訪問
https://ithelp.ithome.com.tw/upload/images/20211009/20141088LskXPAiv7x.png
https://ithelp.ithome.com.tw/upload/images/20211009/20141088AGAvhBNNgS.png

再到/tmp這個目錄底下,用sudo + mv去將test_3.txt這個檔案轉移到/根目錄下就可以囉!
https://ithelp.ithome.com.tw/upload/images/20211009/20141088EpIfz0fo7q.png


以上就是今天的介紹

其實scp就跟「cp(複製)」的概念一樣,可用的參數也大同小異,有興趣的人可以用man看scp的可用參數有哪些喔!


上一篇
Day 24 : Linux - 常用且一定要會的指令有哪些?
下一篇
Day 26 : Linux - 檔案or目錄的權限該怎麼看?又該如何做更改?
系列文
大二萌新的學習紀錄30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言