1. 程式人生 > >linux 基本操作2

linux 基本操作2

pgrep 查詢條件 pstree init 6 elf raid6 可能 組合 stop

RAID陣列概述
? 廉價冗余磁盤陣列
– Redundant Arrays of Inexpensive Disks
– 通過硬件/軟件技術,將多個較小/低速的磁盤整合成一
個大磁盤

– 陣列的價值:提升I/O效率、硬件級別的數據冗余
– 不同RAID級別的功能、特性各不相同

? RAID 0,條帶模式
– 同一個文檔分散存放在不同磁盤
– 並行寫入以提高效率

? RAID 1,鏡像模式
– 一個文檔復制成多份,分別寫入不同磁盤
– 多份拷貝提高可靠性,效率無提升

? RAID5,高性價比模式
– 相當於RAID0和RAID1的折中方案
– 需要至少一塊磁盤的容量來存放校驗數據

? RAID6,高性價比/可靠模式
– 相當於擴展的RAID5陣列,提供2份獨立校驗方案

– 需要至少兩塊磁盤的容量來存放校驗數據

? RAID 0+1/RAID 1+0
– 整合RAID 0、RAID 1的優勢
– 並行存取提高效率、鏡像寫入提高可靠性

#####################################################

進程管理

程序: 靜態的代碼,占用 磁盤空間

進程: 動態的代碼,占用 CPU 內存

    父進程與子進程

  進程唯一的編號: PID 

#################################################
? pstree — Processes Tree
– 格式:pstree [選項] [PID或用戶名]

? 常用命令選項
– -a:顯示完整的命令行
– -p:列出對應PID編號

systemd :所有進程的父進程

[root@svr7 /]# useradd lisi
[root@svr7 /]# pstree lisi
未發現進程。
[root@svr7 /]# pstree lisi
bash───vim
[root@svr7 /]# pstree -p lisi
bash(11715)───vim(11838)
[root@svr7 /]# pstree -ap lisi

[root@svr7 /]# pstree #查看整個進程數

#####################################################

? ps — Processes Snapshot
– 格式:ps [選項]...

? 常用命令選項
– aux:顯示當前終端所有進程(a)、當前用戶在所有
終端下的進程(x), 以用戶格式輸出(u)
– -elf:顯示系統內所有進程(-e)、以長格式輸出(-l)
信息、包括最完整的進程信息(-f)

? ps aux 操作
– 列出正在運行的所有進程

? ps -elf 操作
– 列出正在運行的所有進程

PPID:父進程的PID號

###########################################
? top 交互式工具
– 格式:top [-d 刷新秒數] [-U 用戶名]

– P、M:根據 %CPU、%MEM 降序排列

檢索進程
? pgrep — Process Grep
– 用途:pgrep [選項]... 查詢條件

? 常用命令選項
– -l:輸出進程名,而不僅僅是 PID
– -U:檢索指定用戶的進程
– -t:檢索指定終端的進程
– -x:精確匹配完整的進程名

[root@svr7 ~]# who #查詢當前那個用戶正在登陸信息

[root@svr7 ~]# pgrep -l log
[root@svr7 ~]# pgrep -l a

######################################################

後臺啟動
– 在命令行末尾添加“&”符號,不占用當前終端,以正在運行的狀態

? Ctrl + z 組合鍵
– 掛起當前進程(暫停並轉入後臺)

? jobs 命令
– 查看後臺任務列表

? fg 命令
– 將後臺任務恢復到前臺運行

? bg 命令
– 激活後臺被掛起的任務

[root@svr7 /]# sleep 800 & #正在運行放入後臺
[1] 15343
[root@svr7 /]# jobs #查看後臺進程信息
[1]+ 運行中 sleep 800 &
[root@svr7 /]# jobs -l #查看後臺進程詳細信息
[1]+ 15343 運行中 sleep 800 &
[root@svr7 /]# sleep 900
^Z #按Ctrl+z暫停放入後臺
[2]+ 已停止 sleep 900

[root@svr7 /]# jobs
[1]- 運行中 sleep 800 &
[2]+ 已停止 sleep 900
[root@svr7 /]# bg 2 #將後臺編號為2的繼續運行
[2]+ sleep 900 &

[root@svr7 /]# fg 2 #將後臺進程編號為2的恢復到前臺
#######################################################

殺死進程
? 幹掉進程的不同方法
– Ctrl+c 組合鍵,中斷當前命令程序
– kill [-9] PID... 、kill [-9] %後臺任務編號
– killall [-9] 進程名...
– pkill 查找條件

  -9 : 強制殺死

[root@svr7 /]# sleep 800 &
[1] 22924
[root@svr7 /]# sleep 900 &
[2] 22925
[root@svr7 /]# sleep 1000 &
[3] 22926
[root@svr7 /]# jobs -l

