初學(xué)Linux

參考

Linux

簡(jiǎn)介

Linux 內(nèi)核最初只是由芬蘭人林納斯·托瓦茲(Linus Torvalds)在赫爾辛基大學(xué)上學(xué)時(shí)出于個(gè)人愛好而編寫的。

Linux 是一套免費(fèi)使用和自由傳播的類 Unix 操作系統(tǒng),是一個(gè)基于 POSIX 和 UNIX 的多用戶、多任務(wù)、支持多線程和多 CPU 的操作系統(tǒng)。

Linux 能運(yùn)行主要的 UNIX 工具軟件、應(yīng)用程序和網(wǎng)絡(luò)協(xié)議。它支持 32 位和 64 位硬件。Linux 繼承了 Unix 以網(wǎng)絡(luò)為核心的設(shè)計(jì)思想,是一個(gè)性能穩(wěn)定的多用戶網(wǎng)絡(luò)操作系統(tǒng)。

Linux 的發(fā)行版

Linux 的發(fā)行版說簡(jiǎn)單點(diǎn)就是將 Linux 內(nèi)核與應(yīng)用軟件做一個(gè)打包。

目前市面上較知名的發(fā)行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等。

Linux 應(yīng)用領(lǐng)域

今天各種場(chǎng)合都有使用各種 Linux 發(fā)行版,從嵌入式設(shè)備到超級(jí)計(jì)算機(jī),并且在服務(wù)器領(lǐng)域確定了地位,通常服務(wù)器使用 LAMP(Linux + Apache + MySQL + PHP)或 LNMP(Linux + Nginx+ MySQL + PHP)組合。

Linux 系統(tǒng)啟動(dòng)過程

運(yùn)行級(jí)別

Linux系統(tǒng)有7個(gè)運(yùn)行級(jí)別(runlevel):

  • 運(yùn)行級(jí)別0:系統(tǒng)停機(jī)狀態(tài),系統(tǒng)默認(rèn)運(yùn)行級(jí)別不能設(shè)為0,否則不能正常啟動(dòng)

  • 運(yùn)行級(jí)別1:?jiǎn)斡脩艄ぷ鳡顟B(tài),root權(quán)限,用于系統(tǒng)維護(hù),禁止遠(yuǎn)程登陸

  • 運(yùn)行級(jí)別2:多用戶狀態(tài)(沒有NFS)

  • 運(yùn)行級(jí)別3:完全的多用戶狀態(tài)(有NFS),登陸后進(jìn)入控制臺(tái)命令行模式

  • 運(yùn)行級(jí)別4:系統(tǒng)未使用,保留

  • 運(yùn)行級(jí)別5:X11控制臺(tái),登陸后進(jìn)入圖形GUI模式

  • 運(yùn)行級(jí)別6:系統(tǒng)正常關(guān)閉并重啟,默認(rèn)運(yùn)行級(jí)別不能設(shè)為6,否則不能正常啟動(dòng)

切換運(yùn)行級(jí)別

init n

找回root密碼

重啟 -> 3 秒之內(nèi)要按一下回車,出現(xiàn)如下界面 -> 然后輸入e -> 看到新界面,選中第二行(編輯內(nèi)核) -> 在這輸入1回車 -> 再次輸入b,進(jìn)入單用戶模式

使用passwd修改密碼

安裝

宿主機(jī)系統(tǒng):Windows 10

虛擬機(jī)軟件:VMware Workstation 16

CentOS 操作系統(tǒng) ISO 鏡像:CentOS 7

SSH終端軟件:MobaXterm

參考

B站視頻:https://www.bilibili.com/video/BV1bA411b7vs

視頻配套(windows安裝):https://mp.weixin.qq.com/s/onVwwEQ1DAwbvK7qS2YNxg

csdn:https://blog.csdn.net/java_xinshou1/article/details/100010099、https://blog.csdn.net/qq_40950957/article/details/80467513

菜鳥教程:https://www.runoob.com/linux/linux-install.html

CentOS:http://mirrors.aliyun.com/centos/7/isos/x86_64/

VMTools

可以建立共享目錄,剪切板共享

Linux目錄結(jié)構(gòu)

image

https://www.runoob.com/linux/linux-system-contents.html

