第五周作業

1、簡述rpm與yum命令的常見選項,并舉例

rpm 命令

linux的的包管理器,用于對rpm軟件包,進行安裝、升級、卸載、查詢、校驗等操作。

使用語法:

rpm [OPTIONS] [PACKAGE_FILE]

常用選項:

  • 安裝: -i,–install
  • 升級: -U,–update,-F,–freshen
  • 卸載: -e,–erase
  • 查詢: -q,–query
  • 校驗: -V,–verify
  • 數據庫維護: –builddb,–initdb

安裝:

rpm {-i|–install} [install-options] PACKAGE_FILE …

通用選項

  • -v: verbose,詳細信息
  • -vv: 更詳細的過程輸出

install-options:

  • -h: 在展開包的時候輸出50個#號哈希標記符,[#表示2%的進度]
  • –test: 測試檢查安裝,并報告依賴關系及沖突消息.
  • –nodeps: 忽略依賴關系,并安裝
  • –replacepkgs: 重新安裝
  • –noscripts: 忽略RPM包的腳本執行

如果被操作修改的了安裝的配置文件,重新安裝并不會替代此文件,如果要恢復安裝需要刪除配置文件

升級:

rpm{-U|–upgrade}[install-options] PCKAGE_FILE… rpm{-F|–freshen}[install-options] PCKAGE_FILE…

  • -U: 基于早期版本號升級或全新安裝,
  • -F:僅作升級

獨有選項:

  • –oldpackage:降級安裝,{回滾操作}
  • –force:強制升級

卸載:

rpm {-e|–erase}[–allmatches][–nodeps][–noscripts][–test]PACKAGE_NAME…

卸載選項:

  • –allmatches: 卸載所有匹配指定名稱的程序包個版本。
  • –nodeps:忽略依賴關系,
  • –test:測試卸載,dry run模式,

查詢:

rpm{-q|–query}[select-options][query-optons]

select-options:

  • PACKAGE_NAME:查詢指定的程序包是否已經安裝及版本
  • -q: 是查詢包選項。
  • -a,–all:是查詢已經安裝的所有包。
  • -f FILE: 查詢指定的文件是由哪些安裝包生成
  • -g –group:查詢組中的包。
  • -p –package PACKAGE_FILE: 用于實現對未安裝的程序包執行查詢操作.
  • –whatprovides CAPABILITY: 查詢指定的CAPABILTY由哪個程序包提供。
  • –whatrequires CAPABILITY: 查詢指定的CAPABILITY被哪個包所依賴:

query-optons:

  • –changelog: 查詢rpm包的cheanglog
  • -l: 程序安裝包的所有文件列表
  • -i –info: 程序包相關的信息,版本號、大小、所屬的包租,等
  • -c –configfiles: 查詢指定的程序提供的配置文件。
  • -d –docfiles:查詢指定的程序包提供的幫助文檔。
  • –provides:列出指定的程序包提供的所有的CAPABILITY.
  • -R –requres: 查詢指定程序包的依賴關系。
  • –scripts:查詢程序包自帶的腳本片段。

校驗:

rpm {-V|–verify}[select-options][verify-options]

常用選項:

  • –nodeps:不校驗依賴關系。
  • –nodigest:不檢查包完整性。
  • –nofiles:不校文件屬性是否發生改變。
  • –nosignature: 不校驗包完整性等等。

特性說明:

  • S:表示大小發生變化了。
  • M:權限發生改變。
  • 5:MD5碼發生改變,(完整性發生變化)。
  • D:主/次設備號不匹配。
  • L:readLink的路徑不匹配。
  • U:屬主被修改。
  • G:屬組被修改。
  • T:最后一次修改時間戳,修改了。
  • p:caPabilities 被修改。

數據庫重建:

rpm {–initdb | –rebuilddb}[–dbpath DIRECTORY][–root DIRECTORY]

常用選項:

  • –initdb: 初始化數據庫,當前無任何數據庫可初始化創建一個新的,如果存在數據庫,不執行任何操作。
  • –rebuilddb:重行構建,同故宮讀取當前系統上所有已經安裝過的程序包進行重新創建。

示例安裝:

[root@MiWiFi-R3-srv ~]# rpm -ivh /tmp/rpm/zsh-5.0.2-28.el7.x86_64.rpm 

準備中...                          ################################# [100%]
      軟件包 zsh-5.0.2-28.el7.x86_64 已經安裝

示例升級:

[root@MiWiFi-R3-srv ~]# rpm -Uvh --force /tmp/rpm/zsh-5.0.2-28.el7.x86_64.rpm 

