linux第五周

RPM簡介
RPM類似于Windows系統中.exe的軟件安裝程序,用戶可以使用它自行安裝和管理Linux上的應用程序和系統工具;
RPM軟件包文件都是以.rpm為后綴,一般采用這樣的命名格式:軟件包名稱 – 版本號 – 修正版 . 硬件平臺 . rpm。
RPM命令的使用方法
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 …
GENERAL OPTIONS
-v:verbose,詳細信息
-vv:更詳細的輸出
[install-options]
-h: hash marks輸出進度條;每個#表示2%的輸出
–test:測試安裝,檢查并報告依賴關系及沖突消息等;
–nodeps:忽略依賴關系:不建議
–replacepkgs:重新安裝
升級:
rpm {-U|–upgrade} [install-options] PACKAGE_FILE …
rpm {-F|–freshen} [install-options] PACKAGE_FILE …
-U:升級或安裝;
-F:升級
rpm -Uvh PACKAGE_FILE …
rpm -Fvh PACKAGE_FILE …
–oldpackage:降級;
–force:強制升級;
卸載:
rpm {-e|–erase} [–allmatches] [–nodeps] [–noscripts] [–notriggers] [–test] PACKAGE_NAME …
–allmatches:卸載所有匹配指定名稱的程序包的個版本;
–nodeps:忽略依賴關系
–test:測試卸載,dry run模式
查詢:
rpm {-q|–query} [select-options] [query-options]
[select-options]
PACKAGE_NAME:查詢指定的程序包是否已經安裝,極其版本;-q
-a,–all:查詢所有已經安裝過的包
-f FILE:查詢指定的文件由哪個程序包安裝生成;
-p, –package PACKAGE_FILE:用于實現對未安裝的程序包執行查詢程序;
–whatprovides CAPABILITY:查詢指定的CAPABILITY由哪個程序包聽;
–whatrequires CAPABILITY:查詢指定的CAPABILITY被哪個包所依賴;
校驗:
rpm {-V|–verify} [select-options] [verify-options]
包來源合法性驗證和完整性驗證;
來源合法性驗證:
完整性驗證:
獲取并導入信任的包制作者的密鑰:
對于Centos發行版來說:rpm –import /etc/pki/rpm-gpg/
驗證:
(1)安裝此組織簽名的程序時,會自動執行驗證;
(2)手動驗證:rmp -K PACKAGE_FILE
1.4 RPM包管理簡單舉例
查看軟件包的詳細信息
[root@localhost ~]# rpm -qi httpd
Name : httpd
Version : 2.4.6
Release : 80.el7.centos.1
Architecture: x86_64
Install Date: Fri 06 Jul 2018 09:37:00 PM CST
Group : System Environment/Daemons
Size : 9817285
License : ASL 2.0
Signature : RSA/SHA256, Tue 03 Jul 2018 10:31:55 PM CST, Key ID 24c6a8a7f4a80eb5
Source RPM : httpd-2.4.6-80.el7.centos.1.src.rpm
Build Date : Wed 27 Jun 2018 09:50:38 PM CST
Build Host : x86-01.bsys.centos.org
Relocations : (not relocatable)
Packager : CentOS BuildSystem <http://bugs.centos.org>
Vendor : CentOS
URL : http://httpd.apache.org/
Summary : Apache HTTP Server
Description :
The Apache HTTP Server is a powerful, efficient, and extensible
web server.
刪除軟件包
[root@localhost ~]# rpm -evh –test httpd //dry run
error: Failed dependencies:
httpd-mmn = 20120211×8664 is needed by (installed) php-5.4.16-45.el7.x86_64
2. yumyum 簡介
yum是 “Yellow dog Updater, Modified” 的簡稱,最早是由 Yellow dog 發行版的開發者 Terra Soft 研發。yum的宗旨是自動化地安裝、升級、移除 RPM 包,收集 RPM 包的相關信息,檢查依賴性并自動提示用戶解決。
yum 包含如下組件
1 yum 命令
● 通過yum命令使用其提供的眾多功能;
● 由名為yum 軟件包提供(默認已安裝)。
2 yum 插件
● 由官方或第三方開發的 yum 插件用于擴展 yum 的功能;
● 通常由名為 yum -<pluginname> 的軟件包提供。
3 yum 倉庫
● yum 倉庫也稱為更新源;
● 一個 yum 倉庫存放了眾多的 RPM 文件目錄;
● yum倉庫必須包含一個名為 repodata 的子目錄用于存放倉庫數據,倉庫數據包含所有 RPM 包的描述、功能、提供的文件及依賴性等信息;
● 用戶通過訪問 yum 倉庫數據進行分析并完成查詢、安裝、升級等操作;
● 用戶可以使用 http://? ftp://? file:// 訪問 yum 倉庫;
● 用戶可以使用官方或第三方提供的眾多 yum 倉庫更新系統;
yum 命令常見用法及選項
常用選項 -y:對yum命令的所有提問回答均是”yes”;
yum [options] [command] [package …]
yum check-update? ?##檢查更新
yum update? ?##升級系統
yum install PACKAGE_NAME? ?##安裝指定的軟件包
yum update PACKAGE_NAME? ?##升級指定的軟件包
yum remove PACKAGE_NAME? ?##卸載指定的軟件包
yum groupinstall “groupname”? ?##安裝指定包組中的軟件包
yum groupupdate “groupname”? ?##更新指定包組中的軟件包
yum groupremove “groupname”? ?##卸載指定包組中的軟件包
yum search PACKAGE_NAME? ?##搜索相關的軟件包
yum info PACKAGE_NAME? ?##顯示指定軟件包的信息
yum deplist PACKAGE_NAME? ?##查詢指定軟件包的依賴信息
yum list [installed | updates | extras …]? ?##列出資源庫中所有已安裝、可以更新、額外的rpm包
yum倉庫配置文件
配置文件位于:/etc/yum.repos.d/*.repo
● [base]:repositoryid,用于指定一個倉庫,唯一值;
● name:指定倉庫的名稱;
● mirrorlist:用于指定倉庫的鏡像站點列表;
● baseurl:用于指定本倉庫的URL,可以是http:? ftp:? file:? 三種格式;
● enabled:用于指定是否啟用本倉庫,默認值為1,即可用;
● gpgcheck:用于指定是否檢查軟件包的gpg簽名;
● gpgkey:用于指定gpg簽名文件的URL。
2.4.1 自建網絡源yum倉庫
[base]
name=CentOS-$releasever – Base – 163.com
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
3. at命令
使用at命令可以在指定的時間執行指定的命令,該任務只會運行一次,運行之后該任務就不再存在。
at的命令格式
at [OPTION]… TIME
時間格式:
HH:MM [YYYY-mmm-dd]
noon, midnight, teatime, tomorrow
now+#
常用選項
-l:查看當前任務列表;
-f:從指定文件中讀取作業任務,而不用再交互式輸入;
-d:刪除指定的作業任務;
-c:查看指定作業的具體內容;
-q:指明隊列;
at命令舉例
1分鐘后執行/tmp/base/disclock.sh腳本,顯示當前日期和時間;
[root@localhost base]# at now+1minute
at> /tmp/base/disclock.sh
at> <EOT>
crontab命令
crontab可以根據分鐘、小時、日期、月份、星期的組合來調度任務的自動執行。用戶只要在crontab中設置好任務啟動的時間,到了相應的時間后系統就會自動啟動該任務。
crontab命令格式
crontab [-u user] [-l | -r | -e] [-i] [-s]
常用選項
-u user:root可以為指定用戶管理cron任務;
-l:輸出當前的自動任務列表;
-r:刪除當前的自動任務列表;
-e:更改當前的自動任務列表;
-i:刪除當前的自動任務列表,在刪除前會提示用戶確認;
使用crontab -e修改當前的自動任務列表時,每一行的格式如下:
分鐘? ?小時? ?日期? ?月份? ?星期? ?執行命令
分鐘:取值0~59之間的整數;
小時:取值0~23之間的整數;
日期:取值1~31之間的整數(如果指定月份,則必須是該月份的有效日期);
月份:取值1~12之間的整數;
星期,取值0~7之間的整數(0或7表示星期天);
使用crontab制定每周三凌晨三、五點10分執行某個腳本,輸出當前時間
[root@localhost /]# crontab -e
10 3,5 * * 3 /tmp/base/disclock.sh
[root@localhost base]# crontab -l
10 3,5 * * 3 /tmp/bash disclock.sh
4. sed命令
作用:對文本數據進行新增、替換、刪除、擷取等操作;
sed命令格式
sed [OPTIONS] [ACTIONS]
sed常用選項
-n:使用靜默模式,只有經過 sed 特殊處理的那一行才會被列出來;
-e:直接在指令列模式上進行 sed 的動作編輯;
-f:直接將 sed 的動作寫在一個文件內,可以執行 FILE 內的 sed 動作;
-r:使 sed 的動作支持擴展正則表達式;
-i:直接修改讀取文件的內容,而不是由屏幕輸出;
sed命令動作
a:新增;
c:替換;
d:刪除;
i:插入;
p:輸出;
s:可使用正則表達式進行替換操作;
常用操作舉例
刪除操作
使用 sed 命令刪除 tmp.txt 文件的第5行;
[root@localhost base]# cat -n tmp.txt | sed ‘5d’
1 ip route-static 0.0.0.0 0.0.0.0 10.63.251.254
2 ip route-static 10.0.0.0 255.0.0.0 10.63.251.254
3 ip route-static 10.0.1.0 255.255.255.0 10.33.2.1
4 ip route-static 10.1.0.0 255.255.0.0 10.33.2.1
6 ip route-static 10.7.68.3 255.255.255.255 10.63.251.122
7 ip route-static 10.8.0.0 255.255.0.0 10.33.2.1
8 ip route-static 10.10.0.0 255.255.0.0 10.33.2.1
9 ip route-static 10.12.0.0 255.255.0.0 10.63.251.118
10 ip route-static 10.12.40.24 255.255.255.255 10.33.2.1
新增、插入操作
使用 sed 命令在 tmp.txt文件的第5行后新增nihao jingling;
[root@localhost base]# cat -n tmp.txt | sed ‘5a nihao jingling’
1 ip route-static 0.0.0.0 0.0.0.0 10.63.251.254
2 ip route-static 10.0.0.0 255.0.0.0 10.63.251.254
3 ip route-static 10.0.1.0 255.255.255.0 10.33.2.1
4 ip route-static 10.1.0.0 255.255.0.0 10.33.2.1
5 ip route-static 10.2.0.0 255.255.0.0 10.33.2.1
nihao jingling
使用 sed 命令在 tmp.txt 文件的第4行前插入Hi tianmao;
[root@localhost base]# cat -n tmp.txt | sed ‘4i Hi tianmao ‘
1 ip route-static 0.0.0.0 0.0.0.0 10.63.251.254
2 ip route-static 10.0.0.0 255.0.0.0 10.63.251.254
3 ip route-static 10.0.1.0 255.255.255.0 10.33.2.1
Hi tianmao
4 ip route-static 10.1.0.0 255.255.0.0 10.33.2.1
5 ip route-static 10.2.0.0 255.255.0.0 10.33.2.1
替換、輸出操作
使用 sed 命令將 tmp.tx 文件的第8行替換成”undo ospf 100”;
[root@localhost base]# cat -n tmp.txt | sed ‘8c undo ospf 100’
1 ip route-static 0.0.0.0 0.0.0.0 10.63.251.254
2 ip route-static 10.0.0.0 255.0.0.0 10.63.251.254
3 ip route-static 10.0.1.0 255.255.255.0 10.33.2.1
4 ip route-static 10.1.0.0 255.255.0.0 10.33.2.1
5 ip route-static 10.2.0.0 255.255.0.0 10.33.2.1
6 ip route-static 10.7.68.3 255.255.255.255 10.63.251.122
7 ip route-static 10.8.0.0 255.255.0.0 10.33.2.1
undo ospf 100
9 ip route-static 10.12.0.0 255.255.0.0 10.63.251.118
10 ip route-static 10.12.40.24 255.255.255.255 10.33.2.1
使用 sed 命令,將tmp.txt文件中的第7行輸出至屏幕;
[root@localhost base]# cat -n tmp.txt | sed -n ‘7p’
7 ip route-static 10.8.0.0 255.255.0.0 10.33.2.1

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

(1)
hanbinghanbing
上一篇 2018-07-21 20:18
下一篇 2018-07-22

相關推薦

  • CentOS7.4環境安裝python

    Linux學習過程中的python環境搭建

    2018-06-05
  • centos7源碼編譯實現LAMP

    centos7源碼編譯實現LAMP 基于php-fpm

    2018-06-24
  • Web Service基礎、httpd-2.2、httpd-2.4

    Web Service 傳輸層:提供進程地址 port number: tcp:傳輸控制協議,面向連接的協議,通信前需要建立虛擬鏈路,結束后拆除鏈路;端口:0-65535 udp:user datagram protocol,無連接的協議;端口:0-65535   IANA: 0-1023:特權端口,永久分配給固定應用使用 1024-41951:注…

    Linux筆記 2018-04-24
  • shell腳本編程基礎——循環用法

    本節索引: 一、if、case條件判斷 二、for、while及until循環 三、循環控制語句continue、break、shift及select菜單 四、信號捕捉trap   在前面的基礎編程內容中,我們已經學習了shell腳本的順序執行及選擇執行,通過這兩種方式,可 以幫我們解決一些簡單需求,但要想在更復雜的場景中使用的話,就需要掌握循環執…

    2018-05-10
  • 虛擬化

    CPU虛擬化: 1、模擬:emulation; 2、虛擬:virtualization; a、完全虛擬化(full-virtualization):BT:二進制翻譯(軟件)、HVM:硬件輔助的虛擬化(硬件) b、半虛擬化(para-virtualization):   Memory虛擬化: 進程:線性地址空間 內核:物理地址空間 MMU ? vir…

    2018-07-11
  • MySQL

    mysql的增刪改查,備份恢復

    2018-06-18

評論列表(1條)

  • 馬哥教育
    馬哥教育 2018-09-20 09:00

    總博文看,作者比較用功,對自己的知識總結與鞏固是一篇很不錯的文章。不過如果能注意下文章中的 yumyum 類似的情況會更好。繼續加油。

欧美性久久久久