红帽RHCE培训记录(一)
修改密碼
普通用戶使用passwd,后面不能帶參數,且修改后的密碼受密碼策略的影響(例如不能少于8位等)
root 用戶可以使用passwd 用戶名的方式修改任意用戶的密碼(包括它自己),且不受密碼策略的影響
命令與幫助
命令:用來實現某個功能
選項:用來修飾命令的功能
參數:你所要操作的對象(文件/目錄/用戶 …)
多個命令用;分割
選項的格式:
-l 選項的短格式
–lock 選項的長格式
短格式與長格式:
聯系:短格式是為了方便記憶
區別:短項的格式可以縮寫到一起,如ls -a和ls -s可以合并寫成ls -as,但長格式不能縮寫到一起。
搞清楚命令的含義
whatis 命令:顯示命令的簡短描述
whatis ls,whatis cal
查詢命令的選項
--help:查詢命令本身的幫助信息
man:查詢系統幫助手冊
info:查詢 info 文檔
例如
[student@example ~]$ ls --help Usage: ls [OPTION]... [FILE]... List information about the FILEs (the current directory by default). Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.[+FORMAT]表示要用特定的格式
date `+%Y-%m-%d %H:%M:%S`
文件系統
重要目錄:
/root:root 的家目錄
/home/username:普通用戶的家目錄
/usr:
/usr/bin:用戶命令
/usr/sbin:系統管理員命令
/usr/local:本地自定義軟件安裝目錄
/etc/:系統的配置文件
/var:系統服務的數據,如日志文件
/tmp:系統臨時文件目錄
/boot:系統啟動所需要的文件
/dev:包含一些特殊的設備文件,供系統用于訪問硬件
/proc和sys:反應當前系統的運行狀態
路徑
據對路徑:從根開始
相對路徑:從當前目錄開始
cd改變目錄
pwd 顯示當前工作目錄
改變到上層目錄
cd …
改變到上層工作目錄
cd -
改變到某個用戶的主目錄
cd ~username
一鍵回家目錄
cd
拷貝文件
cp file destination:
destination說明:
cp -r:拷貝目錄
創建文件
touch:創建一個空文件或者更新一個文件的時間戳
時間戳:
Access Time:文件最后一次被訪問的時間 atime
Modify Time:文件的內容最后一次被修改的時間 mtime
Change Time:文件的屬性最后一次改變的時間 ctime,其中文件的屬性包括文件的大小、權限、時間戳
stat查看文件信息
刪除文件
rm -r directory(遞歸)
rm -f file(強制)
創建目錄
mkdir 創建目錄
PS:Access、Modify、Change的區別
文件的Access\Modify\Change時間
Access 意思是“訪問”。
在終端上用 cat、more 、less、grep、sed、 cp 、file 一個文件時,此文件的 Access 的時間記錄都會被更新(空文件例外),純粹的 access 是不會影響 modify 和 change,但會受到 modify 行為的影響。
用ls -lu看到的文件時間是最近一次 access 的時間。對于目錄而言,只是進入目錄的話不會改變它的 access 時間,但只要用ls查看了此目錄的內容(無論在何處),這個目錄的 access 時間就會被更新。
Modify 意思是“更改(內容),“或者“寫入”。
當更改了一個文件的內容的時候,此文件的modify的時間記錄會被更新。用 ls -l 看到的文件時間是最近一次 modify 的時間。modify 的行為是三個行為中最有影響力的行為,它發生以后,會使文件的 access 記錄與 change 記錄也同時得到更新。對于目錄也是如此。
Change 改變(狀態或屬性)。
對一個文件或者目錄作 mv、chown、chgrp 操作后,它的 Change 時間記錄被更新,change 時間會受到 modify 行為的影響。用 ls -lc 看到的文件時間是最近一次 change 的時間。
用戶組和權限管理
UID 0 才是系統的超級用戶
root 用戶的 UID 0
普通用戶的 UID 通常從 1000 開始
系統的用戶名和UID信息通常存儲在 /etc/passwd 文件中
root:x:0:0:root:/root:/bin/bash用戶名:密碼占位符:UID:GID:用戶描述信息:用戶家目錄:運行的第一個應用程序
用戶描述信息,UID 在1000以后的才會顯示
運行的第一個應用程序,登錄 shell
/bin/bash 登錄
/sbin/nologin 禁止登錄
組
每一個組被分配一個 gid,保存在 /etc/group
用戶組:
私有組,屬組 在創建用戶時一并指定的組
附加組,公共組 將指定的用戶加入到組
每一個用戶都有自己的私有組,可以將用戶添加到別的組,該組稱為用戶的附加組;同一組中的所有用戶能共享屬于這個組的文件。
root:x:0:組名:組的密碼占位符:GID:組內的用戶(附加組),多個用戶用逗號隔開
用戶
創建一個 UID 為2000的用戶
useradd -u 2000 user2創建一個 UID 為2000,GID 為2000,附加組為1000,用戶描述信息為 demo user, 家目錄為 /home/user5,并且禁止登陸,用戶名為 user5 的用戶
useradd -u 2000 -G 1000 -c "demo user" -d /home/user5 -s /sbin/nologin user5usermod 修改用戶信息,用法與 useradd 類似;usermod -aG追加一個附加組
userdel 刪除用戶(只是刪除了 /etc/passwd 中的條目,用戶的相關文件(家目錄,郵箱)都沒有刪除,如果想刪除,需要用 userdel -r)
groupadd 添加用戶組
groupmod 修改組的信息
groupdel 刪除組
groupmems 管理組內成員
用戶密碼文件 /etc/shadow
兩個’!!'表示沒設置密碼
生成 SHA512 加密的密碼
openssl passwd -6 huawei
修改用戶密碼的信息 chage user1
gpasswd 去設置組的密碼
小節:
創建一個新用戶,系統會修改6個文件
/etc/passwd 密碼文件
/etc/shadow 用戶密碼文件
/etc/gshadow 組密碼文件
/etc/group 組文件
/home/ 家目錄下,用戶的家目錄
/var/spool/mail 給用戶發送郵件的文件
權限
drwxr-xr-x. 2 student student 6 Jul 10 15:20 Desktop第1位:d 表示目錄,-表示文件
第2-4位:文件擁有人的權限,'r’可讀,'w’可寫,'x’可執行
第5-7位:擁有組的權限
8-10位:其他人的權限
11位:SELINUX 安全標記
12位:硬鏈接
13位:擁有人
14位:擁有組
15位:大小
16為:文件最后一次被修改的時間
17位:文件名
r,w,x
r:可以看到目錄的內容
w:可以修改目錄的內容
x:可以進到該目錄
a是 all 的意思
chmod u+r,g+r,o+r chmod ugo+r chmod a+r三者等價
chattr 為文件添加特殊權限,即使 root 用戶,rm -rf也無法刪除
chattr +i test.txti 屬性即不能對此文件進行增加,修改,刪除
詳情見 Linux chattr與lsattr命令詳解
下掉
chattr -i file10
更改文件擁有人/擁有組
chown [OPTION]… [OWNER][:[GROUP]] FILE…
遞歸修改子目錄/文件的擁有權
chown -R
只能修改擁有組的命令:
chgrp
刪除一個文件的時候,并不是看用戶對該文件的權限,而是用戶對該文件所在文件夾的權限。
IO和管道
輸出重定向
file 重定向 stdout 以覆蓋文件
file 重定向 stdout 以追加到文件
2> file 重定向 stderr 以覆蓋文件
&> file 全部輸出重定向
&>> 全部輸出重定向并追加到同一個文件
管道符(|)能連接命令:
command1 | command2 | command3
將 command1 的標準輸出作為 command2 的標準輸入而不是輸出到屏幕
例:
ls /etc/ | more錯誤的輸出不能通過管道
| tee 三通管道
輸入重定向
使用 << END 從鍵盤重定向多行到 STDIN,接收所有的標準輸入知道輸入 END 字符
cat >> demo.txt << END
文本處理
vim 高級文本編輯器
顯示行號:
set nu
取消顯示
set nonu
跳轉到文件尾
G
跳轉到文件首
gg
跳轉到所在行行首
Home
跳轉到所在行行尾
End
跳轉到第10行
10 G
復制當前行
yy
將緩沖區中的內容粘貼10份
10 p
從上往下查找關鍵字 java
/java
從下往上查找關鍵字 java
?java
撤銷:
u 取消最近的一次操作
U 撤銷光標所在行的更改
Ctrl + r 取消最后一次“撤銷”
設置高亮查找后的內容
set hls
取消查找后的顏色標記
set nohls
多行注釋:
Ctrl + v 選中列
按上下鍵選擇行,進行標記
按大寫I
輸入#
按ESC
Ctrl+w,s,橫向分割屏幕
Ctrl+w,v,縱向分割屏幕
工具
-
cat
cat 打印一個或多個文件到標準輸出
cat file顯示行號
cat -n file將多個文件合并
cat file1 file2 > file3 -
more
分頁瀏覽文件內容(按空格翻頁)
more filemore 可以用在任意屏幕顯示不下的情況進行分頁,用管道
last | more -
less
與 more 類似,但支持搜索ps: man 命令是采用 less 來分頁的
-
head
查看一個文件的前10行并添加行號
cat -n /etc/passwd | head -
tail
查看一個文件的前10行并添加行號
cat -n /etc/passwd | tail使用 -f 選項將文件末尾追加的內容顯示在當前終端,對于監控日志文件非常有用。
取文件的15-20行
cat -n /etc/passwd | head -n 20 | tail -n 6 -
grep 通過關鍵字來提取文本
grep root /etc/passwd
正則表達式
egrep 支持擴展表達式,相當于 grep -E
監控多個關鍵字
tail -f /var/log/message | grep -E “error | warning”
cut 提取列或字段
cut -d “:” -f1 /etc/passwd
使用 -d 選項來指定分隔符
cut -d “:” -f1,6 /etc/passwd
bash shell
Ctrl + c 中斷命令的執行
Ctrl + l 清屏
Ctrl + a 跳轉到命令首
Ctrl + e 跳轉到命令尾
Ctrl + u 刪除或剪切光標之前的內容
Ctrl + k 刪除或剪切光標之后的內容
Ctrl + y 粘貼 Ctrl + u 或 Ctrl + k 剪切的內容
本地變量:
定義:變量名=變量值
引用:$變量名 或 ${變量名}
查看:echo $變量名
查看所有變量:set
取消變量:unset 變量名
查看所有別名:alias
用戶登錄shell類型
-
登錄shell
- 用戶登錄,包括圖形登錄
- su - 切換用戶
-
非登錄shell
- su 切換用戶
- 打開圖形終端
- 執行腳本
變量文件
-
登錄shell
- /etc/profile
- ~/.bash_profile
- /etc/bashrc
- ~/.bashrc
-
非登錄shell
- /etc/bashrc
- ~/.bashrc
登出 shell
~/.bash_logout
實現退出時清理痕跡
在 .bash_logout 里添加
進程管理
進程 ID(PID)唯一標識進程
UID,GID 和 SElinux 上下文決定文件系統的存取權限
- 通常繼承執行用戶的權限
- 子進程繼承父進程的屬性信息
用戶訪問一個文件,權限是怎么匹配的?
例如,admin用戶執行vim /etc/passwd
UID GID 用戶 admin root 進程 admin root 文件 root root最終是通過匹配 vim 進程和文件的 UID 和 GID 來進行文件的訪問。
但是存在如下的情況
UID GID 用戶 root root 進程 named named 文件 root root那么此時,匹配的是其它人的權限
ps 查看進程信息
- a 查看所有終端的進程
- u 打印進程所有者信息
- x 查看不屬于任何終端的信息
- -e 查看系統所有進程
- -f 查看額外的信息
- -o 指定格式輸出
常用組合:ps aux或者ps -ef
執行ps aux后
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.3 244628 13880 ? Ss 12:50 0:02 /usr/lib/syste第一列,USER:進程擁有人,一般誰來執行某個進程,該進程的擁有人就是誰。
第二列,PID:進程 PID,是進程的唯一標識,但是該 PID 可能會變,比如每次重啟一個服務,會被重新分配一個 PID (可以使用 systemctl reload service_name 的方式,使進程不會中斷,從而 PID 與上次相同)。pidof service_name 可以查看進程 PID。
第三列,%CPU,CPU 占用率。
第四列,%MEM,內存使用百分比。
第五列,VSZ,虛擬使用內存,應用程序申請的內存。
第六列,RSS,應用程序實際使用內存。實際內存不能超過虛擬內存。
第七列,TTY,指的是進程運行在哪個終端。
tty1, tty2:指的是圖形和字符界面的控制臺
pts:偽終端,圖形界面打開的終端,和遠程連接打開的終端叫偽終端
?:在終端出現之前就已經出現的進程,不屬于任何終端
第八列,STAT,狀態。
man ps,/state查看進程狀態代碼。
常見:R,運行;S,休眠;Z,僵尸進程;<,高優先級;N,低優先級;+,前臺運行;
第九列,START,進程開始時間。
第十列,TIME,上一次進程持續運行的時間。
第十一列,COMMAND,進程的名字或者運行進程的命令。
ps -eo pid,%cpu,cmd選擇查看指定的列。
top命令
swap 交換分區,虛擬內存:將硬盤的某部分作為內存使用
本質:將內存中暫時訪問不到的數據臨時存放在swap空間。
pgrep
pgrep
-U 查找某個用戶的進程 id
-G 查找某個組的進程 id
-P 根據父進程 id,查找出所有子進程 id
-I 不僅打印 pid,也打印進程名
信號
signal:
15 退出
9 強制退出
1 重讀配置文件
19 將后臺的進程暫停
通過 pid:kill [signal] pid
通過命令:kill [signal] comm
通過模式:pkill [-signal] pattern
默認是 -15
例如
kill -9 3775
pkill 與 pgrep 語法規則一樣
調度優先級
調度優先級決定對 cpu 的訪問
進程的 nice 值影響優先級,值范圍是-20 ~ 19,缺省為0,低 nice 值意味著高 cpu 優先級。
進程啟動的時候,用 nice -n 5 command 修改優先級,例如 nice -n 5 vim file.txt
進程啟動后,用 renice 5 PID 更改優先級,例如 renice 5 2789
前臺進程放在后臺運行
將前臺進程放在后臺運行,加個&
例如
firefox &
查看所有前臺進程在后臺運行的進程
jobs
將其恢復前臺運行:fg %jobnumber
其中 jobnumber 是通過 jobs 查看得到的
Ctrl + z,將前臺運行的進程暫停進入后臺
讓其在后臺繼續運行:bg %jobnumber
網絡配置
網關的作用:
當需要和其它網段通信時,需要設置網關。網關通常指向本地路由器接口的 IP。
接口類型:
以太網有線接口:en
無線局域網接口:wl
無線廣域網接口:ww
ifconfig 或 ip 命令配置網卡,臨時生效
network 服務,vim 編輯網卡配置文件,永久生效(systemctl restart network)
NetworkManager 服務管理網卡,永久生效。該服務提供兩種方式去管理,nmtui 是圖形化管理,nmcli 命令行管理。
ifconfig 命令
ifconfig 查看激活網卡的信息
ifconfig -a查看所有網卡(包括被禁用的)信息
ifconfig ens33 up/down 設置網卡激活和禁用
ifconfig ens33 ip/netmask 設置 IP 地址和子網掩碼
ip 命令
ip link 管理設備
ip link 查看設備信息
ip link shet ens160 up/down 設置網卡激活和禁用
ip addr 管理地址
ip addr 查看網絡地址(addr 可縮寫為 a)
ip addr add ip/netmask dev ens160 添加地址
ip addr del ip/netmask dev ens160 刪除地址
例如:ip a add 172.25.0.10/24 dev ens160
ip route 管理路由表
ip route 查看路由表信息
ip route add 目標地址ip[/netmask] via 網關地址 添加路由
ip route del 目標地址ip[/netmask] 刪除路由
DNS
DNS:將域名解析成 IP 地址;Windows 最多可以配置2個DNS地址,Linux 最多可以配置3個。
DNS 信息存儲在 /etc/resolv.conf 里面
nmcli 命令
網卡配置文件 /etc/sysconfig/network-scripts/ifcfg-<name>,之所以 ifconfig 和 ip 命令不是永久生效,是因為沒有寫到對應的文件里。
nmcli dev 管理設備
nmcli dev 查看設備狀態
nmcli dev connect/disconnect ens160 連接和斷開設備
nmcli con 管理配置文件
nmcli con 查看配置文件狀態
nmcli con add ifname ens224 con-name ens224-test 添加配置文件(con-name 是配置文件的名字,隨便起)
nmcli con mod ens224-test ipv4.addresses 172.25.0.10/24 ipv4.gateway 172.25.0.254 ipv4.dns 172.25.0.254 ipv4.method manual 修改配置文件
之所以設置 ipv4.method 為 manual,是因為默認使用 DHCP 去獲取 IP,這樣的話手動添加的 IP 地址是不生效的(優先使用 DHCP 獲取的)。
nmcli con up ens224-test 激活配置文件使其生效
nmcli con mod ens224-test +ipv4.addresses 172.25.0.11/24 使用 + 增加一個 IP(一個網卡可以配置多個 IP)
nmcli con mod ens224-test +ipv4.dns 8.8.8.8 增加一個 DNS
用 vim 編輯配置文件時,保存之后需要先 nmcli con reload 然后再 nmcli con up ens224-test
配置兩臺虛擬機之間網絡互通
可以把物理機中的虛擬網卡 VMnet1 和 VMnet8 當作虛擬機的交換機(虛擬交換機)。
VMnet1 對應虛擬機設置里的“僅主機模式”,VMnet8 對應虛擬機設置里的“NAT模式”
NAT模式和僅主機模式的區別在于,NAT模式可以將虛擬機的網絡請求通過物理機轉發出去,從而實現虛擬機上外網。僅主機模式下虛擬機無法上外網。
另外,VMware 還將物理機的網卡做成了虛擬網卡,如果選擇“橋接模式”,當虛擬機的網絡和物理機的網絡在同一網段,那么虛擬機即可直接連接外網。
修改主機名
hostname 查看主機名
hostnamectl set-hostname rhce 修改主機名
會被修改到 /etc/hosname 中
端口
標準服務端口配置文件 /etc/services
netstat
查看某個服務監聽在哪個端口,例如 netstat -tuanp | grep httpd
-t:tmp
-u:udp
-l:監聽
-a:所有的
-p: 查看 pid 和進程名
-n:顯示端口號和 IP 地址,不加顯示協議和域名
Proto: 使用的協議
Local Address: 本地監聽的地址和端口號
Foreign Address: 訪問者的地址和端口號
ss 命令用法與 netstat 命令相同。
雙網卡綁定
定位:用在服務器端,一張網卡損壞后另一張可以使用。通過某種方式,讓兩張網卡一起工作。
相關命令,bond 和 team
bond
將兩張物理網卡綁定成一個虛擬的網卡
舉例:
nmcli con add ifname bond0 type bond con-name bond0 mode active-backup miimon 100miion 設置一個時間(單位毫秒),兩張網卡互相確認對方是否還正常工作
nmcli con modify bond0 ipv4.addresses 192.168.153.120/24 ipv4.method manual nmcli con add ifname ens224 type ethernet slave-type bond con-name bond-port1 master bond0 nmcli con add ifname ens256 type ethernet slave-type bond con-name bond-port2 master bond0 nmcli con up bond0文件 /proc/net/bonding/bond0 可以查看主備
橋接網卡配置
KVM 的虛擬化默認需要我們自己去創建橋接網卡。VMWare自動將物理機的網卡做成了一個橋接網卡,如果我們在虛擬機中建立虛擬機的話,需要手動設置一個橋接網卡以便虛擬機中的虛擬機能訪問外網。
總結
以上是生活随笔為你收集整理的红帽RHCE培训记录(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RHCE培训笔记——Squid
- 下一篇: 转:AKF 扩展立方体