systemctl start foo.service
啓動服務
systemctl restart foo.service
重啓服務
systemctl stop foo.service
中止服務
systemctl reload foo.service
不重啓服務下從新加載配置文件
systemctl status foo.service
查看服務狀態
systemctl enable foo.service
設置服務開機自動啓
systemctl disable foo.service
設置服務開機不啓動
systemctl is-ebabled foo.service
查看服務是否開機自啓
systemctl list-unit-files --type=service
查看各個界別下的服務的啓動與禁用狀況node
man [數字] 命令|配置文件 獲取命令,配置文件的幫助信息
whatis 命令 查看命令幫助信息中的NAME字段
help 命令 獲取shell內置命令的幫助信息,which等命令找不到路徑的命令都是shell內置命令(bash)
apropos 配置文件信息 查看配置文件信息中的name字段
echo 字符
輸出字符
echo $變量
輸出變量linux
date
查看系統當前時間
date "+%Y-%m-%d %H:%M:%S"
按照年月日小時分鐘秒格式
date -s "20190101 8:30:00"
設置當前日期爲2019年1月1日8:30分算法
reboot
重啓shell
shutdown [選項] 時間 關閉 -c 取消前一個關機命令 -h 關機 now.立刻關機 20:20定時關機 -r 重啓
系統運行級別 /etc/inittab數據庫
0 關機 1 單用戶 2 不徹底多用戶,不含NFS服務 3 徹底多用戶 4 未分配 5 圖形界面 6 重啓
runlevel
查詢系統的運行級別apache
logout
退出登錄vim
poweroff
關機windows
-a 顯示全部進程,包括其餘用戶的進行 -u 用戶以及其它詳細信息 -x 顯示沒有控制終端的進程
top
動態監視進程活動與系統負載等信息,相似windows任務管理器緩存
pidof [參數] [服務名]
查詢服務進程的PID值安全
kill [參數] [進程ID]
終止某個pid的服務進程
kiliall [參數] [服務名稱]
終止某個指定名稱的服務所對應的所有進程,相似windows任務管理器的結束進程樹
alias rm='rm -i'
定義一個命令的別名
write 用戶名 給在線用戶發信 Ctrl+D 保存併發送
wall [發送信息] 給全部在線用戶發送廣播信息
ping [選項] ip地址 -c num 指定ping的次數
mail [用戶名] 直接mail是收信,mail 用戶名是給用戶發信 Ctrl+D 保存發送 h 返回郵件列表 d num 刪除郵件 q 退出
ifconfig [網絡設備] [參數] 獲取網卡配置與網絡狀態等信息 ifconfig 網卡名 IP地址 給網卡設置IP地址,臨時生效,重啓失效 ifconfig 網卡名:1 IP地址 增長虛擬網卡,綁定多個IP
uname [-a]
查看系統名稱,系統內核,主機名,內核髮型版本,節點名,系統時間,硬件名稱,硬件平臺,處理器類型,操做系統名稱等
uptime
查看系統的負載信息
free [-h]
顯示系統內存的使用量
who [參數]
查看當前登錄主機的用戶終端信息
格式:登錄的用戶名 登錄終端(tty本地,pts遠程終端) 登錄時間 登錄的主機地址
w [參數] [用戶名]
顯示目前登入系統的用戶信息
last [參數]
查看全部系統的登錄記錄
lastlog [選項] [用戶] 顯示全部系統用戶的最後登錄信息 -u uid 查看指定用戶的最後登錄信息
setup 配置網絡
netstat [選項] 顯示網絡相關信息 -t tcp協議 -u udp協議 -l 監聽 -r 路由 -n 顯示ip地址和端口號 netstat -an 查看本機全部的網絡鏈接 netstat -tlun 查看本機監聽的端口 netstat -rn 查看本機路由表
traceroute ip|域名
顯示數據包到主機間的路徑,windows中的tracert
history [參數]
顯示歷史執行過的命令 -c 刪除歷史命令記錄
sosreport
收集系統配置和架構信息並輸出診斷文檔
pwd
顯示用戶當前所處的工做目錄
cd [目錄名稱] 切換工做路徑 cd - 切換上一個目錄 cd ~ 切換到家目錄 cd ~username 切換到username的家目錄
文件類型(d目錄,l軟連接,-文件) 權限(ugo) 引用計數(連接) 全部者 所屬組 文件大小(字節) 文件最後修改時間
ls [選項] [文件] 顯示目錄文件信息 ls -a all,查看所有文件,包括隱藏文件 ls -d 查看目錄屬性 ls -l long,查看詳細信息 ls -h 顯示容易閱讀的文件大小 ls -i 查看文件的i節點
cat [參數] [文件名] 查看內容較少的純文本文件 cat -n 顯示行號
tac 文件
倒着顯示文本,cat的倒着寫
more [選項] 文件
查看內容較多的純文本文件
|快捷鍵|功能|
|----|----|
|Q|q|退出|
|enter|換行|
|空格\f|翻頁|
less 文件名
分頁顯示文件內容
|快捷鍵|功能|
|----|----|
|enter|換行|
|空格\f|翻頁|
|向上箭頭|向上換行|
|/關鍵詞|搜索關鍵詞|
|n|下一個搜索的關鍵詞|
|pageup|向上翻頁|
head [選項] [文件] 查看純文本文檔的前N行 head -n 20 [文件名] 查看前20行
tail [選項] [文件] 查看純文本文件的後N行 tail -n 20 文件名 查看後20行 tail -f 文件名 持續刷新文件內容
tr [原始字符] [目標字符] 替換文本文件中的字符 cat 1.txt | tr a m 將1.txt中的a替換成m,實際文件中並無改變,只在輸出時改變
wc [參數] 文本 統計指定文本的行數 wc -l 只顯示行數 wc -w 只顯示單詞數 wc -c 只顯示字節數
stat 文件名
查看文件的具體存儲信息和時間等信息
cut [參數] 文本 按列提取文本字符 -d 分隔符 -f 取的列數 cut -d: -f1 /etc/passwd 提取passwd文件中的第一列(用戶名)信息
diff [參數] 文件... 比較多個文本文件的差別 --brief 比較兩個文件是否相同 diff --brief 1.txt 2.txt -c 詳細比較多個文件的差別之處 diff -c 1.txt 2.txt
硬連接至關於 cp -p + 同步更新
經過i節點判斷軟硬連接,軟連接在ls -l時會有箭頭指向->
硬連接不能針對目錄建立,不能跨分區建立
ln [參數] 源文件 目標文件 -s 建立軟連接
touch [選項] [文件...] 建立空白文件或設置文件時間 touch -a 修改文件讀取時間(atime) touch -m 修改文件修改時間(mtime) touch -d "2019-09-01" 文件名 同時修改atime和mtime
mkdir [選項] 目錄名 建立空白目錄 mkdir -p a/b/c 遞歸建立目錄
rmdir 目錄名
刪除空目錄
cp [選項] 源文件1,2,3 目標文件 複製文件或目錄 cp -p 保留原始文件的屬性 cp -d 若對象爲連接文件,保留連接文件的屬性 cp -r 遞歸複製(用於目錄) cp -i 若是目標文件存在,則詢問是否覆蓋 cp -a 至關於-pdr
mv [選項] [源文件] [目標路徑|目標文件名] 剪切文件或者文件重命名
rm [選項] 文件 刪除文件或目錄 rm -f 文件 強制刪除,不顯示確認信息 rm -r 目錄名 刪除目錄和目錄裏的文件
dd [參數] 按照指定大小和個數的數據塊來複制文件或者轉換文件 if 輸入的文件名 of 保存的文件名 bs 設置每一個塊的大小 count 設置要複製塊的個數 dd if=/ect/passwd of=newpass count 1 bs=560m 從passwd文件中取出一個560m的數據塊,保存成newpass dd if=/dev/cdrom of=redhat7.0.iso 將光驅設備中的光盤製做成iso格式的鏡像文件
file [文件|目錄]
查看文件類型
只能壓縮文件,不能壓縮目錄
不保留源文件
默認後綴 .gz
gzip 文件名 壓縮 -d 解壓縮 解壓縮 gunzip 壓縮包 解壓縮
壓縮文件名 file.tar.gz 通常都是先tar而後gzip壓縮,tar命令配合-z使用
tar [選項] [壓縮後的文件名(配合-f使用)] [文件] 對文件壓縮或解壓 -c 建立壓縮文件 -x 解壓 -t 查看壓縮包中文件 -z 用Gzip壓縮或解壓 -f 指定文件名(壓縮或解壓時均可以使用) -j 用bzip2壓縮或解壓 -v 顯示壓縮和解壓過程 -f 目標文件名 -P 保留原始權限和屬性 -p 使用絕對路徑來壓縮 -C 指定解壓到目錄 tar -czvf 文件名.gz 打包目錄 將目錄使用Gzip方式打包 tar -xzvf 壓縮包 -C 解壓目錄 將壓縮包解壓到指定目錄
zip [選項] [壓縮後的文件名] [文件或目錄] 壓縮文件或目錄 -r 壓縮目錄
unzip [壓縮文件] 解壓zip文件
bzip2 [選項] [文件] 壓縮文件 -k 壓縮後保留源文件
grep [選項] [文件] 在文本中執行關鍵詞搜索並顯示匹配的結果 -b 將可執行文件(binary)看成文本文件來搜索 -c 僅顯示找到的行數 -i 忽略大小寫 -n 顯示行號 -v 反向選擇--僅列出沒有關鍵詞的行 grep 1111 1.txt 在1.txt中搜索1111
find [查找路徑] 尋找條件 操做 按照指定條件查找文件 -name 匹配名稱 -iname 不區分大小寫 -perm 匹配權限(mode爲徹底匹配,-mode爲包含便可) -user 匹配全部者 -group 匹配全部組 -mtine -n +n 匹配修改內容的時間(-n是n天之內,+n是n天之前) -atime -n +n 匹配訪問文件的時間 -ctime -n +n 匹配修改文件權限的時間 -nouser 匹配無全部者的文件 -nogroup 匹配無全部組的文件 -newer f1 f2 匹配比文件f1新可是比f2舊的文件 -a 兩個條件同時知足 find / -size+1600 -a -size -2000 -o 兩個條件知足一個便可 --type b/d/v/p/l/f 匹配文件類型(塊設備/目錄/字符設備/管道/連接文件/文本文件) -inum 根據i節點查找 -size 匹配文件大仙(+50k是查找超過50k的文件,-50k是查找小於50k的文件,50是等於50k) -prune 忽略某個目錄 -exec …… {} \; 後面跟用於進一步處理搜索結果的命令 find / -name inittab -exec ls {} \; -ok …… {} \; 詢問是否執行,後面跟用於進一步處理搜索結果的命令 find / -name inittab -ok ls {} \; find /etc -name "host*" 搜索etc目錄下全部以host開頭的文件 find / -perm -4000 搜索整個系統中權限中包括SUID權限的全部文件 find / -user mrhonest -exec cp -a {} /root/findfile/ \; 在整個文件系統中找出全部歸屬於mrhonest用戶的文件並複製到root/findfile目錄,({}表示find命令搜索出的每個文件)
locate 文件名 搜索文件,基於資料庫查找文件,/tmp等臨時文件目錄的文件不會更新到資料庫中 -i 不區分大小寫 updatedb 更新資料庫,此命令直接使用,updatedb不是參數
which 命令 搜索命令所在目錄及別名信息
whereis 命令 搜索命令所在目錄及幫助信息位置
標準輸入重定向(STDIN,文件描述符爲0):默認從鍵盤輸入,也能夠從其它文件或者命令中輸入
標準輸出重定向(STDOUT,文件描述符爲1):默認輸出到屏幕
錯誤輸出重定向(STDERR,文件描述符爲2):默認輸出到屏幕
- 輸入重定向
命令 < 文件 將文件做爲命令的標準輸入 命令 << 分界符 從標準輸入中讀入,知道碰見分界符才中止 命令 < 文件1 > 文件2 將文件1做爲命令的標準輸入並將標準輸出到文件2 wc -w < 1.txt 把1.txt中的內容交給wc統計
命令 > 文件 將標準輸出重定向到一個文件中(清空原有的文件數據) 命令 2> 文件 將錯誤輸出重定向到一個文件中(清空原有文件的數據) 命令 >> 文件 將標準輸出重定向到一個文件中(追加到原有的內容後面) 命令 2>> 文件 將錯誤輸出重定向到一個文件中(追加到原有的內容後面) 命令 >> 文件 2>&1 將標準輸出與錯誤輸出共同寫入到文件中(追加到原來的內容後面) 命令 &>> 文件 同上,將標準輸出與錯誤輸出共同寫入到文件中(追加到原來的內容後面)
grep "/sbin/nologin" /etc/passwd | wc -l 統計被限制登錄用戶的數量 ls -l /etc | more 用翻頁的形式查看/etc下的文件列表信息 echo "111111" | passwd --stdin root 一條命令修改root用戶密碼
* 匹配多個字符 ? 匹配單個字符 [0-9] 匹配0-9之間的單個數字字符 [abc] 匹配a,b,c單個字符 [a-z] 匹配a-z的單個字符
\ 反斜槓:後面的變量變爲單純的字符串 '' 單引號:轉義其中全部的變量爲單純的字符串 "" 雙引號:保留其中的變量屬性,不進行轉義處理 `` 反引號:把其中的命令執行後返回給結果
mrhonest = 5 定義變量 echo "$mrhonest" 輸出變量 echo '$mirhonest' 輸出$mrhonest
HOME 用戶的主目錄 SHELL 用戶在使用的shell解釋器名稱 HISTSIZE 輸出的歷史命令記錄條數 HISTFILESIZE 保存的歷史命令記錄條數 MAIL 郵件保存路徑 LANG 系統語言,語系名稱 PANDOM 生成一個隨機數字 PS1 Bash解釋權的提示符 PATH 定義解釋器搜索用戶執行的命令路徑 EDITOR 用戶默認的文本編輯器
WORKDIR=/HOME/WORK 建立變量 export WORKDIR 提高爲全局變量
i 輸入模式,光標當前位置 a 輸入模式,光標後覺得 o 輸入模式,光標下面插入一個空行 ESC 退出寫入模式
dd 刪除(剪切)光標所在的整行 5dd 刪除(剪切)光標開始的5行 yy 複製光標所在的整行 5yy 複製光標處開始的5行 n 顯示搜索命令定位到的下一個字符串 N 顯示搜索命令定位到的上一個字符串 u 撤銷上一步的操做 p 將以前刪除(dd)或複製(yy)過的數據粘貼到光標後面
:w 保存 :q 退出 :q! 強制退出(放棄對文檔的修改內容) :wq! 強制保存退出 :set nu 顯示行號 :set nonu 不顯示行號 :命令 執行該命令 :整數 跳轉到該行 :s/one/two 將光標所在行的第一個one替換成two :s/one/two/g 將光標所在行的全部one替換成two :%s/one/two/g 將全文中的全部one替換成two ?字符串 在文本中從下至上搜索該字符串 /字符串 在文本中從上到下搜索該字符串
運行
bash shell.sh
執行sh腳本$0 當前shell腳本程序的名稱 $# 參數的總數 $* 全部位置的參數值 %? 顯示上一次命令的執行返回值 $N 第N個參數的值
判斷用戶的參數
測試語句格式 [ 條件表達式 ] 條件表達式兩邊均有一個空格
文件測試語句
-d 測試文件是否爲目錄類型 -e 測試文件是否存在 -f 判斷是否爲通常文件 -r 測試當前用戶是否具備權限讀取 -w 測試當前用戶是否具備權限寫入 -x 測試當前用戶是否具備權限執行
邏輯測試語句
&& 與 || 或 ! 非
整數值比較語句
** 0 = true ** ** 非0的數字 = false **
-eq 是否等於 -ne 是否不等於 -gt 是否大於 -lt 是否小於 -le 是否等於或小於 -ge 是否大於或等於
字符串比較語句
= 比較字符串內容是否相同 != 比較字符串內容是否不一樣 -z 判斷字符串內容是否爲空
if條件測試語句
```shell
if [ 表達式 ]
then
若是表達式成立,執行
fi
```shell if [ 表達式 ] then 若是表達式成立,執行 esle 表達式不成立時,執行 fi
if [ 表達式 ] then 若是表達式成立,執行 elif [ 表達式 ] 表達式成立時,執行 else 以上兩個表達式均不成立時,執行 fi
for 變量名 in 取值列表 do 命令序列 done
while 條件測試操做 do 命令序列 done
case 變量值 in 模式1 命令序列1 ;; 模式2 命令序列2 ;; …… *) esac
at 23:30 設定任務時間 at>systemctl restart httpd 設定任務詳情 at>Ctrl+D結束編寫 at -l 查看任務 atrm 任務序號 刪除任務
echo "systemctl reatart httpd" | at 23:30
一條命令創建任務
crontab -e 建立,編輯週期任務 crontab -l 查看任務 crontab -u 編輯他人的計劃任務
分,時,日,月,星期,命令 任務格式
8,9,12 設置月份,表示8月,9月,12月
12-15 設置日期,表示12日到15日
/2 執行任務的間隔時間,每隔2分鐘執行一次
計劃任務中的"分"字段必須有數值,不能空或者是號,"日"和"星期"字段不能同時使用
usage: crontab [-u user] file crontab [-u user] [ -e | -l | -r ] (default operation is replace, per 1003.2) -e (edit user's crontab) -l (list user's crontab) -r (delete user's crontab) -i (prompt before deleting user's crontab) -s (selinux context)
*/2 * * * * echo
date>> $HOME>test.txt
每隔2分鐘輸出時間到文件
管理員UID爲0
系統用戶UID爲1-999
普通用戶UID從1000開始
用戶組號碼:GID
useradd [選項] 用戶名 建立新用戶 -d 指定用戶的家目錄(默認爲/home/username) -e 帳號到期時間,格式爲:YYYY-MM-DD -u 指定用戶的默認UID -g 指定一個初始的已存在的用戶基本組 -G 指定一個或多個擴展用戶組 -s 指定該用戶默認的shell解釋器
`groupadd [選項] 組名 建立用戶組`
usermod [選項] 用戶名 修改用戶屬性 -c 填寫用戶帳戶的備註信息 -d -m -d和-m連用,可從新指定用戶的家目錄並自動吧舊的數據轉移過去 -e 帳戶到期時間,格式爲:YYYY-MM-DD -g 變動所屬用戶組 -G 變動擴展用戶組 -L 鎖定該用戶禁止其登錄系統 -U 解鎖用戶,容許登錄系統 -s 變動默認終端 -u 修改用戶的UID
passwd [選項] [用戶名] 修改用戶密碼,過時時間,認證信息等 -l 鎖定用戶,禁止登錄 -u 解鎖用戶,容許登錄 --stdin 容許經過標準輸入修改用戶密碼,如 echo "newpassword" | passwd --stdin username -d 用戶可用空密碼登錄系統 -e 強制用戶在下次登陸時修改密碼 -S 顯示用的密碼是否唄鎖定,以及密碼所採用的加密算法名稱
userdel [選項] 用戶名 刪除用戶 -f 強制刪除用戶 -r 同時刪除用戶及家目錄
表明符號 | 權限 | 對文件的含義 | 對目錄的含義 |
---|---|---|---|
r | 讀 | 能夠查看文件內容 | 能夠列出目錄中的內容 |
w | 寫 | 能夠修改文件內容 | 能夠在目錄中建立,刪除文件 |
x | 執行 | 能夠執行文件 | 能夠進入目錄 |
- : 普通文件
d : 目錄文件
l : 連接文件
b : 塊設備文件
c : 字符設備文件
p : 管道文件
權限分配 文件全部者 文件所屬組 其餘用戶
r:4 讀
w:2 寫
x:1 執行
SUID
SUID是一種對二進制程序進行設置的特殊權限,可讓二進制程序的執行者臨時擁有屬主的權限(僅對擁有執行權限的二進制程序有效)
SGID
讓執行者臨時擁有屬組的權限(對擁有執行權限的二進制程序進行設置)
在某個目錄中建立的文件自動繼承該目錄的用戶組(只能夠對目錄進行設置)
SBIT
設置SBIT(粘滯位|保護位),可確保用戶只能刪除本身的文件
chmod -R o+t 文件|文件夾
設置SBIT特殊權限
-R 遞歸
chmod [參數] 權限 文件或目錄名 設置文件或目錄權限 chmod -R o+t 文件|文件夾 設置SBIT特殊權限 chmod [{ugoa}{+-=}{rwx}] 文件或目錄 chmod u+w,g-w,o=rwx 文件或文件名 chmod mode=777 文件或目錄
-R 遞歸
只有管理員才能夠執行
chown [參數] 全部者:所屬組 文件或目錄名 設置文件或目錄的全部者和所屬組 chown username 文件或目錄 將目錄的全部者改成username
chgrp [參數] 用戶組 文件或目錄 更改文件或目錄的所屬組 -R 遞歸
默認新建的文件(非目錄)沒有x執行權限
umask [參數] [缺省權限值] 顯示,設置文件的缺省權限 -S 以rwx形式顯示 ## 文件的隱藏屬性 + chattr ```shell chattr [+|-][參數] 文件 設置文件的隱藏權限 i 沒法對文件進行修改,若對美劇設置了該參數,則僅能修改其中的子文件內容,不能新建或刪除文件 a 僅容許補充(追加)內容,沒法覆蓋/刪除內容(Append Omy) S 文件內容在變動後當即同步到硬盤(sync) s 完全從硬盤中刪除,不可恢復(用0填充原文件所在硬盤區域) A 再也不修改這個文件或目錄的最後訪問時間(atime) b 再也不修改文件或目錄的存取時間 D 檢查壓縮文件中的錯誤 d 使用dump命令備份時忽略本文件/目錄 c 默認將文件或目錄進行壓縮 u 當刪除該文件後依然保留其在硬盤中的數據,方便往後恢復 t 讓文件系統支持尾部合併(tail-merging) X 能夠直接訪問壓縮文件中的內容
lsattr
lsattr [參數] 文件
顯示文件的隱藏權限
setfacl
setfacl [參數] 文件名稱 管理文件的ACL(訪問控制權限)規則getfacl
getfacl 文件名稱
顯示文件上設置的ACL信息
su [-] 用戶名
切換用戶身份,-表明把環境表裏信息也變動爲新用戶的相應信息shell sudo [參數] 命令名稱 給普通用戶提供額外的權限來完成本來root管理員才能完成的任務 -h 列出幫助信息 -l 列出當前用戶可執行的命令 -u用戶名或UID值 以指定的用戶身份執行命令 -k 狀況密碼的有效時間,下次執行sudo時須要再次進行密碼認證 -b 在後臺執行指定的命令 -p 更改詢問密碼的提示語
visudo
相對路徑 以當前路徑開始
/boot 開機所需文件--內核,開機菜單以及所需配置文件等
/dev 以文件形式存聽任何設備與接口
/etc 配置文件,系統內全部採用默認安裝方式的服務的配置文件所有保存在這個目錄中,如用戶帳戶密碼,服務啓動腳本,經常使用服務的配置文件等
/home 用戶家目錄
/bin 存放單用戶模式下還能夠操做的命令,全部用戶都可以執行
/sbin 保存和系統環境設置相關的命令,只有超級用戶可使用,部分命令普通用戶容許查看
/usr/bin 存放系統命令的目錄,全部用戶均可以執行,這些命令和系統啓動無關,可是在單用戶模式下不能執行
/usr/sbin 存放根文件系統沒必要要的系統管理命令,例如多數服務程序
/lib 開機過程當中須要的命令,系統調用的函數庫保存位置
/media 用於掛在設備文件的目錄,建議掛載軟盤,光盤
/opt 放置第三方的軟件,不建議使用,建議安裝到/usr/local中
/root 系統管理員的家目錄
/srv 一些網絡服務的數據文件目錄,一些系統服務啓動後,在這個目錄保存所需的數據
/tmp 任何人都可使用的"共享"臨時目錄
/proc 虛擬文件系統,列入系統內核,進程,外部設備及網絡狀態等
/usr/local 用戶自行安裝的軟件
/usr/sbin linux系統開機時不會使用到的軟件/命令/腳本
/usr/share 幫助與說明文件,也能夠放置共享文件
/var 動態數據保存目錄,主要存放動態變化的文件,如日誌等
/lost+found 當文件系統發生錯誤時,將一些丟失的文件片斷存在在這裏,這個目錄只在每一個分區中出現
/mnt 掛載目錄,建議掛載U盤,移動硬盤等
/misc 掛載目錄,建議掛載NFS服務的共享目錄
/proc 虛擬文件系統,存在內存中,存在硬件信息
/sys 虛擬文件系統,存放內核相關信息
/usr 系統軟件資源目錄,相似c:/windows文件夾
IDE設備 /dev/hd[a-d]
SCSI/STAT/U盤 /dev/sd/[a-p]
軟驅 /dev/fd[0-1]
打印機 /dev/lp[0-15]
光驅 /dev/cdrom
鼠標 /dev/mouse
磁帶機 /dev/st0或/dev/ht0
邏輯分區從編號5開始
Ext3 是一款日誌文件系統,可以在系統異常宕機時避免文件系統資料丟失,並能自動修復數據的不一致與錯誤
Ext4 Ext3的改進版本,支持的存數容量高達1EB,可以有無限多的子目錄,Ext4文件系統可以批量分配block塊,提升了讀寫效率
XFS 是一種高性能的日誌文件系統,最大支持存儲容量18EB
super block 硬盤地圖
mount 文件系統 掛載目錄 掛載文件系統 -a 掛載全部在/etc/fstab中定義的文件系統 -t 指定文件系統的類型 mount /dev/sdb2 /backup 把設備/dev/sdb2掛載到/backup目錄
etc/fstab
** 設備文件 掛載目錄 格式類型 權限選項 是否備份 是否自檢**
設備文件 通常爲設備的路徑+設備名稱,也能夠寫惟一的識別碼(UUID)
掛載目錄 指定要掛載到的目錄,需掛載前建立好
格式類型 指定文件系統的格式,如Ext3,Ext4,XFS,SWAP,iso9600(光盤設備)等
權限選項 若設備爲defaults,則默認權限問:rw,suid,dev,exec,auto,mouser,async
是否備份 若爲1則開機後使用dump進行磁盤備份,爲0則不備份
是否自檢 若爲1則開機後自動進行紫盤自檢,爲0則不自檢
umount
umount [掛載點/設備文件]
撤銷已掛載設備文件,如umount /dev/sdb2
fdisk [磁盤名稱] 管理磁盤分區 m 查看所有可用的參數 n 添加新的分區 d 刪除某個分區信息 l 列出全部可用的分區類型 t 該表某個分區的類型 p 查看分區信息 w 保存並退出 q 不保存直接退出
mkfs.*
mkfs.* 磁盤名稱
按照*的文件系統格式格式化磁盤du [選項] [文件] 查看文件數據佔用量 du -sh /* 查看系統根目錄下全部文件佔用多大的硬盤空間
mkswap 目錄名 格式化交換分區 swapon 目錄名 將SWAP分區掛載到系統中
quota
軟限制 當達到軟限制時會提示用戶,但仍容許用戶在限定的額度內繼續使用
硬限制 當達到硬限制時會提示用戶,並強制終止用戶的操做
xfs_quota [參數] 配額 文件系統 -c 以參數的形式設置要執行的命令 -x 專家模式 xfs_quota -x -c 'limit bsoft=3m bhard=6m isoft=2 ihard=6 tom' /boot 設置用戶tom對/boot目錄容量的配額:軟限制3MB,硬限制6MB,建立文件數量的軟限制3個,硬限制6個
edquota [參數] [用戶] 編輯用戶的quota配額限制 -u 針對用戶設置 -g 針對用戶組設置
硬連接(hard link) "指向源文件inode的指針",不能跨分區對目錄文件進行連接
軟連接(符號連接[symbolic link]) 僅包含連接文件的路徑名,可跨文件系統進行連接+ inin [選項] 目標 連接文件 建立連接文件 -s 建立軟連接"符號連接",不帶-s參數默認建立硬連接 -f 強制建立文件或目錄連接 -i 覆蓋前詢問 -v 顯示建立連接的過程
RAIL 0技術可以有效的提高硬盤數據的吞吐速度,但不具有數據備份和錯誤修復能力
將數據同時寫入到多塊硬盤設備上(鏡像或備份),當其中某一塊應硬盤發生故障後,通常當即自動以熱交換的方式來恢復數據的正常使用
把硬盤設備的數據奇偶校驗信息保存到其它硬盤設備中
RAID 1 + RAID 0的"組合體",該技術至少須要4塊硬盤
mdadm [模式] <RAID設備名稱> [選項] [成員設備名稱] 管理linux系統中的軟件RAID硬盤列陣 -a 檢測設備名稱 -n 指定設備數量 -l 指定RAID級別 -C 建立 -v 顯示過程 -f 模擬設備損壞 -r 移除設備 -Q 查看摘要信息 -D 查看詳細信息 -S 中止RAID磁盤列陣
mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde -C表明建立一個RAID陣列卡,-v顯示建立過程,後面跟上設備名/dev/md0 ,-a yes表明自動建立設備文件,-n4 表明使用4塊硬盤來部署這個RAID磁盤列陣,-l 10表明使用RAID 10方案,最後加上4塊硬盤設備的名稱 mkfs.ext4 /dev/md0 將製做好的RAID磁盤列陣格式化爲ext4格式 mkdir /RAID 創建目錄,建立掛載點 mount /dev/md0 /RAID 將硬盤設備進行掛載 mdadm -D /dev/md0 查看磁盤列陣的相信信息 echo "dev/md0 /RAID ext defaults 0 0" >> /etc/fatab 將掛載信息寫入配置文件
mdadm /dev/md0 -f /dev/sdb
在磁盤陣列中移除/dev/sdb磁盤
mdam -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sdb /dev/sdc /dev/sdd /dev/sde 建立RAID 5磁盤列陣+備份盤 ,-n 3表明建立這個列陣所需的硬盤數,-l 5表明列陣的級別,-x 1表明有一塊備份盤 mlfs.ext4 /dev/md0 格式化
經常使用LVM部署命令
|功能/命令|物理卷管理|卷組管理|邏輯卷管理|
|----|----|----|----|
|掃描|pvscan|vgscan|lvscan|
|創建|pvcreate|vgcreate|lvcreate|
|顯示|pvdisplay|vgdisplay|lvdisplay|
|刪除|pvremove|vgremove|lvremove|
|擴展| |vgextend|lvextend|
|縮小||vgreduce|lvreduce|
pvcreate /dev/sdb /dev/sdc 讓新添加的涼快硬盤設備支持LVM技術 vgcreate storage /dev/sdb /dev/sdc 把兩塊硬盤設備加入到storage卷組中 lvcreate -n -vo -l 37 storage 切割出一個約爲150MB的邏輯卷設備 -l 37等於-L 150M msfs.ext4 /dev/storage/vo 把生成好的邏輯卷格式化 mount /dev/storage/vo 目錄名 掛載
擴容前記得卸載設備和掛載點的關聯
umount 目錄名 卸載掛載 lvextend -L 290M /dev/storage/vo 將vo擴展至290MB e2fsck -f /dev/storage/vo 檢查硬盤完整性 resize2fs /dev/storage/vo 重置硬盤容量 mount -a 從新掛載便可
umount 目錄名 卸載掛載 e2fsck -f /dev/storage/vo 檢查硬盤完整性 resize2fs /dev/storage/vo 128M 把邏輯卷vo的容量減少到128MB mount -a 掛載
快照的容量必須等於邏輯卷的容量
快照僅一次有效,一旦執行懷遠操做後則會當即自動刪除
vgdisplay 查看卷組的信息 lvcreate -L 120M -s -n SNAP /dev/storage/vo -s參數生產快照,-L指定大小 umount 目錄名 先卸載掛載,此部是爲了驗證是否能恢復 lvconvert --merge /dev/storage/SNAP 恢復vo的快照 monut -a 從新掛載
umonut 目錄名 卸載掛載 vim /etc/fstab 編輯fatab文件,刪除配置文件中永久生效的設備參數(掛載的設備) lvremove /dev/storage/vo 刪除邏輯卷設備,須要輸入y來確認操做 vgremove storage 刪除卷組,此處只寫卷組名稱便可,不須要設備的絕對路徑 pvremove /dev/sdb /dev/sdc 刪除物理卷設備
在進行路由選擇前處理數據包(PRERPUTING)
處理流入的數據包(INPUT)
處理流出的數據包(OUTPUT)
處理轉發的數據包(FORWARD)
在進行路由選擇後處理數據包(POSTROUTING)
DROP 拒絕流量經過(將流量直接丟棄,並不響應它),發送方顯示響應超時,默認規則鏈的拒絕動做只能是這個
-P 設置默認策略 -F 清空規則鏈 -L 查看規則鏈 -A 在規則鏈的末尾加入新規則 -I num 在規則鏈的頭部加入新規則 -D num 刪除某一條規則 -s 匹配來源地址IP/MASK,加歎號"!"表示除這個IP外 -d 匹配目標地址 -i 網卡名稱 匹配從這塊網卡流入的數據 -o 網卡名稱 匹配從這塊網卡流出的數據 -p 匹配協議,如TCP,UDP,ICMP --dport num 匹配目標端口號 --sport num 匹配來源端口號
iptables -L 查看防洪牆規則鏈 iptables -F 清空已有的防火牆規則鏈 iptables -P INPUT DROP 把INPUT規則鏈的默認策略設置爲拒絕 iptables -I INPUT -s 192.168.10.0/24 -p tcp --dport 22 -j ACCEPT 將INPUT規則鏈設置爲只容許指定網段的主機訪問本機的22端口,在INPUT默認規則上添加 iptables -I INPUT -p tcp --dport 12345 -j REJECT 禁止全部人經過tcp協議訪問本機12345端口 iptables -I INPUT -p udp --dport 12345 -j REJECT 禁止全部人經過udp協議訪問本機12345端口 iptables -A INPUT -p tcp --dport 1000:102 -j REJECT 向INPUT規則鏈中添加拒絕全部主機訪問本機1000-1024端口的策略 service iptables save 防火牆規則永久生效(重啓後也不失效)
firewalld中經常使用的區域名稱及策略規則
|區域|默認策略規則|
|--|--|
|trusted|容許全部的數據包|
|home|拒絕流入的流量,除非與流出的流量相關,而若是流量與ssh,mdns,ipp-client,amba-client與dhcpv6-client服務相關,則容許流量|
|internal|等同於home區域|
|work|拒絕流入的流量,除非與流出的流量相關,而若是流量與ssh,ipp-client,dhcpv6-client服務相關,則容許流量|
|public|拒絕流入的流量,除非與流出的流量相關,而若是流量與ssh,dhcpv6-client服務相關,則容許流量|
|external|拒絕流入的流量,除非與流出的流量相關,而若是流量與ssh服務相關,則容許流量|
|dmz|拒絕流入的流量,除非與流出的流量相關,而若是流量與ssh服務相關,則容許流量|
|block|拒絕流入的流量,除非與流出的流量相關|
|drop|拒絕流入的流量,除非與流出的流量相關|
firewalld-cmd命令中使用的參數以及做用
|參數|做用|
|-|-|
|--get-default-zone|查詢默認的區域名稱|
|--get-default-zone= <區域名稱> |設置默認的區域,使其永久生效|
|--get-zones|顯示可用的區域|
|--ger-services|顯示預先定義的服務|
|--get-active-zones|顯示當前正在使用的區域與網卡名稱|
|--add-source=|將源自此IP或子網的流量導向指定區域|
|--add-interface= <網卡名稱> |將源自該忘啦的全部流量都導向某個指定區域|
|--remove-source=|再也不將源自此IP或子網的流量導向某個指定區域|
|--change-interface= <網卡名稱> |將某個網卡與區域進行關聯|
|--list-all|顯示當前區域的網卡配置參數,資源,端口以及服務等信息|
|--list-all-zones|顯示全部區域的網卡怕配置參數,資源,端口以及服務等信息|
|--add-service= <服務名> |設置默認區域容許該服務的流量|
|--add-port= <端口號 協議> |設置默認區域容許該端口的流量|
|--remove-service= <服務名> |設置默認區域再也不容許該服務的流量|
|--remove-port= <端口號 協議> |設置默認區域再也不容許該端口的流量|
|--reload|讓"永久生效"的配置規則當即生效,並覆蓋當前的配置規則|
|--panic-on|開啓應急情況模式|
|--panic-off|關閉應急情況模式|
firewalld-cmd --get-default-zone 查看firewalld服務當前所使用的區域 firewalld-cmd --get-zone-of-interface=eno16777728 查看eno16777728網卡在firewalld服務中的區域 firewalld-cmd --permanent --zone=external --change-interface=eno16777728 把friewalld服務中的eno16777728網卡的默認區域修改爲external,並在系統重啓後剩下
iptables不錯
TCPWrappers
nmtui
nmcli
基於口令的驗證
基於密鑰的驗證
sshd服務配置文件中包含的參數以及做用/etc/ssh/sshd_config
|參數|做用|
|-----|-----|
|port 22|默認的sshd服務端口|
|listenAddress 0.0.0.0|設置sshd服務器監聽的ip地址|
|protocol 2|ssh協議的版本號|
|HostKey /etc/ssh/ssh_host_key|ssh協議版本爲1時,DES私鑰存放的位置|
|HostKey /etc/ssh/ssh_host_res_key|ssh協議版本爲2時,RSA私鑰存放的位置|
|HostKey /etc/ssh/ssh_host_dsa_key|ssh協議版本爲2時,DEA私鑰存放的位置|
|PermitRootLogin yes|是否容許root管理員直接登錄|
|StrictModes yes|當遠程用戶的私鑰改變時直接拒絕鏈接|
|MaxAuthTries 6|嘴打密碼嘗試次數|
|MaxSessions 10|最大終端數|
|PasswordAuthentication yes|是否容許密碼驗證|
|PermitEmptyPasswords no|是否容許空密碼登錄|
ssh [參數] ip地址
ssh鏈接
ssh-keygen 在客戶端生成"密鑰樹" ssh-copy-id 服務器ip 把客戶端主機中生產的公鑰文件傳送至遠程主機
scp [參數] 本地文件 遠程帳戶@遠程IP地址:遠程目錄
scp /root/q.txt 192.168.1.1:/home 將本地q.txt傳到192.168.1.1的home目錄,使用遠程的root帳號 scp 192.168.1.1:/etc/passwd /root 將遠程的passwd文件下載到本機root目錄下
screen
|參數|做用|
|--|--|
|-S|新建會話|
|-d|將會話"離線"|
|-r|恢復指定會話|
|-x|恢復全部會話|
|-ls|查看全部會話|
|-wipe|刪除沒法使用的會話|
|exit|退出會話|
配置文件的名稱 | 存放位置 |
---|---|
服務目錄 | /etc/httpd |
主配置文件 | /etc/httpd/conf/httpd.conf |
網站數據目錄 | /var/www/httml |
訪問日誌 | /var/log/httpd/access_log |
錯誤日誌 | /var/log/httpd/error_log |
註釋行信息
全局配置
區域配置
|參數|用途|
|----|----|
|ServerRoot|服務目錄|
|ServerAdmin|管理員郵箱|
|User|運行服務的用戶|
|Group|運行服務的用戶組|
|ServerName|網站服務器的域名|
|DocumentRoot|網站數據目錄|
|Directory|網站數據目錄的權限|
|Listen|監聽的ip地址與端口|
|DirectoryIndex|默認的索引頁頁面|
|ErrorLog|錯誤的日誌文件|
|Customlog|訪問日誌文件|
|Timeout|網頁超市時間,默認爲300秒|
htpasswd -c /etc/httpd/passwd mrhonest 生成範文mrhonest我的主頁所須要的密碼 配置401認證 見書228頁
vim /etc/httpd/conf/httpd.conf
編輯配置文件,添加虛擬主機,格式以下:
<VirtualHost 192.168.1.1:80> DocumentRoot /home/wwwrorr/www1 ServerName www.mrhonest.com <Directory /home/wwwroot/www1> AllowOVerride None Require all granted </VirtualHost>
主動模式:ftp服務主動向客戶端發起鏈接請求
被動模式:ftp服務器等待客戶端發起鏈接請求(ftp的默認工做模式)
vsftpd服務程序經常使用的參數以及做用
|參數|做用|
|----|----|
|listen=[YSE|NO]|是否以獨立運行的方式監聽服務|
|listen_address=IP|設置要監聽的IP地址|
|listen_port=21|設置ftp服務的監聽端口|
|download_enable=[YES|NO|是否容許下載文件|
|userlist_enable=[YES|NO] userlist_deny=[YES|NO]|設置用戶列表爲"容許"仍是"禁止"操做|
|max_clients=0|最大客戶端鏈接數,0爲不限制|
|max_per_ip=0|同一IP地址的最大鏈接數,0爲不限制|
|anonymous_enable=[YES|NO]|是否容許匿名用戶上傳文件|
|anon_upload_enable=[YES|NO]|是否容許匿名用戶上傳文件|
|anon_umask=022|匿名用戶上傳文件的umask值|
|anon_root=/var/ftp|匿名用戶的ftp根目錄|
|anon_mkdir_write_enable=[YES|NO]|是否容許匿名用戶建立目錄|
|anon_other_write_enable=[YES|NO]|是否開放匿名用戶的其它寫入權限(包括重命名,刪除等操做權限)|
|anon_max_rate=0|匿名用戶的最大傳輸速率(字節/秒),0爲不限制|
|local_enable=[YES|NO]|是否容許本地用戶登錄|
|local_umask=022|本地用戶上傳文件的umask值|
|locao_root=/var/ftp|本地用戶的ftp目錄|
|chroot_local_user=[YES|NO]|是否將用戶權限禁錮在ftp目錄,以確保安全|
|local_max_rate=0|本地用戶最大的傳輸速率(字節/秒),0爲不限制|
匿名開放模式
本地用戶模式
虛擬用戶模式
默認目錄就/var/ftp目錄
245頁
/etc/vsftpd/user_list 和 /etc/vsftpd/ftpusers 裏存放着禁止登錄的用戶名
默認目錄是用戶家目錄
249頁
虛擬用戶數據文件須要建立 奇數行爲用戶名,偶數行爲密碼
252頁
vim /etc/vsftpd/user.txt db_load -T -t hash -f user.txt user.db 將用戶文件內容hash加密 useradd -d 虛擬用戶ftp目錄 -s /sbin.nologin 虛擬用戶名 建立一個禁止登錄的用戶,指定其家目錄(ftp目錄)
tftp
UDP協議 無需認證
tftp ip
創建tftp鏈接
|命令|做用|
|----|---|
|?|幫助信息|
|put|上傳文件|
|get|下載文件|
|verbose|顯示詳細的處理信息|
|status|顯示當前的狀態信息|
|binary|使用二進制進行傳輸|
|ascii|使用ASCII碼進行傳輸|
|timeout|設置重傳的超時時間|
|quit|退出|
256頁
不一樣操做系統之間文件共享
Samba服務程序中的參數以及做用
|[global]|參數|做用|
|----|----|----|
||workgroup=MYGROUP|工做組名稱|
||server string = Samba Server Version %v|服務器介紹信息,參數%v爲顯示SMB版本號|
||log file=/var/log/samba/log.%m|定義日誌文件的存放位置與名稱,參數%m爲來訪的主機名|
||max log size=50|定義日誌文件的最大容量爲50KB|
||security=user|安全驗證的方式,總共分4種, :
share:來訪主機無需驗證口令
user:需驗證來訪主機提供的口令後才能夠訪問
server:使用獨立的遠程主機驗證來訪主機提供的口令(集中管理帳戶)
domain:使用域控制器進行身份驗證|
||passdb backed=tdbsan|定義用戶後臺的類型,共3種:
smbpasswd:使用smbpasswd命令爲系統用戶設置samba服務程序的密碼
tdbsam:穿件數據庫文件並使用pdbedit命令創建samba服務程序的密碼
ldapsam:基於LDAP服務進行帳戶驗證|
||load printers=yes|設置在samba服務啓動時是否共享打印機設備|
||cups options=raw|打印機的選項|
|[homes]||共享參數|
||comment=Home Directories|描述信息|
||browseable=no|指定共享信息是否在"網上鄰居"中可見|
||writable=yse|定義是否能夠執行寫入操做,與"read only"相反|
|[printers]||打印機共享參數|
pdbedit [選項] 帳戶 管理SMB服務程序的帳戶信息數據庫 -a 用戶名 創建Samba帳戶 -x 用戶名 刪除samba帳戶 -L 列出帳戶列表 -Lv 列出帳戶詳細信息的列表 pdbedit -a -u mrhonest 爲系統帳號mrhonest建立smb帳號 mkdir /home/database 建立用於共享資源的文件目錄 chown -Rf mrhonest:mrhonest /home/database 設置共享資源的文件目錄的全部者和全部組 264頁
\\ip
鏈接文件共享服務器
268頁
yum install cifs-utils 安裝cifs-utils vim auth.smb 編輯配置文件 username=mrhonest 目標用戶名 password=222222 目標密碼 domain=MUGROUP 目標所在組 chmod 600 auth.smb 因爲密碼明文,將文件設置只有root能夠讀寫 mkdir /localdatabae 本機創建用於掛載目標的目錄 vim /etc/fstab 編輯配置文件 //目標ip/databse /localdatabase cifs credenttials=root/auth.smb 0 0 寫入自動掛載信息
linux之間文件共享
yum install nfs-utils
安裝NFS服務
NFS配置文件參數:/etc/exports,格式"共享目錄的路徑 容許放的NFS客戶端(默認權限參數)"
|參數|做用|
|----|----|
|ro|只讀|
|rw|讀寫|
|root_squash|當NFS客戶端以root管理員訪問時,映射爲NFS服務的的匿名用戶|
|no_root_squash|當NFS客戶端以root管理員訪問時,映射爲NFS服務器的root管理員|
|all_squash|不管NFS客戶端使用什麼帳戶訪問,均映射爲NFS服務器的匿名文虎|
|sync|同時將數據寫入到內存與硬盤中,保證不丟失數據|
|async|優先將數據保存到內存,而後在寫入硬盤,這樣效率更高,但可能會丟失數據|
vim /etc/exports /nfsfile 192.168.1.*(rw,sync,root_squash) //IP地址與權限之間沒有空格 systemctl restart rpcbind //nfs須要RPC服務,用於將NFS服務器的ip地址和端口等信息發送給客戶端 systemctl enable rpcbind 將rpc(遠程過程調用)服務加入開機自啓 systemctl start nfs-server 啓動nfs服務 systemctl enable nsf-server 加入開機自啓
客戶端showmount命令可用的參數和做用
|參數|做用|
|----|----|
|-e|顯示NFS服務器的共享列表|
|-a|顯示本機掛載的文件資源狀況|
|-v|顯示版本號|
|-t|指定掛載的文件系統類型|
showmount -e 192.168.10.10 顯示目標ip的共享列表 mkdir /nfsfile 創建用於掛載目標共享文件的目錄 mount -t nfs 192.168.10.10:/nfsfile /nfsfile 將目標ip的共享目錄nfsfile掛載到本地nfsfile目錄 ## autofs自動掛載服務 掛載配置文件:/etc/auto.master格式: "掛載目錄 子配置文件" 詳見273頁 ```shell yum install autofs vim /etc/auto.master 編輯配置文件 /media /etc/iso.misc 編輯內容 vim /etc/iso/misc 編輯子配置文件 iso -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom 編輯內容 systemctl enable sutofs 加入開機自啓
279頁
主服務器
從服務器
緩存服務器
bind服務配置文件
|文件|文件名|做用|
|----|----|---|
|主配置文件|/etc/named.conf|定義bind服務程序的運行|
|區域配置文件|/etc/named.rfc1912.zones|保存域名和IP地址對應關係的所在位置|
|數據配置文件目錄|/var/named|保存域名和IP地址真是對應關係的數據配置文件|
yum install bind-chroot
安裝bind和chroot擴展包
281頁
283頁
285頁
286頁
290頁
293頁
299頁