每一個 Linux 命令其實就是一個程序,借助這些命令,我們可以辦到非常多的事情。下面將會爲大家介紹一下幾個常用的命令
如何尋求幫助?
在 Linux 下遇到問題,最重要的是要自己尋求幫助,下面是三種尋求幫助的方法。
man
man 是 Linux 的幫助手冊,即 manual 。因爲大多數程序都會自帶手冊,所以可以通過 man 命令獲取幫助。執行以後,在 man page 頁面中按 q 退出。
獲取 ls 的幫助
$ man ls查看有多少(針對不同方面的)同名的手冊
$ man -f ls
ls (1) - list directory contents
ls (1p) - list directory contents查看特定的手冊
$ man 1p lsinfo
與 man 不同的是,可以像瀏覽網頁一樣在各個節點中跳轉。
從文档首頁開始瀏覽
$ info獲取特定程序的幫助
$ info programhelp
除了上面的兩種方法外,還有一種簡單使用的方法,那就是 –help 參數,一般程序都會有這個參數,會輸出最簡單有用的介紹。
$ man --help ### 獲取 man 的幫助
$ info --help ### 獲取 info 的幫助
$ ls --help ### 獲取 ls 的幫助如何簡單操作?
在 Terminal(終耑) 中,有許多操作技巧,這裡就介紹幾個簡單的。
光標
up(方向鍵上) 可以調出輸入歷史執行記錄,快速執行命令
down(方向鍵下) 配合 up 選擇歷史執行記錄
Home 移動光標到本行開頭
End 移動光標到本行結尾
PgUp 向上翻頁
PaDN 向下翻頁
ctrl + c 終止當前程序
Tab 補全
Tab 補全是非常有用的一個功能,可以用來自動補全命令或文档名,省時準確。
未輸入狀態下連按兩次 Tab 列出所有可用命令
已輸入部分命令名或文档名,按 Tab 進行自動補全,多用你就肯定會喜歡的了。
常用命令
以下命令按照通常的使用頻度排列。
cd
cd 是打開某個路徑的命令,也就是打開某個文档夾,並跳轉到該處。
$ cd path ### path 爲你要打開的路徑。其中 path 有絕對路徑和相對路徑之分,絕對路徑強調從 / 起,一直到所在路徑。相對路徑則相對於當前路徑來說,假設當前家目錄有etc 文档夾(絕對路徑應爲 /home/username/etc),如果直接 cd etc 則進入此文档夾,但若是 cd /etc/ 則是進入系統 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 參數爲當父目錄存在時忽略,若不存在則建立,用此參數可建立多級文档夾
rm
rm 即 remove ,刪除文档。
$ rm filename ### 刪除 filename $ rm -i filename ### 刪除 filename 前提示,若多個文档則每次提示 $ rm -rf folder/subfolder/ ### 遞歸刪除 subfolder 下所有文档及文档夾,包括 subfolder 自身 $ rm -d folder ### 刪除空文档夾
cp
cp 即 copy ,複制文档。
$ cp source dest ### 將 source 複制到 dest $ cp folder/* dest ### 將 folder 下所有文档(不含子文档夾中的文档)複制到 dest $ cp -r folder dest ### 將 folder 下所有文档(包含子文档夾中的所有文档)複制到 dest
mv
mv 即 move ,移動文档。
$ mv source folder ### 將 source 移動到 folder 下,完成後則爲 folder/source $ mv -i source folder ### 在移動時,若文档已存在則提示 **是否覆蓋** $ mv source dest ### 在 dest 不爲目錄的前提下,重命名 source 爲 dest
cat
cat 用於輸出文档内容到 Terminal 。
$ cat /etc/locale.gen ### 輸出 locale.gen 的内容
$ cat -n /etc/locale.gen ### 輸出 locale.gen 的内容並顯示行號
more
more 與 cat 相似,都可以查看文档内容,所不同的是,當一個文档太長時, cat 只能展示最後布滿屏幕的内容,前面的内容是不可見的。這時候可用 more 逐行顯示内容。
$ more /etc/locale.gen
$ more +100 /etc/locale.gen ### 從 100 行開始顯示
less
less 與 more 相似,不過 less 支持上下滾動查看内容,而 more 只支持逐行顯示。
$ less /etc/locale.gen
$ less +100 /etc/locale.gennano
nano 是一個簡單實用的文本編輯器,使用簡單。
$ nano filename ### 編輯 filename 文档,若文档不存在,則新打開一個文档,若退出時保存,則創建該文档編輯完後,ctrl + X 提示是否保存,按 y 確定保存即可。
注意:在使用過程中可用 ctrl + G 獲取幫助。
reboot
reboot 爲重啓命令。
# reboot ### '
poweroff
poweroff 爲關機命令。
# poweroff ### 馬上關機
ping
ping 主要用於測試網路連通,通過對目標機器發送數據包來測試兩台主機是否連通,及延時情況。
$ ping locez.com ### 通過域名 ping,若 DNS 未設置好,可能無法 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 通可能是網路連接出現問題
grep
grep 主要用於返回匹配的項目,支持正則表達式。
$ grep PATTERN filename ### 返回所有含有 PATTERN 的行 $ grep zh_CN /etc/locale.gen ### 返回所有含 zh_CN 的行
mount
mount 用於掛載一個文档系統,需要 root 用戶執行。一個磁盤可分爲若干個分區,在分區上面可以創建文档系統,而掛載點則是提供一個訪問的入口,將一個分區的文档系統掛載到某個目錄中,稱這個目錄爲掛載點,並且可以通過這個掛載點訪問該文档系統中的内容。
例如一塊硬盤在 Linux 中表示爲 /dev/sda 那麽它上面的分區應該表示爲 /dev/sda1 、/dev/sda2 。
# mount ### 輸出系統目前的掛載信息 # mount /dev/sda1 /mnt ### 將 sda1 掛載到 /mnt 中 # cd /mnt ### 直接通過 /mnt 訪問内容 # mount -o remount,rw /mnt ### 重新掛載 sda1 到 /mnt 並設置爲 可讀寫 # mount -a ### 掛載 fstab 文档配置好的文档系統
umount
umount 與 moung 相反,是卸載一個掛載點,即取消該入口。
# umount /mnt ### 卸載 /mnt 這個掛載點的文档系統 # umount -a ### 卸載所有已掛載的文档系統
tar
tar 主要用於創建歸档文档,和解壓歸档文档,其本身是沒有壓縮功能的,但可以調用 gzip 、 bzip2 進行壓縮處理。
參數解釋:
-c 創建歸档
-x 解壓歸档
-v 顯示處理過程
-f 目標文档,其後必須緊跟 目標文档
-j 調用 bzip2 進行解壓縮
-z 調用 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 -cvzf filename.tar.gz ### 使用 gzip 壓縮 $ tar -xvzf filename.tar.gz ### 解壓 filename.tar.gz 到當前文档夾 $ tar -tf filename ### 只查看 filename 歸档中的文档,不解壓
ln
ln 主要用於在兩個文档中創建鏈接,鏈接又分爲 Hard links (硬鏈接)和 Symbolic li
軟鏈接簡單來說是爲文档創建了一個類似快捷方式的東西,通過該鏈接可以訪問文档,修改文档,但不會增加該文档的鏈接數,刪除一個軟鏈接並不會刪除源文档,即使源文档被刪除,軟鏈接也存在,當重新創建一個同名的源文档,該軟鏈接則指向新創建的文档。
硬鏈接只可鏈接兩個文档,不可鏈接目錄,而軟鏈接可鏈接目錄,所以軟鏈接是非常靈活的。
$ ln source dest ### 爲 source 創建一個名爲 dest 的硬鏈接
chown
# chown user filename ### 改變 filename 的所有者爲 user
# chown user:group filename ### 改變 filename 的所有者爲 user,組爲 group
chmod
# chmod +x filename ### 爲 user ,group ,others 添加執行權限 # chmod -x filename ### 取消 user , group ,others 的執行權限 # chmod +w filename ### 爲 user 添加寫入權限 # chmod ugo=rwx filename ### 設置 user ,group ,others 具有 讀取、寫入、執行權限 # chmod ug=rw filename ### 設置 user ,group 添加 讀取、寫入權限 # chmod ugo=--- filename ### 取消所有權限
useradd
useradd 用於添加一個普通用戶。
passwd
$ passwd ### 不帶參數更改當前用戶密碼 # passwd newuser ### 更改上述新建的 newuser 的用戶密碼
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 ### 僅查找 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 . -name PATTERN ### 從當前目錄查找符合 PATTERN 的文档 $ find /home -name PATTERN -exec ls -l {} /; # 從 /home 文档查找所有符合 PATTERN 的文档,並交由 ls 輸出詳細信息
wget
$ wget -O newname.md https://github.com/LCTT/TranslateProject/blob/master/README.md ### 下載 README 文档並重命名爲 newname.md $ wget -c url ### 下載 url 並開啓斷點續傳