當(dāng)你進(jìn)入了 Linux 的世界赢笨,在下載、安裝 了某個(gè) Linux 發(fā)行版蟋字,體驗(yàn)了 Linux 桌面并安裝了一些你喜愛和需要的 軟件 之后,應(yīng)該去了解下 Linux 真正的魅力所在:命令行 择葡。每一個(gè)命令其實(shí)就是一個(gè)程序,借助這些命令记某,我們可以辦到非常多的事情。下面將會(huì)為大家介紹一下幾個(gè)常用的命令构捡。
如何尋求幫助液南?
在 Linux 下遇到問題,最重要的是要自己尋求幫助勾徽,下面是三種尋求幫助的方法滑凉。
man
man
是 Linux 的系統(tǒng)手冊(cè),即manual
喘帚。因?yàn)榇蠖鄶?shù)程序都會(huì)自帶手冊(cè)畅姊,所以可以通過 man
命令獲取幫助。執(zhí)行以后吹由,在 man page 頁(yè)面中按 q
退出若未。
獲取ls
的幫助:
$ man ls
查看有多少(針對(duì)不同方面的)同名的手冊(cè):
$ man -f ls
ls (1) - list directory contents
ls (1p) - list directory contents
查看特定的手冊(cè):
$ man 1p ls
info
與man
不同的是,可以像瀏覽網(wǎng)頁(yè)一樣在各個(gè)節(jié)點(diǎn)中跳轉(zhuǎn)倾鲫。
從文檔首頁(yè)開始瀏覽:
$ info
獲取特定程序的幫助:
$ info program
help
除了上面的兩種方法外粗合,還有一種簡(jiǎn)單使用的方法,那就是--help
參數(shù)乌昔,一般程序都會(huì)有這個(gè)參數(shù)隙疚,會(huì)輸出最簡(jiǎn)單有用的介紹。
$ man --help ### 獲取 man 的幫助
$ info --help ### 獲取 info 的幫助
如何簡(jiǎn)單操作磕道?
在 Terminal(終端)
中供屉,有許多操作技巧,這里就介紹幾個(gè)簡(jiǎn)單的溺蕉。
光標(biāo)
- up(方向鍵上) 可以調(diào)出輸入歷史執(zhí)行記錄伶丐,快速執(zhí)行命令
- down(方向鍵下) 配合 up 選擇歷史執(zhí)行記錄
- Home 移動(dòng)光標(biāo)到本行開頭
- End 移動(dòng)光標(biāo)到本行結(jié)尾
- PgUp 向上翻頁(yè)
- PaDN 向下翻頁(yè)
- ctrl + c 終止當(dāng)前程序
Tab 補(bǔ)全
Tab 補(bǔ)全是非常有用的一個(gè)功能,可以用來自動(dòng)補(bǔ)全命令或文件名疯特,省時(shí)準(zhǔn)確哗魂。
- 未輸入狀態(tài)下連按兩次
Tab
列出所有可用命令 - 已輸入部分命令名或文件名,按
Tab
進(jìn)行自動(dòng)補(bǔ)全辙芍,多用你就肯定會(huì)喜歡的了啡彬。
常用命令
cd
cd
是打開某個(gè)路徑的命令,也就是打開某個(gè)文件夾故硅,并跳轉(zhuǎn)到該處庶灿。
$ cd path ### path 為你要打開的路徑。
其中 path 有絕對(duì)路徑和相對(duì)路徑之分吃衅,絕對(duì)路徑強(qiáng)調(diào)從 /
起往踢,一直到所在路徑。相對(duì)路徑則徘层,相對(duì)于當(dāng)前路徑來說峻呕,假設(shè)當(dāng)前家目錄有etc
文件夾(絕對(duì)路徑應(yīng)為 /home/username/etc
)利职,如果直接cd etc
則進(jìn)入此文件夾,但若是cd /etc/
則是進(jìn)入系統(tǒng) etc
瘦癌,多琢磨一下就可以理解了猪贪。另外在 Linux 中, .
代表當(dāng)前目錄讯私, ..
代表上級(jí)目錄热押,因此返回上級(jí)目錄可以cd ..
。
ls
ls
即 list 斤寇,列出文件桶癣。
$ ls ### 僅列出當(dāng)前目錄可見文件
$ ls -l ### 列出當(dāng)前目錄可見文件詳細(xì)信息
$ ls -hl ### 列出詳細(xì)信息并以可讀大小顯示文件大小
$ ls -al ### 列出所有文件(包括隱藏)的詳細(xì)信息
注意: Linux 中 以.
開頭的文件或文件夾均為隱藏文件或隱藏文件夾。
pwd
pwd
用于返回當(dāng)前工作目錄的名字娘锁,為絕對(duì)路徑名牙寞。
$ pwd
/home
mkdir
mkdir
用于新建文件夾。
$ mkdir folder
$ mkdir -p folder/subfolder ### -p 參數(shù)為當(dāng)父目錄存在時(shí)忽略莫秆,若不存在則建立间雀,用此參數(shù)可建立多級(jí)文件夾
rm
rm
即 remove ,刪除文件馏锡。
$ rm filename ### 刪除 filename
$ rm -i filename ### 刪除 filename 前提示雷蹂,若多個(gè)文件則每次提示
$ rm -rf folder/subfolder/ ### 遞歸刪除 subfolder 下所有文件及文件夾,包括 subfolder 自身
$ rm -d folder ### 刪除空文件夾
cp
cp
即 copy 杯道,復(fù)制文件。
$ cp source dest ### 將 source 復(fù)制到 dest
$ cp folder/* dest ### 將 folder 下所有文件(不含子文件夾中的文件)復(fù)制到 dest
$ cp -r folder dest ### 將 folder 下所有文件(包含子文件夾中的所有文件)復(fù)制到 dest
mv
mv
即 move 责蝠,移動(dòng)文件党巾。
$ mv source folder ### 將 source 移動(dòng)到 folder 下,完成后則為 folder/source
$ mv -i source folder ### 在移動(dòng)時(shí)霜医,若文件已存在則提示 **是否覆蓋**
$ mv source dest ### 在 dest 不為目錄的前提下齿拂,重命名 source 為 dest
cat
cat
用于輸出文件內(nèi)容到 Terminal 。
$ cat /etc/locale.gen ### 輸出 locale.gen 的內(nèi)容
$ cat -n /etc/locale.gen ### 輸出 locale.gen 的內(nèi)容并顯示行號(hào)
more
more
與cat
相似肴敛,都可以查看文件內(nèi)容署海,所不同的是,當(dāng)一個(gè)文檔太長(zhǎng)時(shí)医男, cat
只能展示最后布滿屏幕的內(nèi)容砸狞,前面的內(nèi)容是不可見的。這時(shí)候可用more
逐行顯示內(nèi)容镀梭。
$ more /etc/locale.gen
$ more +100 /etc/locale.gen ### 從 100 行開始顯示
less
less
與more
相似刀森,不過less
支持上下滾動(dòng)查看內(nèi)容,而more
只支持逐行顯示报账。
$ less /etc/locale.gen
$ less +100 /etc/locale.gen
nano
nano
是一個(gè)簡(jiǎn)單實(shí)用的文本編輯器研底,入門簡(jiǎn)單埠偿。
$ nano filename ### 編輯 filename 文件,若文件不存在榜晦,則新打開一個(gè)文件冠蒋,若退出時(shí)保存,則創(chuàng)建該文件
編輯完后乾胶,ctrl + X
提示是否保存抖剿,按y
確定保存即可。
注意:在使用過程中可用ctrl + G
獲取幫助胚吁。
reboot
reboot
為重啟命令牙躺。
# reboot ### '$' 和 '#' 的區(qū)別在于 '$' 普通用戶即可執(zhí)行,而 '#' 為 root 用戶才可執(zhí)行腕扶,或普通用戶使用 'sudo'
poweroff
poweroff
為關(guān)機(jī)命令孽拷。
# poweroff ### 馬上關(guān)機(jī)
ping
ping
主要用于測(cè)試網(wǎng)絡(luò)連通,通過對(duì)目標(biāo)機(jī)器發(fā)送數(shù)據(jù)包來測(cè)試兩臺(tái)主機(jī)是否連通半抱,及延時(shí)情況脓恕。
$ ping locez.com ### 通過域名 ping,若 DNS 未設(shè)置好窿侈,可能無法 ping 通
$ ping linux.cn
PING linux.cn (211.157.2.94) 56(84) bytes of data.
64 bytes from 211.157.2.94.static.in-addr.arpa (211.157.2.94): icmp_seq=1 ttl=53 time=41.5 ms
64 bytes from 211.157.2.94.static.in-addr.arpa (211.157.2.94): icmp_seq=2 ttl=53 time=40.4 ms
64 bytes from 211.157.2.94.static.in-addr.arpa (211.157.2.94): icmp_seq=3 ttl=53 time=41.9 ms
^C
--- linux.cn ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 40.406/41.287/41.931/0.644 ms
$ ping 211.157.2.94 ### 通過 IP 地址 ping 炼幔,若無法 ping 通可能是網(wǎng)絡(luò)連接出現(xiàn)問題
grep
grep
主要用于返回匹配的項(xiàng)目,支持正則表達(dá)式史简。
$ grep PATTERN filename ### 返回所有含有 PATTERN 的行
$ grep zh_CN /etc/locale.gen ### 返回所有含 zh_CN 的行
mount
mount
用于掛載一個(gè)文件系統(tǒng)乃秀,需要root
用戶執(zhí)行。一個(gè)磁盤可分為若干個(gè)分區(qū)圆兵,在分區(qū)上面可以創(chuàng)建文件系統(tǒng)跺讯,而掛載點(diǎn)則是提供一個(gè)訪問的入口,將一個(gè)分區(qū)的文件系統(tǒng)掛載到某個(gè)目錄中殉农,稱這個(gè)目錄為掛載點(diǎn)刀脏,并且可以通過這個(gè)掛載點(diǎn)訪問該文件系統(tǒng)中的內(nèi)容。例如一塊硬盤在 Linux 中表示為 /dev/sda
那么它上面的分區(qū)應(yīng)該表示為 /dev/sda1
超凳、/dev/sda2
愈污。
# mount ### 輸出系統(tǒng)目前的掛載信息
# mount /dev/sda1 /mnt ### 將 sda1 掛載到 /mnt 中
# cd /mnt ### 直接通過 /mnt 訪問內(nèi)容
# mount -o remount,rw /mnt ### 重新掛載 sda1 到 /mnt 并設(shè)置為 可讀寫
# mount -a ### 掛載 fstab 文件配置好的文件系統(tǒng)
umount
umount
與moung
相反,是卸載一個(gè)掛載點(diǎn)轮傍,即取消該入口暂雹。
# umount /mnt ### 卸載 /mnt 這個(gè)掛載點(diǎn)的文件系統(tǒng)
# umount -a ### 卸載所有已掛載的文件系統(tǒng)
tar
tar
主要用于創(chuàng)建歸檔文件,和解壓歸檔文件金麸,其本身是沒有壓縮功能的擎析,但可以調(diào)用gzip
、bzip2
進(jìn)行壓縮處理。參數(shù)解釋:
-
-c
創(chuàng)建歸檔 -
-x
解壓歸檔 -
-v
顯示處理過程 -
-f
目標(biāo)文件揍魂,其后必須緊跟目標(biāo)文件 -
-j
調(diào)用bzip2
進(jìn)行解壓縮 -
-z
調(diào)用gzip
進(jìn)行解壓縮 -
-t
列出歸檔中的文件
$ tar -cvf filename.tar . ### 將當(dāng)前目錄所有文件歸檔桨醋,但不壓縮,注意后面有個(gè) ’.‘ 现斋,不可省略喜最,代表當(dāng)前目錄的意思
$ tar -xvf filename.tar ### 解壓 filename.tar 到當(dāng)前文件夾
$ tar -cvjf filename.tar.bz2 . ### 使用 bzip2 壓縮
$ tar -xvjf filename.tar.bz2 ### 解壓 filename.tar.bz2 到當(dāng)前文件夾
$ tar -cvzf filename.tar.gz ### 使用 gzip 壓縮
$ tar -xvzf filename.tar.gz ### 解壓 filename.tar.gz 到當(dāng)前文件夾
$ tar -tf filename ### 只查看 filename 歸檔中的文件,不解壓
ln
ln
主要用于在兩個(gè)文件中創(chuàng)建鏈接庄蹋,鏈接又分為Hard Links
(硬鏈接)和Symbolic Links
(符號(hào)鏈接或軟鏈接)瞬内,其中默認(rèn)為創(chuàng)建硬鏈接,使用-s
參數(shù)指定創(chuàng)建軟鏈接限书。
- 硬鏈接主要是增加一個(gè)文件的鏈接數(shù)虫蝶,只要該文件的鏈接數(shù)不為
0
,該文件就不會(huì)被物理刪除倦西,所以刪除一個(gè)具有多個(gè)硬鏈接數(shù)的文件能真,必須刪除所有它的硬鏈接才可刪除。 - 軟鏈接簡(jiǎn)單來說是為文件創(chuàng)建了一個(gè)類似快捷方式的東西扰柠,通過該鏈接可以訪問文件粉铐,修改文件,但不會(huì)增加該文件的鏈接數(shù)卤档,刪除一個(gè)軟鏈接并不會(huì)刪除源文件蝙泼,即使源文件被刪除,軟鏈接也存在劝枣,當(dāng)重新創(chuàng)建一個(gè)同名的源文件汤踏,該軟鏈接則指向新創(chuàng)建的文件。
- 硬鏈接只可鏈接兩個(gè)文件舔腾,不可鏈接目錄茎活,而軟鏈接可鏈接目錄,所以軟鏈接是非常靈活的琢唾。
$ ln source dest ### 為 source 創(chuàng)建一個(gè)名為 dest 的硬鏈接
$ ln -s source dest ### 為 source 創(chuàng)建一個(gè)名為 dest 的軟鏈接
chown
chown
用于改變一個(gè)文件的所有者及所在的組。
# chown user filename ### 改變 filename 的所有者為 user
# chown user:group filename ### 改變 filename 的所有者為 user盾饮,組為 group
# chown -R root folder ### 改變 folder 文件夾及其子文件的所有者為 root
chmod
chmod
永遠(yuǎn)更改一個(gè)文件的權(quán)限采桃,主要有讀取 、寫入丘损、執(zhí)行普办,三種權(quán)限,其中所有者 徘钥、用戶組 衔蹲、其他各占三個(gè),因此ls -l
可以看到如下的信息:
-rwxr--r-- 1 locez users 154 Aug 30 18:09 filename
其中r=read
,w=write
舆驶,x=execute
# chmod +x filename ### 為 user 橱健,group ,others 添加執(zhí)行權(quán)限
# chmod -x filename ### 取消 user 沙廉, group 拘荡,others 的執(zhí)行權(quán)限
# chmod +w filename ### 為 user 添加寫入權(quán)限
# chmod ugo=rwx filename ### 設(shè)置 user ,group 撬陵,others 具有 讀取珊皿、寫入、執(zhí)行權(quán)限
# chmod ug=rw filename ### 設(shè)置 user 巨税,group 添加 讀取蟋定、寫入權(quán)限
# chmod ugo=--- filename ### 取消所有權(quán)限
useradd
useradd
用于添加一個(gè)普通用戶。
# useradd -m -g users -G audio -s /usr/bin/bash newuser
### -m 創(chuàng)建 home 目錄草添, -g 所屬的主組驶兜, -G 指定該用戶在哪些附加組, -s 設(shè)定默認(rèn)的 shell 果元,newuser 為新的用戶名
passwd
passwd
用于改變用戶登錄密碼促王。
$ passwd ### 不帶參數(shù)更改當(dāng)前用戶密碼
# passwd newuser ### 更改上述新建的 newuser 的用戶密碼
whereis
whereis
用于查找文件、手冊(cè)等而晒。
$ whereis bash
bash: /usr/bin/bash /etc/bash.bashrc /etc/bash.bash_logout /usr/share/man/man1/bash.1.gz /usr/share/info/bash.info.gz
$ whereis -b bash ### 僅查找 binary
bash: /usr/bin/bash /etc/bash.bashrc /etc/bash.bash_logout
$ whereis -m bash ### 僅查找 manual
bash: /usr/share/man/man1/bash.1.gz /usr/share/info/bash.info.gz
find
find
也用于查找文件蝇狼,但更為強(qiáng)大,支持正則倡怎,并且可將查找結(jié)果傳遞到其他命令迅耘。
$ find . -name PATTERN ### 從當(dāng)前目錄查找符合 PATTERN 的文件
$ find /home -name PATTERN -exec ls -l {} \; ### 從 /home 文件查找所有符合 PATTERN 的文件,并交由 ls 輸出詳細(xì)信息
wget
wget
是一個(gè)下載工具监署,簡(jiǎn)單強(qiáng)大颤专。
$ wget -O newname.md https://github.com/LCTT/TranslateProject/blob/master/README.md ###下載 README 文件并重命名為 newname.md
$ wget -c url ### 下載 url 并開啟斷點(diǎn)續(xù)傳
恭喜你,你已經(jīng)學(xué)習(xí)了完了26 個(gè)基礎(chǔ)的 Linux 命令钠乏。雖然這里只是一些最基礎(chǔ)的命令栖秕,但是熟練使用這些命令就踏出了你從一位 Linux 新手成為 Linux 玩家的第一步!