Type:查看命令的所屬分類
man:查看命令的幫助
help:獲取幫助
ls命令
ls -l:顯示文章的詳細信息
ls -a:顯示文章的隱藏文件
ls -r:逆順序顯示文件
ls -R:遞歸顯示
ls -t:按照時間顯示
head:顯示文件前幾行
tail:顯示文件後幾行
cat:查看文件信息 cat f 查看文件更新信息
wc:統計文件行數
tar:打包命令,配合gzip和bzip可以使用打包和壓縮命令
gzip:壓縮和解壓縮命令,拓展名.gz
bzip2:壓縮與解壓縮命令,擴展名.bz2
useradd:添加用戶
userdel:刪除命令
Passwd: 設置用戶密碼
usermod:修改用戶信息
groupadd:添加組用戶
groupdel:刪除組用戶
chmod:修改權限
chown:更改主,屬組
chgrp:可以單獨更改屬組,不常用
正則表達式
對字符串操作的一組邏輯公式
用於對符合規則的字符串進行查找和替換
文本與文件的查找
grep
grep -i 忽略大小寫
grep -v 反轉
grep -a 處理二進制文件
grep -R 遞歸方式
find
find -name 按照文件名搜索
find -perm 按照權限查找
find -user 按照屬主搜索
find -type 按照文件類型搜索
軟件安裝與更新
rpm -i 安裝
rpm -q 查詢
rpm -U 升級
rpm -e 卸載
./comfigure make make install 源碼編譯
yum install 安裝
yum remove 卸載
yum update 升級
網絡配置
ifconfig 查看和配置網絡接口
ip addr 查看和配置接口漏油
netstat 查看進程監聽端口狀態
network與NetworkManager 網絡管理腳本
相關配置文件
ifcfg-eth0 eh0網卡配置文件
networking 主機名配置文件
resolv.conf 域名配置文件
常用系統日誌
/var/log 系統日誌默認目錄
message 系統日誌
dmesg 內核啓動日誌
secure 安全日誌
mount掛載命令
mount -t 指定文件系統類型
mount -ro 只讀掛載
mount -rw 讀寫掛載
remount 重掛載
文件系統
fdisk -l 查看分區信息
fdisk /dev/sdx 分區某存儲
df 查看分區使用空間大小
du 查看文件使用空間大小
mkfs.ext4 格式化爲ext4文件系統
mkfs.xfs 格式化爲XFS文件系統
邏輯卷與lvm
lvm分三層:PV物理卷 VG卷組 LV邏輯卷
pvcreate 建立PV pvs 查看PV
vgcreate 建立VG vgs 查看VG
lvcreate 建立LV lvs 查看lv
lvextend 擴展LV
防火牆
SELinux訪問控制分類:DAC自主訪問控制 MAC強制訪問控制
getenforce 查看SELinux狀態
setenforce 修改訪問狀態
selinux配置文件/etc/selinux/config
enforcing 強制控制
permissive 通知但不強制控制
disable 禁止訪問控制
iptables
表:filter 用於過濾 nat 用於地址轉換
鏈:INPUT 進入本主機方向
OUTPUT 本主機發出方向
FORWARD 轉發方向
PREROUTING 路由前轉換
POSTROUTING 路由後抓換
選項:-i -o 接口
-s -d ip地址/子網掩碼
-p tcp/udp協議
--sport 源端口
--dport 目的端口
-j 動作
ACCEPT 允許此規則匹配的數據包通過
DROP 丟棄此規則匹配的數據包
REJECT 拒絕此規則匹配的數據包並返回rst包
SNAT 源地址轉換
DNAT 目的地址轉換
MASQUERADE 動態源地址轉換
tcpdump -r filename 從文件讀取已抓取的數據包
tcpdump -w filename 將抓取的數據包保存至文件
tcpdump -v 顯示詳細信息
tcpdump -n 不將ip地址解析爲主機名
tcpdump -i 接口
tcpdump host 主機
tcpdump port 端口
系統啓動過程與故障修復
系統啓動過程簡述
BISO 選擇啓動設備
MBR 硬盤可引導扇區
GRUB Linux 系統可引導工具
內核
init或者systemd
service服務或者systemd服務
啓動tty等待用戶登陸
更新內核版本
rpm方式更新
安裝速度快,沒有最新版本
源碼編譯方式更新
可以使用最新版本,編譯時間長
shell部分
shell是命令解釋器,翻譯用戶的命令給內核執行,並將結果返回給對方
shell腳本好處:組合系統命令實現自動化功能,組成腳本的基本元素是命令,不用深入掌握系統函數庫
內建命令與外部命令:內建命令不會創建子進程,但是對子shell無效,外部命令會創建子進程。
管道與重定向
管道符:|
重定向符號:< 輸入重定向
> 輸出重定向
>>輸出重定向,追加方式
join 連接兩個字符串
轉義和引用:特殊符號,轉義符 / ,引用符號’’ ””
函數:對重複利用的代碼進行封裝,函數的定義方法是 函數名(){}
函數的使用:直接使用函數名
運算符
運算符 +-*/ % 加減乘除取餘
shell運算的弊端:支持整數運算,但和編譯語言比起來效率較低,對浮點運算支持不好
循環
while循環:while循環根據while判斷結果是否繼續執行
判斷結果爲命令的返回值,如果爲0則循環會繼續執行
如果判斷結果一直爲真0,無法到達循環稱死循環
for循環:shell的for循環使用遍歷方式,for...in...格式
for循環支持c語言寫法,需要使用(())格式
支持使用break,continue對循環進行控制
for循環支持嵌套使用
進程與內存查看
ps/ top 對當前系統的進程信息查看
內存查看命令
free 查看內存系統使用率
sar 顯示更詳細的系統運行狀態,用於故障排除
常用第三方系統命令查看
lftop 查看某一進程的網絡流量
變量與環境變量
變量:shell變量無聲明,銷燬變量unset變量
變量的賦值:變量名=變量值
環境變量:PATH命令解釋路徑
環境變量的配置文件
/etc/profile 系統環境變量的默認保存文件
/etc/bashrc login shell執行初始化的配置文件
計劃任務
一次性計劃任務at
週期性計劃任務cron
查看週期性計劃任務crontab -l
編輯週期性任務 contab -e
測量與判斷
test測試:可以書寫爲[]
可以使用[[]]擴展格式
文件測試
數字比較
if判斷:基本原理:根據命令的返回值是否爲0進行分支判斷
支持if...else...寫法
支持if嵌套寫法
case分支:case分支一般作爲if判斷的補充
case分支的結束符號是”;;”,它是”;”的轉義形式
正則表達式與文本搜索
元字符大全
. 單個字符
* 一個(包括零個)它前面的字符
[...] 匹配方括號中的任意字符
^ 匹配行開始
$ 匹配行結尾
\ 轉義特殊字符
{…} 匹配出現次數
+ 匹配前面的正則表達式出現一次或多次
? 匹配前面的正則表達式出現零次或一次
| 並列匹配
() 分組
POSIX 字符類
sed基礎
基本語法:sed ‘cmd’ filename
sed -e ‘cmd’ -e ‘cmd’ filename
sed的工作方式:模式空間
sed命令:s 替換
d 刪除
a 追加
i 插入
c 更改
n 下一步
r 讀文件
w 寫文件
q 退出
y 替換
p 打印
sed高級命令
多行命令
N:將多行追加到模式空間進行處理
D:刪除對行模式空間的第一個字符至第一個換行符,並返回到腳本的開頭執行
P:輸出模式空間中的第一個字符至第一個換行符
保持空間模式
h:將模式空間中的內存存儲至保存空間,並覆保持空間的內容
H:將模式空間中內容存儲至保存空間,並追加到保持空間的內容
g:將保持空間的內容存儲至模式空間,並覆蓋模式空間的內容
G:將保持空間的內容存儲至模式空間,並追加至模式空間
x:交換模式空間和保持空間的內容
條件與分支
:標籤
b branch命令用於在腳本中將控制權轉移到另一行,如果沒有指定標籤就轉移腳本的結尾
t 測試命令,如果當前匹配地址的行進行了成功替換,test命令就轉移到標籤處,如果沒有指定標籤就轉移到腳本的結尾
AWK
工作方式
BEGIN{} 模式用於處理文件前的預處理
{} 模式用於對文件每行進行處理
BED{}模式用於處理完文件之後的操作
運算符
算數運算符 關係運算符 布爾運算符
循環
支持while循環
支持for循環
支持break循環,continue循環
系統變量
FS字段分隔符
OFS輸出字段分隔符
RS記錄分隔符
ORS輸出記錄分隔符
條件
和c語言用法相似
語法格式爲:if(判斷)
支持if……else……用法
支持if嵌套
函數
算數函數
隨機函數
字符串函數