本文,我們準(zhǔn)備探討一些能在 windows 10 上廣泛使用的 linux 命令。
話題深入之前,請先讓我們明確本教程所適用的人群。本文適用于使用 windows 10 系統(tǒng),但是又想在 azure、aws 或是私有云平臺上學(xué)習(xí) linux 的初級開發(fā)者。換句話說,就是為了幫助初次接觸 linux 系統(tǒng)的 windows 10 用戶。
您的工作任務(wù)決定了您所需要的命令,而我的需求可能和您的不一樣。本文旨在幫助您在 windwos 10 上舒服的使用 linux。不過請牢記,wsl 并不提供硬件訪問的功能,比如聲卡、gpu,至少官方是這么描述的。但是這可能并不能阻止 linux 用戶的折騰精神。很多用戶不僅完成了硬件訪問,甚至已經(jīng)在 windows 10 上安裝上了 linux 桌面程序。但是本文并不會涉及這些內(nèi)容,我們可能會討論這些,但不是現(xiàn)在。
下面是我們需要著手的任務(wù)。
如何讓您的 linux 系統(tǒng)保持到最新的版本
因為 linux 運行在了 windows 系統(tǒng)中,所以您將被剝奪 linux 系統(tǒng)所提供的所有安全特性。另外,如果不及時給 linux 系統(tǒng)打補(bǔ)丁,你的 windows 設(shè)備將被迫暴露在外界威脅中,所以還請保持您的 linux 為最新版本。
wsl 官方支持 opensuse/suse linux enterprise 和 ubuntu。您也可以安裝其他發(fā)行版,但是我只需要它們當(dāng)中的二者之一就可以完成我的所有工作,畢竟,我只需要訪問一些 linux 基礎(chǔ)程序。
更新 opensuse leap:
sudo zypper up
如果您想升級系統(tǒng),您可以運行下面的命令:
sudo zypper dup
更新 ubuntu:
sudo apt-get update
sudo apt-get dist-upgrade這樣你就安全了,由于 linux 系統(tǒng)的更新是漸進(jìn)式的,所以更新系統(tǒng)成為了我的日常。不像 windows 10 的更新通常需要重啟系統(tǒng),而 linux 不同,一般只有 kb 或是 mb 級的更新,無需重啟。
管理文件目錄
系統(tǒng)更新之后,我們來看看一些或普通或不太普通的任務(wù)。
系統(tǒng)更新之外的第二重要的任務(wù)是使用 linux 管理本地和遠(yuǎn)程文件。我承認(rèn)我更青睞圖形界面程序,但是終端能提供更可靠、更有價值的服務(wù)。要不你使用資源管理器移動 1 tb 的文件試試?我通常使用 rsync 命令來移動大量文件。如果中斷任務(wù),rsync 可以在上次停止的位置繼續(xù)工作。
雖然您可能更習(xí)慣使用 cp 或是 mv 命令復(fù)制、移動文件,但是我還是喜歡靈活的 rsync 命令,了解 rsync 對遠(yuǎn)程文件傳輸也有幫助。使用 rsync 大半為了完成下面三個任務(wù):
使用 rsync 復(fù)制整個目錄:
rsync -avzp /source-directory /destination directory
使用 rsync 移動文件:
rsync --remove-source-files -avzp /source-directory /destination-directory
在成功復(fù)制目標(biāo)目錄之后,此命令將刪除源文件。
使用 rsync 同步文件:
我的文件可能在多處存儲。但是,我只會在主要位置中增加或是刪除。如果不使用專業(yè)的軟件,同步文件可能會給用戶帶來挑戰(zhàn),而 rsync 剛好可以簡化這個過程。這個命令可以讓兩個目錄文件內(nèi)容同步。不過要注意,這是一個單向同步,即從源位置同步到目標(biāo)位置。
rsync --delete -avzp /source-directory /destination-directory
如果源目錄中沒有找到文件,上述命令將刪除目標(biāo)目錄中的文件。換言之,它創(chuàng)建了源目錄的一個鏡像。
文件自動備份
保持文件備份是一項乏味的工作。為了保持我的設(shè)備的完全同步,我運行了一個 cron 作業(yè)在夜間保持我的所有目錄同步。不過我會留一個外部驅(qū)動器,基本上每周我都會手動同步一次。由于可能刪掉我不想刪除的文件,所以我并沒有使用 –delete 選項。我會根據(jù)情況手動決定是否使用這個選項。
創(chuàng)建 cron 作業(yè),打開 crontab:
crontab -e
移動大文件時,我會選擇在系統(tǒng)空閑的深夜執(zhí)行該命令。此命令將在每天早上 1 點運行,您大概可以這樣修改它:
# 0 1 * * * rsync -avzp /source-directory /destination-directory
這是使用 crontab 的定時作業(yè)的命令結(jié)構(gòu):
# m h dom mon dow command
在此,m = 分鐘,h = 小時,dom = 本月的某天,mon = 月,dow = 本周的某天。
我們將在每天早上 1 點運行這條命令。您可以選擇 dow 或是 dom(比如,每月 5 號)等。您可以在 這里 閱讀更多相關(guān)內(nèi)容。
管理遠(yuǎn)程服務(wù)器
在 windows 系統(tǒng)上使用 wsl 的優(yōu)勢之一就是能方便管理云上的 linux 服務(wù)器,wsl 能提供原生的 linux 工具給您。首先,您需要使用 ssh 命令登錄遠(yuǎn)程 linux 服務(wù)器。
比如,我的服務(wù)器 ip 是 192.168.0.112;端口為 2018(不是默認(rèn)的 22 端口);linux 用戶名是 swapnil,密碼是 “就不告訴你”。
ssh -p2018 swapnil@192.168.0.112
它會向您詢問用戶密碼,然后您就可以登錄到 linux 服務(wù)器了?,F(xiàn)在您可以在 linux 服務(wù)器上執(zhí)行任意您想執(zhí)行的所有操作了。不需使用 putty 程序了。
使用 rsync ,您可以很輕易的在本地機(jī)器和遠(yuǎn)程機(jī)器之間傳輸文件。源目錄還是目標(biāo)目錄取決于您是上傳文件到服務(wù)器,還是下載文件到本地目錄,您可以使用 username@ip-address-of-server:/path-of-directory 來指定目錄。
如果我想復(fù)制一些文本內(nèi)容到服務(wù)器的 home 目錄,命令如下:
rsync -avzp /source-directory-on-local-machine ‘ssh -p2018’ swapnil@192.168.0.112:/home/swapnil/documents/
這將會復(fù)制這些文件到遠(yuǎn)程服務(wù)器中 documents 目錄。
總結(jié)
本教程主要是為了證明您可以在 windows 10 系統(tǒng)上通過 wsl 完成 linux 方面的很大一部分的任務(wù)。通常來說,它提高了生產(chǎn)效率。