[root@svr7 /]# kill 22926
[root@svr7 /]# jobs -l
[root@svr7 /]# killall sleep #殺死所有sleep進程
[root@svr7 /]# jobs -l

強制踢出一個用戶: killall -9 -u lisi

##################################################
日誌管理

? 系統和程序的“日記本”
– 記錄系統、程序運行中發生的各種事件
– 通過查看日誌,了解及排除故障
– 信息安全控制的 依據

/var/log/messages 記錄內核消息、各種服務的公共消息
/var/log/dmesg 記錄系統啟動過程的各種消息
/var/log/cron 記錄與cron計劃任務相關的消息
/var/log/maillog 記錄郵件收發相關的消息
/var/log/secure 記錄與訪問限制相關的安全消息

日誌分析

? 通用分析工具
– tail、tailf、less、grep等文本瀏覽/檢索命令
– awk、sed等格式化過濾工具

 tailf : 實時跟蹤日誌消息

? users、who、w 命令
– 查看已登錄的用戶信息,詳細度不同

? last、lastb 命令
– 查看最近登錄成功/失敗的用戶信息

[root@svr7 /]# users

[root@svr7 /]# who

[root@svr7 /]# w

[root@svr7 /]# last
[root@svr7 /]# lastb

#################################################
Linux內核定義的事件緊急程度

– 分為 0~7 共8種優先級別
– 其數值越小,表示對應事件越緊急/重要

0 EMERG(緊急) 會導致主機系統不可用的情況
1 ALERT(警告) 必須馬上采取措施解決的問題
2 CRIT(嚴重) 比較嚴重的情況
3 ERR(錯誤) 運行出現錯誤
4 WARNING(提醒) 可能會影響系統功能的事件
5 NOTICE(註意) 不會影響系統但值得註意
6 INFO(信息) 一般信息
7 DEBUG(調試) 程序或系統調試信息等

#################################################
使用journalctl工具

常見用法
– journalctl | grep 關鍵詞
– journalctl -u 服務名 [-p 優先級]
– journalctl -n 消息條數
– journalctl --since="yyyy-mm-dd HH:MM:SS"
--until="yyyy-mm-dd HH:MM:SS"

[root@svr7 /]# yum -y install httpd
[root@svr7 /]# systemctl restart httpd

[root@svr7 /]# journalctl -u httpd
[root@svr7 /]# journalctl -n 10

[root@svr7 /]# journalctl -u httpd -p 6 #查看6級別以上日誌

#######################################################
systemctl控制

systemd
? 一個更高效的系統&服務管理器
– 開機服務並行啟動,各系統服務間的精確依賴
– 配置目錄:/etc/systemd/system/
– 服務目錄:/lib/systemd/system/
– 主要管理工具:systemctl

? Linux系統和服務管理器
– 是內核引導之後加載的第一個初始化進程(PID=1)
– 負責掌控整個Linux的運行/服務資源組合

? 控制服務狀態
– systemctl start|stop|restart 服務名...

? 查看服務的運行狀態
– systemctl status|is-active 服務名...

管理運行級別

RHEL6

    0: 關機    
    1: 單用戶   
    2: 多用戶的字符終端(不支持網絡)   
    3: 多用戶的字符終端(支持網絡)  
    4: 未定義
    5: 圖形   
    6: 重起 

切換運行級別的命令: init 0 init 6

####################################################
RHEL7

multi-user.target #多用戶的字符模式
graphical.target #圖形模式

當前切換模式:
[root@svr7 /]# systemctl isolate graphical.target
[root@svr7 /]# systemctl isolate multi-user.target

永久切換模式:
[root@svr7 /]# systemctl get-default #查看默認的模式
multi-user.target
[root@svr7 /]# systemctl set-default graphical.target
[root@svr7 /]# systemctl get-default

#######################################################

PATH變量作用: 提供命令程序的搜尋路徑

[root@svr7 ~]# vim /opt/hello
#!/bin/bash
echo hahaxixi
[root@svr7 ~]# chmod +x /opt/hello
[root@svr7 ~]# /opt/hello
hahaxixi
[root@svr7 ~]# hello
bash: hello: 未找到命令...
[root@svr7 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@svr7 ~]# cp /opt/hello /usr/bin/
[root@svr7 ~]# hello
hahaxixi

提示 命令找不到 的原因?
1.命令有誤
2.命令未安裝
3.命令所對應的程序沒有在PATH值路徑中

書寫周期性計劃任務:所有的命令都寫絕對路徑
查找命令所對應的程序文件: which date

##################################################
netstat 命令 : 查看網絡連接信息

            -a:顯示所有網絡接口
            -n:以數字的方式顯示
            -p:顯示進程信息
            -t:tcp協議連接
            -u:udp協議連接

netstat -anptu 

ESTABLISHED : 正在訪問
Listen : 正在監聽

linux 基本操作2