半小時搞會 CentOS 入門必備基礎知識

這裏記錄一下個人學習過程,至關於本身記個筆記,同時分享出來,若是有同窗恰好有須要而這個文章幫助到了你的話,在下也會十分開心。html

文章最後推介了幾個免費視頻,B 站和慕課上的免費學習視頻挺多,並且有些質量仍是不錯的。前端

1. CentOS 中的文件管理

1.1 CentOS 中根目錄下的各子目錄

cd / 進入到根目錄,ls 能夠看到一大堆子目錄,以下圖:linux

image-20200229213130445

這些文件是有顏色的:git

  • 藍色 表示文件夾;
  • 灰色 表示普通文件;
  • 綠色 表示可執行文件;
  • 紅色 表示壓縮文件;
  • 天藍色 表示連接文件(快捷方式);

經常使用目錄的做用以下:github

  • bin: 存放普通用戶可執行的指令,普通用戶也能夠執行;
  • dev : 設備目錄,全部的硬件設備及周邊均放置在這個設備目錄中;
  • boot : 開機引導目錄,包括 Linux 內核文件與開機所須要的文件;
  • home: 這裏主要存放你的我的數據,具體每一個用戶的設置文件,用戶的桌面文件夾,還有用戶的數據都放在這裏。每一個用戶都有本身的用戶目錄,位置爲:/home/用戶名。固然,root 用戶除外;
  • usr: 應用程序放置目錄;
  • lib: 開機時經常使用的動態連接庫,bin 及 sbin 指令也會調用對應的 lib 庫;
  • tmp: 臨時文件存放目錄 ;
  • etc: 各類配置文件目錄,大部分配置屬性均存放在這裏;

其餘更詳細的目錄做用參考 <CentOS根目錄下各目錄介紹 - 知乎>shell

1.2 目錄相關命令

一些經常使用的命令見下:apache

做用 命令
切換目錄 cd
顯示當前目錄完整路徑 pwd
查看目錄下的信息(包括隱藏文件) lsls -a
列出目錄下的文件和詳細信息 ls-lll
建立目錄 mkdir
建立文件 touch
複製文件(文件夾) cpcp -r
移動/重命名文件夾和目錄 mv
刪除文件(目錄) rmrm -rf
刪除空文件夾 rmdir
查找文件 find
獲取幫助 man / info

還有幾個經常使用的快捷鍵:vim

做用 快捷鍵
清空至行首 Ctrl + U
清空至行尾 Ctrl + K
清屏 Ctrl + L
終止執行的命令 Ctrl + C

值得一提的是,這些命令在其餘系統也可使用。安全

1.3 tree 命令查看目錄樹

咱們可使用 tree 命令方便地查看目錄樹,可是系統自己卻並無安裝 tree 命令,因此咱們要首先安裝一下 sudo yum -y install tree,而後咱們就能夠快樂使用了:bash

image-20200304133618996

2. vim 編輯器使用方法

vim 編輯器是 CentOS 系統中使用頻率比較高的編輯器,掌握基本使用方法對之後的工做有很大幫助。

經過 vim <文件名> 的方式能夠編輯某文檔,若是文檔名不存在,那麼會新建一個文檔來進行編輯。

image-20200301142523562

vim 共分爲三種模式,分別是命令模式(Command mode)輸入模式(Insert mode)底線命令模式(Last line mode)

2.1 命令模式

啓動 vim 後就進入了命令模式,此狀態下敲擊鍵盤動做會被認爲是命令,而非輸入字符。經常使用的幾個命令:

  • i 切換到輸入模式,以輸入字符;
  • : 切換到底線命令模式,以在最底一行輸入命令;
  • a 切換到輸入文字模式;

命令模式只有一些最基本的命令,要依靠底線命令模式輸入更多命令。

2.2 輸入模式

在命令模式下按下 i 就進入了輸入模式。在輸入模式中,可使用如下按鍵:

