linux基础知识复习学习笔记
其實有些東西長久不用就會忘記
- 疫情期間被隔離在家,把一些基礎再復習一下,希望自己能夠加深記憶。
- #20220108-RPM
- 20220109-yum包管理
- 20220110-用戶組
- 20220111-文件屬性
- 20220112-Shell 執行文件
- 20220114-Shell學習
- Shell編程-正則表達式
- 20220115-Shell編程基礎
- 20220117-Shell基本邏輯
- 20220118-Case流程控制
- 20220119-Linux 服務管理
- 20220120-啟動管理
疫情期間被隔離在家,把一些基礎再復習一下,希望自己能夠加深記憶。
#20220108-RPM
RPM包的命名原則
軟件包名。軟件版本名稱,發行的次數,適合的硬件 RPM結尾
-
RPM包的依賴性
-
yum 在線管理命令 是為了解決 RPM包依賴的問題而誕生的
-
包全名與包名的區別。安裝和升級一般使用包全名 包名一般是操作已經安裝過的包
-
rpm -ivh 包全名,
-
-i (install)安裝
-
-v (verbose)顯示詳細過程
-
-h (hash ) 顯示進度
-
–nodeps 不檢測依賴
-
rpm -Uvh 包全名 升級軟件
-
rpm -e 包名 卸載軟件包
-
rpm -q 包名 查詢包是不是已經安裝
-
rpm -qa 查詢所有安裝的rpm
-
rpm -qi 查詢已經安裝的包的詳細信息
-
rpm -p 查詢的沒有安裝的包全名
-
rpm -ql 包名 ,-l列表(list)查詢包的文件 安裝到哪個位置了
-
rpm -qf 系統文件名,查詢文件名屬于哪個包
-
rpm -qR 包名 。 查詢該包會依賴那些包
-
rpm -V 已安裝的包名。校驗RPM中的文件是不是被人修改。沒有提示信息即沒有修改。返回結果中的字符說明:S大小修改,M文件類型改變,5文件MD5校驗是不是改變,D設備中的代碼是否修改 ,L文件路徑是不是改變,U文件的屬主是不是改變,U文件組是不是改變,T文件的時間是不是改變。
-
rpm2cpio 包全名。 將rpm 格式轉化為 cpio格式。cpio是一個標準工具 用來提取文件中的數據
-
cpio -idv .文件的絕對路徑 。提取文件 到目錄。
-
yum 管理的也是 RPM 包,只是解決了RPM包的依賴性問題
-
如何 配置IP 使用Redhat系列 setup命令 。出現窗口配置
-
service network restart 重啟網絡設置 進行生效
-
網絡yum源的管理
20220109-yum包管理
-
yum list 列出可以安裝的rpm包
-
yum search 包名 。查詢要安裝的包名
-
yum -y install 包名。 安裝指定的包,-y 意思是自動安裝,不需要詢問。
-
yum -y update 包名。 更新軟件。不加包名的時候,更新所有 慎用。
-
yum -y remove 包名 。卸載指定的包。
-
原則:安裝的時候 最小化安裝 ,盡量不卸載。因為yum 卸載不安全。
-
yum grouplist 。查詢
-
yum groupintsall 包名 。安裝組
-
yum groupremove 包名。卸載組
-
源碼包安裝,下載源碼安裝包,上傳到Linux ,然后編譯源碼。安裝步驟:解壓,進入解壓目錄。執行Config 進行配置,執行make ,執行 make clean 進行清除,執行make install . 通過config 文件可查看安裝的步驟。源碼包沒有卸載命令 ,如果要卸載刪除安裝解壓位置的文件即可。
20220110-用戶組
-
用戶信息文件 、、etc/passwd
- 每一行代表一個用戶
- 7個選項的意思
-
shadow 影子文件。編輯用戶的密碼管理 ,提醒時間,過期時間,緩刑時間
-
echo ( ( (( (((date --date=“2014/01/06”+%s)/86400+1)) ,當前時間換算成時間戳
-
shadow 的權限是000 ,需要保護的文件
-
change -d 0 lamp ,要求用戶登錄就要先修改密碼
-
passwd 設置密碼
-
usermod 修改用戶信息
-
change 修改用戶密碼狀態
-
userdel -r 用戶名 刪除用戶。-r 刪除用戶的同時 也會刪除用戶的家目錄。
-
chatrr [±=] i
20220111-文件屬性
-
lsattr -a abc 列出文件的屬性
-
系統命令權限sudo權限。 sudo 操作的對象是系統命令。
-
visudo 給普通用戶賦予可執行的命令
-
sc ALL=/sbin/shutdown -r now 給sc 賦予重啟的權限 ,在visudo中修改
-
whereis ls .ls命令在哪
-
執行sudo 命令的時候,必須在命令前面加上 sudo
-
su -sc 切換成sc用戶
-
shell基礎 。shell是一個命令行解釋器 ,分為 BShell CShell
20220112-Shell 執行文件
-
echo -e “\a” echo 的-e選項
-
chmod 755 hello.sh 付權限
-
./hello.sh 。執行命令,幾乎所有的命令 都需要在絕對路徑來執行。
-
第二種方法。bash hello.sh 執行腳本
-
cat 查看文件的內容
-
dos2unix 從DOS轉化為 Unix
-
history 顯示當前用戶 的 命令輸入歷史 -c 清空 ;-w 保存到文件
-
~/.bash_history 顯示歷史文件的 -w 強制保存到該文件
-
alias 命令別稱文件
-
Bash常用快捷鍵
- ctrl+A 回到字符頭
- ctrl+E 光標移到字符尾部
- ctrl+C 強制終止當前命令
- ctrl+L 清屏,相當于clear命令
- ctrl+K 刪除光標后的內容
- ctrl+U 刪除光標前的內容
- ctrl+Y 粘貼ctrl+U或者ctrl+K剪切的內容
- ctrl+R 在歷史命令中搜索,按下后,就會出現搜索界面
- ctrl+D 退出當前終端
- ctrl+Z 暫停,并放入后臺
- ctrl+S 暫停屏幕輸出
- ctrl+Q恢復屏幕輸出
-
輸入輸出重定向(鍵盤 用0 標識,顯示器 用1標識,錯誤輸出 用2標識)
-
輸出重定向
- 輸出重定向(命令>文件),將命令輸出結果保存到文件,成為輸出重定向
- 命令》文件,雙大于號,指的是追加
- lst 2>> abc .錯誤輸出重定向,需要在雙大于號前加2,不能有空格
- 命令 &> abc ; 或者命令>文件 2>&1 不管正確與否都存入到文件
- ls &>/dev/null 不保存任何結果,刪除掉結果,等于放進垃圾箱
- 命令>>文件1 2>>文件2 。命令執行正確保存到文件1 錯誤保存到文件2。正確與錯誤分開保存
-
輸入重定向
- wc 選 項 文件名
- -c 統計字節數
- -w 統計單詞數
- -l 統計行數
- 例如:wc<anaconda-ks.cfg
-
多命令執行順序
-
命令1;命令2 兩個都執行 分別執行
-
命令1&&命令2 ,命令1正確執行的時候 命令2才會執行
-
命令1||命令2 ,命令1錯誤時,才執行命令2
-
管道符。命令1|命令2 。命令1的真確輸出,輸入到命令2. 例如 ll -a/etc/ |more;命令1必須正確執行輸出,否則命令2不能正確執行。
-
-
grep [選項] 關鍵字 文件
- -i 忽略大小寫
- -n 顯示行號
- -v 反向查找
- –color=auto 自動顯示關鍵字顏色
-
通配符和一些特殊符號
- ? 匹配任意一個字符
- *代表任意一個字符
- []匹配中括號中任意一個字符
- [a-z] 匹配任意一個小字母
- [^0-9] 匹配不是數字的字符
20220114-Shell學習
-
通配符的使用
- ls *abc
- ‘’ 單引號。在單引號中所有的特殊符號都是普通符號,在雙引號中 有特殊含義
- 、、 反引號。反引號括起來的內容是系統命令,推薦使用$() 代替,因為反引號容易錯
- $()和反引號的作用是一樣的
- # 代表注釋
- $ 用于調用變量的值
- \ 代表轉義符號
-
Bash變量
- 用戶自定義變量
- 環境變量
- 位置參數變量
- 預定義變量
-
用戶自定義變量
-
變量名稱不能數字開頭,字母 下劃線可以
-
變量的默認類型都是字符。如果要進行數值運算,則必須進行類型設置
-
變量是用等號連接,但是等號左右兩側不能有空格,如果值有空格 需要用雙引號或者單引號括起來。
-
在變量的值中可以使用\轉義
-
可以把命令的結果作為值賦給變量
-
環境變量建議大寫,便于區分
-
-
環境變量:這種變量中主要保存的是和操作環境相關的數據。
-
位置參數變量:這種變量主要是用來向腳本中傳遞參數或者數據,變量名不能自定義,變量的作用是固定的。
-
預定義變量:是Bash中已經定義好的變量,變量名不能自定義,變量作用也是固定的。
-
set 查看系統中所有的環境變量
-
unset 刪除變量
-
環境變量 如果寫入到配置文件里,對所有的Shell 都是生效的。自定義變量 只對當前的shell 有效。
-
設置環境變量 export 變量名=變量值
-
env ,查詢環境變量
-
unset ,刪除變量
-
pstree 確定進程樹
-
系統提示符
- \d 顯示日期
- \h 顯示簡寫的主機名稱,如默認主機“localhost”
- \t 顯示24小時制時間
- \T 顯示12小時制時間
- \A 顯示24小時制時間、
- \u 顯示當前用戶名
- \w 顯示當前所在目錄的完整名稱
- \W 顯示當前所在目錄的目錄的最后一個目錄
- \#執行的第幾個命令
- $ 提示符,如果是root用戶會顯示提示符為“#”,如果是普通用戶會顯示提示符為“$”
-
echo $PS1 查看提示符
-
修改$PS1 可以修改當前提示符的格式。
-
位置參數變量
- $n ,n為數字 $0代表命令本身,$1-$9 位置參數接收
- 目的 將參數變量傳遞到腳本里
- $# 返回參數的個數
- $* 代表所有的參數,將說有的參數作為一個整體
- $@ 代表說有的參數,將所有的參數分別定義
-
shell 中的for循環
for i in "$*"doecho "The parameters is :$i"done -
預定義變量
- $? 代表上次命令是不是正確執行,返回0是正確,其他數字時為報錯代碼
- $$ 當前進程的進程PID
- $! 后臺運行的最后一個進程
-
接收鍵盤輸入 read [選項] [變量]
-
-p "提示信息 ":在等待read輸入時,輸出提示信息。
-
-t 秒數: read 命令會一直等待用戶輸入,使用此選項可以指定等待時間
-
-n 字符數:read 命令只接收指定的字符數,就會執行
-
-s:隱藏輸入的數據,適用于機密信息的輸入
- read -s -t 30 -p "Please enter your age:" age echo $age #輸入你的年齡 #用戶的輸入會存入到 age 變量
-
-
declare 聲明變量類型
- delcare +/- 【選項】變量名稱
- 選項說明
- -:給變量設定類型屬性
- +:取消變量的類型屬性
- -i:將變量聲明為整數型(integer)
- -x:將變量聲明為環境變量
- -p:顯示指定變量的被聲明的類型
-
expr 或者let 數值運算工具
- dd=$(expr $aa + $bb) #dd的值是aa和bb的和。注意“+”號左右兩側必須有空格
-
( ( 運 算 式 ) ) 或 者 “ (( 運算式 )) 或者 “ ((運算式))或者“[運算式]” ,推薦雙小括號的寫法
-
以上是三種常用的三種數值運算方式。
-
在Linux中的運算符和優先級
-
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-y79LcyV2-1642691422231)(images/image-20220114145256657.png)]
-
變量測試與內容替換
- [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-VbyxY9Zt-1642691422232)(images/image-20220114164050574.png)]
-
環境變量配置文件
-
環境變量配置文件 是為了讓變量永久生效,而不是關機重啟以后就不存在
-
source命令 source 配置文件 。讓配置文件修改后強制生效,不需要重啟計算機
-
.配置文件與source配置文件的作用是一樣的
-
環境配置文件主要是定義系統級別的操作系統級別的變量
-
echo $PATH
-
通過 set 或者 env 可以查看當前的環境變量
-
常用的環境變量配置文件
- /etc/profile
- /etc/profile.d/*.sh
- /etc/bashrc
- ~/.bash_profile
- ~/.bashrc
-
etc 目錄下的環境變量 對所有用戶都是生效的。
-
環境變量調用順序如下
-
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-peI2rGKK-1642691422233)(images/image-20220114172406242.png)]
-
按兩次tab 能夠提示當前目錄下的文件列表(提示作用)
-
其他環境變量和登錄注銷
-
注銷時的配置文件 ~ /bash_history 注銷登錄時,做什么操作 可以添加到這個文件
-
Shell的登錄信息 歡迎信息的配置
- 本地終端歡迎信息 : /etc/issue
- [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-o3H4TE2R-1642691422233)(images/image-20220114180620603.png)]
- 針對本地和遠程的共用的配置文件 /etc/motd
Shell編程-正則表達式
- Shell 正則表達式
- 正則與通配符還是有區別的。正則是包含的概念 通配符是完全匹配的概念。
- 基礎正則表達式
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-v4q2VszG-1642691422233)(images/image-20220114182330680.png)]
- grep “a*” test_rule.txt 。本命令代表重復a 0次或者多次 ,事實上是列出所有單詞,無實際意義。
- grep “s…d” test_rule.txt 。列出sd之間有兩字母的行
- grep “^M” test_rule.txt 。 匹配M開頭的行
- grep “n$” test_rule.txt 。列出以n為結尾的行
20220115-Shell編程基礎
-
字符截取命令
- cut字段提取命令
- printf命令
- awk命令
- sed 命令
-
cut 【選項】 文件名。
-
-f 行號:提取第幾列 .
-
-d 分割符:提取第幾列用分隔符分開
-
cut -f 2,3 student.txt 提取2-3 兩列
-
cut -d “:” -f 1,3 /etc/passwd
-
-
printf ‘輸出類型輸出格式化’ 輸出內容
- %ns 輸出字符串類型。n是數字指輸出幾個字符
-
sed是一種幾乎包括所有Linux平臺流編輯器。sed主要是用來將數據進行選取新增編輯等
-
sed [選項] ‘[動作]’ 文件名
-
選項:-n ,-e,-i
-
動作:a\ ,c\ ,i\ d,p,s
-
sed 只是改變輸出 并不修改文件本身
-
字符處理命令sort
- sort [選項] 文件名
- -f:忽略大小寫
- -n:以數值類型進行排序
- -r:取反 z-a排序
- sort -t “:” -k 3,3 /etc/password 。以第三個字段進行排序
-
wc 統計命令
-
wc [ 選項] 文件名
-
-l:只統計行數
-
-w:只統計單詞數
-
-m:只統計字符數
-
ll |wc 統計LL的結果判斷
-
-
條件判斷式
-
按照文件類型進行判斷
-
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-ECZHWqVs-1642691422233)(images/image-20220115154055858.png)]
-
test -e /root/install.log 判斷 文件是否存在
-
另外一種格式 [ -e config.json ] ,中括號兩邊的空格必須存在
-
[ -e config.json ]&& echo yes || echo no 。根據判斷結果執行
-
判斷文件權限
-
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-oHHEz8ud-1642691422234)(images/image-20220115213058847.png)]
-
[ -w config.json ]&& echo yes || echo no 。根據權限判斷結果執行
-
文件1 -nt 文件2 ,判斷文件1的修改時間是否比文件2新
-
文件1 -ef 文件2 ,判讀兩個文件是不是同一個文件,硬連接判斷
-
文件1 -ot 文件2,判斷文件1的修改時間是否比文件2舊。
-
[ /root/student.txt -ef /tem/stu.txt ]&& echo yes || echo no
20220117-Shell基本邏輯
-
兩個數值之間的判斷
-
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-QYiVGv1p-1642691422234)(images/image-20220117114500996.png)]
-
字符串的判斷
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-geYV8NrR-1642691422234)(images/image-20220117114632680.png)]
-
if 條件語句的邏輯
if [ 條件判斷式 ]; then程序 fi或者if [ 條件判斷式 ]then程序 fi
20220118-Case流程控制
-
case多分枝判斷語句
-
case 只能判斷一個條件語句
- case $變量名 in"值1")echo "程序語句";;"值2")echo "語句";;"*)"echo "語句" esac
-
for 語句
- for time in morning nonn afternonn eveningdoecho "this is my time"done
-
while 語句
- while [ 條件判斷式 ]dodone#計算100以內的加和 #!/bin/bash i=1 s=0 while [ "$i" -le 100 ]dos=$(($s+$i))i=$(($i+1))doneecho $s
-
until 循環 與 while 相反,直到條件不成立 循環
20220119-Linux 服務管理
-
服務和分類
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-jK9EMtGQ-1642691422235)(images/image-20220119112404591.png)]
-
Linux 獨立服務和基于xinetd服務
-
應用軟件 和 服務
-
xinetd 本身是一個單獨的服務,但是它管理了一堆非獨立服務
-
查詢已經安裝了那些服務
-
chkconfig --list ,查詢安裝了那些RPM包安裝的服務,不能查看源碼安裝的服務
-
ps -aux ,查看系統中的任務管理器,即所有進程
-
源碼包安裝的服務,需要查看服務安裝位置,源碼包安裝在指定位置,一般是 /usr/local/
-
whereis nginx ,查看服務安裝到了哪里
-
直接關閉防火墻,這樣性能較好,但安全性較差,如果有前置防火墻可以采取這種方式
關閉防火墻 [root@localhost ~]# service iptables stop 關閉開機自啟動防火墻 [root@localhost ~]# chkconfig iptables off [root@localhost ~]# chkconfig --list|grep ipt -
RPM包安裝的服務的管理方法
- [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-fcnh6Ws9-1642691422235)(images/image-20220119121350826.png)]
-
獨立服務的啟動 兩種方法
- /etc/init.d/獨立服務名稱 start|stop|status|restart
- service 獨立服務名稱 start|stop|status|restart
- service 是紅帽子專有命令
- lsb_release -a ,查看當前Linux系統的發行版本
- CentOS7 ,使用 systemctl list-units
-
xinetd服務
- service xinetd restart 重啟xinetd 服務
-
工作管理
-
把進程放入后臺 兩種方法
- tar -zcf etc.tar.gz /etc &
- top 命令 ,ctrl+z 放入到后臺執行
- jobs [-PID] ,顯示當前的工作列表
- fg %工作ID ?;謴凸ぷ鞯角芭_
- bg %工作id 。放到后臺運行
-
系統資源查看
- vmstat 命令監控系統資源
- vmstat [刷新時間 時間間隔]
- dmesg 查看內核檢查信息
- free [-b|-k|-m|-g] ,查看內存使用情況,選項是大小單位
- cat /proc/cpuinfo ;查看CPUInfo
- uptime ,顯示系統啟動的時間
- uname ,查看系統內核,選項:-a,-r,-s
- lsof [選項],列出進程調用了那些文件,lsof -p 2124
-
linux 系統定時任務
-
讓計算在指定的時間執行指定為任務
-
crontab [選項] ,設置用戶的定時任務
-
-e :編輯 crontab定時任務
-
-l: 查詢crontab任務
-
-r:刪除當前用戶所有的 crontab任務
-
-
-
crontab -e
- 標準格式
- *** 5個猩定時,5個星分別代表分時日月周
- [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-ylAtirgk-1642691422236)(images/image-20220119201857657.png)]
-
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-VWsULURW-1642691422236)(images/image-20220119201938602.png)]
-
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-74h7Op7W-1642691422236)(images/image-20220119202113186.png)]
-
crontab -l ,查看當前系統中的定時任務
20220120-啟動管理
-
系統級別選項
-
系統運行級別
- 0:關機
- 1:單用戶模式,相當于Windows的安全模式,用于修復系統
- 2:不完全的命令行,不含NFS服務
- 3:完全的命令行模式,就是標準字符界面
- 4:系統保留
- 5:圖形模式
- 6:重啟動
-
CentOS 啟動過程管理
-
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-o9dn1kiM-1642691422236)(images/image-20220120191612630.png)]
-
? Bois 自檢》MBR
-
備份與恢復
- /root/目錄
- /home/目錄
- /var/spool/mail/目錄
- /etc/目錄
- 其他目錄
-
MySQL需要備份的數據
- 源碼包安裝的MySQL:/usr/local/mysql/data
- PRM包 安裝的MySQL: /var/lib/mysql/
-
備份策略
- 完全備份
- 增量備份
- 差異備份
-
dump 和 restore 命令
- dump命令
- 需要先安裝 dump
- yum -y install dump
- dump [選項] 備份后的文件 源文件或目錄
- df -h 查看分區
- 選項說明
- -level 0-9 ,備份策略
- -f 文件名:指備份后的文件名
- -u:備份完成后,把備份時間記錄在 、etc/dumpdates中
- -v:顯示備份過程中更多的輸出信息
- -j:調用bzlib庫壓縮文件
- -W:顯示允許被dump的分區等級及備份時間
總結
以上是生活随笔為你收集整理的linux基础知识复习学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html5手机网站需要加的那些meta标
- 下一篇: c语言输出变量案例,C语言经典例题100