用戶必會的 20 個 Linux 基礎命令
<article class="article-content">
無論新手老手怕品,這 20 個 Linux 命令都能讓你的操作更輕松。
在黝黑的終端窗口中輸入命令巾遭,這樣的方式對某些人群來說可能好像過時了肉康,但對許多專業(yè)計算機人員來說闯估,這幾乎是計算機完成能夠執(zhí)行的所有任務的最有效、最簡便和最清晰的方式吼和。如今涨薪,一些項目將開源命令引入了 macOS 和 Windows 等非開放平臺,因此終端命令不僅僅是針對 Linux 和 BSD 用戶纹安,更是與每個人都息息相關尤辱。你可能會驚訝地發(fā)現(xiàn),在一臺普通的 POSIX 計算機上安裝了數(shù)千個命令厢岂,當然光督,其中很多命令并不是真的有用,至少不是直接或經(jīng)常性被使用塔粒。而其中的一部分命令雖然不是有效終端必須使用的命令结借,但相比其他命令而言使用頻率較高,值得大家學習一下卒茬。
以下是終端用戶最可能會使用的前 20 個命令:
cd
在終端外船老,你可以單擊圖標從一個文件夾移動到另一個文件夾,但在終端中圃酵,你需要使用 cd
柳畔。cd
命令代表<ruby>變更目錄<rt>change directory</rt></ruby>,是用戶在 Linux 系統(tǒng)中移動的方式郭赐。這是 Linux 中從一個地方到另一個地方最快薪韩、最直接的路線。
例如捌锭,在桌面上俘陷,當你想從你的主目錄(你保存所有文件夾的地方)移動到一個名為 presentations
的文件夾時,你首先要打開你的 Documents
文件夾观谦,然后打開一個名叫 work
的文件夾拉盾,然后是 projects
文件夾,然后是 conference
文件夾豁状,最后是 presentations
文件夾捉偏,里面存放的是 LibreOffice Impress 幻燈片。這個過程包含了很多次的雙擊操作泻红。同時屏幕上還需要許多鼠標移動動作告私,這取決于新窗口出現(xiàn)的位置,以及大腦需要跟蹤的許多路徑點承桥。許多人通過將 所有文件 都放在桌面上來避免這個看似微不足道的任務。
而終端用戶只需鍵入以下內(nèi)容即可避免此問題:
$ cd ~/Documents/work/projects/conference/presentations
一些有經(jīng)驗的終端用戶甚至都懶得輸入所有這些根悼,而是使用 Tab
鍵自動完成單詞填充凶异。更甚者蜀撑,有時你都不必依賴自動完成,而是改用通配符:
$ cd ~/Doc*/work/*/conf*/p*
pwd
用 Buckaroo Banzai 的話來說:“無論你走到哪里剩彬,你就在那里酷麦。”
當你想弄清楚確切位置時喉恋,就可以使用 pwd
命令沃饶。pwd
代表<ruby>打印工作目錄<rt>print working directory</rt></ruby>,這正是它的作用轻黑。--physical
(在某些情況時縮寫為 -P
)顯示解析所有符號鏈接后的確切位置糊肤。
$ pwd
/home/tux/presentation
$ pwd --physical
/home/tux/Documents/work/projects/conference/presentations
sed
流編輯器 sed
更廣為人知的是一個強大的批量 查找和替換 命令,但它同時也是一個正當合理的文本編輯器氓鄙。你可以通過閱讀我的 介紹性文章 來學習使用它馆揉,然后通過我的 高級教程和備忘錄 成為老手。
grep
grep
命令使用很普遍抖拦,以至于經(jīng)常被用作動詞(例如 “我會對一些文件進行 grep”)和動名詞(例如 “grep 一些輸出”)升酣。無論是查看日志文件還是解析其他命令的輸出,它都是在 shell 中解析文本時的關鍵組件态罪。這是忙碌的用戶專注于特定信息的一種方式噩茄。考慮一下計算世界中的數(shù)據(jù)量复颈,grep
命令的流行就見怪不怪了绩聘。你可以通過閱讀我的 介紹性文章 了解 grep
,然后下載 備忘錄 學習券膀。
file
當你需要知道文件包含什么類型的數(shù)據(jù)時君纫,請使用 file
命令:
$ file example.foo
example.foo: RIFF (little-endian) data, Web/P image [...]
$ file example.bar
example.bar: ELF 64-bit LSB executable, x86-64 [...]
當然,file
命令并不神奇芹彬。它只不過是根據(jù)文件如何標識自身而進行輸出的蓄髓,并且文件可能是錯誤的、損壞的或偽裝的舒帮。使用 hexdump 進行嚴格檢查的方式確定性更強会喝,但對于日常使用而言,file
命令非常方便玩郊。
awk
awk
不僅僅是一個命令肢执,它還是一種字面意義上的 編程語言。點此下載我們的免費 Awk 電子書 進行學習译红,你可能會寫出遠超你想象的腳本预茄。
curl
curl
命令是用于終端的 非交互式 Web 瀏覽器。它是面向 Web 和 API 開發(fā)人員的 開發(fā)工具侦厚。它是一個復雜靈活的命令耻陕,但如果你想從你的終端順利地與 Web 服務交互拙徽,該命令是很值得學習的。
下載我們免費的 curl 備忘錄诗宣,你可以從中學會 curl
的許多選項膘怕。
ps
管理系統(tǒng)資源主要由內(nèi)核負責,當你更喜歡或更需要手動管理時召庞,可以使用 ps
命令岛心。讀者可以在我的 使用 procps-ng 監(jiān)控 Linux 系統(tǒng) 文章中了解 ps
。
cat
cat 命令 是<ruby>連接<rt>concatenate</rt></ruby>的縮寫篮灼,它曾因為能將若干小文件合并而顯得非常有用忘古,這些小文件可能是由于大小限制而(使用 split
命令)拆分的。如今穿稳,cat
主要是用來將文本文件的內(nèi)容轉儲到終端中以供快速閱讀存皂,除非你為此專門去使用 head
、tail
逢艘、more
或 less
等命令旦袋。
盡管它的原始用途幾乎已被棄用,并且其他幾個命令也主要提供了其次要功能它改,但 cat
仍然是一個有用的工具疤孕。例如,它可以是復制(cp
)命令的替代品:
$ cat myfile.ogg > /backups/myfile.ogg
它可以顯示文件中不便觀察的隱形字符央拖。例如祭阀,使用 --show-tabs
選項,分割 YAML 的 Tab
字符就會顯示為 ^I
:
$ cat --show-tabs my.yaml
---
- hosts: all
tasks:
- name: Make sure the current version of 'sysstat' is installed.
dnf:
name:
^I- sysstat
^I- httpd
^I- mariadb-server
state: latest
它還可以用 --show-nonprinting
顯示非打印字符鲜戒,用 --show-ends
標記行尾专控,用 --number
提供行號,等等遏餐。
find
find
命令可以用來查找文件伦腐,但它還有許多選項,這些選項可以幫助你通過各種過濾器和參數(shù)查找文件失都。讀者可以從我的 介紹性文章 中學習該命令的基礎知識柏蘑。
如果你一直想知道為什么最基本的、不起眼的 ls 命令粹庞,不在本文列表中咳焚,那是因為 find
的靈活性。它不僅可以列表文件:
$ find .
./bar.txt
./baz.xml
./foo.txt
[...]
它還可以提供包含詳細信息的長列表功能:
$ find . -ls
3014803 464 -rw-rw-r-- 1 tux users 473385 Jul 26 07:25 ./foo.txt
3014837 900 -rwxrwxr-x 1 tux users 918217 Nov 6 2019 ./baz.xml
3026891 452 -rw-rw-r-- 1 tux users 461354 Aug 10 13:41 ./foo.txt
[...]
這是一個技術問題庞溜,但也是很一個巧妙的技巧革半。
tar
人們有時會引用 BSD 的 tar
語法來拿 Linux 命令開玩笑。盡管有這樣的名聲,但 tar
命令實際上非常直觀督惰。讀者可以閱讀我的 如何解壓縮 tar.gz 文件 文章不傅,了解在需要時使用 tar
命令的簡單知識。
more赏胚、less 和 most
這些統(tǒng)稱為分頁命令。分頁命令與 cat
類似商虐,但前者會在屏幕底部暫停輸出觉阅,直到你向下滾動查看更多內(nèi)容。這些命令比較簡單秘车,但每個之間都有細微差別典勇。用戶是用箭頭鍵還是空格鍵滾動?是必須手動退出叮趴,還是在顯示的文件末尾自動退出割笙?用戶的首選搜索行為是什么樣的?選擇你最喜歡的分頁命令并將其設置在 .bashrc
中吧眯亦!
ssh 和 scp
OpenSSH 不僅有助于保護與遠程系統(tǒng)的連接安全伤溉,還可以用于啟用其他命令。例如妻率,對于許多用戶來說乱顾,有了 .ssh
目錄,他們才能與 Git 存儲庫順利交互宫静、將更新發(fā)布到網(wǎng)站走净、登錄云控制平臺。
mv
mv
命令有雙重作用:它既可以 移動文件 又可以 重命名文件孤里。它有幾個可用的保護措施伏伯,例如 --interactive
和 --no-clobber
選項避免破壞現(xiàn)有文件,--backup
命令確保數(shù)據(jù)在新位置驗證之前被保留捌袜,以及 --update
選項確保舊版本不會替換新版本文件说搅。
sudo
當某個用戶賬戶的用戶名已知,且具有 全部 系統(tǒng)權限時琢蛤,該用戶很快就會成為黑客攻擊的目標蜓堕。sudo
命令消除了對字面上 root
用戶的需求,從而優(yōu)雅地移除了有關系統(tǒng)的重要信息博其。不過這還不是全部套才,使用 sudo
你還可以輕松地管理單個命令、用戶和組的權限慕淡。你可以在選定的命令上啟用無密碼執(zhí)行背伴、記錄用戶會話、使用摘要驗證來驗證命令,等等傻寂。
alias
使用 alias
命令將長命令變成易于記憶的快捷方式:
$ alias ls='ls --classify --almost-all --ignore-backups --color'
clear
有時終端會顯得很混亂息尺,輸入 clear
(或在某些 shell 中按 Ctrl+L
)后,你就能得到漂亮疾掰、刷新的屏幕了搂誉。
setfacl
傳統(tǒng)上,POSIX 文件權限由 chown
和 chmod
決定静檬。然而炭懊,如今系統(tǒng)變得更加復雜,因此有一個靈活性更高的命令拂檩。setfacl
命令允許創(chuàng)建一個 訪問控制列表(ACL)侮腹,可以配置任意用戶所需權限,并可以為文件夾及其中創(chuàng)建的內(nèi)容設置默認權限稻励。
netcat
可能需要使用 netcat
(nc
)的人不多父阻,但這些使用它的人確離不開它。nc
命令是一個通用的網(wǎng)絡連接工具望抽。
它可以連接到一個端口加矛,類似于 telnet
命令:
$ nc -u 192.168.0.12 80
它可以 ping 一個端口,類似于 ping
命令:
$ nc -zvn 192.168.0.12 25
它可以探測開放端口糠聪,類似于 nmap
命令:
$ nc -zv 192.168.0.12 25-80
以上僅是該命令的一小部分用途荒椭。
你自己構建的命令
在某種程度上,Linux 終端是一個創(chuàng)造性解決問題的平臺舰蟆。當你學習命令時趣惠,你也在學習可用于創(chuàng)建自己的命令的組塊。我的 shell 歷史 中的許多命令都是自己編寫的 shell 腳本身害,從而實現(xiàn)了根據(jù)自己想要的工作方式定制工作流程味悄。你為自己的效率和舒適度而設計的命令也可以作為 shell 中的基本命令∷欤花些時間了解一些很棒的命令侍瑟,然后試著構建自己的命令吧。當你構建出的命令非常好用時丙猬,把它開源涨颜,這樣就可以與他人分享你的想法啦!
via: https://opensource.com/article/21/9/essential-linux-commands
作者:Seth Kenlon 選題:lujun9972 譯者:unigeorge 校對:wxy
本文由 LCTT 原創(chuàng)編譯茧球,Linux中國 榮譽推出
轉自 https://linux.cn/article-13759-1.html
</article>