最近都需要在 Linux 系統下開發,所以經常需要在終端中進行操作。Linux 有很多 shell 命令可以幫助我們完成任務,但不常使用的話就會忘記掉。
本篇作為命令備忘錄,我會將實際工作當中用到的命令記錄下來,并長期保持更新。
1.which
which 用于查找一個文件,并返回絕對路徑,查找的目錄范圍由系統的 PATH 指定。
由于 Linux 中一切皆文件,所以 which 指定更多的是查找系統中有沒有這個命令。
比如,查找 ls 命令,我們可知它的可執行文件的位置
which ls/bin/ls
2.ln
ln 是一個簡單但卻非常實用的命令,它的作用是為某個文件或者文件夾建立鏈接。
命令語法
ln [參數][源文件或目錄][目標文件或目錄]
鏈接有軟鏈接和硬鏈接兩種,我們一般用軟鏈接。
ln -s test.txt ../test1.txt
將當前目錄中的 test.txt 文件鏈接稱為上一級目錄的 test1.txt 文件。這樣,其他程序訪問 test1.txt 就如訪問 test.txt 一樣。
3.tee
tee 命令是我個人非常喜愛的一個命令。
之前做 Android 開發,特別是源碼編譯的時候,經常在終端一瞬間就會打印無數條 log 信息,光靠肉眼是不行的,一個比較好的方法就是用命令保存起來。
另外,用 find 命令查找文件時,如果文件過多,也可以用 tee 來幫忙。
tee 命令可以接受標準輸入,并輸出到標準輸出,同時保存到對應的文件。
標準輸入值得是終端的鍵盤輸入,比如 c++ 的 cin,標準輸出就是終端的輸出,比如 c++ 的 cout。
語法
tee [-ai][--help][--version][文件...]
參數 a 代表在后面添加內容而不是覆蓋。
tee tmp
hello
hello
world
world
我在終端輸入 tee tmp
接著我輸入 hello,終端響應 hello
我輸入 world,終端響應 world。
然后,我通過 cat tmp
查看 tmp 文件,它的結果如下:
hello
world
這說明 tee 命令準確將標準輸入保存到指定的 tmp 文件了。
4.locate
locate我也非常喜歡用,用它來快速查找。它是查數據庫,而不是一個個文件真實查,所以,速度比較快。
比如,我想查找系統有沒有 libpng.so.
我只需要這樣
locate libpng.so
/home/frank/anaconda3/lib/libpng.so/home/frank/anaconda3/pkgs/libpng-1.6.34-hb9fc6fc_0/lib/libpng.so/home/frank/anaconda3/pkgs/libpng-1.6.37-hbc83047_0/lib/libpng.so/usr/lib/x86_64-linux-gnu/libpng.so
Linux的常用的shell命令
1.目錄命令:
ll /:查看根文件下的所有文件目錄
2.幫助命令:
man ls與ls --help與info ls:(man ls:分屏顯示;--help:全部加載,不完整;info ls:無用信息比較多)
3.基本操作和命令:
Ctrl+R和方向鍵中的上鍵:查找歷時輸入過的命令 Ctrl+C Ctrl+Z: 終止或者退出當前操作字母鍵i:進入文本編輯模式(可以修改Linux操作系統的init相關設置)編輯完成后按Esc鍵退出,然后如果確定保存修改并返回命令行界面輸入命令-----:wq如果不保存用命令并退出編輯界面----:q 保存并強制退出----:q! Shift+G 到文件末位 o:換行
新聞熱點
疑難解答