一,sed (Stream EDitor)
1.介紹sed
- 定義:流編輯器,對行進行處理,又稱爲行編輯器。處理過程中會接觸到倆個空間,一個是模式空間,另一個是保持空間
- 模式空間:用sed對文本進行處理時,將正在處理的行儲存在一個臨時緩衝區中,這個臨時緩衝區就是模式空間
- 保持空間:對於處理過的行還有其他處理,先將處理過得行臨時儲存在另一個臨時緩衝區,也就是保持空間
- 功能:主要用來自動編輯一個或多個文件,簡化對文件的反覆操作,編寫轉換程序等
2.sed用法
-
常用選項
-n 不輸出模式空間內容到屏幕 -e 多項編輯 -f filename 從指定文件中讀取編輯腳本 -r 支持使用擴展正則表達式 -i.bak 修改內容並且備份
-
地址命令
地址定界:1.不給地址:對全文進行處理 2. 單地址 #:第#行 /pattern/:能匹配到/pattern/的行 3. 地址範圍 #,*:第#行到第*行 #,+#:第#行開始,向後數#行 /pat1/,/pat2/:能匹配到1模式的行到能匹配到2模式的行 #,/pat1/:第#行到能匹配到1模式的行 4. 步進 1~2p 奇數行 2~2p 偶數行
-
編輯命令
d 刪除模式空間匹配的行 p 輸出當前模式空間內容,追加到默認輸出之後 a text 在指定行後面追加文本 (可以使用\n進行多行追加) i text 在指定行前面插入文本 c text 替換指定行 w filename 保存模式匹配的行至filename r filename 讀取filename的文本至模式空間中匹配到的行後 = 爲模式空間中的行打印行號 ! 模式空間中匹配行取反處理
-
查找替換
s///:查找替換,支持使用其它分隔符, s@@@, s### 替換標記 g 行內全局替換 p 顯示替換成功的行 w filename 將替換成功的行保存至文件中
3.高級用法
P 打印模式空間開端至\n內容,並追加到默認輸出之前 h 把模式空間中的內容覆蓋至保持空間中 H 把模式空間中的內容追加至保持空間中 g 從保持空間取出數據覆蓋至模式空間 G 從保持空間取出內容追加至模式空間 x 把模式空間中的內容與保持空間中的內容進行互換 n 讀取匹配到的行的下一行覆蓋至模式空間 N 讀取匹配到的行的下一行追加至模式空間 d 刪除模式空間中的行 D 如果模式空間包含換行符,則刪除第一個換行符的行的內容, 並不會讀取新的輸入行
二,軟件包管理
1.包管理器
- 二進制應用程序的組成部分
二進制文件、庫文件、配置文件(決定軟件運行方式)、幫助文件 - 程序包管理器:
debian:deb文件, dpkg包管理器
redhat:rpm文件, rpm包管理器
rpm:Redhat Package Manager
RPM Package Manager2.包命名
- rpm包命名方式:
name-VERSION-release.arch.rpm
VERSION(版本號): major.minor.release
release(操作系統版本): release.OS
常見的arch(架構):
x86:i386, i486, i586, i686
x86_64: x64, x86_64, amd64
powerpc: ppc
跟平臺無關: noarch
現在一般都是noarch,x86_64,i3863.包工具
包之間:可能存在依賴關係(程序運行需要很多歌包,可以分開裝,但是不能缺少否則不能運行),甚至循環依賴(必須同時去裝需要個所有包,一次性的)
分拆包:子包,子程序包,開發包
- 解決依賴包管理工具:
yum: rpm包管理器的前端工具4.庫文件
- 管理及查看本機裝載的庫文件
ldd 查看庫文件,ldd 'which 命令'
ldconfig 加載庫文件
配置文件: /etc/ld.so.conf, /etc/ld.so.conf.d/*.conf
緩存文件: /etc/ld.so.cache5.rpm包管理
rpm包獲取方式:光盤,鏡像,官方,自己製作
-
安裝(安裝完rpm包會運行一個腳本,創建用戶等;還會記錄數據,爲了卸載)
rpm -i -i 以下的選項 [install-options] -v 顯示詳細的安裝信息 -vv 非常詳細的顯示安裝信息 -h 顯示安裝進度條 rpm -ivh 常用的安裝命令 - - test 測試安裝,但不真正執行安裝,即dry run模式 - - nodeps 忽略依賴關係 - - replacepkgs 新安裝的包部分文件跟舊安裝包有衝突,替換就安裝包的文件 - - replacefiles 新安裝的包部分文件跟舊安裝包有衝突,不替換就安裝包的文件 - - nosignature 不檢查來源合法性 - - nodigest 不檢查包完整性 - - noscripts 不執行程序包腳本 - - nopre 安裝前的腳本(安裝軟件之前需要運行的腳本) - - nopost 安裝後的腳本(運行軟件需要的腳本) - - nopreun 卸載前的腳本(與安裝的同理) - - nopostun 卸載後的腳本
-
升級
rpm -U [install-options] 安裝有舊版程序包,則“升級”,如果不存在舊版程序包,則“安裝” rpm -F [install-options] 安裝有舊版程序包,則“升級”,如果不存在舊版程序包,則不執行升級操作 - - oldpackage 降級,指定的安裝包比已經安裝的舊 - - force 強制安裝
注意:
(1) 不要對內核做升級操作; Linux支持多內核版本並存,直接安裝新版本內核即可
(2) 如果原程序包的配置文件安裝後曾被修改,升級時,新版本提供的同一個配置文件並不會直接覆蓋老版本的配置文件,而把新版本的文件重命名(FILENAME.rpmnew)後保留
-
查詢
rpm -q [select-options] [query-options] 與 -q 搭配使用 [select-options] -a 所有包 -f 查看指定的文件由哪個程序包安裝生成 -p rpmfile(程序包文件) 針對尚未安裝的程序包文件做查詢操作 - - whatprovides CAPABILITY 查詢指定的CAPABILITY由哪個包所提供 - - whatrequires CAPABILITY:查詢指定的CAPABILITY被哪個包所依賴 CAPABILITY:能力名,軟件提供的能力 [query-options] - - changelog 查詢rpm包的changelog 日誌記錄 -c 查詢程序的配置文件 -d 查詢程序的文檔 -i 查詢程序的information -l 查看指定的程序包安裝後生成的所有文件 - - scripts 程序包自帶的腳本 - - provides 列出指定程序包所提供的CAPABILITY -R 查詢指定的程序包所依賴的CAPABILITY rpm2cpio 包文件|cpio –itv 預覽包內文件 rpm2cpio 包文件|cpio –id “*.conf” 釋放包內文件
-
卸載
rpm -e
-
校驗
rpm -V [select-options] [verify-options] [verify-options] S file Size differs 文件大小比較 M Mode differs (includes permissions and file type) 模式比較,包括權限和文件類型 5 digest (formerly MD5 sum) differs md5值比較
md5是單向加密。相當於文件的特徵碼,只要文件有一絲改變,md5碼就會發生變化
D Device major/minor number mismatch 主次要版本號的匹配
L readLink(2) path mismatch
U User ownership differs 所屬主的比較
G Group ownership differs 所屬組的比較
T mTime differs 修改時間的比較
P capabilities differ
- 公鑰,私鑰加密
對稱加密:加密、解密使用同一密鑰,速度性能快,不安全,不能長久存在
非對稱加密:密鑰是成對兒的,安全,速度性能慢,需要計算
公鑰(public key):公開所有人
私鑰(secret key) :不能公開 -
導入所需要公鑰
rpm -K checksig rpmfile 檢查包的完整性和簽名 rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
CentOS 7發行版光盤提供: RPM-GPG-KEY-CentOS-7
rpm -qa “gpg-pubkey*”
-
數據庫
數據庫重建rpm - - initdb - - rebuilddb
initdb: 初始化
如果事先不存在數據庫,則新建之,否則,不執行任何操作
rebuilddb:重建已安裝的包頭的數據庫索引目錄
sr0 光驅設備名字,固定的
mount -r /dev/sr0 /mnt 掛載