Linux vi/vim

所有的 Unix Like 系統(tǒng)都會(huì)內(nèi)建 vi 文書編輯器,其他的文書編輯器則不一定會(huì)存在。

但是目前我們使用比較多的是 vim 編輯器。

vim 具有程序編輯的能力,可以主動(dòng)的以字體顏色辨別語法的正確性,方便程序設(shè)計(jì)。

vi/vim 的使用

基本上 vi/vim 共分為三種模式,分別是命令模式(Command mode),輸入模式(Insert mode)底線命令模式(Last line mode)。 這三種模式的作用分別是:

命令模式:

用戶剛剛啟動(dòng) vi/vim,便進(jìn)入了命令模式。

此狀態(tài)下敲擊鍵盤動(dòng)作會(huì)被Vim識(shí)別為命令,而非輸入字符。比如我們此時(shí)按下i,并不會(huì)輸入一個(gè)字符,i被當(dāng)作了一個(gè)命令。

以下是常用的幾個(gè)命令:

  • i 切換到輸入模式,以輸入字符。

  • x 刪除當(dāng)前光標(biāo)所在處的字符。

  • : 切換到底線命令模式,以在最底一行輸入命令。

若想要編輯文本:?jiǎn)?dòng)Vim,進(jìn)入了命令模式,按下i,切換到輸入模式。

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

輸入模式

在命令模式下按下i就進(jìn)入了輸入模式。

在輸入模式中,可以使用以下按鍵:

  • 字符按鍵以及Shift組合,輸入字符

  • ENTER,回車鍵,換行

  • BACK SPACE,退格鍵,刪除光標(biāo)前一個(gè)字符

  • DEL,刪除鍵,刪除光標(biāo)后一個(gè)字符

  • 方向鍵,在文本中移動(dòng)光標(biāo)

  • HOME/END,移動(dòng)光標(biāo)到行首/行尾

  • Page Up/Page Down,上/下翻頁

  • Insert,切換光標(biāo)為輸入/替換模式,光標(biāo)將變成豎線/下劃線

  • ESC,退出輸入模式,切換到命令模式

底線命令模式

在命令模式下按下:(英文冒號(hào))就進(jìn)入了底線命令模式。

底線命令模式可以輸入單個(gè)或多個(gè)字符的命令,可用的命令非常多。

在底線命令模式中,基本的命令有(已經(jīng)省略了冒號(hào)):

  • q 退出程序

  • w 保存文件

按ESC鍵可隨時(shí)退出底線命令模式。

快捷鍵

快捷鍵 說明
+ 光標(biāo)移動(dòng)到非空格符的下一行
- 光標(biāo)移動(dòng)到非空格符的上一行
dd 刪除游標(biāo)所在的那一整行(常用)
ndd n 為數(shù)字。刪除光標(biāo)所在的向下 n 行,例如 5dd 則是刪除 5 行 (常用)
yy 復(fù)制游標(biāo)所在的那一行(常用)
nyy n 為數(shù)字。復(fù)制光標(biāo)所在的向下 n 行,例如 5yy 則是復(fù)制 5 行(常用)
p 粘貼
/word 向光標(biāo)之下搜索
?/word 向光標(biāo)之上搜索
n 向下找下一個(gè)匹配
N 向下找上一個(gè)匹配
:set nu 顯示行號(hào)
:set nonu 與 set nu 相反,為取消行號(hào)!
G 移動(dòng)到這個(gè)檔案的最后一行(常用)
nG n 為數(shù)字。移動(dòng)到這個(gè)檔案的第 n 行。可配合 :set nu
gg 移動(dòng)到這個(gè)檔案的第一行,相當(dāng)于 1G ??! (常用)
n<Enter> n 為數(shù)字。光標(biāo)向下移動(dòng) n 行(常用)
u 復(fù)原前一個(gè)動(dòng)作。(常用)
[Ctrl]+r 重做上一個(gè)動(dòng)作。(常用)
[Ctrl] + [f] 屏幕『向下』移動(dòng)一頁,相當(dāng)于 [Page Down]按鍵 (常用)
[Ctrl] + [b] 屏幕『向上』移動(dòng)一頁,相當(dāng)于 [Page Up] 按鍵 (常用)
0 或功能鍵[Home] 這是數(shù)字『 0 』:移動(dòng)到這一行的最前面字符處 (常用)
$ 或功能鍵[End] 移動(dòng)到這一行的最后面字符處(常用)

