1. 程式人生 > >【Linux基礎】寫出儘可能多的Linux命令。

【Linux基礎】寫出儘可能多的Linux命令。

一、考點

1、Linux常用命令

1) 系統安全

sudo    // 超級使用者
su      // 用於切換當前使用者身份到其他身份,變更時需輸入所要變更的使用者賬號與密碼。
chmod   // 用來變更檔案或目錄的許可權
setfacl // 設定檔案訪問控制列表

2) 程序管理

w       // 用於顯示已經登陸系統的使用者列表,並顯示使用者正在執行的指令。
top     // 可以實時動態地檢視系統的整體執行情況,是一個綜合了多方資訊監測系統性能和執行資訊的實用工具。
ps      // 用於報告當前系統的程序狀態。
kill    // 用來刪除執行中的程式或工作。
pkill   // 可以按照程序名殺死程序。
pstree  // 以樹狀圖的方式展現程序之間的派生關係,顯示效果比較直觀。
killall // 使用程序的名稱來殺死程序,使用此指令可以殺死一組同名程序。

3) 使用者管理

id        // 可以顯示真實有效的使用者ID(UID)和組ID(GID)。
usermod   // 用於修改使用者的基本資訊。
useradd   // 用於 Linux中建立的新的系統使用者。
groupadd  // 用於建立一個新的工作組,新工作組的資訊將被新增到系統檔案中。
userdel   // 使用者刪除給定的使用者,以及與使用者相關的檔案。若不加選型,則進刪除使用者賬號,而不刪除相關檔案。

4) 檔案系統

mount  // 使用者載入檔案系統到指定的載入點。
umount // 用於解除安裝已經載入的檔案。
fsck   // 用於檢查並且試圖修復檔案系統中的錯誤。
df     // 用於顯示磁碟分割槽上的可使用的磁碟空間。
du     // 對檔案和目錄磁碟使用的空間的檢視。

5) 系統關機和重啟

shutdown // 關機
reboot   // 重啟 

6) 網路應用

curl    // 是一個利用URL規則在命令列下工作的檔案傳輸工具。
telnet  // 用於登入遠端主機,對遠端主機進行管理。
mail    // 命令列的電子郵件傳送和接收工具。
elinks  // 能實現一個純文字介面的WWW瀏覽器,操作方式與"lynx"類似。

7) 網路測試

ping    // 用於測試主機之間網路的連通性。
netstat // 用來列印Linux中網路系統的狀態資訊,可讓你得知整個Linux系統的網路情況。
host    // 常用的分析域名查詢工具,可以用來測試域名系統工作是否正常。

8) 網路配置

hostname // 用於顯示和設定系統的主機名稱。
ifconfig // 被用於配置和顯示Linux核心中網路介面的網路引數。

9) 常用工具

ssh     // 時openssh套件中的客戶端連線工具,可以給予ssh加密協議實現安全的遠端登入伺服器。
screen  // 是一款由GNU計劃開發的用於命令列終端切換的自由軟體。
clear   // 用於清除當前螢幕終端上的任何資訊。
who     // 顯示當前登入系統的使用者資訊。
date    // 顯示或設定系統時間與日期。

10) 軟體包管理

yum     // 提供了查詢、安裝、刪除某一個、一組甚至全部軟體包的命令,而且命令簡潔而又好記。
rpm     // rpm軟體包的管理工具。
apt-get // Debian Linux發行版中的APT軟體包管理工具。所有基於Debian的發行都使用這個包管理系統。deb包可以把一個應用的檔案包在一起,大體如同 Windows上的安裝檔案。

11) 檔案查詢和比較

locate  // 用來查詢檔案或目錄。
find    // 用來在指定目錄下查詢檔案。

12) 檔案內容檢視

head    // 用於顯示檔案的開頭的內容。在預設情況下,head命令顯示檔案的頭10行內容。
tail    // 用於輸入檔案中的尾部內容。tail命名預設在螢幕上顯示指定檔案的末尾10行。
more    // 用來瀏覽檔案檔案的內容(只能向前瀏覽)。
less    // 用來瀏覽文字檔案的內容,允許使用者向前或向後瀏覽檔案。使用該命令時,用PageUp鍵向上翻頁,用PageDown鍵向下翻頁。要退出less程式,應按Q鍵。

13) 檔案處理

unlink   // 用於系統呼叫函式 unlink 去刪除指定的檔案。
rename   // 用字串替換的方式批量改變檔名。
cat      // 連線檔案並列印到標準輸出裝置上,cat經常用來顯示檔案的內容。 
touch    // 有兩個功能:一是用於把已存在檔案的時間標籤更新為系統當前的時間(預設方式),它們的資料將原封不動地保留下來;二是用來建立新的空檔案。
ln       // 用來為檔案建立連線,連線型別分為硬連線和符號連線兩種,預設的連線型別是硬連線。如果要建立符號連線必須使用"-s"選項(注意:符號連結檔案不是一個獨立的檔案,它的許多屬性依賴於原始檔,所以給符號連結檔案設定存取許可權時沒有意義的)

14) 目錄操作

cd   // 用來切換工作目錄至 dirname。
mv   // 用來對檔案或目錄重新命名,或者將檔案從一個目錄移到另一個目錄中。
rm   // 可以刪除一個目錄中的一個或多個檔案或目錄,也可以將某個目錄及其下屬的所有檔案及其子目錄均刪除掉。
pwd  // 以絕對路徑的方式顯示使用者當前工作目錄。
tree // 以樹狀圖列出目錄的內容。
cp   // 用來將一個或過個原始檔或者目錄複製到指定的目的檔案或目錄。
ls   // 用來顯示目錄列表,在 Linux中是使用率較高的命令。ls命令的輸出資訊可以進行彩色加亮顯示,以區分不同型別的檔案。