功能 命令
向上翻頁 PageDown / Ctrl + F
向下翻頁 PageUp / Ctrl + B
跳轉到文件首行 1G / gg
跳轉到末尾行 G
跳轉到第 # 行 #G
行號顯示 :set nu
行號顯示取消 :set nonu
插入 d / Del
刪除當前行 dd
複製 yy
將緩衝區中的內容粘貼到光標位置處以後 p

還有一些其餘命令,好比刪除從光標處開始的 # 行內容 #dd,複製從光標處開始的 # 行內容 #yy 等,能夠看文檔 <Linux vi/vim | 菜鳥教程> 一文。

2.3 底線命令模式

在命令模式下按下:(英文冒號)就進入了底線命令模式。

底線命令模式能夠輸入單個或多個字符的命令,可用的命令很是多。

在底線命令模式中,基本的命令有(已經省略了冒號):

  • :q 退出程序;
  • :q! 放棄對文件內容的修改並退出;
  • :w 保存文件;
  • :w /root/xx 另存爲;
  • :wq 保存文件並退出;

2.4 查看文件內容

一些常見查看文件內容的命令:

功能 命令
瀏覽文件所有內容 more / less
查看文件內容(顯示行號) cat (cat -n)
在文本文件中查找字符串(顯示行號) grepgrep <關鍵字> <要查找的文件> -n

2.5 管道符

管道符 將一個命令的執行結果做爲另外一個命令的輸入來執行,格式 cmd1 | cmd2 ... | cmdn

好比,將 /etc 目錄中的文件名以 pass 開頭的文件列舉出來 ls /etc | grep pass*

再好比,查看 /etc 目錄下的內容,並使用 less 的形式瀏覽 ls /etc | less

2.6 重定向

功能 命令
輸出重定向,已有原來的文件則替換 >
輸出重定向,若是原來的文件存在則追加在原來的內容以前 >>
輸入重定向,即命令的輸入不經過鍵盤來完成,而經過其餘的方式 <
錯誤重定向 2>
輸出重定向與錯誤重定向同時實現 &>

好比,將 ls / 命令執行的結果輸出到 2.txtls / > 2.txt

3. 進程管理

2.1 進程管理

進程: 是正在執行的一個程序或命令,每個進程都是一個運行的實體,都有本身的地址空間,並佔用必定的系統資源。

進程管理最重要的就是 ps 命令:

  • ps aux ,查看系統中全部進程,使用 BSD 操做系統格式;
  • ps -le ,查看系統中全部進程,使用 Linux 標準命令格式;

ps 命令輸出大約以下圖所示:

image-20200301190653585

輸出的格式含義:

  • USER:該進程由哪一個用戶產生的;
  • PID:進程的 ID;
  • %CPU:進程佔用 CPU 資源的百分比;
  • %MEM:進程佔用物理內存的百分比;
  • VSZ:進程佔用虛擬內存的大小,單位 KB;
  • RSS:進程佔用實際物理內存的大小,單位 KB;
  • TTY:進程在哪一個終端運行的,tty1-tty7 表明本地控制檯終端,tty1-tty6 是本地的字符界面終端,tty7 是圖形終端,pts/0-255 表明虛擬終端,若是是 ? 則表明是系統進程;
  • STAT:進程狀態,R-運行,S-睡眠,T-中止,s-包含子進程,+-位於後臺;
  • START:進程啓動時間;
  • TIME:進程佔用 CPU 的運算時間,注意不是系統時間;
  • COMMAND,產生此進程的命令名;

還有個命令 pstree,顯示進程樹:

image-20200301191720755

top 命令能夠查看系統健康狀態,和 Windows 系統中的系統管理器相似。

image-20200301192500240

top 命令的交互模式中能夠執行下面命令:

  • ?/h : 顯示交互模式的幫助;
  • P :以 CPU 使用率排序,默認就是此項;
  • M:之內存的使用率排序;
  • N :以 PID 排序;
  • q :退出 top

load average 後面的三個數字的意思,分別爲系統在以前 1 分鐘,5 分鐘,15分鐘的平均負載。通常認爲小於 1 時,負載較小。若是大於 1,系統已經超出負荷。若是是多核 CPU,那麼這個數字應該不大於你的 CPU 核心數,好比雙核 CPU 時應該不大於 2。