關(guān)機(jī)重啟命令

shutdown

  • shutdown -h now 立即關(guān)機(jī)

  • shutdown -h 1 一分鐘后關(guān)機(jī)

  • shutdown -r now 立即重啟

halt

等同于直接關(guān)機(jī)

reboot

重啟系統(tǒng)

sync

把內(nèi)存數(shù)據(jù)同步到磁盤中

幫助指令

man 指令

help 指令

用戶管理

用戶注銷

logout

https://www.runoob.com/linux/linux-user-manage.html

添加用戶

useradd 選項(xiàng) 用戶名

-d指定用戶主目錄

-g指定用戶組

指定/修改密碼

passwd 選項(xiàng) 用戶名

刪除用戶

userdel 選項(xiàng) 用戶名

帶選項(xiàng)-r則把用戶的主目錄一起刪除

修改用戶

usermod 選項(xiàng) 用戶名

選項(xiàng)與useradd一樣

查詢用戶

id 用戶名

切換用戶

su 用戶名

高權(quán)限切換低權(quán)限不用輸密碼

當(dāng)需要返回原來用戶時(shí)使用exit

查看當(dāng)前用戶

who am i

用戶組

每個(gè)用戶都有一個(gè)用戶組,系統(tǒng)可以對(duì)一個(gè)用戶組中的所有用戶進(jìn)行集中管理。

創(chuàng)建組

groupadd 選項(xiàng) 組名

刪除組

groupdel 組名

修改用戶組

usermod -g 組名 用戶名

與用戶有關(guān)的系統(tǒng)文件

/etc/passwd, /etc/shadow, /etc/group

/etc/passwd

Linux系統(tǒng)中的每個(gè)用戶都在/etc/passwd文件中有一個(gè)對(duì)應(yīng)的記錄行,它記錄了這個(gè)用戶的一些基本屬性。

這個(gè)文件對(duì)所有用戶都是可讀的。

用戶名:口令:用戶標(biāo)識(shí)號(hào):組標(biāo)識(shí)號(hào):注釋性描述:主目錄:登錄Shell

/etc/shadow

存放加密后的密碼。

登錄名:加密口令:最后一次修改時(shí)間:最小時(shí)間間隔:最大時(shí)間間隔:警告時(shí)間:不活動(dòng)時(shí)間:失效時(shí)間:標(biāo)志

/etc/group

存放用戶組的所有信息.

組名:口令:組標(biāo)識(shí)號(hào):組內(nèi)用戶列表

文件基本屬性類

在 Linux 中第一個(gè)字符代表這個(gè)文件是目錄、文件或鏈接文件等等。

  • 當(dāng)為 d 則是目錄

  • 當(dāng)為 - 則是文件;

  • 若是 l 則表示為鏈接文檔(link file);

  • 若是 b 則表示為裝置文件里面的可供儲(chǔ)存的接口設(shè)備(可隨機(jī)存取裝置);

  • 若是 c 則表示為裝置文件里面的串行端口設(shè)備,例如鍵盤、鼠標(biāo)(一次性讀取裝置)。

接下來的字符中,以三個(gè)為一組,且均為 rwx 的三個(gè)參數(shù)的組合。其中, r 代表可讀(read)、 w 代表可寫(write)、 x 代表可執(zhí)行(execute)。 要注意的是,這三個(gè)權(quán)限的位置不會(huì)改變,如果沒有權(quán)限,就會(huì)出現(xiàn)減號(hào) - 而已。

img

每個(gè)文件的屬性由左邊第一部分的 10 個(gè)字符來確定(如下圖)。

363003_1227493859FdXT

從左至右用 0-9 這些數(shù)字來表示。

0 位確定文件類型,第 1-3 位確定屬主(該文件的所有者)擁有該文件的權(quán)限。

第4-6位確定屬組(所有者的同組用戶)擁有該文件的權(quán)限,第7-9位確定其他用戶擁有該文件的權(quán)限。

目錄顯示4096

權(quán)限管理

文件目錄所有者

