高級CLI:開發都人員應該知道的命令

  • 2020 年 2 月 12 日
  • 筆記

在本文中,我們不會介紹ls,rm和cd等基本命令。看到這些命令應該不會令您感到震驚。您甚至可能對它們非常熟悉,特別是如果您非常了解命令行的方式。我假設您之前至少已經在命令行上工作(或嘗試過工作)。如果您以前從未使用過命令行,建議您先閱讀一些基礎知識。

本文適合那些對命令行有一定經驗並了解基本命令的用戶。對於那些覺得是時候該深入研究使用命令行的可能性的人來說。我在本文中為您列出了六個命令,並且提供了一些技巧。

wget

在類似Unix的操作系統上,wget命令通過網絡下載HTTP、HTTPS或FTP服務的文件。默認情況下,它包含在所有自重的Linux發行版中。

使用wget的最簡單方法是為它提供要通過HTTP下載的文件的位置。使用wget下載文件http://website.com/static/images/header.jpg可以通過以下命令完成:

wget http://website.com/static/images/header.jpg

wgetwget的一大優點是它是非交互式的,這意味着它可以在用戶未登錄時在後台運行。這使您可以開始檢索並與系統斷開連接,讓wget完成工作。

scp

您是否曾經遇到過需要從本地計算機上的遠程服務器獲取文件的問題?例如,獲取用戶上傳的文件會造成一些麻煩。

您可以使用scp命令通過命令行下載此文件。Scp是安全拷貝的簡稱。但是,更重要的是它是一個遠程安全拷貝。該命令類似於您可能已經知道的cp命令,但是源或目標位於另一個系統上。

以下命令將文件foobar.txt從遠程服務器複製到本地目錄。

scp [email protected]:/path/to/foobar.txt / some / local / directory

但是scp也可以用於將文件從本地目錄複製到遠程服務器。

scp /some/local/directory/foobar.txt [email protected]:/ destination / path /

使用-r選項可以對目錄執行相同的操作,該選項以遞歸方式複製整個目錄。

ssh-keygen

ssh-keygen命令用於生成新的SSH密鑰對。可以在Gitlab或Bitbucket中使用此命令生成的公共SSH密鑰來建立安全連接。

將SSH密鑰添加到Gitlab或Bitbucket後,每次嘗試將文件推送到遠程分支時都不會提示您輸入密碼。

要生成SSH密鑰對,請使用以下命令:

ssh-keygen -t ed25519

請注意,在上面的示例中,我們使用了ED25519簽名算法。儘管ED25519被認為是最佳實踐,但您應該始終對不同的可用簽名算法進行一些研究。

生成SSH密鑰對並在Gitlab或Bitbucket中正確設置它最多花費十分鐘(大約三分鐘),但這是完全值得的!

chmod

在Unix和類似Unix的操作系統中,chmod是命令和系統調用,用於更改文件系統對象(文件和目錄)的訪問權限。

根據Wikipedia,這是chmod命令的定義。由於文件權限配置錯誤,導致服務器無法訪問某個文件。

chmod命令本身非常簡單,但是賦予文件和目錄正確的權限又是另一回事。

ssh-keygen -t ed25519

第一個示例向robots.txt文件的用戶和組授予讀寫權限。對該文件授予了他人讀取權限。

第二個示例為public / images文件夾授予用戶和組讀取、寫入和執行權限。其他人被授予對該文件夾的讀取和執行權限。

如果您想了解有關設置文件和目錄的正確權限的更多信息,建議您閱讀有關chmod的Wikipedia頁面。

tar

Linux tar代表磁帶存檔。它用於將許多文件收集到一個存檔文件中。Tar是創建壓縮歸檔文件最廣泛使用的命令。

讓我們從如何為特定目錄創建存檔文件開始:

tar -cvf my-archive.tar /path/to/directory

該命令將導致一個名為my-archive.tar的存檔文件,tar文件,它包含在當前工作目錄中創建的/path/to/目錄的所有文件。

創建存檔文件是第一步。第二部分包括解壓縮存檔文件,因為在某些時候我們想使用tar文件中的文件。您可以通過鍵入以下命令將文件解壓縮到特定目錄:

tar -xvf my-archive.tar -C / home / myfolder /

alias

每個人都使用一些太長或太複雜而無法完全記住的命令。幸運的是,您可以為該命令創建一個alias,因此您不必記住整個命令。

alias short-command="your custom and very long command here"

儘管以這種方式創建alias存在一個問題:此alias是臨時的。如果以此方式創建,則該alias僅可用於當前的終端會話。

要在會話之間保留alias,可以將其保存在用戶的Shell配置配置文件中。如果您分別使用Bash或ZSH,則此配置文件可能位於〜/ .bashrc或〜/ .zshrc中。

技巧1:直接輸出

屏幕是標準輸出設備。但有時您不想在屏幕上輸出所有內容。在某些情況下,您可能希望將某些命令的結果輸出到文件中。

例如,用於日誌記錄的目的。要重定向輸出,可以使用>。在以下命令中,ls -al的輸出重定向到文件myfile而不是屏幕。

ls -al> myfile

在此示例中,我使用了ls,但實際上它可以是任何具有某些輸出的命令。為了確認這是可行的,您可以檢查myfile文件。

技巧2:合併命令

一次可以運行兩個或多個命令。分號(;)運算符允許您執行此操作。您可以連續執行多個命令,而不管每個先前的命令是否成功。

ls -al; pwd;

如果要僅在第一個命令成功的情況下運行第二個命令,請使用邏輯和操作符(即&&)分隔命令。

mkdir images && cd images

如果我們設法創建一個文件夾,我們只想CD到images文件夾。

有時您可能只想在第一個命令不成功的情況下執行第二個命令。為此,我們使用邏輯OR操作符,即||。