Tasks 後面的 zombie,意思爲殭屍進程,通常是進程沒法正常運行,也沒有正常退出卡住了,也有可能這個進程正在終止過程當中,若是稍微等待一下還有,那麼就須要手工檢查一下。

%CPU(s) 的 id 是主要須要看的,意爲空閒 CPU 的百分比,若是低於 20,那麼系統的狀態就比較卡了。

3.2 殺死進程

殺死進程主要有下面幾個命令:

功能 命令
殺死某個進程 kill
按照進程名殺死進程 killall
按照進程名殺死進程,加 -t 能夠按照終端號踢出用戶 pkill

殺死進程時,能夠跟信號,信號不少,經常使用信號:

信號代號 信號名稱 說明
1 SIGHUP 讓進程當即關閉,而後從新讀取配置文件以後重啓,平滑重啓
2 SIGINT 程序終止信號,用於終止前臺進程,至關於 ctrl + c 快捷鍵
9 SIGKILL 強制終止,用來當即結束程序的運行,本信號不能被阻塞、處理和忽略
15 SIGTERM 正常結束的信號,kill 命令默認就是這個信號,有時候進程已經發生問題,正常沒法終止,此時會使用 -9 信號

因此經常使用殺死進程的命令:正常殺死 kill -1 2235 或者強制殺死 kill -9 2235

3.3 修改進程優先級

咱們能夠 ps -le | more 來查看進程優先級:

image-20200303103127195

PRI 表明 Priority , NI 表明 Nice,這兩個值都是優先級,數字越小表明該進程優先級越高。用戶只能修改 NI,不能直接修改 PRI,但系統最終取 PRI + NI 的值。NI 值的範圍是 -20 到 19,普通用戶調整 NI 值的範圍是 0-19,並且只能調整本身的進程,root 用戶才能設定進程 NI 值爲負值。

可使用 nice 命令來修改優先級,nice <選項> 命令,nice 命令能夠給新執行的命令直接賦予 NI 值,可是不能修改已經存在進程的 NI 值。選項 -n 值 給命令賦予 NI 值。

好比修改 apache 的進程優先級 nice -n -5 service httpd start

若是要修改已存在的進程的優先級,須要使用 renice 命令,renice <優先級> PDID,PID 爲某一個進程的 ID。

好比 renice -10 2125 修改 ID 2125 的進程 NI 值爲 -10。

4. 工做管理

  1. 當前的登陸終端,只能管理當前終端的工做,而不能管理其餘登陸終端的工做;
  2. 放入後臺的命令必須能夠持續運行一段時間,這樣咱們才能撲捉和操做這個工做;
  3. 放入後臺執行的命令不能和前臺用戶有交互或須要前臺輸入,不然放入後臺只能暫停,而不能執行;

把進程放入後臺有兩個主要命令:

  1. <命令> & 把命令放入後臺,並在後臺執行
  2. <命令> 執行後按下 ctrl + z 快捷鍵,放在後臺暫停

查看正在後臺的工做,可使用 jobs [-l] 命令,-l 是顯示工做的 PID。

image-20200303110244268

+ 表明最近一個放入後臺的工做,也是工做恢復時,默認恢復的工做,- 表明倒數第二個放入後臺的工做。

恢復到前臺:

  1. fg %工做號 將後臺暫停的工做恢復到前臺執行,這裏的 % 能夠省略,注意工做號和 PID 的區別;
  2. bg %工做號 將後臺暫停的工做恢復到後臺執行,後臺恢復執行的命令,是不能和前臺有交互的,不然不能恢復到後臺執行;

後臺命令脫離登錄終端執行的方法:

  1. 第一種方法是把須要後臺執行的命令加入 /etc/rc.local 文件;
  2. 第二種方法是使用系統定時任務,讓系統在指定的時間執行某個後臺命令;
  3. 第三種方法是使用 nohup 命令;

nohup 命令的使用方法 nohup <命令> &

