高級CLI:作為一名開發(fā)者你應該知道的命令
在這篇高級命令進階文章中,首先,我們不會討論ls、rm和cd等基本命令。
看到這些命令時,你不應該感到驚訝。你甚至可能對它們很熟悉,特別是如果你非常熟悉命令行的情況下。我想你以前至少使用過(或嘗試使用)命令行。如果以前從未使用過命令行,小芯建議你從閱讀基礎知識開始。
本文是為那些對命令行有一定經(jīng)驗并對基本命令有一定了解的讀者準備的。
對于那些認為是時候深入研究使用命令行工作的可能性的人來說。小芯為你列出了6個命令,并在底部提供了一些提示。
1. alias
每個人都會使用一些太長或太復雜而不能完全記住的命令。幸運的是,你可以為該命令創(chuàng)建一個別名,這樣就不必記住整個命令。
- aliasshort-command="your custom and very long command here"
盡管以這種方式創(chuàng)建別名有一個問題:別名是臨時的。如果以這種方式創(chuàng)建別名,它將僅對當前終端會話可用。
要在會話之間保留別名,可以將它們保存在用戶的shell配置文件中。如果分別使用Bash或ZSH,這個配置文件可能位于~/.bashrc或~ /.zshrc。
來源:Pexels
2. chmod
在Unix和類Unix操作系統(tǒng)中,chmod是命令和系統(tǒng)調(diào)用,用于更改文件系統(tǒng)對象(文件和目錄)的訪問權限。
根據(jù)維基百科,這是chmod命令的定義。我們都遇到過這樣的情況:由于文件權限的錯誤配置,服務器無法訪問某個文件。
chmod命令本身相當簡單,但是為文件和目錄授予正確的權限是另一回事。
- chmod664 robots.txt
- chmod 775 public/images
第一個示例為robots.txt文件向用戶和組授予讀寫權限。已將此文件的讀權限授予其他用戶。
第二個示例向public/images文件夾的用戶和組授予讀、寫和執(zhí)行權限。其他人則被授予此文件夾的讀取和執(zhí)行權限。
3. tar
Linux tar代表磁帶存檔。它用于將多個文件收集到一個歸檔文件中。Tar是用于創(chuàng)建壓縮歸檔文件的最廣泛使用的命令。
讓我們從如何為特定目錄創(chuàng)建歸檔文件開始:
- tar -cvfmy-archive.tar /path/to/directory
該命令將生成一個名為my-archive的歸檔文件。其中包含在當前工作目錄中創(chuàng)建的/path/to/目錄下的所有文件。
創(chuàng)建歸檔文件是第一部分。第二部分包括解壓歸檔文件,因為在某些情況下,我們希望使用tar文件中的文件。你可以通過以下命令將文件解壓縮到特定的目錄中:
- tar -xvfmy-archive.tar -C /home/myfolder/
4. wget
來源:Pexels
在類unix操作系統(tǒng)上,wget命令通過網(wǎng)絡下載HTTP、HTTPS或FTP提供的文件。默認情況下,它包含在所有主流的Linux發(fā)行版中。
使用wget最簡單的方法是提供通過HTTP下載文件的位置。使用wget下載文件
http://website.com/static/images/header.jpg 可以使用如下指令完成:
- wgethttp://website.com/static/images/header.jpg
wget的一大優(yōu)點是非交互式,這意味著它可以在用戶未登錄時在后臺運行。這允許你啟動檢索并斷開與系統(tǒng)的連接,讓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的縮寫。但更重要的是,它是一個遠程安全拷貝。這個命令類似于你可能已經(jīng)知道的cp命令,但是源或目標位于另一個系統(tǒng)上。
下面這條命令可以將文件foobar.txt從遠程服務器拷貝到本地目錄。
- scpusername@remotehost.com:/path/to/foobar.txt /some/local/directory
但scp也可以用于將本地目錄的文件拷貝到遠程服務器。
- scp /some/local/directory/foobar.txtusername@remotehost.com:/destination/path/
可以使用-r選項對目錄執(zhí)行相同的操作,該選項遞歸地復制整個目錄。
下面是一些小技巧分享,同樣實用且精彩~
來源:Pexels
技巧1:組合命令
一次可以運行兩個或多個命令。分號(;)運算符允許你這樣做。你可以連續(xù)執(zhí)行多個命令,而不管前面的每個命令是否成功。
- ls -al;pwd;
如果希望僅在第一個命令成功時才運行第二個命令,請使用邏輯和操作符(&&)分隔命令。
- mkdirimages && cd images
如果我們成功創(chuàng)建了那個文件夾,則希望進入到images文件夾。
有時,你可能希望僅在第一個命令不成功時才執(zhí)行第二個命令。為此,我們使用邏輯OR操作符,即||。
技巧2:輸出定向
標準的輸出設備是屏幕。但有時你不想把所有東西都輸出到屏幕上。在某些情況下,你可能更希望將某些命令的結果輸出到文件中。例如,用于日志記錄。
要重定向輸出,可以使用>。在下面的命令中,ls -al的輸出被重定向到myfile文件而不是屏幕。
- ls -al> myfile
我在本例中使用了ls,但它實際上可以是任何具有某些輸出的命令。要確認這是有效的,你可以檢查myfile文件。
- catmyfile
感謝閱讀~小芯祝你新的一年收獲滿滿~