1、簡述rpm與yum命令的常見選項,并舉例
RPM
rpm是一個功能十分強大的軟件包管理系統,它使得在Linux下安裝、升級和刪除軟件包的工作變的容易、并且具有查詢、驗證軟件包的功能
- 安裝
rpm {-i|–install} [install-options] PACKAGE_FILE …
選項:
-h:-hash,顯示安裝進度
-v:–verbose,顯示安裝過程中的詳細信息
-vv:顯示更詳細信息
-vvv:更詳細
–testL不執行真正的安裝過程,僅僅報告依賴關系以及沖突信息等;
–nodeps:忽略依賴關系(不建議)
–replacepkgs:重新安裝并覆蓋原有文件
- 升級
rpm {-U|–upgrade}[install-options]PACKAGE_FILE… 升級或安裝
rpm {-F|–freshen}[install-options]PACKAGE_FILE… 升級
選項:
–test:不執行真正的安裝過程,僅報告依賴關系以及沖突信息等
–nodeps:忽略依賴關系(不建議)
–oldpackage:降級到舊版本
注意:
1、不要升級內核。Linux允許多內核共存,所以可以直接安裝多個不同版本內核
2、如果程序包的配置文件安裝后曾被修改,那么升級時新版本的文件不會覆蓋老版本的配置文件,把新版本的配置文件重命名(加后綴.remnew)后保存
- 查詢
rpm {-q|–query} [select-options] [query-options]
選擇選項:
rpm -q PACKAGE_NAME:查詢某些包是否已安裝
rpm -qa:查詢已經安裝的所有包
rpm -qf /PATH/TO/SOEMFILE:查詢某文件是由哪個包安裝生成的
rpm -qpi PACKAGE_NAME:查詢尚未安裝的包文件的相關信息
查詢選項:
rpm -qi PACKAGE_NAME:查詢某包的簡要說明信息
rpm -ql PACKAGE_NAME:查詢某包安裝后生成的文件列表
rpm -qc PACKAGE_NAME:查詢某包安裝后生成的所有配置文件
rpm -qd PACKAGE_NAME:查詢某包安裝后生成的所有幫助文件
rpm -q –changelog PACKAGE_NAME:查看某包制作時隨版本變化的changelog信息
rpm -q –provides PACKAGE_NAME:查詢某包提供的capabilities
rpm -q –requires PACKAGE_NAME:查詢某包所依賴的capabilities
rpm -q –scripts PACKAGE_NAME:查詢某包安裝或卸載時執行腳本
腳本有四類:
preinstall:安裝過程開始之前執行的腳本
postinstall:安裝過程完成后執行的腳本
preuninstall:卸載開始之前執行的腳本
postuninstall:卸載過程完成之后執行的腳本
- 卸載
rpm {-e|–erase} [–allmatches] [–nodeps] [–test] PACKAGE_NAME …
選項:
–nodeps:忽略依賴關系
–test:測試卸載
–allmatches:如果一個程序包同時安裝多個版本,則全部卸載
注意:如果程序包的配置文件安裝后曾被修改,那么卸載時此文件通常不會被刪除而是被重命名(加后綴.rpmsave)后保存
- 校驗
rpm {-V|–verify} [select-options] [verify-options]
當沒有輸出結果時表示如簡報完整,當有相應輸出表明對應的內容有膝蓋,具體如下:
S:文件大小
M:文件的類型或文件的屬性
5:MD5指紋碼
D:裝置的主/次代碼
L:Link路徑
U:文件的所屬人
G:文件的所屬群組
T:文件的創建時間
P:capabilities
YUM
yum是通過分析rpm的標頭數據后,根據各軟件的依賴關系制作出有依賴關系時的解決方案,然后可以自動處理軟件的依賴性問題,以解決軟件安裝、移除與升級的問題。
常用命令:
yum repolist {all|enabled|disabled} 列出所有/已啟用/已禁用的yum源
yum list {all|installed|avaliable} 列出所有/已安裝/可安裝的軟件包
yum info package 顯示某一個軟件包的信息
yum install package 安裝軟件包
yum reinstall package 重新安裝軟件包
yum remove|earse package 卸載軟件包
yum whatprovides|provides files 查詢某個文件是哪個軟件包生成的
yum grouplist {all|installed|avaliable} 列出所有/已安裝/可安裝的軟件包組
yum groupinfo 顯示某個軟件包組的信息
yum groupinstall 安裝某個軟件包組
yum groupremove 刪除某個軟件包組
yum history 查看yum使用的歷史
yum clean {all|packages|metadata} 清除所有/軟件包/元數據
yum makecache 生成yum元數據
yum –nogpgcheck 不校驗公鑰文件
yum -y 自動進行操作
2、自建yum倉庫,分別為網絡源和本地源
網絡源
1.vim /etc/yum.repos.d/Centos-network.repo
2.添加以下內容
[http]
name=mirros ali
baseurl=baseurl=http:///http://mirrors.163.com/centos/7/os/x86_64/
enable=1
gpgcheck=0
本地源
1. mount -rt /dev/cdrom /media/cdrom
2.vim /etc/yum.repos.d/centos-network.repo
3.添加以下內容
[xen4centos]
name=Xen 4 CentOS 6
baseurl=file:///media/cdrom
gpgcheck=1
3、簡述at和crontab命令,制定 每周三凌晨三、五點10分執行某個腳本,輸出當前時間,時間格式為 2017-12-28 10:00:00
at命令:適合一次性的任務計劃
選項:
-l:相當于atq,列出所有用戶的at隊列
-d:相當于atm,取消一個工作
-v:使用明顯的時間格式列出工作列表
-f:把所有任務放置于文件中,讓at讀取此文件作為要運行的任務
crontab命令:適合周期性的任務計劃
選項:
-l:列出所有任務
-e:打開編輯任務界面
-r:移除所有任務
注意:刪除單個任務應該通過編輯界面刪除行實現
示例:
1.編寫輸出當前時間的腳本
echo “date +”%Y-%m-%d %H:%M:%S”” >> /root/show_time2.sh
2.制定任務
(1) crontab -e
(2) 添加一行,內容如下:
10 3,5 * * 3 /root/show_time2.sh
4、簡述sed常用操作命令,并舉例
sed [OPTION]… {script-only-if-no-other-script} [input-file]…
選項:
-r:支持擴展正則表達式
-n:靜默模式
-e script1 -e script2 -e script3:多腳本運行
-f /path/to/script_file:讀取指定腳本
-i:直接修改源文件
地址定界:
#:指定行
$:最后一行
/regexp/:任何被regexp匹配到的行
\%regexp%\:同上,不過換了%作為regexp邊界符
sed編輯命令:
d:刪除模式空間中的行
=:為模式空間中的行打印行號
a \text:在行后追加文本“text”,支持使用\n實現多行追加
i \text:在行前插入文本“text”,支持使用\n實現多行插入
c \text:用text替換匹配到的行
p:顯示模式空間中的內容
s///:查找替換,其分隔符可自行指定,常用的有s@@@,s###等
替換標記:
g:全局替換
i:不區分大小寫
示例:
1、刪除某文件中所有行首的空白字符
sed ‘s/^[[:space:]]\+//’ /root/11.txt
2、刪除某文件中所有行首的#和#后面的空白字符
sed ‘s/^#[[:space:]]\+’ /root/11.txt
3、把某文件的奇數行保存為另一個文件中
sed ‘1~2w /root/11.1.txt’ /root/11.txt
4、echo一個文件路徑給sed命令,去除其基名和路徑名
echo “/tmp/floor1/floor2/hi.txt” | sed ‘s@^.*/\([^/]\+\)@\1@’ #取基名
echo “/tmp/floor1/floor2/hi.txt” | sed ‘s@[^/]\+\?$@@’ #取路徑名
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/103757