5. SSH 操做

Secure Shell(SSH)是創建在應用層基礎上的安全網絡協議,是專爲遠程登陸會話和其餘網絡服務提供安全性的協議,可有效彌補網絡中的漏洞。經過 SSH,能夠把全部傳輸的數據進行加密,也可以防止 DNS 欺騙和 IP 欺騙。還有一個額外的好處就是傳輸的數據是通過壓縮的,因此能夠加快傳輸的速度,已經成爲Linux系統的標準配置。

5.1 SSH 登錄服務器

ssh -p port <username>@<hostname or IP address>
複製代碼

好比我這裏購買的騰訊雲服務器就可使用 ssh root@<公網IP/域名> 鏈接,若是你設置過域名對 IP 的映射,那麼 @ 後面寫你的域名也能夠,好比我就能夠 ssh root@sherlocked93 鏈接服務器。

而後就是輸入密碼,就能夠進入 CentOS 系統了,可是每次登錄都須要密碼,挺蠢的也不安全,咱們能夠設置使用 SSH 密鑰的方式,密鑰登錄的方式能夠百度一下。

鏈接系統以後,能夠經過 Ctrl+D 或者 exit 命令退出遠程登陸。

鏈接上 CentOS 以後,命令行左側的命令提示符含義以下:

image-20200229204354263

5.2 SSH 上傳/下載文件

SSH 能夠經過 scp 命令來上傳文件,是 Linux 系統下基於 SSH 登錄進行安全的遠程文件拷貝命令,scp 是 secure copy 的簡寫,可使用它上傳本地文件夾到遠程服務器,也能夠從遠程服務器上下載文件夾到本地:

# 上傳文件夾到遠程服務器
scp -P port -r /local/dir username@servername:/remote/dir
# scp -p 2333 -r /test/a root@192.168.0.101:/var/b

# 從遠程服務器下載文件夾
scp -P port -r username@servername:/remote/dir/ /local/dir
# scp -p 2333 -r root@192.168.0.101:/var/b /test/a
複製代碼

-r 參數表示遞歸複製,即複製該目錄下面的文件和目錄,若是要上傳單個文件,只要把 -r 刪除。大寫的 P 表示的是端口,若是仍是默認的 SSH 端口 22 沒有更改,則不須要 -P

5.3 SSH 設置超時斷開

SSH 在使用時,常常會由於閒置時間過長而倍服務器自動斷開,而後又要從新鏈接,比較麻煩,能夠設置一下防止常常被服務器踢出。

一種方法就是修改服務器設置,找到所在用戶的 .ssh 目錄,如 root 用戶該目錄在:/root/.ssh/,在該目錄建立 config 文件

vim /root/.ssh/config
複製代碼

加入下面一句:

ServerAliveInterval 60
複製代碼

而後 ESC 再 :wq 保存退出,從新開啓 root 用戶的shell,則再 SSH 遠程服務器的時候,不會由於長時間操做斷開。

還有種方法設置 $TMOUT 系統環境變量

image-20200307211243796

vim /etc/profile 在最後一行加上:

export TMOUT=0
複製代碼

設置 TMOUT 參數爲 0 的意思就是設置不超時,而後 ESC 再 :wq 保存退出,再 source /etc/profile 讓配置當即生效。


參考文檔:

  1. CentOS根目錄下各目錄介紹 - 知乎
  2. Linux vi/vim | 菜鳥教程
  3. Linux基礎安裝入門視頻教程I-慕課網
  4. Linux系統編輯管理視頻教程II-慕課網
  5. 基於CentOS7的Linux操做系統的入門與服務器的配置-bilibili
  6. 解決ssh登陸後閒置時間過長而斷開鏈接

PS:本人博客地址 Github - SHERlocked93/blog,也歡迎你們關注個人公衆號【前端下午茶】,一塊兒加油吧~

另外能夠加入「前端下午茶交流羣」微信羣,長按識別下面二維碼便可加我好友,備註加羣,我拉你入羣~

相關文章
相關標籤/搜索