默認(rèn)用戶創(chuàng)建文件后,文件所有組即為用戶所在組

查看所有者

  • groupadd police:創(chuàng)建police組

  • useradd tom -g police tom:創(chuàng)建tom進(jìn)police組

  • passwd tom:修改/設(shè)置tom密碼

  • 切換到tom用戶

  • touch ok.txt:創(chuàng)建ok.txt文件

  • ls -ahl:查看當(dāng)前目錄所有者

修改所有者

  • chown tom apple.txt:修改apple.txt文件所有者為tom,但組沒變

  • chown -R tom kkk:將kkk目錄下所有遞歸所有者改為tom

  • chown user/group :同時(shí)修改所有者和所在組

修改文件所在組

  • chgrp police orange.txt:將orange.txt文件所在組修改為police組

  • chgrp -R police kkk:將kkk目錄下所有遞歸所在組改為police

其他組

除文件的所有者和所在組的用戶外,系統(tǒng)的其他用戶都是文件的其他組

修改權(quán)限

chmod符號(hào)

  • u:所有者;g:所在組;o:其他人;a:所有人

  • chmod u=rwx,g=rx,o=rw abc.txt:對(duì)于abc.txt,所有者rwx,所在組rx,其他人rw

  • chmod u-x,g+w abc.txt:對(duì)于abc.txt,所有者減去x,所在組加上w

  • chmod a+w:對(duì)所有人加上w

chmod數(shù)字

各權(quán)限的分?jǐn)?shù)對(duì)照表如下:

  • r:4

  • w:2

  • x:1

chmod 754 abc.txt:修改權(quán)限為rwx r-x r--

權(quán)限修改后需要重新登錄才能生效

文件目錄類指令

處理目錄的常用命令

接下來我們就來看幾個(gè)常見的處理目錄的命令吧:

  • ls(英文全拼:list files): 列出目錄及文件名

    • -a :全部的文件,連同隱藏文件( 開頭為 . 的文件) 一起列出來(常用)

    • -d :僅列出目錄本身,而不是列出目錄內(nèi)的文件數(shù)據(jù)(常用)

    • -l :長(zhǎng)數(shù)據(jù)串列出,包含文件的屬性與權(quán)限等等數(shù)據(jù);(常用)

    • -al ~:將家目錄下的所有文件列出來(含屬性與隱藏檔)

  • cd(英文全拼:change directory):切換目錄

    • cd ~:回到家目錄

    • cd ..:回到上級(jí)目錄

    • cd ./:當(dāng)前目錄下的

  • pwd(英文全拼:print work directory):顯示目前的目錄

  • mkdir(英文全拼:make directory):創(chuàng)建一個(gè)新的目錄

    • 默認(rèn)只能一級(jí)一級(jí)創(chuàng)建

    • -p :幫助你直接將所需要的目錄(包含上一級(jí)目錄)遞歸創(chuàng)建起來!

  • rmdir(英文全拼:remove directory):刪除一個(gè)空的目錄

    • 不能刪除非空目錄

    • rm -rf 刪除非空目錄

  • cp(英文全拼:copy file): 復(fù)制文件或目錄

    • cp 來源檔(source) 目標(biāo)檔(destination)

    • cp -r:遞歸復(fù)制

    • \cp:強(qiáng)制覆蓋,不會(huì)提示

  • rm(英文全拼:remove): 刪除文件或目錄

    • rm -rf:刪除目錄

    • rm -r:遞歸刪除

    • rm -f:刪除文件不提示

    • rm -i:提示

  • mv(英文全拼:move file): 移動(dòng)文件與目錄,或修改文件與目錄的名稱

    • mv source destination:移動(dòng)/重命名

    • mv -f:強(qiáng)制移動(dòng),不提示

    • mv -i:提示

    • mv -u:更新則更新

  • touch :Linux touch命令用于修改文件或者目錄的時(shí)間屬性,包括存取時(shí)間和更改時(shí)間。若文件不存在,系統(tǒng)會(huì)建立一個(gè)新的文件。(可一次性創(chuàng)建多個(gè)文件)

文件內(nèi)容查看

