【小白入門 通俗易懂】2021韓順平 一周學會Linux

目錄結構
/: 表示根目錄,根目錄下有一些固定到目錄結構
/bin: 存放最常用的指令
/sbin: 存放系統(tǒng)管理員的使用的系統(tǒng)管理程序
/home: 存放普通用戶的主目錄
/root: 該目錄為系統(tǒng)管理員,超級權限者的用戶目錄
/lib: 系統(tǒng)開機所需的最基本的動態(tài)鏈接基本庫
/lost+found: 當系統(tǒng)非法關機后,這里就存放了一些文件
/etc: 系統(tǒng)管理所需要的配置文件和子目錄
/usr: 用戶的很多應用程序和文件都放在這個目錄下,類似于windows下的program files目錄
/boot: 存放linux啟動的相關文件
/proc:這個目錄是一個虛擬的目錄,他是系統(tǒng)內存的映射,訪問這個目錄來獲取系統(tǒng)信息
/srv service縮寫,存放一些服務啟動之后需要提取的數(shù)據(jù)
/sys 這是linux2.6內核的一個很大變化,該目錄安裝了2.6內核中新出現(xiàn)的一個文件系統(tǒng)sysfs
/tmp:存放臨時文件
/dev:類似于windows的設備管理器,把所有硬件以文件形式存儲
/media:linux系統(tǒng)會自動識別一些設備,例如U盤,光驅等,linux會把識別的設備掛載到這個目錄下
/mnt:錫通提供該目錄是為了臨時掛在別的文件系統(tǒng)的,我們可以將外部儲存掛載到/mnt/上
/opt:這個是給主機額外安裝軟件所存放的目錄。
/usr/local:這是另一個給主機額外安裝軟件所安裝的目錄,一般是通過編譯源碼方式安裝的程序
/var:存放不斷擴充著的東西,習慣將經(jīng)常被修改的目錄放在這個目錄下,包括各種日志文件
/selinux:SELinux是一種安全子系統(tǒng),他能控制程序只訪問特定的文件,有三種工作模式
liunx遠程登錄-Xshell
linux命令 ifconfig 可以查看liunx的ip地址
命令ping (ip) 可以測試本機和ip是否網(wǎng)絡通暢
文件上傳下載-xftp
vi和vim(據(jù)說是人類史上最好的文本編輯器)
命令:vim 文件名
進入正常模式:只能刪除
輸入i 進入插入模式,也就是編輯模式
輸入esc退出,再輸入:(冒號)或者/(斜杠)進入命令行模式,這個模式下可以提供相關指令,完成讀取,存盤,替換,離開vim,顯示動作
eg: :wq(保存退出) ,:q(退出),:q!(強制退出,不保存)
vim常用快捷鍵:
拷貝當前行yy;拷貝當前行向下n行,nyy;
粘貼:p;刪除當前行:dd;
刪除當前行向下n行,ndd;
定位到最行末G;定位到最行首gg;
撤銷動作u;
定位到n行 n shift + g;
ps:(以上快捷鍵都是在正常模式下使用)
在文件中查找某個單詞 /關鍵字,回車查找,輸入n就是查找下一個;
設置文件的行號,取消文件的行號 :set nu 和
:set nonu;
關機&重啟命令
shutdown -h now 立刻進行關機
shutdown -h 1 一分鐘后關機
shutdown -r now 現(xiàn)在重新啟動計算機
halt 關機,作用與上面一樣
reboot 現(xiàn)在重新啟動計算機
sync 把內存的數(shù)據(jù)同步到磁盤
ps(不管是重啟系統(tǒng)還是關閉系統(tǒng),首先要運行sync,把內存中的數(shù)據(jù)寫入磁盤)
用戶登錄注銷
登錄時盡量用普通用戶登錄,登錄后用“su - 用戶名” 命令切換成系統(tǒng)管理員
在提示符下輸入logout即可注銷用戶(ps:在圖形運行級別下無效,在運行級別3下有效)
用戶管理
添加用戶:useradd 用戶名
默認家目錄在/home/用戶名
useradd -d 指定目錄 新的用戶名
可以指定用戶目錄
修改密碼:passwd 用戶名
pwd 顯示當前用戶在哪一個目錄下
刪除用戶: userdel 用戶名(不刪除家目錄)
userdel -r 用戶名(刪除家目錄)
查詢用戶指令:id 用戶名
切換用戶:su - 用戶名
高權限切換到低權限用戶不需要密碼
返回原來用戶使用exit/logout
查看當前用戶信息:whoami/ who am i
ps: 顯示登錄到當前用戶的信息
eg:root登錄,su - king 切換到king,whoami顯示root用戶信息
用戶組: 對有共性權限的多個用戶進行統(tǒng)一管理
新增組:groupadd 組名
刪除組:groupdel 組名
添加用戶時直接加上組:useradd -g 用戶組 用戶名
ps:添加用戶時不指定組,默認創(chuàng)建一個與用戶名相同的組,并將其放入
修改用戶的組:usermod -g 用戶組 用戶名
用戶和組相關文件:
1./etc/passwd 文件
用戶的配置文件,記錄用戶的各種信息
每行的含義:用戶名:口令:用戶標識號:組表示號:注釋性描述:主目錄:登錄Shell
ps:Shell是用來解釋指令的,bash(中國一般用這個),tcsh.csh等
2./etc/shadow 文件
口令配置文件
每行含義:登錄名:加密口令:最后一次修改
時間:最小時間間隔:最大時間間隔:警告時間:不活動時間:失效時間:標志
3./etc/group 文件
組的配置文件,記錄Linux包含的組的信息
每行含義:組名:口令:組標識號:組內用戶列表
運行級別:
0:關機
1:單用戶【找回丟失密碼】
2:多用戶狀態(tài)沒有網(wǎng)絡服務
3:多用戶狀態(tài)有網(wǎng)絡服務
4:系統(tǒng)未使用保留給用戶
5:圖形界面
6:系統(tǒng)重啟
切換運行級別:init 運行級別
查看當前默認運行級別:systemctl get-default
設置默認運行級別:
3:systemctl set-default multi-user.target
5: systemctl set-default graphical.target
幫助指令:
man獲得幫助信息:man [命令或配置文件]
獲得shell內置命令幫助信息:help 命令
文件目錄類:
顯示當前工作目錄的絕對路徑:pwd
ls指令:ls [選項] [目錄或文件]
常用選項:
-a:顯示當前目錄的所有文件和目錄,
包括隱藏的
-l: 以列表的方式顯示信息
-h:以人習慣看的格式顯示
-R:遞歸的查找子文件夾下的內容
cd指令:cd [參數(shù)] (切換到指定目錄)
cd ~或者cd :回到自己的家目錄
cd .. :回到當前目錄的上一級
mkdir指令: mkdir [選項] 要創(chuàng)建的目錄
常用選項:-p: 創(chuàng)建多級目錄
rmdir指令:rmdir [選項] 要刪除的空目錄
rm -rf 要刪除目錄: 刪除非空目錄
touch指令:touch 文件名稱(創(chuàng)建空文件)
cp指令:cp [選項] source dest
常用選項: -r:遞歸復制整個文件
強制覆蓋不提示的方法:\cp
ps:會將source目錄,拷貝到dest目錄下層
dest/source
rm指令:rm [選項] 要刪除的文件或目錄
常用選項:
-r:遞歸刪除整個文件
-f:強制刪除不提示
ps:會從最后一層目錄開始刪除,a/b或a/b/
都是從b目錄開始刪,包括b
mv指令:
mv oldNameFile newNameFile(重命名)
mv /temp/movefile /targetFolder(移動文件)
ps:/targetFolder/movefile
cat指令:cat [選項] 要查看的文件
常用選項:-n:顯示行號
ps:可以配合more使用
more指令:more 要查看的文件
more指令是一個基于VI編輯器的文本過濾器,他以全屏幕的方式按頁顯示文本文件的內容。more指令中內置了若干個快捷鍵(交互指令)
交互指令:
空格鍵(space):代表向下一頁翻
Enter:代表向下翻一行
q:代表立刻離開,不再顯示該文件內容
Ctrl+F:向下滾動一屏
Ctrl+B:返回上一屏
=:輸出當前行的行號
:f:輸出文件名和當前行的行號
less指令:less 要查看的內容
交互指令:
空格:向下翻動一頁
pagedown:向下翻動一頁
pageup:向上翻動一頁
/字串: 向下搜尋字串:n:向下查;N:向上
?字串: 向上搜尋字串:n:向上查;N:向下
q:離開less這個程序
echo指令:echo [選項] [輸出內容](輸出到控制臺)
head指令:head 文件(顯示文件頭10行)
head -n 5 文件(顯示前5行)
tail指令:tail 文件(顯示文件尾10行)
tail -n 5 文件(顯示文件尾5行)
tail -f 文件(實時該文件的所有更新)
ps:Ctrl+C 退出實時監(jiān)控
> 指令 和 >>指令:>輸出重定向和>>追加
ls -l > 文件(列表的內容寫入文件找那個(覆蓋))
ls -al >> 文件(列表的內容追加到文件末尾)
cat 文件1 > 文件2(文件1的內容覆蓋到文件2)
echo "內容" >> 文件
ps:如果輸出文件不存在,會自動創(chuàng)建
ln 指令:ln -s [原文件或目錄] [軟連接名]
history指令:history (查看已經(jīng)執(zhí)行過的歷史命令)
history n (顯示最近n條)
!n (執(zhí)行編號為n的指令)
時間日期類:
date指令-顯示當前日期
date (顯示當前時間)
date +%Y(顯示當前年份)
date +%m(顯示當前月份)
date +%d (顯示當前是哪一天)
date "+%Y-%m-%d %H:%M:%S"(顯示年月日時分秒)
date指令-設置日期
date -s 字符串時間
cal指令:cal[選項](不加選項顯示本月日歷)
查找搜索類:
find指令:find [搜索范圍] [選項]
常用選項:
-name <查詢方式> (根據(jù)指定文件名查找)
-user <用戶名> (查找屬于指定用戶的所有文件)
-size <文件大小> (按照指定的文件大小,+n表示大于,-n表示小于,n表示等于,單位有k,M,G)
locate指令:locate 搜索文件
ps:可以快速定位文件路徑,locate指令利用事先建立的系統(tǒng)中所有文件名及路徑的locate數(shù)據(jù)庫實現(xiàn)快速定位未定的文件,數(shù)據(jù)庫需要定期更新。
由于locate指令基于數(shù)據(jù)庫進行查詢,所以第一次運行前,必須使用updatedb指令創(chuàng)建locate數(shù)據(jù)庫。
while指令:while 指令(查看某個指令在哪個目錄下)
grep指令:grep [選項] 查找內容 源文件
常用選項:
-n: 顯示匹配行及行號
-i :忽略字母大小寫
-v:反向匹配,匹配不包含關鍵字的
ps:可以配合管道符“|”使用
壓縮和解壓類:
gzip/gunzip指令:
gzip 文件(壓縮文件,壓縮為.gz文件)
gunzip 文件.gz (解壓文件)
zip/unzip指令
zip [選項] xxx.zip 將要壓縮的內容(壓縮文件和目錄)
unzip [選項] xxx.zip (解壓文件)
zip常用選項:-r:遞歸壓縮,即壓縮目錄
unzip常用選項:
-d <目錄> :指定解壓后的文件存放目錄
tar 指令:tar [選項] XX.tar.gz 打包的內容
最后打包后的文件是 .tar.gz的文件
常用選項:
-c: 產(chǎn)生.tar打包文件
-v: 顯示詳細信息
-f:指定壓縮后的文件名
-z:打包同時壓縮
-x:解包.tar文件
ps:壓縮用-zcvf,解壓用-zxvf,
-C <解壓至目錄> 指定解壓到那個目錄
linux組:
所有者:ls -l 可以查看文件所有者
第一個用戶名是文件所有者,
第二個用戶名是文件所在組
chown 用戶名 文件名(修改文件所有者)
所在組:ls -l 可以查看文件所在組
ps:當用戶創(chuàng)建了一個文件后,這個文件
所在組就是該用戶所在組
修改文件所在組:chgrp 組名 文件名
修改用戶所在組:
usermod -g 新組名 用戶名
usermod -d 目錄名 用戶名(改變用戶登
錄的初始目錄,用戶需有進入新目錄的權
限)
權限:
ls -l 中顯示的內容中第一列說明:
0~9位說明:
第0位確定文件類型(d,-,l,c,b)
-是普通文件
l是鏈接,相當于windows的快捷方式
d是目錄,相當于windows的文件夾
c是字符設備文件,如鼠標,鍵盤
b是塊設備文件,如硬盤
1~3位確定所有者擁有文件的權限
4~6位確定所在組又有該文件的權限
7~9位確定其他用戶擁有該文件的權限
rwx權限詳解:
rwx作用在文件:
r代表可讀:可以讀取,查看
w代表可寫:可以修改,但是不代表可以刪除該文件,刪除一個文件的前提條件是對改文件所在的目錄有寫權限,才能刪除該文件
x代表可執(zhí)行:可以被執(zhí)行
rwx作用在目錄:
r代表可讀:可以讀取,ls查看目錄內容
w代表可寫:可以修改,對目錄內創(chuàng)建+刪除+重命名目錄
x代表可執(zhí)行:可以進入該目錄,執(zhí)行目錄內的文件必須可以進入該目錄
ps:rwx可以用數(shù)字表示:r=4,w=2,x=1
ls顯示內容其他列說明:
第二列:文件:硬鏈接數(shù)或目錄:子目錄數(shù)+文件數(shù)
第三列:用戶
第四列:組
第五列:文件大小(無單位就是字節(jié))
第五列:最后修改日期
第六列:文件名
修改權限:chmod指令,可以修改文件或者目
錄權限
方式一:+、-、=變更權限
u:所有者 g:所有組 o:其他人 a:所有人
chmod u=rwx,g=rx,o=x 文件/目錄名
chmod o+w 文件/目錄名
chmod a-x 文件/目錄名
方式二:通過數(shù)字變更權限
r=4 w=2 x=1
chmod u=rwx,g=rx,o=x 文件目錄名
相當于 chmod 751 文件目錄名
修改文件所有者:
chown newowner 文件/目錄 (改變所有者)
chown newowenr:newgroup 文件/目錄
改變所有者和所有組
-R 如果是目錄 則使其下的所有子文件或目錄遞歸生效
修改文件所在組:
chgrp newgroup 文件/目錄 (改變所在組)
-R 如果是目錄 則使其下的所有子文件或目錄遞歸生效
crond 任務調度:
crontab 進行定時任務的設置:crontab [選項]
常用選項:
-e:編輯crontab定時任務
-l:查詢crontab任務
-r:刪除當前用戶所有的crontab任務
service crond restart 重啟任務調度
設置任務調度規(guī)則:
eg:*/1 * * * * ls -l /etc/ > /tmp/to.txt
表示每小時每分鐘執(zhí)行一次命令
占位符說明:
第一個‘*’,一小時當中的第幾分鐘,0-59
第二個‘*’,一天中的第幾小時,0-23
第三個‘*’,一個月當中的第幾天,1-31
第四個‘*’,一年中的第幾月,1-12
第五個‘*’,一周當中的星期幾,0-7(0=7)
特殊符號說明:
*代表任何時間,比如第一個*就代表每分鐘都執(zhí)行一次
,表示不連續(xù)的時間,“0 8,12 * * *”代表每天的8點0分,12點0分都執(zhí)行一次命令
-代表連續(xù)的時間范圍,比如0 5 * * 1-6代表在周一到周六的凌晨5點0分執(zhí)行命令
*/n代表每隔多久執(zhí)行一次,比如“*/10 * * * *”代表每隔十分鐘就執(zhí)行一次命令
at定時任務:
1.at命令是一次性定時計劃任務,at的守護進程atd會以后臺模式運行,檢查作業(yè)隊列的運行
2.默認情況下,atd守護進程每60秒檢查作業(yè)隊列,有作業(yè)時,會檢查作業(yè)隊列運行時間,如果時間與當前時間匹配,則運行此作業(yè)
3.使用at命令時,一定要保證atd進程的啟動,可以使用相關指令來查看
ps -ef 可以查看當前所有運行的進程
at命令:at [選項] [時間]
Ctrl + D 結束at命令的輸入
atq:可以查看系統(tǒng)中有沒有執(zhí)行的工作任務
atrm 編號:刪除對應編號的工作任務
常用選項:
-m 當指定的任務被完成后,將給用戶發(fā)送郵件,即使沒有標準輸出
-I(大i) atq的別名
-d atrm的別名
-v 顯示任務被執(zhí)行的時間
-c 打印任務的內容到標準輸出
-V顯示版本信息
-q <隊列> 使用指定的隊列
-f <文件> 從指定的讀入任務而不是從標準輸入讀入
-t <時間參數(shù)> 以時間參數(shù)的形式提交要運行的任務
at時間定義:
1.接收在當天hh:mm(小時:分鐘)式的時間指定,加入時間已經(jīng)過去,name就放在第二天執(zhí)行
2.使用midnight(深夜),noon(中午),teatime(一般是下午4點)等比較模糊的詞語來指定時間
3.采用12小時制,即在時間后面加上AM或PM來說明是上午還是下午
4.指定命令執(zhí)行的具體日期,指定格式為month day(月 日)或mm/dd/yy(月/日/年)或dd:mm:yy,指定日期必須在指定時間的后面
5.使用相對計時法,指定格式為:now+count+time-units,now就是當前時間,time-units是時間單位,這里能夠是minutes,hours,days,weeks,count是時間的數(shù)量,
幾天,幾小時。
6.直接使用today,tomorrow來指定完成命令的日期
Linux磁盤分區(qū):
lsblk 或lsblk -f 查看所有設備的掛在情況
硬盤說明:
1.Linux硬盤分IDE硬盤和SCSI硬盤,目前基本上是SCSI硬盤
2.對于IDE硬盤,驅動器標識符為“hd~”,其中“hd”表明分區(qū)所在設備的類型,這里是指IDE硬盤?!皒”為盤號(a為基本盤,b為基本從屬盤,c為輔助主盤,d為輔助從屬盤),“~”代表分區(qū),前四個分區(qū)用數(shù)字1-4表示,它們是主分區(qū)或擴展分區(qū),從5開始就是邏輯分區(qū)
3.對于SCSI硬盤則標識為“sd~”,SCSI,SCSI硬盤是用“sd”來表示分區(qū)所在設備的類型的,其余則和IDE硬盤的表示方法一樣
增加磁盤實例:
1.在虛擬機菜單中,選擇設置,然后設備列表中添加硬盤
2.分區(qū)命令 fdisk /dev/sdb
開始對/sdb分區(qū)
m 顯示命令列表
p 顯示磁盤分區(qū) 同 fdisk -l
n 新增分區(qū)
d 刪除分區(qū)
w 寫入并退出
q 不保存退出
3.格式化磁盤
mkfs -t ext4 /dev/sdb1
其中ext4是分區(qū)類型
4.掛載:將一個分區(qū)與一個目錄聯(lián)系起來
mount 設備名稱 掛載目錄
eg:mount /dev/sdb1 /newdisk
umount 設備名稱 或 掛載目錄
ps:用命令行掛載,重啟后會失效
5.永久掛載
修改/etc/fstab實現(xiàn)掛載
添加完成后 執(zhí)行mount -a 即刻生效
磁盤情況查詢:
查詢系統(tǒng)整體磁盤使用情況:df -h
查詢指定目錄的磁盤占用情況:du -h /目錄
常見選項:
-s 指定目錄占用大小匯總
-h 帶計量單位
-a 含文件
--max-depth=1 子目錄深度
-c 列出明細的同時,增加匯總值
磁盤情況-工作使用指令
1.統(tǒng)計/opt目錄下文件的數(shù)量
ls -l /opt | grep "^-" | wc -l
2.統(tǒng)計/opt文件夾下文件的個數(shù),包括子文件夾里的
ls -lR /opt | grep "^-" | wc -l
3.以樹狀顯示目錄結構
tree 目錄
ps:默認tree未安裝,yum install tree
網(wǎng)絡配置:
指定ip:
直接修改配置文件(/etc/sysconfig/network-scripts/ifcfg-ens33)來指定ip,并可以連接到外網(wǎng)
ifcfg-ens33文件說明:
DEVICE=eth0 #接口名(設備,網(wǎng)卡)
HWADDR=00:0c:2x:6x:0x:xx #MAC地址
TYPE=Ethernet #網(wǎng)絡類型(通常是Ethenet)
UUID= #隨機ID
#系統(tǒng)啟動的時候網(wǎng)絡接口是否有效(yes/no)
ONBOOT=yes
#IP的配置方法[none|static|bootp|dhcp](引導時不使用協(xié)議|靜態(tài)分配IP|BOOTP協(xié)議|DHCP協(xié)議)
BOOTPROTO=static
#IP地址
IPADDR=192.168.200.130
#網(wǎng)關
GATEWAY=192.168.200.2
#域名解析器
DNS1=192.168.200.2
重啟網(wǎng)絡服務或者重啟系統(tǒng)生效
service network restart、reboot
設置主機名和hosts映射:
hostname:查看主機名
進程管理:
1.在linux中,每個執(zhí)行的程序都被稱為一個進程,每一個進程都分配一個ID號(pid,進程號)
2.每一進程都可能以兩種方式存在的。前臺與后臺,所謂前臺進程就是用戶目前的屏幕上可以進行操作的。后臺進程則是實際在操作,但由于屏幕上無法看到的進程,通常使用后臺方式執(zhí)行
3.一般系統(tǒng)的服務都是以后臺進程的方式存在,而且都會常駐在系統(tǒng)中,知道關機才結束
顯示系統(tǒng)執(zhí)行的進程:
ps命令是用來查看目前系統(tǒng)中,有哪些正在執(zhí)行,以及他們執(zhí)行的狀況??梢圆患尤魏螀?shù)
常用參數(shù)
-a:顯示當前終端的所有進程信息
-u:以用戶的格式顯示進程信息
-x:顯示后臺進程運行的參數(shù)
-e:顯示所有進程
-l:長格式顯示更加詳細的信息
-f:全格式,以全格式顯示當前所有進程,可以查看進程的父進程
常用組合:
“ps aux”可以查看系統(tǒng)中所有的進程
“ps -le”可以查看系統(tǒng)中所有的進程,而且還能看到進程的父進程的 PID 和進程優(yōu)先級
“ps -ef”同le相似
“ps -l”只能看到當前 Shell 產(chǎn)生的進程
USER:用戶名
PID:進程識別號
%CPU:進程占用CPU的百分比
%MEM:進程占用物理內存的百分比
VSZ:進程占用的虛擬內存大?。╧b)
RSS:進程占用的物理內存大小
TTY:終端機號
TIME:此進程所消CPU時間
COMMAND:正在執(zhí)行的命令或進程號
STAT:運行狀態(tài),S-休眠,s-該進程是會話的先導進程,N-進程擁有比普通優(yōu)先級更低的優(yōu)先級,R-正在運行,D-短期等待,Z-僵死進程,T-被跟蹤或者被停止等等
START:進程的啟動時間
ps -ef:以全格式顯示當前所有進程
UID:用戶ID
PID:進程ID
PPID:父進程ID
C:CPU用于計算執(zhí)行優(yōu)先級的因子。數(shù)值越大,表示進程是CPU密集型運算,執(zhí)行喲限戶籍會降低;數(shù)值越小,表明進程是I/O密集型運算,執(zhí)行優(yōu)先級會提高
終止進程:
kill [選項] 進程號(通過進程號殺死進程)
killall 進程名稱(通過進程名殺死進程,也支持通配符,這里系統(tǒng)因負載過大而變得很慢是很有用)
常用選項:
-9:表示強迫進程立即停止
查看進程樹:pstree [選項](可以更加直觀的查看進程信息)
常用選項:
-p:顯示進程
-u:顯示進程的所屬用戶
服務管理:
服務本質就是進程,但是是運行在后臺的,通常都會監(jiān)聽某個端口,等待其他程序的請求,因此又稱守護進程
service管理指令:
service 服務名 [start|stop|restart|reload
|reload|status]
ps:在CentOS7.0后,很多服務不在使用service,而是systemctl
service指令管理的服務在/etc/init.d查看
setup:選擇系統(tǒng)服務,就可以看到全部服務
開機流程說明:
開機=》BIOS=》/boot=》systemd進程1=》運行級別=》運行級別對應的服務
chkconfig指令:
通過chkconfig可以給服務的各個運行級別設置自啟動/關閉
chkconfig管理的服務在/etc/init.d查看
查看服務:
chkconfig --list [| grep xxx]
chkconfig 服務名 --list
chkconfig --level 5 服務名 on/off
systemctl管理指令:
systemctl [start|stop|restart|status] 服務名
systemctl管理的服務在/usr/lib/systemd/
system查看
systemctl設置服務的自啟動狀態(tài):
systemctl list-unit-files [| grep 服務名]
(查看服務開機啟動狀態(tài))
systemctl enable 服務名
(設置服務開機啟動)
systemctl disable 服務名
(關閉服務開機啟動)
systemctl is-enabled 服務名
(查詢某個服務是否是自啟動的)
ps:centOS7.0后,以上設置控制的是3,5級別下開機是否自啟動
firewall指令:
打開端口:
firewall-cmd --permanent --add-port=端
口/協(xié)議
關閉端口:
firewall-cmd --permanent --remove-port=
端口/協(xié)議
重新載入,才能生效:
firewall-cmd --reload
查詢端口是否開放:
firewall-cmd --query-port=端口/協(xié)議
查詢開放端口:
firewall-cmd --list-all
動態(tài)監(jiān)控進程:top [選項]
top和ps命令相似。他們都用來顯示正在執(zhí)行的進程。但是top在執(zhí)行一段時間可以更新正在運行的進程
常用選項:
-d 秒數(shù):指定top命令每隔幾秒更新,默認是3秒
-i:使top不顯示任何限制或者僵死進程
-p:通過指定監(jiān)控進程ID來僅僅監(jiān)控某個進程的狀態(tài)
動態(tài)監(jiān)控交互操作:
P:以CPU使用率排序,默認即使此項
M:以內存的使用率排序
N:以PID排序
q:退出top
u:監(jiān)控指定用戶
k:終止指定進程
監(jiān)控網(wǎng)絡狀態(tài):netstat [選項]
-an 按一定順序排列輸出
-p 顯示哪個進程在調用
rpm包的管理:
查詢已安裝的rpm列表:rpm -qa | grep xx
rpm包名基本格式:
eg:firefox-60.2.2-1.el7.centos.x86_64
名稱:firefox
版本號:60.2.2-1
適用操作系統(tǒng):el7.centos.x86_64
表示centos7.x的64位系統(tǒng)
如果是i686,i386表示32位系統(tǒng),noarch表示通用
查詢軟件包是否安裝:rpm -q 軟件包名
查詢軟件包信息:rpm -qi 軟件包
查詢軟件包中的文件:rpm -ql 軟件包
查詢文件所屬軟件包:rpm -qf 文件全路徑
卸載rpm包:rpm -e rpm包名
ps:如果刪除的軟件包被其他軟件包所依賴,卸載是會產(chǎn)生錯誤信息,如果確定要卸載,增加參數(shù)--nodeps
安裝rpm包:rpm -ivh rpm包全路徑名稱
參數(shù)說明:
i:install 安裝
v: verbose 提示
h: hash 進度條
yum:
查詢yum服務器是否有需要安裝的軟件:
yum list | grep xx
安裝指定的yum包:
yum install xxx
安裝JDK:

