1、簡述rpm與yum命令的常見選項,并舉例
rpm是一個非常強大的命令,集成了很多選項
一般選項:
-q|–query:查詢選項
-i|–install:安裝選項
-U|–upgrade:升級選項
-e|–erase:刪除
-?,–help: 比正常打印更長的使用信息。
–version: 打印一個包含正在使用的rpm版本號的行。
–quiet: 盡可能少地打印 – 通常只會顯示錯誤信息。靜默模式
-v:打印詳細信息 – 通常會顯示常規進度消息。
-vv:打印大量丑陋的不容易讀得懂的調試信息。
rpm是一個功能十分強大的軟件包管理系統,它使得在Linux下安裝、升級和刪除軟件包工作變的容易、并且具有查詢、驗證軟件包的功能。
1)安裝選項
命令格式:rpm {-i|–install} [install-options] PACKAGE_FILE …
詳細選項
-h (or -hash)安裝時輸出hash記號(#)
–test 只對安裝進行測試,并不實際安裝
–percent 以百分比的形式輸出安裝的進度
–nodeps:忽略依賴關系
–replacepkgs:重新安裝
–nosignature:不檢查來源合法性
–noscipts:不執行程序包腳本片段;
%pre:安裝前腳本:–nopre
$post:安裝后腳本; –nopost
%preun:卸載前腳本; –nopreun
%postun:卸載后腳本; –nopostun
2)升級
命令格式:rpm {-U|–upgrade}[install-options]PACKAGE_FILE…
rpm {-F|–freshen}[install-options]PACKAGE_FILE…
upgrade:安裝有舊版程序包,則升級,如果不存在舊版本的程序包,則安裝;
freeshen:安裝有舊版程序包,則升級,如果不存在舊版本程序包,則不執行升級操作;
rpm -Uvh PACHAGE_FILE …
rpm Fvh PACHAGE_FILE …
–oldpackage:降級
–force:強行升級
注意:(1)不要對內核升級操作:Linux支持多內核版本并存,因此,對直接安裝新版本內核;
(2)如果原程序包的配置文件安裝后曾被修改,升級時,新版本的提供的通一個配置文件并不會直接覆蓋老版本的配置文件,而被新版本文件重命名(FILENAME.rpmnew)后保留;
3)查詢
命令格式: rpm {-q|–query} [select-options] [query-options]
-a:所有包;
-f:查看指定的文件由那個程序包安裝生成
-p /PATH/TO/PACKAGE_FILE:針對尚未安裝的程序包做查詢操作;
–whatprovides CAPABILITY:查詢指定CAPABILITY由那個包提供;
–whatrequies CAPABILITY:查詢指定CAPILITY被那個包所依賴;
詳細選項
–changelog:查詢rpm包的changlog
-c:查詢程序的配置文件
-i:infornation
-l:查看指定程序包安裝后生成的指定文件
–scripts:程序包自帶腳本片段
-R:查詢指定的程序包所依賴的CAPABILITY;
–provides:列出指定程序包所提供的CAPABILITY;
用法
-qi PACKAGE,-qf FILE,-qc PACKAGE,-qd PACKAGE
-qpi PACKAGE_FILE,-qpl PACHAGE_FILE,…
-qa
4)卸載
命令格式:rpm {-e|–erase} [–allmatches] [–nodeps] [–noscripts][–notriggers] [–test] PACKAGE_NAME …
參數
pkg1 … pkgN :要刪除的軟件包
詳細選項
–test 只執行刪除測試
–noscripts 不運行預安裝和后安裝腳本程序
–nodeps 不檢查依賴性
5)校驗已安裝的軟件包
命令格式:
rpm {-V|–verify} [select-options] [verify-options]
參數
pkg1 … pkgN 將要校驗的軟件包名
軟件包選項
-p Verify against package file
-f 校驗所屬的軟件包
-a Verify 校驗所有的軟件包
-g 校驗所有屬于組的軟件包
詳細選項
–noscripts 不運行校驗腳本
–nodeps 不校驗依賴性
–nofiles 不校驗文件屬性
普通選項
-v:顯示附加信息
–vv:顯示更加詳細的信息
yum功能選項:
yum install
update
clean
用于添加/刪除/更新rpm包,自動解決包的依賴問題以及系統更新升級
參數
-e 靜默執行
-t 忽略錯誤
-R[分鐘]設置等待時間
-y 自動應答 yes
–skip-broken忽略依賴問題
–nogpgcheck 忽略GPG驗證
check-update 檢查可更新的包
clean all清楚全部
clean packages 清楚臨時包文件 (/var/cache/yum 下文件)
clean headers 清除rpm頭文件
deplist 列出包的依賴
list 可安裝和可更新的RPM包
list installed 已安裝的包
list extras 已安裝且不在資源庫的包
info 可安裝和可更新的RPM包信息
info installed 已安裝包的信息(-qa參數相似)
install[RPM包]安裝包
localinstall 安裝本地的RPM包
update [RPM包]更新包
upgrate 升級系統
search [關鍵詞]搜索包
provides[關鍵詞]搜索特定包文件名
resinstall [RPM包]更新安裝包
repolist 顯示資源庫的配置
resolvedep指定依賴
remove[RPM包]卸載包
2、自建yum倉庫,分別為網絡源和本地源
配置本地源:
建立本地源目錄
]# mkdir /mnt/cdrom
]# mkdir /yum
掛載Centos光盤
]# mount /dev/cdrom /mnt/cdrom
]# cp -r /mnt/cdrom/* /yum
備份repo
]# cd /etc/yum.repo.d/
]# mkdir backup
]# mv CentOS-Base.repo CentOS-CR.repo CentOS-Vault.repo CentOS-Vault.repo ./backup
編輯Centos-Media.repo
]# vim Centos-Media.repo
[base]
name=Centos
baseurl=file:///yum
enable=1
gpgckeck=1
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-CentOS-7
清除yum緩存
]# yum clean all
]# yum makecache
配置網絡源:
備份源鏡像文件
]# mv centos* ./backup
下載阿里云的鏡像到/etc/yum.repos.d/
]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
清除yum緩存
]# yum clean all
]# yum makecache
3、簡述at和crontab命令,制定 每周三凌晨三、五點10分執行某個腳本,輸出當前時間,時間格式為 2017-12-28 10:00:00
minuteshoursdaymonthweekcommand
0-590-231-31 ?1-121-7
10 3,5 * * 3 bash ?/tmp/scrips/cron.sh
cat cron.sh
date “+%F %T”
4、簡述sed常用操作命令,并舉例
sed 是一種在線編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”(pattern space),接著用sed命令處理緩沖區中的內容,處理完成后,把緩沖區的內容送往屏幕。接著處理下一行,這樣不斷重復,直到文件末尾。文件內容并沒有 改變,除非你使用重定向存儲輸出。Sed主要用來自動編輯一個或多個文件;簡化對文件的反復操作;編寫轉換程序等。
[root@www ~]# sed [-nefr] [動作]
選項與參數:
-n :使用安靜(silent)模式。在一般 sed 的用法中,所有來自 STDIN 的數據一般都會被列出到終端上。但如果加上 -n 參數后,則只有經過sed 特殊處理的那一行(或者動作)才會被列出來。
-e :直接在命令列模式上進行 sed 的動作編輯;
-f :直接將 sed 的動作寫在一個文件內, -f filename 則可以運行 filename 內的 sed 動作;
-r :sed 的動作支持的是延伸型正規表示法的語法。(默認是基礎正規表示法語法)
-i :直接修改讀取的文件內容,而不是輸出到終端。
動作說明: [n1[,n2]]function
n1, n2 :不見得會存在,一般代表『選擇進行動作的行數』,舉例來說,如果我的動作是需要在 10 到 20 行之間進行的,則『 10,20[動作行為] 』
function:
a :新增, a 的后面可以接字串,而這些字串會在新的一行出現(目前的下一行)~
c :取代, c 的后面可以接字串,這些字串可以取代 n1,n2 之間的行!
d :刪除,因為是刪除啊,所以 d 后面通常不接任何咚咚;
i :插入, i 的后面可以接字串,而這些字串會在新的一行出現(目前的上一行);
p :列印,亦即將某個選擇的數據印出。通常 p 會與參數 sed -n 一起運行~
s :取代,可以直接進行取代的工作哩!通常這個 s 的動作可以搭配正規表示法!例如 1,20s/old/new/g 就是啦!
把開頭/結尾為str1的行替換為str2:
sed -i ‘s/^str1.*/str2/’ ?filename ?###以str1開頭
sed -i ‘s/.*str1$/str2/’ ?filename ?###以str1結尾
sed -i ‘s/.*str1.*/str2/’ ?filename ?###含有str1
將文件中含 “arr” 字符串的數據行中的 “str1” 字符串 , 替換成為 “str2” 字符串:
sed -e ‘/arr/s/str1/str2/g’ filename ?##含有g說明是全局替換
將文件中第 5 行數據 , 替換成句子”hello world?。?!”
sed -e ‘5c\hello world!!!’ filename
將文件中 1 至 100 行 , 替換成如下兩行:
how are you?
my name is feige.
命令如下:
sed -e ‘1,100c\
How are you?\
my name is feige.
‘ filename
刪除空行:
sed -e ‘/^ *$/d’ filename ? ### *號前面有一個空格符哦~
刪除含有指定字符串str的行:
sed -f ‘/str/d’ filename
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/100848
希望可以多多注意排版問題