Linux系統(tǒng)中使用以下命令來查看文件的內(nèi)容:

  • cat 由第一行開始顯示文件內(nèi)容

    • 只讀方式打開

    • cat -n:查看顯示行號(hào)

    • cat file | more:分頁瀏覽,空格下一頁

  • tac 從最后一行開始顯示,可以看出 tac 是 cat 的倒著寫!

  • nl 顯示的時(shí)候,順道輸出行號(hào)!

  • more 一頁一頁的顯示文件內(nèi)容

    • 空格:下一頁

    • enter:下一行

    • b:上一頁

    • q:立即結(jié)束瀏覽

  • less 與 more 類似,但是比 more 更好的是,他可以往前翻頁!

    • 快捷鍵與more類似
  • head 只看頭幾行

    • head -n:頭n行
  • tail 只看尾巴幾行

    • tail -n:尾n行

">"指令與">>"指令

  • ">"覆蓋,不存在就創(chuàng)建

  • ls -l > a.txt

  • ">>"追加

  • ls -l >> b.txt

echo

  • 字符串輸出

  • echo $PATH:輸出環(huán)境變量

ln

  • 連接:硬連接;軟連接(快捷方式)

  • ln -s 文件或目錄 鏈接

  • 刪除鏈接 rm -rf 鏈接

  • pwd查看時(shí)仍是當(dāng)前目錄

history

  • 查看已執(zhí)行的指令

  • history n:最近n條

  • !n:執(zhí)行歷史編號(hào)n的指令

時(shí)間日期類

date

  • data:當(dāng)前年月日 星期 時(shí)分秒

  • data "+%Y-%m-%d":當(dāng)前年月日

  • date "+%Y年%m月%d日 %H:%M:%S":當(dāng)前年月日時(shí)分秒

  • data -s:設(shè)置時(shí)間

cal

  • cal:當(dāng)月日歷

  • cal 年:某年日歷

搜索查找類

find

  • find /home -name hello.txt:在home目錄查找名字為hello.txt文件

  • find /opt -user nobody:在opt目錄下查找用戶名為nobody文件

  • find / -size +20M:根目錄下查找大于20M的文件

  • find /home *.txt:查找home目錄下txt文件

locate

ocate 與 find 不同: find 是去硬盤找,locate 只在 /var/lib/slocate 資料庫中找。

locate 的速度比 find 快,它并不是真的查找,而是查數(shù)據(jù)庫,一般文件數(shù)據(jù)庫在 /var/lib/slocate/slocate.db 中,所以 locate 的查找并不是實(shí)時(shí)的,而是以數(shù)據(jù)庫的更新為準(zhǔn),一般是系統(tǒng)自己維護(hù),也可以手工升級(jí)數(shù)據(jù)庫 ,命令為:updatedb

  • locate 文件名:查找文件

grep

grep 命令用于查找文件里符合條件的字符串。

  • 與|一起使用

  • cat hello.txt | grep hello:查找

  • cat hello.txt | grep -n hello:查找并顯示行號(hào)

壓縮和解壓縮類

gzip

  • 壓縮,不保留原文件

gunzip

  • 解壓

zip

  • zip -r mypackage.zip ./test/:將/test/目錄解壓到 mypackage.zip

unzip

  • unzip -d ./xm/mypackage.zip:將mypackage.zip解壓到xm目錄下

tar

  • tar -zcvf a.tar.gz a.txt b.txt:將a.txt和b.txt壓縮到a.tar.gz

  • tar -zcvf myhome.tar.gz /home/:對(duì)整個(gè)文件/目錄壓縮

  • tar -zxvf a.tar.gz:解壓到當(dāng)前目錄

  • tar -zxvf myhome.tar -C /opt/:解壓指定目錄,目錄要存在

任務(wù)調(diào)度

Linux crontab是用來定期執(zhí)行程序的命令。

當(dāng)安裝完成操作系統(tǒng)之后,默認(rèn)便會(huì)啟動(dòng)此任務(wù)調(diào)度命令。

crond 命令每分鍾會(huì)定期檢查是否有要執(zhí)行的工作,如果有要執(zhí)行的工作便會(huì)自動(dòng)執(zhí)行該工作。

注意:新創(chuàng)建的 cron 任務(wù),不會(huì)馬上執(zhí)行,至少要過 2 分鐘后才可以,當(dāng)然你可以重啟 cron 來馬上執(zhí)行。