準備中...                          ################################# [100%]
正在升級/安裝...
   1:zsh-5.0.2-28.el7                 ################################# [100%]

示例卸載:

[root@MiWiFi-R3-srv ~]# rpm -evh zsh
準備中...                          ################################# [100%]
正在清理/刪除...
   1:zsh-5.0.2-28.el7                 ################################# [100%]

示例查詢:

[root@MiWiFi-R3-srv ~]# rpm -qa zsh
zsh-5.0.2-28.el7.x86_64

示例校驗:

首先修改其內容
[root@MiWiFi-R3-srv ~]# vim /usr/share/zsh/5.0.2/functions/ztodo


# vim: set ft=zsh et sw=2 sts=2:
#   測試#號
#   測試#號
#   測試#號
#   測試#號
emulate -L zsh
setopt no_sh_word_split null_glob no_ksh_arrays
typeset -gHA __ztodolist
typeset -gH __ztodolastwrite
local cachefile short_format list_format
local tmp needupdate=0
local -a todos

示例執行校驗

[root@MiWiFi-R3-srv ~]# rpm -V zsh
S.5....T.    /usr/share/zsh/5.0.2/functions/ztodo

示例重建數據庫:

[root@MiWiFi-R3-srv ~]# rpm --rebuilddb

yum 命令

yum是屬于rpm的一種前端管理器,通過C\S協議,是一種能夠自動解決rpm包在安裝時需要調用復雜的運行環境。

語法:

yum [options] [command] [package …]

顯示所有倉庫:

yum repolist [all] [enabled|disabled] 啟用 | 禁用

顯示程序包:

list:

  • 1、yum list [all|glob_exp1] [glob_exp2] […]
  • 2、yum list {available|installed|updates} [glob_exp1] […]

安裝程序包:

install package1 [package2] […]

reinstall package1 [package2] […] (重新)

yum install gcc-4.5.4 [指明老版本,默認是安裝新版本]

升級程序包:

update [package1] [package2] […]

downgrade package1 [package2] […] (降級)

檢查可用升級:

check-update

卸載程序包:

remove | erase package1 [package2] […] 如果卸載被依賴的包也會被卸載。

查看程序包的information 查看程序包的簡要說明。

info […]

查看指定的特性:(可以是某文件)是由那個程序包提供的

provides | whatprovides feature1 [feature2] […]

清理本地緩存:

clean [packages | metadata | expire-cache | rpmdb | plugins | all]

構建緩存:

makecache

搜索:

search string1 [string2] […]
以指定關鍵字搜索程序包名及summary信息。

查看指定包所依賴的capabilities:

deplist package1 [package2] […]

查看yum事物歷史:

history [info | list | packages-list | packages-info | summary | addon-info | redo | undo |rollback |new | sync |stats]

安裝及升級本地程序包:

  • localinstall rpmfile1 [rpmfile2] […]
    • (maintained for legacy reasons only – use install)
  • localupdate rpmfile1 [rpmfile2] […]
    • (maintained for legacy reasons only – use update) 已經作廢,centos 7 可以直接使用 yum install 包名

包組管理的相關命令:

  • groupinstall group1 [group2] […] 安裝指定包組
  • groupupdate group1 [group2] […]升級包組
  • grouplist [hidden] [groupwildcard] […] 顯示包組
  • groupremove group1 [group2] […]移除包組
  • groupinfo group1 […]查看包組的相關信息
  • search string1 [string2] […]

示例顯示所有yum倉庫

[root@MiWiFi-R3-srv ~]# yum repolist

已加載插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
源標識                                                     源名稱                                                                    狀態
!base                                                      CentOS 7 Release 7.1.1503                                                 8,652
!xen4CentOS                                                Xen 4 CentOS 7                                                            8,652
repolist: 17,304

示例查看所有可用的包

[root@MiWiFi-R3-srv ~]# yum list 

已加載插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
已安裝的軟件包
GConf2.x86_64                           3.2.6-8.el7                    @anaconda
ModemManager.x86_64                     1.1.0-6.git20130913.el7        @anaconda
ModemManager-glib.x86_64                1.1.0-6.git20130913.el7        @anaconda

示例安裝:

[root@MiWiFi-R3-srv ~]# yum install zziplib-utils.x86_64 


已安裝:
  zziplib-utils.x86_64 0:0.13.62-5.el7                                                                                                    

作為依賴被安裝:
  zziplib.x86_64 0:0.13.62-5.el7                                                                                                          

完畢!

示例升級:

[root@MiWiFi-R3-srv cdrom]# yum update zziplib

示例卸載:

[root@MiWiFi-R3-srv cdrom]# yum remove zziplib

例刪除:
  zziplib.x86_64 0:0.13.62-5.el7                                                                                                          

作為依賴被刪除:
  zziplib-utils.x86_64 0:0.13.62-5.el7                                                                                                    

完畢!

示例查看程序包的特性:

[root@MiWiFi-R3-srv cdrom]# yum info zziplib

已加載插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
可安裝的軟件包
名稱    :zziplib
架構    :i686
版本    :0.13.62
發布    :5.el7
大小    :82 k
源    :base
簡介    : Lightweight library to easily extract data from zip files
網址    :http://zziplib.sourceforge.net/
協議    : LGPLv2+ or MPLv1.1
描述    : The zziplib library is intentionally lightweight, it offers the ability to
         : easily extract data from files archived in a single zip file. Applications
         : can bundle files into a single zip archive and access them. The implementation
         : is based only on the (free) subset of compression with the zlib algorithm
         : which is actually used by the zip/unzip tools.

示例查看指定特性

[root@MiWiFi-R3-srv cdrom]# yum provides zziplib

已加載插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
zziplib-0.13.62-5.el7.i686 : Lightweight library to easily extract data from zip files
源    :base



zziplib-0.13.62-5.el7.i686 : Lightweight library to easily extract data from zip files
源    :xen4CentOS



zziplib-0.13.62-5.el7.x86_64 : Lightweight library to easily extract data from zip files
源    :base



zziplib-0.13.62-5.el7.x86_64 : Lightweight library to easily extract data from zip files
源    :xen4CentOS

示例清理本地緩存

[root@MiWiFi-R3-srv cdrom]# yum clean 
已加載插件:fastestmirror, langpacks
錯誤:清理命令需要參數:headers, packages, metadata, dbcache, plugins, expire-cache, rpmdb, all
[root@MiWiFi-R3-srv cdrom]# yum clean all
已加載插件:fastestmirror, langpacks
正在清理軟件源: base xen4CentOS
Cleaning up everything
Cleaning up list of fastest mirrors

示例構建緩存

[root@MiWiFi-R3-srv cdrom]# yum makecache
已加載插件:fastestmirror, langpacks
base                                                                                                               | 3.6 kB  00:00:00     
xen4CentOS                                                                                                         | 2.9 kB  00:00:00     
(1/7): base/group_gz                                                                                               | 154 kB  00:00:00     
(2/7): base/primary_db                                                                                             | 5.1 MB  00:00:00     
(3/7): base/filelists_db                                                                                           | 6.0 MB  00:00:00     
(4/7): base/other_db                                                                                               | 2.2 MB  00:00:00     
(5/7): xen4CentOS/primary_db                                                                                       | 5.1 MB  00:00:00     
(6/7): xen4CentOS/filelists_db                                                                                     | 6.0 MB  00:00:00     
(7/7): xen4CentOS/other_db                                                                                         | 2.2 MB  00:00:00     
Determining fastest mirrors
元數據緩存已建立
[root@MiWiFi-R3-srv cdrom]#

示例搜索:

[root@MiWiFi-R3-srv cdrom]# yum search zz

已加載插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
============================================================ N/S matched: zz =============================================================
harfbuzz-devel.i686 : Development files for harfbuzz
harfbuzz-devel.x86_64 : Development files for harfbuzz
harfbuzz-icu.x86_64 : Harfbuzz ICU support library
harfbuzz-icu.i686 : Harfbuzz ICU support library
zziplib-devel.i686 : Development files for the zziplib library
zziplib-devel.x86_64 : Development files for the zziplib library
zziplib-utils.x86_64 : Utilities for the zziplib library
harfbuzz.x86_64 : Text shaping library
harfbuzz.i686 : Text shaping library
zziplib.i686 : Lightweight library to easily extract data from zip files
zziplib.x86_64 : Lightweight library to easily extract data from zip files

  名稱和簡介匹配 only,使用“search all”試試。

2、自建yum倉庫,分別為網絡源和本地源

[local]
name=CentOS cdrom
baseurl=file:///tmp/cdrom/
gpgcheck=0
enabled=1
keepcache=0

[http]
name=mirrors 163
baseurl=http:///http://mirrors.163.com/centos/$7.4.1708/updates/$x86_64/
gpgcheck=
enabled=1
keepcache=0

3、簡述at和crontab命令,制定 每周三凌晨三、五點10分執行某個腳本,輸出當前時間,時間格式為 2017-12-28 10:00:00

linux任務計劃執行

  • 特定時間執行一次: at
  • 周期性循環執行 : crontab

