可以運(yùn)行在 Windows 10 中的最實(shí)用的 Linux 命令
本文適用于使用 Windows 10 系統(tǒng),但是又想在 Azure、AWS 或是私有云平臺(tái)上學(xué)習(xí) Linux 的初級(jí)開發(fā)者。換句話說,就是為了幫助初次接觸 Linux 系統(tǒng)的 Windows 10 用戶。
在本系列早先的文章中,我們討論了關(guān)于如何在 Windows 10 上開啟 WSL 之旅的內(nèi)容。作為本系列的***一篇文章,我們準(zhǔn)備探討一些能在 Windows 10 上廣泛使用的 Linux 命令。
話題深入之前,請(qǐng)先讓我們明確本教程所適用的人群。本文適用于使用 Windows 10 系統(tǒng),但是又想在 Azure、AWS 或是私有云平臺(tái)上學(xué)習(xí) Linux 的初級(jí)開發(fā)者。換句話說,就是為了幫助初次接觸 Linux 系統(tǒng)的 Windows 10 用戶。
您的工作任務(wù)決定了您所需要的命令,而我的需求可能和您的不一樣。本文旨在幫助您在 Windwos 10 上舒服的使用 Linux。不過請(qǐng)牢記,WSL 并不提供硬件訪問的功能,比如聲卡、GPU,至少官方是這么描述的。但是這可能并不能阻止 Linux 用戶的折騰精神。很多用戶不僅完成了硬件訪問,甚至已經(jīng)在 Windows 10 上安裝上了 Linux 桌面程序。但是本文并不會(huì)涉及這些內(nèi)容,我們可能會(huì)討論這些,但不是現(xiàn)在。
下面是我們需要著手的任務(wù)。
如何讓您的 Linux 系統(tǒng)保持到***的版本
因?yàn)?Linux 運(yùn)行在了 Windows 系統(tǒng)中,所以您將被剝奪 Linux 系統(tǒng)所提供的所有安全特性。另外,如果不及時(shí)給 Linux 系統(tǒng)打補(bǔ)丁,你的 Windows 設(shè)備將被迫暴露在外界威脅中,所以還請(qǐng)保持您的 Linux 為***版本。
WSL 官方支持 openSUSE/SUSE Linux Enterprise 和 Ubuntu。您也可以安裝其他發(fā)行版,但是我只需要它們當(dāng)中的二者之一就可以完成我的所有工作,畢竟,我只需要訪問一些 Linux 基礎(chǔ)程序。
更新 openSUSE Leap:
- sudo zypper up
如果您想升級(jí)系統(tǒng),您可以運(yùn)行下面的命令:
- 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 級(jí)的更新,無需重啟。
管理文件目錄
系統(tǒng)更新之后,我們來看看一些或普通或不太普通的任務(wù)。
系統(tǒng)更新之外的第二重要的任務(wù)是使用 Linux 管理本地和遠(yuǎn)程文件。我承認(rèn)我更青睞圖形界面程序,但是終端能提供更可靠、更有價(jià)值的服務(wù)。要不你使用資源管理器移動(dòng) 1 TB 的文件試試?我通常使用 rsync 命令來移動(dòng)大量文件。如果中斷任務(wù),rsync 可以在上次停止的位置繼續(xù)工作。
雖然您可能更習(xí)慣使用 cp 或是 mv 命令復(fù)制、移動(dòng)文件,但是我還是喜歡靈活的 rsync命令,了解 rsync 對(duì)遠(yuǎn)程文件傳輸也有幫助。使用 rsync 大半為了完成下面三個(gè)任務(wù):
使用 rsync 復(fù)制整個(gè)目錄:
- rsync -avzP /source-directory /destination directory
使用 rsync 移動(dòng)文件:
- rsync --remove-source-files -avzP /source-directory /destination-directory
在成功復(fù)制目標(biāo)目錄之后,此命令將刪除源文件。
使用 rsync 同步文件:
我的文件可能在多處存儲(chǔ)。但是,我只會(huì)在主要位置中增加或是刪除。如果不使用專業(yè)的軟件,同步文件可能會(huì)給用戶帶來挑戰(zhàn),而 rsync 剛好可以簡化這個(gè)過程。這個(gè)命令可以讓兩個(gè)目錄文件內(nèi)容同步。不過要注意,這是一個(gè)單向同步,即從源位置同步到目標(biāo)位置。
- rsync --delete -avzP /source-directory /destination-directory
如果源目錄中沒有找到文件,上述命令將刪除目標(biāo)目錄中的文件。換言之,它創(chuàng)建了源目錄的一個(gè)鏡像。
文件自動(dòng)備份
保持文件備份是一項(xiàng)乏味的工作。為了保持我的設(shè)備的完全同步,我運(yùn)行了一個(gè) cron 作業(yè)在夜間保持我的所有目錄同步。不過我會(huì)留一個(gè)外部驅(qū)動(dòng)器,基本上每周我都會(huì)手動(dòng)同步一次。由于可能刪掉我不想刪除的文件,所以我并沒有使用 --delete 選項(xiàng)。我會(huì)根據(jù)情況手動(dòng)決定是否使用這個(gè)選項(xiàng)。
創(chuàng)建 cron 作業(yè),打開 crontab:
- crontab -e
移動(dòng)大文件時(shí),我會(huì)選擇在系統(tǒng)空閑的深夜執(zhí)行該命令。此命令將在每天早上 1 點(diǎn)運(yùn)行,您大概可以這樣修改它:
- # 0 1 * * * rsync -avzP /source-directory /destination-directory
這是使用 crontab 的定時(shí)作業(yè)的命令結(jié)構(gòu):
- # m h dom mon dow command
在此,m = 分鐘,h = 小時(shí),dom = 本月的某天,mon = 月,dow = 本周的某天。
我們將在每天早上 1 點(diǎn)運(yùn)行這條命令。您可以選擇 dow 或是 dom(比如,每月 5 號(hào))等。
管理遠(yuǎn)程服務(wù)器
在 Windows 系統(tǒng)上使用 WSL 的優(yōu)勢(shì)之一就是能方便管理云上的 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
它會(huì)向您詢問用戶密碼,然后您就可以登錄到 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/
這將會(huì)復(fù)制這些文件到遠(yuǎn)程服務(wù)器中 Documents 目錄。
總結(jié)
本教程主要是為了證明您可以在 Windows 10 系統(tǒng)上通過 WSL 完成 Linux 方面的很大一部分的任務(wù)。通常來說,它提高了生產(chǎn)效率?,F(xiàn)在,Linux 的世界已經(jīng)向 Windwos 10 系統(tǒng)張開懷抱了,盡情探索吧。如果您有任何疑問,或是想了解 WSL 涉及到的其他層面,歡迎在下方的評(píng)論區(qū)分享您的想法。