而 linux 任務(wù)調(diào)度的工作主要分為以下兩類:

  • 1、系統(tǒng)執(zhí)行的工作:系統(tǒng)周期性所要執(zhí)行的工作,如備份系統(tǒng)數(shù)據(jù)、清理緩存

  • 2、個(gè)人執(zhí)行的工作:某個(gè)用戶定期要做的工作,例如每隔10分鐘檢查郵件服務(wù)器是否有新信,這些工作可由每個(gè)用戶自行設(shè)置

如果是簡(jiǎn)單的任務(wù),可以不用寫腳本,直接在crontab中加入任務(wù)即可

如果任務(wù)復(fù)雜,需要寫腳本

語法

crontab [選項(xiàng)]

參數(shù)說明:

  • -e : 執(zhí)行文字編輯器來設(shè)定時(shí)程表

  • -r : 刪除目前的時(shí)程表

  • -l : 列出目前的時(shí)程表

時(shí)間格式如下:

*    *    *    *    *
-    -    -    -    -
|    |    |    |    |
|    |    |    |    +----- 星期中星期幾 (0 - 6) (星期天 為0)
|    |    |    +---------- 月份 (1 - 12) 
|    |    +--------------- 一個(gè)月中的第幾天 (1 - 31)
|    +-------------------- 小時(shí) (0 - 23)
+------------------------- 分鐘 (0 - 59)

例:

  • crontab -e

  • */1 * * * * ls -l /etc >> /tmp/to.txt

  • 保存退出

  • 每一分鐘執(zhí)行一次追加到/tmp/to.txt

  • cd /home/

  • vim mytask.sh:編輯腳本mytask.sh

  • date >> /tmp/mydate

  • chmod 744 mytask.sh:給mytask.sh執(zhí)行權(quán)限

  • crontab -e

  • 加上 */1 * * * * /home/mytask.sh

  • cd /home/

  • vim mytask2.sh:編輯腳本mytask2.sh

  • date >> /tmp/mycal

  • cal >>/tmp/mycal

  • chmod 744 mytask2.sh:給mytask2.sh執(zhí)行權(quán)限

  • crontab -e

  • 加上 */1 * * * * /home/mytask2.sh

  • 完成

下面再看看幾個(gè)具體的例子:

0 */2 * * * /sbin/service httpd restart  意思是每?jī)蓚€(gè)小時(shí)重啟一次apache 

50 7 * * * /sbin/service sshd start  意思是每天7:50開啟ssh服務(wù) 

50 22 * * * /sbin/service sshd stop  意思是每天22:50關(guān)閉ssh服務(wù) 

0 0 1,15 * * fsck /home  每月1號(hào)和15號(hào)檢查/home 磁盤 

1 * * * * /home/bruce/backup  每小時(shí)的第一分執(zhí)行 /home/bruce/backup這個(gè)文件 

00 03 * * 1-5 find /home "*.xxx" -mtime +4 -exec rm {} \;  每周一至周五3點(diǎn)鐘,在目錄/home中,查找文件名為*.xxx的文件,并刪除4天前的文件。

30 6 */10 * * ls  意思是每月的1、11、21、31日是的6:30執(zhí)行一次ls命令

注意:當(dāng)程序在你所指定的時(shí)間執(zhí)行后,系統(tǒng)會(huì)發(fā)一封郵件給當(dāng)前的用戶,顯示該程序執(zhí)行的內(nèi)容,若是你不希望收到這樣的郵件,請(qǐng)?jiān)诿恳恍锌找桓裰蠹由?> /dev/null 2>&1 即可,如:

20 03 * * * . /etc/profile;/bin/sh /var/www/runoob/test.sh > /dev/null 2>&1 

磁盤管理

Linux磁盤管理好壞直接關(guān)系到整個(gè)系統(tǒng)的性能問題。