shell編程:
shell腳本執(zhí)行方式:
格式要求:
腳本以#!/bin/bash開頭
腳本需要有可執(zhí)行權限
賦予腳本x權限,直接使用路徑執(zhí)行
使用 sh + 腳本執(zhí)行
shell的變量:
Linux Shell中變量分為系統(tǒng)變量和用戶自定義變量
系統(tǒng)變量:$HOME,$PWD等,
顯示當前Shell中所有的變量:set
- shell變量的定義:
定義變量:變量=值
撤銷變量:unset 變量
聲明靜態(tài)變量:readonly變量,不能unset
- 定義變量的規(guī)則:
變量名稱可以由字母、數(shù)組、下劃線組成,但是不能以數(shù)字開頭。
等號兩側不能有空格
變量名稱一般習慣大寫
- 將命令的返回值賦給變量:
A=`date`反引號,運行命令,并把結果返回給變量A
A=$(date)等價于反引號
- 設置環(huán)境變量:
export 變量名=變量值(將shell變量輸出為環(huán)境變量/全局變量)
source 配置文件(讓修改后的配置文件立即生效)
echo $變量名(查詢環(huán)境變量的值)
ps:shell腳本多行注釋 :<<!換行 內容 換行!
- 位置參數(shù)變量:
$n(n為數(shù)字,$0代表命令本身,$1~$9代表第一個到第九個參數(shù),十以上的參數(shù)需要用大括號包含,如${10})
$*(這個變量代表命令行中的所有參數(shù),$*把所有的參數(shù)看成一個整體)
ps:(⊙o⊙)…好像也是分開的
$@(這個變量也代表命令行中的所有參數(shù),不過$@把每個參數(shù)區(qū)分對待)
$#(這個變量代表命令行中所有參數(shù)的個數(shù))
- 預定義變量
就是shell設計者事先定義好的變量,可以直接在shell腳本中使用
$$(當前進程的進程號(PID))
$!(后臺運行的最后一個進程的進程(PID))
$?(最后一次執(zhí)行的命令的返回狀態(tài)。如果這個變量的值為0,證明上一個命令正確執(zhí)行;如果這個變量的值為非0,則證明上一個命令執(zhí)行不正確了)
ps:后臺運行腳本:執(zhí)行命令 &
運算符:
$((運算式))或$[運算式]或expr m + n
注意expr運算符間要有空格,如果希望將expr 的結果賦給某個變量,使用``(反引號)
expr m - n
expr \*,/,% 乘,除,取余
條件判斷:
[ condition ] (condition前后要有空格)
非空返回true,可以使用$?驗證(0位true,>1為false)
常用判斷條件:
= 字符串比較
兩個整數(shù)比較:
-lt 小于
-le 小于等于
-eq 等于
-gt 大于
-ge 大于等于
-ne 不等于
按照文件權限進行判斷:
-r 有讀的權限
-w 有寫的權限
-x 有執(zhí)行的權限
按照文件類型判斷:
-f 文件存在并且是一個常規(guī)文件
-e 文件存在
-d 文件存在并且是一個目錄
流程控制:
if語句:
if [ 條件判斷式 ];then
程序
fi
或者
if [ 條件判斷式 ]
then
程序
elif [ 條件判斷式 ]
then
程序
fi
case語句:
case $變量名 in
"值1")
如果變量值等于值1,則執(zhí)行程序1
;;
"值2")
如果變量值等于值2,則執(zhí)行程序2
;;
... ...
*)
如果變量值都不是以上值,則執(zhí)行此程序
;;
esac
for循環(huán):
語法一:
for 變量 in 值1,值2,值3 ...
do
程序
done
語法二:
for((初始值;循環(huán)控制條件;變量變化))
do
程序
done
while循環(huán):
while [ 條件判斷式 ]
do
程序
done
read讀取控制臺輸入:
read (選項) (參數(shù))
選項:
-p:指定讀取值時的提示符
-t:指定讀取值時等待的時間(秒),
如果沒有在指定時間內輸入,就不再等待了
參數(shù):
變量:指定讀取值時的變量名
函數(shù):
系統(tǒng)函數(shù):
basename:
返回完整路徑最后/的部分,常用于獲取文件名
basename [pathname] [suffix]
dirname:
返回完整路徑最后/的前面部分,常用于返回路徑部分
dirname 文件絕對路徑
自定義函數(shù):
[ function ] funname[()]
{
Action;
[return int;]
}
調用直接寫函數(shù)名:function [值]
Ubuntu:


日志管理:
/var/log/目錄就是系統(tǒng)日志文件的保存位置
系統(tǒng)常用日志:
boot.log 系統(tǒng)啟動日志
cron 記錄與系統(tǒng)定時任務相關的日志
lastlog 記錄系統(tǒng)中所有用戶最后一次登錄時間的日志,這個文件是二進制文件,要使用lastlog命令查看
mailog 記錄郵件信息的日志
message 記錄系統(tǒng)最重要的日志,這個日志文件中會記錄Linux系統(tǒng)的絕大多數(shù)重要信息,如果系統(tǒng)出現(xiàn)問題,首先檢查這個日志文件
secure 記錄驗證和授權方面的信息,只要涉及賬戶和密碼的程序都會記錄,比如系統(tǒng)的登錄,ssh的登錄,su切換用戶,sudo授權,甚至添加用戶和修改密碼都會記錄在這個日志文件中
ulmp 記錄當前已經(jīng)登錄的用戶信息,這個文件會隨著用戶的登錄和注銷而不斷變化,只記錄當前用戶的信息。這個文件不能用vi查看,而要使用w,who,users等命令查看
日志服務管理:rsyslogd
/etc/rsyslog.conf 記錄了rsyslogdg管理的日志文件
配置文件詳解:
編輯文件格式為:*.* 存放日志文件
第一個*代表日志類型,第二個代表*代表日志級別