at

特定時間執行一次腳本

語法格式:

at [OPTION]…TIME

常用選項:

  • -l:查看作業隊列,相當于atq
  • -f /PATH/FROM/SOMEFILE:從指定文件中讀取作業任務,而不用在交互式輸入。
  • -d #:刪除指定的作業,相當于atrm #
  • -c #:查看待執行作業的內容。
  • -q QUEUE #:指明隊列。

TIME:模糊執行

  • HH:MM [YYYY-mm-dd]
  • noon 正午 ,
  • midnight 午夜,
  • teatime 喝茶時間
  • tomorrow 明天
  • now+# 重目前計數起
  • UNIT:minutes,hours,days,OR weeks 相對時間
注意:作業執行結果是以郵件發送提交作業的用戶。

crontab

語法格式:

crontab [-u user] [-l|-r|-e][-i]

常用選項:

  • -e:編輯任務,
  • -l:列出所有當前用戶的任務。
  • -r:移除所有任務,及刪除/varspool/cron/UASERNAME文件。
  • -i:在使用-r選項移除所有任務時提升用戶避免出錯。
  • -u user:root用戶可為指定用戶管理cron任務。
注意:運行結果以郵件通知給當前用戶,如何拒絕接收郵件。
  • (1)COMMAND > /dev/null;正常結果發給 數據黑洞
  • (2)COMMAND &> /dev/null;無論結果正確與否都發送給 數據黑洞 比較危險建議程序正常執行了一次后再加/dev/null
注意:定義COMMAND時,如果命令需要用到%,需要對其轉義,或加單引號‘’。

3、 每周三凌晨三、五點10分執行某個腳本,輸出當前時間,時間格式為 2017-12-28 10:00:00

1、首先新建一個文本用來記錄輸出內容.
   [root@localhost ~]# touch /tmp/date.txt

2、設置一個周期性計劃.
   [root@localhost ~]# crontab -e

   10 5 * * 3 /bin/date '+\%F \%T' &>> /tmp/date.txt
   0 3 * * 3 /bin/date '+\%F \T' $>> /tmp/date.txt

4、簡述sed常用操作命令,并舉例

sed 命令

sed與grep、awk被成為文本處理三劍客,其中sed是流編輯器,將文本中的數據進行逐行編輯處理,處理過程大體是至上而下讀取一行數據到模式空間(pattern space)與模式空間中的指定模式進行edit【編輯處理】由模式決定是否輸出至stdout(標準輸出)。

語法:

sed [OPTION]…’script’ [input-file]…

常用選項:

  • -n:不輸出模式空間中的內容至屏幕。
  • -r:支持使用正則表達式。
  • -i:直接編輯源文件。
  • -e scripts: 同時編輯多個文檔。
  • -f /PATH/TO/SED_SCRIPT_FILE: 多個編輯命令組成的script腳本來編輯文件

地址定界:

  • 空地址:對全文進行編輯
  • 單地址:
    • A :指定行 pattern:模式匹配的每一行。
  • 地址范圍:
    • A,B:A起始行至B結束行。
    • A,+B:A指定起始行向后多少B行。
    • A,/pate1/: 指定行A開始到模式匹配的第一個值之間的內容。
  • 步進:~ 指定行向后多少位的行。

常用編輯命令

  • d:刪除
  • p:顯示模式空間被地址定界指定的內容。
  • a \text: 將‘text’追加到行尾,支持\n
  • i \text: 將‘text’插入行首,支持\n
  • c \text: 把匹配道德行替換為‘text’文本
  • w /PATH/TO/SOMEFILE: 保存模式空間匹配到的行至指定文本中,
  • r /PATH/FROM/SOMELILE: 讀取指定文件插入到模式空間匹配的行后面,實現文件合并。
    • =:為模式匹配到的打印(顯示)行號
    • ?。簵l件取反。
      • \定制定界!編輯命令
  • s///: 查找替換,其分隔符可指定指定,常用的有s@@@,s###等等。
    • 替換標記:
      • g:全局替換,替換行的首次匹配。
      • p:顯示替換成功的行。
  • w /PATH/TO/SOMELIFE:將替換成功的結果保存到指定文件中,