Linux磁盤管理常用三個(gè)命令為df、du和fdisk。

  • df:列出文件系統(tǒng)的整體磁盤使用量

    • df:將系統(tǒng)內(nèi)所有的文件系統(tǒng)列出來

    • df -h:將容量結(jié)果以易讀的容量格式顯示出來

  • du:檢查磁盤空間使用量

    • du:只列出當(dāng)前目錄下的所有文件夾容量(包括隱藏文件夾)

    • du -a:將文件的容量也列出來

    • du -ach --max-depth=1 /opt:查詢opt目錄磁盤占用情況,深度為1

    • ls -l /home | grep "^-" | wc -l:統(tǒng)計(jì)home目錄下,以”-“打頭的文件(文件個(gè)數(shù))

    • ls -l /home | grep "^d" | wc -l:統(tǒng)計(jì)home目錄下,以”d“打頭的文件(目錄個(gè)數(shù))

    • ls -lR /home | grep "^-" | wc -l:統(tǒng)計(jì)home目錄下(包括子目錄下),以”-“打頭的文件(文件個(gè)數(shù))

    • ls -lR /home | grep "^d" | wc -l:統(tǒng)計(jì)home目錄下(包括子目錄下),以”d“打頭的文件(目錄個(gè)數(shù))

  • fdisk:用于磁盤分區(qū)

  • mkfs:格式化磁盤

tree

  • yum install tree

  • 樹狀顯示目錄文件

分區(qū) - 文件系統(tǒng)

  • lsblk -f:查看分區(qū)和掛載情況

  • lsblk :還可以查看大小

磁盤掛載使用 mount 命令,卸載使用 umount 命令。

進(jìn)程管理

ps

ps (英文全拼:process status)命令用于顯示當(dāng)前進(jìn)程的狀態(tài),類似于 windows 的任務(wù)管理器。

參數(shù)

  • ps 的參數(shù)非常多, 在此僅列出幾個(gè)常用的參數(shù)并大略介紹含義

  • -A 列出所有的進(jìn)程

  • -w 顯示加寬可以顯示較多的資訊

  • -au 顯示較詳細(xì)的資訊

  • -aux 顯示所有包含其他使用者的行程

au(x) 輸出格式 :

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
  • USER: 行程擁有者

  • PID: pid

  • %CPU: 占用的 CPU 使用率

  • %MEM: 占用的記憶體使用率

  • VSZ: 占用的虛擬記憶體大小

  • RSS: 占用的記憶體大小

  • TTY: 終端的次要裝置號(hào)碼 (minor device number of tty)

  • STAT: 該行程的狀態(tài):

    • D: 無法中斷的休眠狀態(tài) (通常 IO 的進(jìn)程)

    • R: 正在執(zhí)行中

    • S: 靜止?fàn)顟B(tài)

    • T: 暫停執(zhí)行

    • Z: 不存在但暫時(shí)無法消除(僵尸進(jìn)程)

    • W: 沒有足夠的記憶體分頁可分配

    • <: 高優(yōu)先序的行程

    • N: 低優(yōu)先序的行程

    • L: 有記憶體分頁分配并鎖在記憶體內(nèi) (實(shí)時(shí)系統(tǒng)或捱A I/O)

  • START: 行程開始時(shí)間

  • TIME: 執(zhí)行的時(shí)間

  • COMMAND:所執(zhí)行的指令

ps -aux | grep sshd:查看關(guān)鍵字有sshd的進(jìn)程

ps -ef | more:查看父進(jìn)程ppid

pstree -u:樹狀顯示進(jìn)程

top

  • top命令用于實(shí)時(shí)顯示 process 的動(dòng)態(tài)。使用權(quán)限:所有使用者。

  • top -u 用戶名:查看給用戶的進(jìn)程

  • top -d 時(shí)間:默認(rèn)3秒刷新一次

  • top -n 5:刷新5次則退出

kill

kill 命令用于刪除執(zhí)行中的程序或工作。

語法

kill [-s <信息名稱或編號(hào)>][程序] 或 kill [-l <信息編號(hào)>]

參數(shù)說明

  • -l <信息編號(hào)>  若不加<信息編號(hào)>選項(xiàng),則 -l 參數(shù)會(huì)列出全部的信息名稱。

  • -s <信息名稱或編號(hào)>  指定要送出的信息。

  • [程序]  [程序]可以是程序的PID或是PGID,也可以是工作編號(hào)。

使用 kill -l 命令列出所有可用信號(hào)。