日志文件的格式包含4列:
1.時間產(chǎn)生的時間
2.產(chǎn)生事件的服務器的主機名
3.產(chǎn)生事件的服務名和程序名
4.事件的具體信息
日志輪替:
日志輪替就是把舊的日志文件移動并改名,同時建立新的空日志文件,當舊日志文件超出保存的范圍之后,就會進行刪除


參數(shù)說明:


日志輪替機制原理:
日志輪替之所以可以在指定的時間備份文件,是依賴系統(tǒng)的定時任務。在/etc/cron.daily/目錄,其中有一個logrotate文件,logrotate通過這個文件依賴定時任務執(zhí)行的。

內存日志:
journalctl 可以查看內存日志,重啟清空
journalctl 查看全部
journalctl -n 3 查看最新3條
journalctl --since 19:00 --until 19:10:10
查看起始時間到結束時間的日志,可加日期
journalctl -p err 報錯日志
journalctl -o verbose 日志詳細內容
journalctl _PID=1245 _COMM=sshd 查看包含這些參數(shù)的日志
linux啟動流程:
1.首先Linux要通過自檢,檢查硬件設備有沒有故障
2.如果有多塊啟動盤的話,與要在BIOS中選擇自動磁盤
3.啟動MBR中的BootLoader引導程序
4.加載內核文件
5.執(zhí)行所有進程的父進程,老祖宗systemd
6.歡迎界面
在Linux的啟動流程中,加載內核文件時關鍵文件:
kernel文件:vmlinuz-3.10.0-957.el7.x86_64
initrd文件:initramfs-3.10.0-957.el7.x86_64.img
數(shù)據(jù)備份與恢復:
安裝dump和restore指令:
yum -y install dump
yum -y install restore
使用dump完成備份:
dump支持分卷備份和增量備份(所謂增量備份是指備份上一次備份后 修改/增加過的文件,也稱差異備份)
dump [-cu] [-123456789] [-f <備份后文件名>] [-T <日期>] [目錄和文件系統(tǒng)]
dump [-wW]
