正式開始學習
超級手法:重置root密碼
1.在終端輸入代碼,確定系統版本。
[root@localhost Desktop]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.0 (Maipo)
2.重啓電腦在引導界面按下e鍵,進入內核編輯界面,如下圖。
3、在linux16這一行的末尾,追加參數rd.break 按下ctrl+X執行修改 後內核
4、進入到系統緊急救援模式。依次輸入以下代碼:
mount -o remount,rw /sysroot
chroot /sysroot
passwd
touch /.autorelabel
exit
reboot
圖中紅箭頭是我輸入的代碼。這裏出現一個錯誤,可能是我設置的密碼過於簡單重複的原因。提示:The password ia a palindrome這個密碼是迴文。
reboot後重新進入系統。密碼修改成功!Ya!
RPM紅帽軟件包
RPM有點像Windows系統中的控制面板,會建立統一的數據庫文件,詳細記錄軟件信息並能夠自動分析依賴關係。使得原先非常煩瑣頭疼的軟件安裝問題,變得簡單而有效。
格式:RPM ·參數 軟件包名稱
參數 | 作用 |
---|---|
-ivh | 安裝軟件包 |
-Uvh | 升級軟件包 |
-e | 卸載軟件包 |
-qpi | 查詢軟件描述信息 |
-qpl | 列了軟件文件信息 |
-qf | 查詢軟件屬於哪個RPM |
YUM軟件倉庫
Yum軟件倉庫便是爲了進一步降低軟件安裝難度和複雜度而設計的技術。Yum軟件倉庫可以根據用戶的要求分析出所需軟件包及其相關的依賴關係,然後自動從服務器下載軟件包並安裝到系統。與手機裏的應用商店很類似。
格式:YUM 參數 軟件包名稱
參數 | 作用 |
---|---|
repolist all | 列出所有倉庫 |
list all | 列出倉庫中所有軟件包 |
info | 查看所有軟件包信息 |
install 軟件包名稱 | 安裝指定的軟件包 |
reinstall 軟件包名稱 | 重新安裝軟件包 |
update 軟件包名稱 | 升級軟件包 |
remove 軟件包名稱 | 移除軟件包 |
clean all | 清除軟件包緩存 |
check-update | 檢查可升級的軟件包 |
grouplist | 查看系統中已經安裝的軟件包組 |
groupinstall 軟件包組 | 安裝指定的軟件包組 |
groupremove 軟件包組 | 移除指定的軟件包組 |
groupinfo 軟件包組 | 查詢指定軟件包組 |
systemd初始化進程
服務名稱 | 命令 |
---|---|
重啓服務 | systemctl restart 服務名稱 PID值會變 |
啓動服務 | systemctl start 服務名稱 |
停止服務 | systemctl stop 服務名稱 |
加入到啓動項 | systemctl enable 服務名稱 |
查看服務狀態 | systemctl status 服務名稱 |
重新加載配置文件 | systemctl reload 服務名稱 PID值不變 |
Linux開機過程
BIOS—>Boot loader—>加載內核—>Systemd
Systemd作爲Linux系統的第一個進程,它需要完成Linux系統中相關的初始化工作,爲用戶提供合適的工作環境。
system target(目標名稱) | 作用 |
---|---|
runlevel0.target, power off.target | 關機 |
runlevel1.target,rescue.target | 單用戶模式 |
runlevel2.target,multi-user.target | 多用戶文本界面 |
runlevel3.target,multi-user.target | 多用戶文本界面 |
runlevel4.target,multi-user.target | 多用戶文本界面 |
runlevel5.target,graphical.target | 多用戶的圖形界面 |
runlevel6.target,reboot.target | 重啓 |
emergency.target | 緊急Shell |
使用修改**/etc/systemd/system/default.target**文件的鏈接,設置默認的啓動模式。
強大好用的SHELL
shell是充當人與內核(硬件)之間的翻譯官,用戶把一些命令“告訴”終端,它就會調用相應的程序服務去完成某些工作。
主流LINUX系統默認的shell終端是bash(Bourme-Again SHell)
優點
1、可以調取歷史命令;
2、Tab補全功能;
3、批處理腳本 ;
4、實用的環境變量
2.3常用系統工作命令
命令的格式
命令 參數 對象
中間要有超過一個以上的空格,嚴格區分大小寫。
短格式參數:-字母 -a -l
長格式參數:–單詞 --all --list
參數合併的原則:只有短格式參數可以合併,合併後只需要一個減號 -al
{1} echo 輸出字符串或提取Shell變量的值
echo ·[參數] [字符串]
更多參數
{2}date 查看日期時間
date [參數] [+輸出格式]
例:date “+%Y-%m-%d”
danzeng@danzeng-PC:~$ date "+%Y-%m-%d"
2020-01-20
例:date “+%H:%M:%S”
danzeng@danzeng-PC:~$ date "+%H:%M:%S"
23:18:28
{3}reboot 重啓系統
{4}poweroff 關閉系統
默認只有root管理員纔可以關閉電腦
更多參數
{5}wget 在終端中下載網絡文件
wget [參數] [下載地址]
默認下載到當前目錄下。
wget http://www.linuxprobe.com/haha.rar
--2020-01-20 23:28:39-- http://www.linuxprobe.com/haha.rar
正在解析主機 www.linuxprobe.com (www.linuxprobe.com)... 222.222.88.16
正在連接 www.linuxprobe.com (www.linuxprobe.com)|222.222.88.16|:80... 已連接。
已發出 HTTP 請求,正在等待迴應... 301 Moved Permanently
位置:https://www.linuxprobe.com/haha.rar [跟隨至新的 URL]
--2020-01-20 23:28:39-- https://www.linuxprobe.com/haha.rar
正在連接 www.linuxprobe.com (www.linuxprobe.com)|222.222.88.16|:443... 已連接。
已發出 HTTP 請求,正在等待迴應... 301 Moved Permanently
位置:https://www.linuxprobe.com/ [跟隨至新的 URL]
--2020-01-20 23:28:39-- https://www.linuxprobe.com/
再次使用存在的到 www.linuxprobe.com:443 的連接。
已發出 HTTP 請求,正在等待迴應... 200 OK
長度:未指定 [text/html]
正在保存至: “haha.rar”
haha.rar [ <=> ] 92.62K --.-KB/s 用時 0.1s
2020-01-20 23:28:40 (967 KB/s) - “haha.rar” 已保存 [94843]
{6}ps 查看系統中的時程狀態
格式:ps [參數-aux]
R(運行):當前正爲用戶提供服務的進程
S(中斷):正在處於休眠狀態,等待服務的進程
D(不可中斷):不能被中斷的進程
Z(僵死):殭屍進程
T(停止):進程收到停止信號後停止運行
參數 | 作用 |
---|---|
-a | 顯示所有進程(包括其他用戶的進程) |
-u | 用戶以及其他詳細信息 |
-x | 顯示沒有控制終端的進程 |
danzeng@danzeng-PC:~$ ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 165892 10688 ? Ss 22:36 0:02 /sbin/init splash
root 2 0.0 0.0 0 0 ? S 22:36 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? I<
下略-----
{7}top命令 動態的監視進程活動與系統負載等信息
格式:top
更多參數
當前系統時間,系統已經開機的時間,系統當前終端的數量,
系統的負載情況(load average:)達到5時系統中程序有崩潰的可能,達到1是比較理想的狀態。後面的三個數字分別代表1分鐘、5分鐘、15分鐘的負載情況。
280個進程,2個正在運行,220等待運行,0個被停止,0個殭屍(zombie)進程。
CPU的負載%Cpu(s)us使用率,id空閒率
PID是進程的身份號碼
PR、NI是指進程的優先級。數值越低級別越高。
%CPU,%MEM,進程對CPU和內存的佔用比例。
TIME+ 進程運行時間
{7}pidof命令 查詢某個指定進程的PID值。
pidof [參數] [服務名稱]
更多參數
{8}kill命令 終止某個指定PID的服務進程
kill [參數][進程PID]
更多參數
{9}killall命令 用於終止某個指定名稱的服務所對應的全部進程
killall [參數][服務名稱]
更多參數## 2.4 系統狀態檢測命令
{1} ifconfig 用於獲取網卡配置與網絡狀態等信息,
格式爲“ifconfig [網絡設備] [參數]
更多參數
[root@localhost Desktop]# ifconfig
eno16777728: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 00:0c:29:cd:b9:72 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 0 (Local Loopback)
RX packets 258 bytes 21900 (21.3 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 258 bytes 21900 (21.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
網卡名稱:eno16777728
IP地址:
Mac地址:00:0c:29💿b9:72
RX:接收包
TX:發送包
{2}uname 用來查看系統內核版本
uname [參數-a]
更多參數
[root@localhost Desktop]# uname -a
Linux localhost.localdomain 3.10.0-123.el7.x86_64 #1 SMP Mon May 5 11:16:57 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux
系統名稱,主機名稱,內核版本,架構,打包時間
{3}uptime 查看系統負載情況
uptime
更多參數
[root@localhost Desktop]# uptime
14:12:59 up 2:18, 2 users, load average: 0.00, 0.06, 0.07
[root@localhost Desktop]#
{4}free 顯示當前系統中內存使用量信息
free [參數 -h]
更多參數
[root@localhost Desktop]# free -h
total used free shared buffers cached
Mem: 1.9G 909M 1.1G 9.7M 920K 298M
-/+ buffers/cache: 610M 1.3G
Swap: 2.0G 0B 2.0G
{5}who 查看當前登入主機的用戶終端信息
who [參數]
更多參數
顯示的是在主機系統登錄界面登錄的賬戶信息,不是在終端中切換的賬號信息。
{6}last 查看所有系統的登錄記錄
last [參數]
更多參數
這些登錄信息是以日誌式文件保存在本機中的,很容易被黑客篡改,並不能做爲確實的證據使用。
{7}history 顯示歷史執行過的命令
history [參數]
history -c 清空所有歷史命令
!編碼數字:重複執行編號所指命令一次
更多參數
{9}sosreport 收集系統配置及架構信息並輸出診斷文檔
sosreport
當linux系統發生故障時,可以用此命令收集信息,併發給技術支持人員。命令運行結束後會形成以下壓縮文件和MD5碼。
sosreport需要root權限才能運行
更多參數
Your sosreport has been generated and saved in:
/var/tmp/sosreport-localhost.localdomain-20200123105853.tar.xz
The checksum is: 3432060a3bf0424a2459e94e0aefc9ad
2.5 工作目錄切換命令
{1}pwd 顯示用戶當前所在目錄
pwd [參數] 更多參數
{2}cd 切換工作目錄
cd [目錄名稱]
cd… 進入上一級目錄
cd - 返回上一次目錄
cd ~ 進入家目錄
更多參數
{3}ls 顯示文件夾中的文件信息
ls [選項] [文件]
ls -a 顯示文件夾中所有文件
ls -l 顯示文件詳細信息
ls -al 顯示所有文件信息,包括隱藏文件
ls -ld 顯示當前文件夾信息
更多參數
2.6文本文件編輯命令
{1}cat 查看純文本文件(內容較少的)
cat [選項] [文件]
cat -n 顯示出行號
更多參數
{2}more 查看純文本文件(內容較多的)
more [選項] [文件]
在屏幕底部會顯示出閱讀量的百分比
更多參數
{3}head 查看純文本文件的前N行
head [選項] [文件]
head -n 文件名,查看前n行的內容
{4}tail 查看純文本文件的後n行
tail [參數] [文件]
tail -n 文件名,查看後n行的內容
更多參數
tail -f 文件名,持續刷新功能,適合查看“日誌文件”
{5}tr 替換文本文件中的字符
tr [原始字符] [目標字符]
tr [原始字符] [目標字符] >> [文件名] 可以將變更存儲到文件
需要與其他命令配合使用。
例如:
cat anaconda-ks.cfg | tr [a] [A] >> aaa.txt
[root@linuxprobe ~]# cat aaa.txt
#version=RHEL7
# System AuthorizAtion informAtion
Auth --enAbleshAdow --pAssAlgo=shA512
# Use CDROM instAllAtion mediA
只能一對一的更換,例如:不能將a替換成AAA。
更多參數
{6}wc 統計指定文本的行數、字數、字節數
wc [參數] 文本
-l 行,-w 字數, -c 字節數
若統計中文字數需要除以2
更多參數
{7}stat 查看文件的具體存儲信息和時間等信息
[root@linuxprobe ~]# stat anaconda-ks.cfg
File: ‘anaconda-ks.cfg’
Size: 1207 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 68976982 Links: 1
Access: (0600/-rw-------) Uid: ( 0/ root) Gid: ( 0/ root)
Context: system_u:object_r:admin_home_t:s0
Access: 2020-01-25 17:41:19.258557201 +0800
Modify: 2020-01-26 00:40:11.036988628 +0800
Change: 2020-01-26 00:40:11.036988628 +0800
Birth: -
Access 訪問(查看)時間,最後一次查看文件內容的時間。
Modify 編輯時間(對文件內容的編輯)
Change 更改文件“屬性”的時間
{8}cut 按“列”提取文本字符
cut [參數] 文本
按行搜索命令grep,只需要提供關鍵詞就可以。
按列需要提供兩個參數:-d 間隔符;-f 列數。
間隔符用來區分列的特徵,列數確定具體位置,這樣才能正確取出來。
更多參數
{9}diff 比較多個文本文件的差異
diff [參數] 文件
比較的數量是:兩個以上的文件。
比較的對象是:文本文件
–brief 長格式參數,用來比較兩個文件是否不同,不同時給出differ。
-c 短格式參數,詳細描述文件內容的差異。
貌似–brief參數,對圖片文件也是可以比較是否相同。
[root@linuxprobe Desktop]# cp aaa.jpg bbb.jpg
[root@linuxprobe Desktop]# diff --brief aaa.jpg bbb.jpg
[root@linuxprobe Desktop]# diff --brief aaa.jpg ccc.jpg
Files aaa.jpg and ccc.jpg differ
[root@linuxprobe Desktop]# diff -c aaa.jpg ccc.jpg
Binary files aaa.jpg and ccc.jpg differ
[root@linuxprobe ~]# diff --brief anaconda-ks.cfg initial-setup-ks.cfg
Files anaconda-ks.cfg and initial-setup-ks.cfg differ
2.7 文件目錄管理命令
{1}touch 創建空白文本文件&設置文件時間
touch [參數] [文件]
重點是設置文件的時間。
-a 設置文件的訪問時間
-m 設置文件內容的修改時間
-d 以上兩個同時設置
[root@linuxprobe Desktop]# ls -al aaa.jpg
-rw-r--r--. 1 root root 472421 Jan 16 21:59 aaa.jpg
[root@linuxprobe Desktop]# touch -d "2020-1-25 18:55" aaa.jpg
[root@linuxprobe Desktop]# ls -al aaa.jpg
-rw-r--r--. 1 root root 472421 Jan 25 2020 aaa.jpg
{2}cp 複製文件或目錄
cp [參數] 源文件 目標文件
-r 複製目錄
1.如果目標文件不存在,則執行正常複製
2.如果目標文件是目錄,則會把源文件得到該目錄中
3.如果有同名目標文件,則會詢問是否要覆蓋它
更多參數
{3}mv 剪切文件或將文件重新命名
mv [選項] 源文件 [目標路徑|目標文件]
更多參數
{4}dd 按照指定大小和個數的數據塊來複制文件或轉換文件
dd [參數]
這是一個非常神奇的命令,經常用在終端中讀取分區表的內容。
一個充滿哲學的設備文件/dev/zero 這個文件不佔用儲存空間,卻可以無限取出。
[root@linuxprobe ~]# dd if=/dev/sda1 of=EFI count=32 bs=64
32+0 records in
32+0 records out
2048 bytes (2.0 kB) copied, 0.00067123 s, 3.1 MB/s
dd還可以將CDROM中的光盤製作成一個iso文件。
bs與count都是用來指定容量的大小,只要能滿足需求,可隨意組合搭配方式。
最終取出的文件容量大小取爲bs×count的積。
[root@linuxprobe ~]# dd if=/dev/cdrom of=RHEL-server-7.0-x86_64-Linuxprobe.com.iso
7311360+0 records in
7311360+0 records out
3743416320 bytes (3.7 GB) copied, 40.9447 s, 91.4 MB/s
[root@linuxprobe ~]# ls
anaconda-ks.cfg initial-setup-ks.cfg
anaconda-ks.cfg.lll Music
Desktop Pictures
Documents Public
Downloads RHEL-server-7.0-x86_64-Linuxprobe.com.iso
EFI Templates
etc Videos
速度太快了,只用了40秒。代碼指令中並沒有指定count和bs
file 查看文件的類型
file 文件名
它是通過查看文件的頭部信息來獲取文件類型,而不是像Windows通過擴展名來確定文件類型的。
更多參數請點擊這裏
2.8 打包壓縮與搜索命令
這是紅帽認證必考的題目
{1}tar 對文件進行打包壓縮或解壓
tar [選項] [文件]
Linux系統中主要使用的是:.tar .tar.gz .tar.bz2格式
tar czvf 壓縮包 打包目標
tar xzvf 壓縮包
這裏可以不用“-”號。
-c用於打包,-x用於解壓
參數 | 作用 |
---|---|
-c | 創建壓縮文件 |
-x | 解開壓縮文件 |
-z | 用Gzip壓縮或解壓縮(常用) |
-j | 用bzip壓縮或解壓 |
-v | 顯示壓縮或解壓的過程 |
-f | 目標文件名 |
-C | 指定解壓到的目錄 |
{2}grep 在文本中執行關鍵詞搜索,並顯示匹配的結果
grep [選項] [文件]
行搜索:grep 關鍵詞 文件名稱
列搜索:cut -d 間隔符 -f 列號
參數 | 作用 |
---|---|
-n | 顯示行號 |
-v | 反向選擇——僅列出沒有“關鍵詞”的行 |
-i | 忽略大小寫 |
-b | 將可執行文件(binary)當作文本文件(text)來搜索 |
例:查找出當前系統中不允許登錄系統的所有用戶信息
[root@linuxprobe Desktop]# grep -n /sbin/nologin /etc/passwd
2:bin:x:1:1:bin:/bin:/sbin/nologin
3:daemon:x:2:2:daemon:/sbin:/sbin/nologin
4:adm:x:3:4:adm:/var/adm:/sbin/nologin
5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
9:mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10:operator:x:11:0:operator:/root:/sbin/nologin
-----以下省略-----
find 按照指定條件來查找文件
find [查找路徑] 尋找條件 操作
這是見證奇蹟的時刻,“linux系統中一切都是文件”。這是什麼都可以搜索。
尋找條件:文件名、大小、修改時間、權限等信息。
-name 匹配文件名
-user 匹配所有者
-size 匹配文件大小(+50KB,-50KB)
-exec {} ; {}表示find命令搜索出的每一個文件,並且命令的結尾必須是“;"