宋茜
wget
在類似Unix的操作系統(tǒng)上,wget命令通過網(wǎng)絡下載HTTP、HTTPS或FTP服務的文件。默認情況下,它包含在所有的Linux發(fā)行版中。
使用wget的最簡單方法是為它提供要通過HTTP下載的文件的位置。使用wget下載文件http://website.com/static/ images/header.jpg可以通過以下命令完成:
wget http://website.com/static/images/header.jpg
wget的一大優(yōu)點是它是非交互式的,這意味著它可以在用戶未登錄時在后臺運行,這可以進行檢索并與系統(tǒng)斷開連接,讓wget完成工作。
scp
在本地計算機上從遠程服務器獲取文件時是否出現(xiàn)過問題?例如,獲取用戶上傳的文件會遇到一些麻煩。
這時可以使用scp命令通過命令行下載此文件。scp是安全拷貝的簡稱。但更重要的它是一個遠程安全拷貝。該命令類似cp命令,但是源或目標位于另一個系統(tǒng)上。
例如使用以下命令將文件foobar.txt從遠程服務器復制到本地目錄:
scp username@remotehost.com:/path/to/foobar.txt / some / local / directory
scp也可以用于將文件從本地目錄復制到遠程服務器:
scp /some/local/directory/foobar.txt username@remotehost. com:/ destination / path /
使用-r選項可以對目錄執(zhí)行相同的操作,該選項以遞歸方式復制整個目錄。
ssh-keygen
ssh-keygen命令用于生成新的SSH密鑰對??梢栽贕itlab或Bitbucket中使用此命令生成公共SSH密鑰建立安全連接。
將SSH密鑰添加到Gitlab或Bitbucket后,每次嘗試將文件推送到遠程分支時都不會提示輸入密碼。
要生成SSH密鑰對,請使用以下命令:
ssh-keygen -t ed25519
在上面的示例中,使用了ED25519簽名算法,ED25519被認為是當前的最佳實踐。
生成SSH密鑰對并在Gitlab或Bitbucket中正確設置它最多花費幾分鐘,但這是完全值得的。
chmod
在Unix和類似Unix的操作系統(tǒng)中,chmod是命令和系統(tǒng)調(diào)用,用于更改文件系統(tǒng)對象(文件和目錄)的訪問權限。
chmod命令本身非常簡單,但是賦予文件和目錄正確的權限又是另一回事。
tar
Linux tar代表磁帶存檔。它用于將許多文件收集到一個存檔文件中。tar是創(chuàng)建壓縮歸檔文件最廣泛使用的命令。
讓我們從如何為特定目錄創(chuàng)建存檔文件開始:
tar -cvf my-archive.tar /path/to/directory
該命令將生成一個名為my-archive.tar的存檔文件,tar文件,包含在當前工作目錄中創(chuàng)建的/path/to/目錄的所有文件。
創(chuàng)建存檔文件是第一步。第二部分包括解壓縮存檔文件,因為在某些時候我們還要使用tar文件中的文件??梢酝ㄟ^以下命令將文件解壓縮到特定目錄:
tar -xvf my-archive.tar -C / home / myfolder /
alias
每個人都有可能會使用一些太長或太復雜而無法完全記住的命令,幸運的是,可以為該命令創(chuàng)建一個alias,因此不必記住整個命令,例如:
alias short-command="your custom and very long command here"
盡管以這種方式創(chuàng)建alias存在一個問題:此alias是臨時的。如果以此方式創(chuàng)建,則該alias僅可用于當前的終端會話。要在會話之間保留alias,可以將其保存在用戶的Shell配置配置文件中。如果分別使用Bash或ZSH,則此配置文件可能位于/ .bashrc或/ .zshrc中。
技巧1:直接輸出
屏幕是標準輸出設備。但有時不想在屏幕上輸出所有內(nèi)容,可能希望將某些命令的結(jié)果輸出到文件中。
例如,用于日志記錄的目的。要重定向輸出,可以使用>。在以下命令中,ls -al的輸出重定向到文件myfile而不是屏幕。
ls -al> myfile
在此示例中,使用了ls,但實際上它可以是具有任何輸出的命令。為了確認這是可行的,可以檢查myfile文件。
技巧2:合并命令
一次可以運行2個或多個命令。分號(;)運算符允許執(zhí)行此操作,可以連續(xù)執(zhí)行多個命令,而不管每個先前的命令是否成功。
ls -al;pwd;
如果要在第一個命令成功的情況下運行第二個命令,可用邏輯和操作符(即&&)分隔命令。如果想在第一個命令不成功的情況下執(zhí)行第二個命令,可以使用邏輯OR操作符,即||。