15) 檔案許可權屬性

setfacl // 用來變更檔案或目錄的許可權。
chmod   // 設定檔案訪問控制列表。
chgrp   // 用來改變檔案或目錄所屬的使用者組。
chown   // 改變某個檔案或目錄的所有者和所屬的組,該命令可以向某個使用者授權,使該使用者變成指定檔案的所有者。或者改變所屬的組。(使用者可以是使用者或者是使用者ID,使用者組可以是組名或組ID。檔案可以是由空格分開的檔案列表,在檔名中可以包含萬用字元)【只有檔案主和超級使用者才可以使用該命令】

16) 檔案傳輸

ftp // 用來設定檔案系統相關功能。
scp // 用於在Linux下遠端拷貝檔案的命令,和它類似的命令有cp,不過cp只是在本機進行拷貝不能跨伺服器,而且scp傳輸是加密的。可能會稍微影響一下速度。當你伺服器硬碟變為只讀 read only system 時,用 scp 可以幫你把檔案移出來。另外,scp還非常節省資源,不會提高多少系統負荷,在這一點上,rsync就遠遠不及它了。雖然 rsync 比 scp 會快一點,但當小檔案眾多的情況下,rsync 會導致硬碟 I/O 非常高,而 scp 基本不影響系統正常使用。

2、Linux系統定時任務

1) crontab 命令

contab -e       // 建立定時任務
* * * * * 命令  // 分、時、日、月、周(每過多長時間去執行,根據我們所設定的分、時、日、月、周)

2) at 命令

# at 2:00 tomorrow  // 在明天的兩點去執行
at>/home/Jason/do_job // 執行結果是這種格式的
at>Ctrl + D // 退出

總體意思,明天兩點執行 do_job,最終退出

注:at 命令 是一次性執行,不是迴圈執行,也不是週期性執行。


3、延伸

1) vi/vim 編輯器

① 模式
  • 一般模式、編輯模式和命令列模式
  • 一般模式:刪除、複製和貼上
    • 切換 編輯模式iIaAoOrR
    • 切換 命令列模式:/?
      • 【:w】:儲存檔案
      • 【:w!】:若檔案為只讀,強制儲存檔案
      • 【:q】:退出 vi
      • 【:q!】:不儲存,強制退出 vi
      • 【:wq】:儲存並退出
      • 【:wq!】:強制儲存,並退出
      • 【:set nu】:顯示行號
      • 【:set nonu】:取消顯示行號
  • Esc :退出 編輯模式,回到 一般模式

② 移動游標
  • 【Ctrl + F】 :到下一頁
  • 【Ctrl + B】 :到上一頁
  • 【[0] 或者功能鍵 [Home]】:游標移動到當前行的最前面
  • 【[$] 或者功能鍵 [End]】:游標移動到當前行的末尾
  • 【G】:游標移動到檔案的最後一行(第一個字元處)
  • 【gg】:游標移動到檔案的第一行,相當於 “1G”
  • 【N + [Enter]】:游標向下移動 n 行

③ 查詢和替換
  • /word:在檔案中查詢內容為 word 的字串(向下查詢)
  • ?word:在檔案中查詢內容為 word 的字串(向上查詢)
  • :n1, n2s/word1/word2/gn1,n2 為數字,在第 n1 行到第 n2 行之間查詢 word1,並將其替換成 word2
  • :1,$s/word1/word2/g:從第一行(第n行同理)到最後一行查詢 word1 註冊,並替換成 word2
  • :1,$s/word1/word2/gc:功能同上,只不過每次替換時都會讓使用者確認

④ 刪除、複製和貼上
  • 【x】:向後刪除一個字元,相當於**【Delete】**
  • 【X】:向前刪除一個字元,相當於**【Backspace】**
  • 【dd】:刪除游標所在的一整行
  • 【ndd】:刪除游標所在的向下 n 行
  • 【yy】: 複製游標所在的那一行
  • 【nyy】:複製游標所在的向下 n 行
  • 【p】:為將已將複製的資料在游標下一行貼上
  • 【P】:為將已將複製的資料在游標上一行貼上
  • 【Ctrl + r】:多次撤銷

⑤ 檢視模式(vim)
  • 【v】:將游標經過的地方反白選擇
  • 【V】:將游標經過的行反白選擇
  • 【Ctrl + v】:塊選擇,可用長方形的方式選擇文字
  • 【y】:將反白的地方複製到剪貼簿
  • 【d】:將反白的內容刪除

⑥ 配置
  • 【:set nu】:顯示行號
  • 【:set nonu】:取消顯示行號

2) shell 基礎

① 指令碼執行方式
1)賦予許可權,直接執行,例:chmod + x test.sh; ./test.sh
2)呼叫解釋其使得指令碼執行,例:bash、csh、ash、bsh、ksh等等
3)使用source命令,例:source test.sh
② 編寫基礎
1)開頭用 #! 指定指令碼直譯器,例如:#!/bin/sh
2)編寫具體功能

二、解題方法

牢記 以上基礎知識點。


三、真題

如何實現每天0點鐘重新啟動伺服器?

crontab -e
* * * * * reboot
分 時 日 月 周 reboot
0 0 * * * reboot