當你進入了?Linux?的世界,在下載、安裝?了某個?Linux 發(fā)行版,體驗了 Linux 桌面并安裝了一些你喜愛和需要的軟件之后,應(yīng)該去了解下 Linux 真正的魅力所在:命令行。每一個 Linux 命令其實就是一個程序,借助這些命令,我們可以辦到非常多的事情。下面將會為大家介紹一下幾個常用的命令。
如何尋求幫助?
在 Linux 下遇到問題,最重要的是要自己尋求幫助,下面是三種尋求幫助的方法。
man
man?是 Linux 的幫助手冊,即?manual?。因為大多數(shù)程序都會自帶手冊,所以可以通過?man?命令獲取幫助。執(zhí)行以后,在?man page?頁面中按?q?退出。
獲取?ls?的幫助
$ man ls
查看有多少(針對不同方面的)同名的手冊
$ man -f lsls (1) - list directory contentsls (1p) - list directory contents
查看特定的手冊
$ man 1p ls
info
與?man?不同的是,可以像瀏覽網(wǎng)頁一樣在各個節(jié)點中跳轉(zhuǎn)。
從文檔首頁開始瀏覽
$ info
獲取特定程序的幫助
$ info program
help
除了上面的兩種方法外,還有一種簡單使用的方法,那就是?--help?參數(shù),一般程序都會有這個參數(shù),會輸出最簡單有用的介紹。
$ man --help ### 獲取 man 的幫助$ info --help ###?獲取 info 的幫助$ ls --help ###?獲取 ls 的幫助
如何簡單操作?
在?Terminal(終端)?中,有許多操作技巧,這里就介紹幾個簡單的。
光標
up(方向鍵上) 可以調(diào)出輸入歷史執(zhí)行記錄,快速執(zhí)行命令
down(方向鍵下) 配合 up 選擇歷史執(zhí)行記錄
Home 移動光標到本行開頭
End 移動光標到本行結(jié)尾
PgUp 向上翻頁
PaDN 向下翻頁
ctrl + c 終止當前程序
Tab 補全
Tab?補全是非常有用的一個功能,可以用來自動補全命令或文件名,省時準確。
未輸入狀態(tài)下連按兩次?Tab?列出所有可用命令
已輸入部分命令名或文件名,按?Tab?進行自動補全,多用你就肯定會喜歡的了。
常用命令
以下命令按照通常的使用頻度排列。
cd
cd?是打開某個路徑的命令,也就是打開某個文件夾,并跳轉(zhuǎn)到該處。
$ cd path ###?path 為你要打開的路徑。
其中 path 有絕對路徑和相對路徑之分,絕對路徑強調(diào)從?/?起,一直到所在路徑。相對路徑則相對于當前路徑來說,假設(shè)當前家目錄有etc?文件夾(絕對路徑應(yīng)為?/home/username/etc),如果直接?cd etc?則進入此文件夾,但若是?cd /etc/?則是進入系統(tǒng)?etc?,多琢磨一下就可以理解了。另外在 Linux 中,?.?代表當前目錄,?..?代表上級目錄,因此返回上級目錄可以?cd ..?。
ls
ls?即?list?,列出文件。
$ ls ###?僅列出當前目錄可見文件$ ls -l ###?列出當前目錄可見文件詳細信息$ ls -hl ###?列出詳細信息并以可讀大小顯示文件大小$ ls -al ###?列出所有文件(包括隱藏)的詳細信息
注意: Linux 中 以?.?開頭的文件或文件夾均為隱藏文件或隱藏文件夾。
pwd
pwd?用于返回當前工作目錄的名字,為絕對路徑名。
$ pwd/home
mkdir
mkdir?用于新建文件夾。
$ mkdir folder$ mkdir -p folder/subfolder ### -p 參數(shù)為當父目錄存在時忽略,若不存在則建立,用此參數(shù)可建立多級文件夾
rm
rm?即?remove?,刪除文件。
$ rm filename ### 刪除 filename$ rm -i filename ### 刪除 filename 前提示,若多個文件則每次提示$ 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?,移動文件。
$ mv source folder ### 將 source 移動到 folder 下,完成后則為 folder/source$ mv -i source folder ### 在移動時,若文件已存在則提示 **是否覆蓋** $ 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)容并顯示行號
more
more?與?cat?相似,都可以查看文件內(nèi)容,所不同的是,當一個文檔太長時,?cat?只能展示最后布滿屏幕的內(nèi)容,前面的內(nèi)容是不可見的。這時候可用?more?逐行顯示內(nèi)容。
$ more /etc/locale.gen$ more +100 /etc/locale.gen ### 從 100 行開始顯示
less
less?與?more?相似,不過?less?支持上下滾動查看內(nèi)容,而?more?只支持逐行顯示。
$ less /etc/locale.gen$ less +100 /etc/locale.gen
nano
nano?是一個簡單實用的文本編輯器,使用簡單。
$ nano filename ### 編輯 filename 文件,若文件不存在,則新打開一個文件,若退出時保存,則創(chuàng)建該文件
編輯完后,ctrl + X?提示是否保存,按?y?確定保存即可。
注意:在使用過程中可用?ctrl + G?獲取幫助。
reboot
reboot?為重啟命令。
# reboot ### '$' 和 '#' 的區(qū)別在于 '$' 普通用戶即可執(zhí)行 ### 而 '#' 為 root 用戶才可執(zhí)行,或普通用戶使用 'sudo'
poweroff
poweroff?為關(guān)機命令。
# poweroff ### 馬上關(guān)機
ping
ping?主要用于測試網(wǎng)絡(luò)連通,通過對目標機器發(fā)送數(shù)據(jù)包來測試兩臺主機是否連通,及延時情況。
$ ping locez.com ### 通過域名 ping,若 DNS 未設(shè)置好,可能無法 ping 通$ ping linux.cnPING 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 ms64 bytes from 211.157.2.94.static.in-addr.arpa (211.157.2.94): icmp_seq=2 ttl=53 time=40.4 ms64 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 2002msrtt 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?主要用于返回匹配的項目,支持正則表達式。
$ grep PATTERN filename ### 返回所有含有 PATTERN 的行$ grep zh_CN /etc/locale.gen ### 返回所有含 zh_CN 的行
mount
mount?用于掛載一個文件系統(tǒng),需要?root?用戶執(zhí)行。一個磁盤可分為若干個分區(qū),在分區(qū)上面可以創(chuàng)建文件系統(tǒng),而掛載點則是提供一個訪問的入口,將一個分區(qū)的文件系統(tǒng)掛載到某個目錄中,稱這個目錄為掛載點,并且可以通過這個掛載點訪問該文件系統(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?與?mount?相反,是卸載一個掛載點,即取消該入口。
# umount /mnt ### 卸載 /mnt 這個掛載點的文件系統(tǒng)# umount -a ### 卸載所有已掛載的文件系統(tǒng)
tar
tar?主要用于創(chuàng)建歸檔文件,和解壓歸檔文件,其本身是沒有壓縮功能的,但可以調(diào)用?gzip?、?bzip2?進行壓縮處理。
參數(shù)解釋:
-c?創(chuàng)建歸檔
-x?解壓歸檔
-v?顯示處理過程
-f?目標文件,其后必須緊跟 目標文件
-j?調(diào)用?bzip2?進行解壓縮
-z?調(diào)用?gzip?進行解壓縮
-t?列出歸檔中的文件
$ tar -cvf filename.tar . ### 將當前目錄所有文件歸檔,但不壓縮,注意后面有個 ’.‘ ,不可省略,代表當前目錄的意思 $ tar -xvf filename.tar ### 解壓 filename.tar 到當前文件夾$ tar -cvjf filename.tar.bz2 . ### 使用 bzip2 壓縮$ tar -xvjf filename.tar.bz2 ### 解壓 filename.tar.bz2 到當前文件夾$ tar -cv*** filename.tar.gz ### 使用 gzip 壓縮$ tar -xv*** filename.tar.gz ### 解壓 filename.tar.gz 到當前文件夾$ tar -tf filename ### 只查看 filename 歸檔中的文件,不解壓
ln
ln?主要用于在兩個文件中創(chuàng)建鏈接,鏈接又分為?Hard Links?(硬鏈接)和?Symbolic Links?(符號鏈接或軟鏈接),其中默認為創(chuàng)建硬鏈接,使用?-s?參數(shù)指定創(chuàng)建軟鏈接。
硬鏈接主要是增加一個文件的鏈接數(shù),只要該文件的鏈接數(shù)不為?0?,該文件就不會被物理刪除,所以刪除一個具有多個硬鏈接數(shù)的文件,必須刪除所有它的硬鏈接才可刪除。
軟鏈接簡單來說是為文件創(chuàng)建了一個類似快捷方式的東西,通過該鏈接可以訪問文件,修改文件,但不會增加該文件的鏈接數(shù),刪除一個軟鏈接并不會刪除源文件,即使源文件被刪除,軟鏈接也存在,當重新創(chuàng)建一個同名的源文件,該軟鏈接則指向新創(chuàng)建的文件。
硬鏈接只可鏈接兩個文件,不可鏈接目錄,而軟鏈接可鏈接目錄,所以軟鏈接是非常靈活的。
$ ln source dest ### 為 source 創(chuàng)建一個名為 dest 的硬鏈接$ ln -s source dest ### 為 source 創(chuàng)建一個名為 dest 的軟鏈接
chown
chown?用于改變一個文件的所有者及所在的組。
# chown user filename ### 改變 filename 的所有者為 user# chown user:group filename ### 改變 filename 的所有者為 user,組為 group# chown -R root folder ### 改變 folder 文件夾及其子文件的所有者為 root
chmod
chmod?永遠更改一個文件的權(quán)限,主要有?讀取?、?寫入?、?執(zhí)行?,三種權(quán)限,其中?所有者?、?用戶組?、?其他?各占三個,因此?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?用于添加一個普通用戶。
# useradd -m -g users -G audio -s /usr/bin/bash newuser ### -m 創(chuàng)建 home 目錄, -g 所屬的主組, -G 指定該用戶在哪些附加組, -s 設(shè)定默認的 shell ,newuser 為新的用戶名
passwd
passwd?用于改變用戶登錄密碼。
$ passwd ### 不帶參數(shù)更改當前用戶密碼# passwd newuser ### 更改上述新建的 newuser 的用戶密碼
whereis
whereis?用于查找文件、手冊等。
$ 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 ### 僅查找 binarybash: /usr/bin/bash /etc/bash.bashrc /etc/bash.bash_logout$ whereis -m bash ### 僅查找 manualbash: /usr/share/man/man1/bash.1.gz /usr/share/info/bash.info.gz
find
find?也用于查找文件,但更為強大,支持正則,并且可將查找結(jié)果傳遞到其他命令。
$ find . -name PATTERN ### 從當前目錄查找符合 PATTERN 的文件$ find /home -name PATTERN -exec ls -l {} /; # 從 /home 文件查找所有符合 PATTERN 的文件,并交由 ls 輸出詳細信息
wget
wget?是一個下載工具,簡單強大。
$ wget -O newname.md https://github.com/LCTT/TranslateProject/blob/master/README.md ### 下載 README 文件并重命名為 newname.md$ wget -c url ### 下載 url 并開啟斷點續(xù)傳
恭喜你,你已經(jīng)學(xué)習(xí)了完了26 個基礎(chǔ)的 Linux 命令。雖然這里只是一些最基礎(chǔ)的命令,但是熟練使用這些命令就踏出了你從一位 Linux 新手成為 Linux 玩家的第一步!
?
評論
查看更多