最常用的信號(hào)是:

  • 1 (HUP):重新加載進(jìn)程。

  • 9 (KILL):殺死一個(gè)進(jìn)程。

  • 15 (TERM):正常停止一個(gè)進(jìn)程。

服務(wù)

參考

systemctl

啟動(dòng)網(wǎng)絡(luò)服務(wù)

  • systemctl start network.service

停止網(wǎng)絡(luò)服務(wù)

  • systemctl stop network.service

重啟網(wǎng)絡(luò)服務(wù)

  • systemctl restart network.service

查看網(wǎng)絡(luò)服務(wù)狀態(tài)

  • systemctl status network.serivce

查看服務(wù)

setup

  • 圖形終端,查看服務(wù)

ls -l /etc/init.d/

  • 終端使用,查看服務(wù)

服務(wù)級(jí)別

chkconfig

  • chkconfig -level5 sshd off:運(yùn)行級(jí)別為5時(shí)sshd關(guān)閉

  • chkconfig -level5 firewalld off:運(yùn)行級(jí)別為5時(shí)防火墻關(guān)閉

  • chkconfig firewalld off:所有運(yùn)行級(jí)別下關(guān)閉防火墻

  • chkconfig firewalld on:所有運(yùn)行級(jí)別下開啟防火墻

  • 重啟后生效

telnet

telnet命令用于遠(yuǎn)端登入。

執(zhí)行telnet指令開啟終端機(jī)階段作業(yè),并登入遠(yuǎn)端主機(jī)。

實(shí)例

登錄遠(yuǎn)程主機(jī)

# telnet 192.168.0.5 

//登錄IP為 192.168.0.5 的遠(yuǎn)程主機(jī)

netstat

netstat 命令用于顯示網(wǎng)絡(luò)狀態(tài)。

利用 netstat 指令可讓你得知整個(gè) Linux 系統(tǒng)的網(wǎng)絡(luò)情況。

  • netstat -anp | more:查看全部服務(wù)

包管理

rpm

rpm 命令用于管理套件。

rpm(英文全拼:redhat package manager) 原本是 Red Hat Linux 發(fā)行版專門用來管理 Linux 各項(xiàng)套件的程序,由于它遵循 GPL 規(guī)則且功能強(qiáng)大方便,因而廣受歡迎。逐漸受到其他發(fā)行版的采用。RPM 套件管理方式的出現(xiàn),讓 Linux 易于安裝,升級(jí),間接提升了 Linux 的適用度。

  • rpm -qa | grep firefox:查詢火狐

  • rpm -qa:查詢所有

  • rpm -q firefox:查詢火狐

  • rpm -qi firefox:查詢軟件包信息

  • rpm -ql firefox:查詢火狐安裝了哪些文件/位置

  • rpm -qf /etc/passwd:查詢/etc/passwd屬于那個(gè)軟件包

  • rpm -e firefox:卸載火狐

  • 如果存在依賴性會(huì)提示,不推薦強(qiáng)制刪除

安裝

  • 找到要安裝的rpm包,掛載centos的ios文件,在/media/下找

  • 移動(dòng)到 /opt/下

  • rpm -ivh rpm軟件包

yum

yum( Yellow dog Updater, Modified)是一個(gè)在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端軟件包管理器。

基于 RPM 包管理,能夠從指定的服務(wù)器自動(dòng)下載 RPM 包并且安裝,可以自動(dòng)處理依賴性關(guān)系,并且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。

yum 提供了查找、安裝、刪除某一個(gè)、一組甚至全部軟件包的命令,而且命令簡(jiǎn)潔而又好記。

yum常用命令

1、列出所有可更新的軟件清單命令:yum check-update

2、更新所有軟件命令:yum update

3、僅安裝指定的軟件命令:yum install <package_name>

4、僅更新指定的軟件命令:yum update <package_name>

5、列出所有可安裝的軟件清單命令:yum list

6、刪除軟件包命令:yum remove <package_name>

7、查找軟件包命令:yum search <keyword>

8、清除緩存命令:

  • yum clean packages: 清除緩存目錄下的軟件包

  • yum clean headers: 清除緩存目錄下的 headers

  • yum clean oldheaders: 清除緩存目錄下舊的 headers

  • yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除緩存目錄下的軟件包及舊的 headers

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容