1、簡述rpm與yum命令的常見選項,并舉例
? (* 上圖為程序包命名格式)
1.1 rpm命令
1.1.1 功能:將編譯好的應用程序的各組成文件打包成一個或多個程序包文件,從而更方便的實現程序包的安裝,升級,卸載和查詢等操作。
1.1.2 通用格式:rpm [OPTIONS]…[PACKAGE-FILE] 以下還有其更多功能選項
? OPTIONS:
? 安裝:-i ,–install
? 升級: -U ,update , -F ,–Freshen
? 卸載: -e , –erase
? 查詢: -q , –query
? 校驗: -V , –verify
? 數據庫維護: –builddb , –initdb
? **安裝**: rpm {-i|–install} [install-options] PACKAGE_FILE …
? install-options:
? -h:hash marks 輸出進度條;每個進度條代表2%,共50個#
? –test:測試安裝(并不是真正安裝,而是檢查一下是否能被安裝)
? –nodeps: 忽略依賴關系,強行安裝
? –replacepkgs:重新安裝
? -v :verbose,詳細信息
? -vv:更詳細的輸出
? 通常使用安裝時的格式:
? rpm -ivh PACKAGE_FILE…
? **升級**: rpm {-U|–upgrade} [install-options] PACKAGE_FILE …
? rpm {-F|–freshen} [install-options] PACKAGE_FILE …
? install-options:
? –oldpackage : 降級
? –force:強行升級(不處理依賴關系到的程序包)
? 通常使用升級時的格式:
? 升級或安裝:rpm -Uvh PACKAGE_FILE…
? 升級:rpm -Fvh PACKAGE_FILE…
? **卸載:**rpm {-e|–erase}| –allmatches| [–nodeps]|[–noscripts]|[–notriggers]|[–test] PACKAGE_NAME …
? –allmatches :卸載所有能匹配到指定名稱的程序包的各版本
? –nodeps: 忽略依賴關系
? –test: 測試卸載
? –notriggers:不執行觸發程序
? **查詢:** rpm {-q|–query} [select-options]|[query-options]
? select-options:
? -a ,–all : 查詢所有已安裝的程序包
? -f,FILE :查詢指定的文件有那個程序包安裝生成
? -g,–group:查詢指定包組中那個包使用最多
? -p,–psckage PACKAGE_FILE:用于實現對未安裝的程序包執行查詢操作
? —whatprovides CAPABLITY :查詢指定的CAPABLITY由那個程序包提供
? –whatrequires CAPABLITY : 查詢指定的CAPABLITY被那個包所依賴
? query-options: (都與-q一起使用)
? –changelog : 查詢rpm包的日志
? -l,–list :程序安裝生成的所有文件列表
? -i,–info : 程序包相關的信息,版本號,大小,所屬的包組等
? -c,–configfiles:查詢指定的程序提供的配置文件
? -d,–docfile:查詢指定的程序包提供的幫助文件
? –provides:列出指定的程序包提供的所有CAPABILITY
? -R,–requires: 查詢指定程序包的所有依賴關系
? –scripts : 查詢程序包自帶的腳本片段
示例:查詢安裝的zsh包的配置信息
? **校驗:** rpm {-V|–verify} [select-options]|[verify-options]
? 示例: 當修改程序包文件時,再進行校驗操作會輸出結果,例如修改文件/etc/zshrc 后運行
? 輸出結果解釋:
? S: 文件大小發生改變
? 5: 文件內容發生改變
? T: 文件時間戳發生改變
? 在輸出結果中,有9個字段,依次表示為:
? S:文件大小發生改變
? M:權限發生改變
? 5:文件md5碼發生改變
? D:主次設備號發生改變
? L: readlink路徑不匹配
? U:屬主改變
? G:屬組改變
? T:最近一次時間戳發生改變
? P:copabilities 改變
?
1.2 yum命令
功能:yum是rpm的前端管理工具,yum要依賴于rpm的存在而存在的,解決了包與包之間復雜的依賴關系,使程序包的安裝更簡單。
yum命令的用法:
yum [options]|[command]|[package…]
command:
安裝程序包:
install package1[package2]
重新安裝程序包:
reinstall package1 [package2]
顯示倉庫列表:
repolist [all|enabled|disabled]
顯示所有或通配顯示
yum list [all|glob_exp1]|[glob_exp2]|[…]
顯示所有可用/安裝/升級的程序包
yum list {available | installed |updataes }[glob_exp1]|[…]
升級指定程序包:
update [package1]|[package2]|[…]
檢查可升級的程序包:
check-update
卸載程序包,依賴的程序包都會被卸載
remove | erase package1 [package2] …
查看指定的特性(可以使某文件)是由那個程序包所提供
provides | whatprovides feature1[feature2]…
清理本地緩存:
clean [packages|metadate | expire-cache | remdb | plugins | all ]
構建緩存:
makecache
根據關鍵字搜索:
search string1 [string2]…
降級安裝:
downgrade package1 [package2]…
查看指定程序包所依賴的程序包:
deplist package1 [package2] …
查看yum事務歷史(每啟動安裝,升級,卸載操作都叫做一次事務)
history [info | listpackages-list | packages-info | summary |addon-info…]
安裝升級本地程序包:
localinstall rpmfile1 [rpmfile2 ]…
localupdate rpmfile 1 [rpmfile2]…
options:
–nogpgcheck : 禁止進行gpgcheck
-y:自動進行安裝無需確認安裝
-q:靜默模式
–disablerepo = repoidglob:在安裝時臨時禁用此處指定的倉庫
–enablerepo = repoidglob :臨時啟用此處指定的倉庫
–noplngins:禁用所有插件
2、自建yum倉庫,分別為網絡源和本地源
創建網絡源:
第一步:在/etc/yum.repo.d/目錄下創建以repo結尾的文件
第二步:通過文本編輯器vim編輯次文件內容如下:
[BASE]
name=centos base aliyun
baseurl=https://mirrors.aliyun.com/centos-altarch/7.5.1804/os/
gpgcheck=0
第三步:yum repolist 命令查看是否生效
創建本地yum源:
第1步:首先在官方網站下載cd鏡像,掛載文件
mount -r /dev/sr0 /mnt
第2步:在/etc/yum.repo.d/目錄下創建以repo結尾的文件
通過vim編輯器編輯以下內容
[local 1]
name = cdrom centos mirrors
baseurl = file:///mnt
gpgcheck = 0
第3步:通過yum repolist 命令查看是否生效
3、簡述at和crontab命令,制定 每周三凌晨三、五點10分執行某個腳本,輸出當前時間,時間格式為 2017-12-28 10:00:00
3.1 at命令:在未來的某個時間執行一次任務
? 格式:at [OPTION]…TIME
? 時間格式:HH:MM[YYYY-MM-DD]
? 時間表示方法分兩種:
? (1). 模糊法:noon(中午12點) midnight(午夜) teatime(下午四點) tomorrow(明天)
? (2). 相對時間計時法: now + #(數字)+單位 (現在之后的#一個時間,單位包括minutes,hours,days)
? 常用選項: -l:查看作業隊列,相當于atq
? -f /PATH/FROM/SOMEFILE :從指定文件中讀取作業任務,而非交互式輸入
? -d # :刪除指定的作業,相當于atrm
? -c :查看指定作業的具體內容(以前執行過的也可以查看)
? -q QUEUE:指明隊列
? 注意:作業執行結果是以郵件發送給提交作業的用戶。
3.2crontab命令
? 格式:crontab [-u user |-l | -r |-e |-i |-s]
? 常用選項: -e : 編輯任務
? -l:列出所有任務
? -r:移除所有任務;即刪除/var/spool/cron/USERNAME文件
? -i:在使用-r選項移除所有任務是提示用戶確認是否操作
? -u user:root用戶可為指定用戶定義任務
? 注意1:運行結果是以郵件通知給當前用戶;如果需要拒收次郵件可以使用
? (1). COMMAND > /dev/nul
? (2). COMMAND &> /dev/null 可以使命令運行但不以郵件接收
? 注意2:定義COMMAND時,如果命令需要用到%時,需要對其轉義,當放置于單引號中時不需要轉義;
3.3 示例
編寫執行時間bash腳本:
制定crontab命令
10 3,5 * * 3 /root/bin/bash/date_task.sh
4、簡述sed常用操作命令,并舉例
4.1 sed命令
4.1.1 功能:針對行進行操作的流式編輯器
4.1.2 格式:sed [options] …”script”[input_file]
script:地址定界,編輯命令
4.1.3 常用選項:
-n:不輸出模式空間中的內容至標準輸出
-e script,–expression = script : 多點編輯
-f /PATH/TO/SED_SCRIDT_FILE:每一行一個編輯命令的腳本
-r,–regexp -extended : 支持使用擴展正則表達式
i[SUFFIX],–in -place [=SUFFIX] : 直接編輯原文件(危險操作,慎用)
4.1.4 地址定界:
#,#:從#到#行
#,+#:相對#到+#行
#,/pat1/ : 從#行到模式1匹配到的行
/pat1/,/pat2/:從模式1到模式2所匹配到的行
4.1.5 步/pat1/進 ~
1~2:所有奇數行
2~2:所有偶數行
4.1.6 編輯命令
d:刪除操作
示例:刪除文件的第1行到底5行
p:顯示模式空間中的內容
a\text : 在匹配到的行后面追加文本text,支持使用\n實行多行追加
i\text : 在行的前面插入文本text,支持使用\n實行多行插入
示例:在/etc/fstab 文件中的第3行插入內容“new line”
c\text : 吧匹配到的行替換為此處指定的文本text
w/PATH/TO/SOMEFILE : 保存模式空間匹配到的行至指定文件中
r /PATH/FROM/SOMEFILE : 讀取指定文件的內容至當前文件被模式匹配到的行后面
=:為模式匹配到的行打印行號
?。簵l件取反
示例:顯示刪除之外的行
s/// : 查找替換,其分隔符也可以換成@@@或###
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/104170
很實用的一篇博文,涵蓋了包管理、yum源和基礎命令的使用。繼續加油。