支持的正則表達式

  • 字符匹配:
    • .號:匹配任意單個字符。
    • []:匹配指定范圍內的任意單個字符。
    • [^]:匹配指定范圍外的任意單個字符。
      • [[:upper:]];匹配大寫字母
      • [[:lower:]];所有小寫字母
      • [[:alpha:]]: 所有字母
      • [[:digit:]]: 所有數字
      • [[:alnum:]]: 所有的字幕和字符
      • [[:space:]]: 所有空白字符
      • [[:punct:]]: 所有標點符號
  • 匹配次數:用在要指定其出現的次數的字符的后面,用于現在其前面字符出現的次數。默認工作于貪婪模式,能匹配多長就多長
    • *:匹配其前面的字符任意次,0,1或者多次。
    • .*:匹配任意長度的任意字符。
    • \?:匹配其前面的字符0次或1次,即前面的字符是可有可無的。
    • +:匹配前面的字符1次或多次,即其前面的字符要出現至少1次。
    • {m}:匹配其前面的字幕m次,
    • {m,n}:匹配其前面的字符至少m次,至少n次

位置錨定:

  • ^:行首錨定,用戶模式的最左側。
  • $:行尾錨定,用于模式的最右側
  • \<或\b:詞首錨定,用于單詞模式的左側。
  • >或\b:詞尾錨定,用戶單詞模式的右側
  • \<pattern\>:精確錨定單詞。</pattern\>

示例:只顯示/etc/rpc的前4行

[root@MiWiFi-R3-srv ~]# sed -n '1,4'\p /etc/rpc

#ident    "@(#)rpc    1.11    95/07/14 SMI"    /* SVr4.0 1.2    */
#
#    rpc
#
[root@MiWiFi-R3-srv ~]#

示例: 將yum.conf 的3-5行插入 “hello”

[root@localhost sed]# sed '3,+2 a\hello' yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
hello
debuglevel=2
hello
logfile=/var/log/yum.log
hello
exactarch=1

示例:查詢空白行

[root@localhost sed]# sed -r -n '/^$/p' yum.conf



[root@localhost sed]#

[root@localhost sed]# sed ‘s@[[:space:]]+@—-@’g yum.conf

[main]

That`s—-the—-line “`

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/90076

(0)
N28_剛好遇到小熊貓N28_剛好遇到小熊貓
上一篇 2017-12-14 17:31
下一篇 2017-12-14 20:20

相關推薦

  • Ansible應用介紹

    Ansible 簡介 ansible是個什么東西呢?官方的title是“Ansible is Simple IT Automation”——簡單的自動化IT工具。這個工具的目標有這么幾項:自動化部署APP;自動化管理配置項;自動化的持續交互;自動化的(AWS)云服務管理。所有的這幾個目標從本質上來說都是在一個臺或者幾臺服務器上,執行一系列的命令而已。通俗的說…

    Linux干貨 2015-07-03
  • 搭建屬于自己的DNS

    1、搭建主renzituo.com服務器     ①、在192.168.10.4主機上安裝bind程序             yum -y install bind   &nbs…

    2017-04-16
  • 大話命令之–ss

    大話命令之—ss ss是Socket Statistics的縮寫。顧名思義,ss命令可以用來獲取socket統計信息,它可以顯示和netstat類似的內容。 優勢: (1)顯示更多更詳細的有關TCP和連接狀態的信息,(2)比netstat更快速更高效。 1 格式 格式:ss    [option]… &nbs…

    Linux干貨 2017-05-15
  • N26-第七周作業-邢巖

    馬哥門徒-N26-邢巖      今天看了一本書《運維前線:一線運維專家的運維方法、技巧與實踐》,有一張運維全平臺規劃體系如下:      看完這張圖,瞬間覺得自動化運維真的是很龐大精深,我只是在運維這片海洋的岸邊,剛剛邁入一只腳步而已,究竟什么是山,什么是水,還不得而知。就讓我化身一條小魚,在這片…

    2017-03-11
  • yum 倉庫

    Yum 倉庫     yum源就是一個軟件集合地,你只需要搜索并安裝你想要的軟件,它會幫你解決大部分軟件的依賴問題。本地源比如說光盤里面一般會附帶一些軟件,這個時候就可以把光盤當成本地源來安裝軟件。網絡源比如說aliyun的鏡像網站,這就屬于網絡源,可以通過互聯網把軟件下載下來并安裝。   yum 倉庫 &n…

    2017-06-24
  • 編譯httpd2.4.10踩坑記

    作者【Jev Tse】【版權所有】  系統環境:centos6.8     【本文概覽】     零、httpd2.4.10編譯總結         1、基礎環境         2、依賴包組   &…

    Linux干貨 2016-11-29

評論列表(1條)

  • 馬哥教育
    馬哥教育 2018-03-21 09:18

    總結的很全,另外在適當的地方舉出一二例子,容易帶動讀者再次回想前面的理論部分,排版也不錯,繼續加油~

欧美性久久久久