高級CLI:作為一名開發者你必須知道的命令

全文共2787字,預計學習時長

8分鐘

高級CLI:作為一名開發者你必須知道的命令


在這篇高級命令進階文章中,首先,我們不會討論ls、rm和cd等基本命令。


看到這些命令時,你不應該感到驚訝。你甚至可能對它們很熟悉,特別是如果你非常熟悉命令行的情況下。我想你以前至少使用過(或嘗試使用)命令行。如果以前從未使用過命令行,小芯建議你從閱讀基礎知識開始。


本文是為那些對命令行有一定經驗並對基本命令有一定了解的讀者準備的。


對於那些認為是時候深入研究使用命令行工作的可能性的人來說。小芯為你列出了6個命令,並在底部提供了一些提示。


1. alias


每個人都會使用一些太長或太複雜而不能完全記住的命令。幸運的是,你可以為該命令創建一個別名,這樣就不必記住整個命令。


<code>aliasshort-command="your custom and very long command here"/<code>


儘管以這種方式創建別名有一個問題:別名是臨時的。如果以這種方式創建別名,它將僅對當前終端會話可用。


要在會話之間保留別名,可以將它們保存在用戶的shell配置文件中。如果分別使用Bash或ZSH,這個配置文件可能位於~/.bashrc或~ /.zshrc。


高級CLI:作為一名開發者你必須知道的命令


2. chmod


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


根據維基百科,這是chmod命令的定義。我們都遇到過這樣的情況:由於文件權限的錯誤配置,服務器無法訪問某個文件。


chmod命令本身相當簡單,但是為文件和目錄授予正確的權限是另一回事。


<code>chmod664 robots.txt/<code>
<code>chmod 775 public/images/<code>


第一個示例為robots.txt文件向用戶和組授予讀寫權限。已將此文件的讀權限授予其他用戶。


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


3. tar


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


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


<code>tar -cvfmy-archive.tar /path/to/directory/<code>


該命令將生成一個名為my-archive的歸檔文件。其中包含在當前工作目錄中創建的/path/to/目錄下的所有文件。


創建歸檔文件是第一部分。第二部分包括解壓歸檔文件,因為在某些情況下,我們希望使用tar文件中的文件。你可以通過以下命令將文件解壓縮到特定的目錄中:


<code>tar -xvfmy-archive.tar -C /home/myfolder//<code>

4. wget


高級CLI:作為一名開發者你必須知道的命令


在類unix操作系統上,wget命令通過網絡下載HTTP、HTTPS或FTP提供的文件。默認情況下,它包含在所有主流的Linux發行版中。


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


<code>wgethttp://website.com/static/images/header.jpg/<code>


wget的一大優點是非交互式,這意味著它可以在用戶未登錄時在後臺運行。這允許你啟動檢索並斷開與系統的連接,讓wget完成工作。


5. ssh-keygen


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


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


要生成SSH密鑰對,請使用以下命令:ssh-keygen-t ed25519


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


生成SSH密鑰對並在Gitlab或Bitbucket中正確設置它最多需要10分鐘(可能更接近於3分鐘),但是完全值得!


6. scp


你是否遇到過需要從本機上的遠程服務器獲取文件的問題?例如,獲取用戶上傳的文件,導致了一些麻煩。


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


下面這條命令可以將文件foobar.txt從遠程服務器拷貝到本地目錄。


<code>[email protected]:/path/to/foobar.txt /some/local/directory/<code>


但scp也可以用於將本地目錄的文件拷貝到遠程服務器。


<code>scp /some/local/directory/[email protected]:/destination/path//<code>


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


下面是一些小技巧分享,同樣實用且精彩~


高級CLI:作為一名開發者你必須知道的命令


技巧1:組合命令


一次可以運行兩個或多個命令。分號(;)運算符允許你這樣做。你可以連續執行多個命令,而不管前面的每個命令是否成功。


<code>ls -al;pwd;/<code>


如果希望僅在第一個命令成功時才運行第二個命令,請使用邏輯和操作符(&&)分隔命令。


<code>mkdirimages && cd images/<code>

如果我們成功創建了那個文件夾,則希望進入到images文件夾。


有時,你可能希望僅在第一個命令不成功時才執行第二個命令。為此,我們使用邏輯OR操作符,即||。


技巧2:輸出定向


標準的輸出設備是屏幕。但有時你不想把所有東西都輸出到屏幕上。在某些情況下,你可能更希望將某些命令的結果輸出到文件中。例如,用於日誌記錄。


要重定向輸出,可以使用>。在下面的命令中,ls -al的輸出被重定向到myfile文件而不是屏幕。


<code>ls -al> myfile/<code>


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

<code>catmyfile/<code>

感謝閱讀~小芯祝你新的一年收穫滿滿~

高級CLI:作為一名開發者你必須知道的命令

高級CLI:作為一名開發者你必須知道的命令

我們一起分享AI學習與發展的乾貨


分享到:


相關文章: