linux程序包管理,定時計劃以及sed簡介

week5

第一部分 linux程序包管理

rpm簡介

RPM是RPM Package Manager(RPM軟件包管理器)的縮寫,這一文件格式名稱雖然打上了RedHat的標志,但是其原始設計理念是開放的,現在包括OpenLinux、SUSE等發行版都有采用,可以算是公認的行業標準了。RPM是一種用于互聯網下載包的打包及安裝工具,它包含在某些Linux發行版中。它生成具有.RPM擴展名的文件。

CentOS系統上rpm程序主要有以下幾個功能:

(1)安裝:

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

-v:verbose

-vv:顯示更詳細的安裝信息

-h:以“#”顯示程序包管理執行進度,每個“#”表示2%的進度

rpm -ivh PACKAGE_FILE

–test:測試安裝,但不真正執行安裝過程,屬于dry run模式

–nodeps:忽略依賴關系

–replacepkgs:重新安裝

–nosignature:不檢查來源合法性

–nodigest:不檢查包完整性

–noscipts:不執行程序包腳本片段

%pre:安裝前腳本:–nopre

%post:安裝后腳本:–nopost

%preun:卸載前腳本:–nopreun

%postun:卸載后腳本:–nopostun

linux程序包管理,定時計劃以及sed簡介

說明:安裝zsh的rpm包

linux程序包管理,定時計劃以及sed簡介

說明:安裝redis的rpm包

(2)升級:

rpm {-U|–upgrade} [install-options] PACKAGE_FILE

rpm {-F|–freshen} [install-options] PACKAGE_FILE

upgrade:安裝有舊版程序包,則“升級”;如果不存在舊版程序包,則“安裝”

freshen:安裝有舊版程序包,則“升級”;如果不存在舊版程序包,則不執行升級操作

rpm -Uvh PACKAGE_FILE

rpm -Fvh PACKAGE_FILE

–oldpackage:降級

–force:強行升級

linux程序包管理,定時計劃以及sed簡介

說明:升級安裝redis包

(3)查詢:

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

[select-options]

-q:查詢包

-a:所有包

-f:查看指定的文件由哪個程序包安裝生成

-p /PATH/TO/PACKAGE_FILE:針對尚未安裝的程序包文件查詢其安裝文件信息

–whatprovides CAPABILITY:查詢指定的CAPABILITY由哪個包所提供

–whatrequires CAPABILITY:查詢指定的CAPABILITY被哪個包所依賴

[query-options]

–changelog:查詢rpm包的更新日志

-c:查詢程序的配置文件

-d:查詢程序的文檔

-i:information

-L:列出許可證信息

-l:查看指定的程序包安裝后生成的所有文件

–scripts:程序包自帶的腳本片段

-R:查詢指定的程序包所依賴的CAPABILITY

–provides:列出指定程序包所提供的CAPABILITY

linux程序包管理,定時計劃以及sed簡介

說明:查詢剛安裝的redis包,注意這里要輸入的是包名(rh-redis32-redis)

(4)卸載:

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

–allmatches:卸載所有匹配指定名稱的程序包的各版本;

–nodeps:忽略依賴關系

–test:測試卸載,dry run模式

linux程序包管理,定時計劃以及sed簡介

說明:卸載剛安裝的redis包,查詢已沒有

(5)校驗:

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

校驗信息含義:

S file Size differs

M Mode differs (includes permissions and file type)

5 digest (formerly MD5 sum) differs

D Device major/minor number mismatch

L readLink(2) path mismatch

U User ownership differs

G Group ownership differs

T mTime differs

P caPabilities differ

linux程序包管理,定時計劃以及sed簡介

說明:校驗redis包,無輸出,則說明驗證通過。

(6)數據庫重建:

rpm {–initdb|–rebuilddb}

initdb:初始化,如果事先不存在數據庫,則新建之;否則,不執行任何操作

rebuilddb:重建,無論當前存在與否,直接重新創建數據庫

linux程序包管理,定時計劃以及sed簡介

說明:在指定路徑下新建rpmdb

yum工具簡介

yum是rpm軟件包管理器的前端管理工具。yum是一個在Fedora和RedHat以及CentOS的前端軟件包管理器?;趓pm包管理,能夠從指定的服務器自動下載rpm包并且安裝,可以自動處理依賴性關系,簡化了安裝步驟。

功能用法:yum [options] [command] [package]

顯示倉庫列表:

repolist [all|enabled|disabled]

linux程序包管理,定時計劃以及sed簡介

說明:

顯示程序包:

list

#yum list [all | glob_exp1] [glob_exp2]

#yum list {available|installed|updates} [glob_exp1]

linux程序包管理,定時計劃以及sed簡介

安裝程序包:

install package1 [package2]

reinstall package1 [package2](重新安裝)

linux程序包管理,定時計劃以及sed簡介

升級程序包:

update [package1] [package2]

downgrade package1 [package2](降級)

linux程序包管理,定時計劃以及sed簡介

說明:查看發現bash有新版本的程序包,故用upgrade程序更新到最新版本。

linux程序包管理,定時計劃以及sed簡介

說明:檢查是否更新成功

檢查可用升級:

check-update

linux程序包管理,定時計劃以及sed簡介

說明:檢查發現yum程序有最新版未安裝

卸載程序包:

remove | erase package1 [package2]

linux程序包管理,定時計劃以及sed簡介

查看程序包的簡要信息:(類似于rpm -qi)

info package

linux程序包管理,定時計劃以及sed簡介

說明:查看bash程序的簡要信息

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

provides | whatprovides feature1 [feature2]

linux程序包管理,定時計劃以及sed簡介

清理本地緩存:

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

linux程序包管理,定時計劃以及sed簡介

說明:清除本地緩存的package

構建緩存:

makecache

linux程序包管理,定時計劃以及sed簡介

據關鍵字搜索相關信息:

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

linux程序包管理,定時計劃以及sed簡介

查看指定包所依賴的capabilities:

deplist [package1] [package2]

linux程序包管理,定時計劃以及sed簡介

查看yum事務歷史:

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

linux程序包管理,定時計劃以及sed簡介

安裝及升級本地程序包:

localinstall rpmfile1 [rpmfile2]

(maintained for legacy reasons only – use install)

localupdate rpmfile1 [rpmfile2]

(maintained for legacy reasons only – use update)

linux程序包管理,定時計劃以及sed簡介

包組管理的相關命令:

groupinstall group1 [group2](安裝包組)

groupupdate group1 [group2](升級包組)

grouplist [hidden] [groupwildcard](列出包組的列表)

groupremove group1 [group2](移除包組)

groupinfo group1(查看包組的相關信息)

linux程序包管理,定時計劃以及sed簡介


yum倉庫

yum倉庫定義:

[repositoryID] 倉庫ID

name=Some name for this repository? 倉庫名,功能的完整描述

baseurl=url://path/to/repository/? 倉庫的路徑

文件服務器:四種形式

ftp://

http://

nfs://

file:///

enabled={1|0} 是否啟用,默認啟用

gpgcheck={1|0}? 檢查包的來源合法性和完整性。默認啟用

gpgkey=URL? 指明秘鑰文件路徑

enablegroups={1|0} 是否允許基于組管理程序包,默認啟用

failovermethod={roundrobin|priority}? 故障轉移方法,baseurl有多個時的選用原則

默認為:roundrobin,意為隨機挑選;

cost=? 開銷值,默認為1000

建立yum倉庫步驟:

要建立yum倉庫,首先需要在/etc/yum.repo.d/目錄下建立一個已.repo結尾的文件,如下圖的CenOS-local.repo的yum倉庫文件:

linux程序包管理,定時計劃以及sed簡介

說明:上圖中[centos-source]是本地的yum源,位置是本地的centos鏡像的掛載路徑;[aliyun]則是網絡yum源,位置則是阿里云鏡像文件服務器的地址。

第二部分 at和crontab簡介

????????at:未來某個時間點執行一次某任務,所制定的計劃任務會在指定時間執行一次,結果會以郵件的形式發送給創建計劃的用戶。

用途用法:

at [OPTION]… TIME

TIME:

HH:MM [YYYY-mm-dd]

noon中午12點,midnight午夜12點, teatime下午4點

today,tommorow

now+#? 相對時間計時法? ?UNIT :minutes, hours, days, weeks

常用選項:

-l:查看作業隊列,相當于atq;

-f /PATH/FROM/SOMEFILE:從指定文件中讀取作業任務

-d:刪除指定的作業,相當于atrm;

#at -d #(作業號)

-c:查看指定作業的具體內容;上部分是環境信息,尾部是提交的作業內容。

-q QUEUE:指明隊列;


crontab是用來進行周期性的執行某任務

向crond提交作業的方式不同于at,它需要使用專用的配置文件,此文件有固定格式,不建議使用文本編輯器直接編輯此文件;要使用crontab命令。該命令是用法如下:

crontab [-u user] [-l | -r | -e] [-i] 立即生效

-e:編輯任務;

-l:列出所有任務;

-r:移除所有任務;

-i:在使用-r選項移除所有任務時提示用戶確認;

-u user:root用戶可為指定用戶管理cron任務;

注意:運行結果以郵件通知給當前用戶;如果拒絕接收郵件:

(1) COMMAND > /dev/null

(2) COMMAND &> /dev/null

linux程序包管理,定時計劃以及sed簡介

說明:crontab -l的第一行就是為這個要求,每周三凌晨三、五點10分執行某個腳本,輸出當前時間,時間格式為 2017-12-28 10:00:00,制定的計劃任務。為了驗證是否可用,以每分鐘執行一次的計劃任務測試了一下,可以正常執行。

第三部分 sed命令簡介

Sed本質上是一個編輯器,但是它是非交互式的,同時它又是面向字符流的,輸入的字符流經過Sed的處理后輸出。Sed本身是一個管道命令,可以分析標準輸入,主要用來分析關鍵字的使用、統計等,此外還可以將數據進行替換、刪除、選取特定行等功能。

用法用例如下:

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

常用選項:

-n:不輸出模式空間中的內容至屏幕;

-e script, –expression=script:多點編輯;

-f? /PATH/TO/SED_SCRIPT_FILE

-r, –regexp-extended:支持使用擴展正則表達式;

-i[SUFFIX], –in-place[=SUFFIX]:直接編輯原文件 ;

編輯命令:

d:刪除;

p:顯示模式空間中的內容;

a? \text:在行后面追加文本“text”,支持使用\n實現多行追加;

i? \text:在行前面插入文本“text”,支持使用\n實現多行插入;

c? \text:把匹配到的行替換為此處指定的文本“text”;

w /PATH/TO/SOMEFILE:保存模式空間匹配到的行至指定的文件中;

r? /PATH/FROM/SOMEFILE:讀取指定文件的內容至當前文件被模式匹配到的行后面;文件合并;

=:為模式匹配到的行打印行號;

!:條件取反;

地址定界!編輯命令;

s///:查找替換,其分隔符可自行指定,常用的有s@@@, s###等;

替換標記:

g:全局替換;

w /PATH/TO/SOMEFILE:將替換成功的結果保存至指定文件中;

p:顯示替換成功的行;

示例:

linux程序包管理,定時計劃以及sed簡介

說明:顯示偶數行

linux程序包管理,定時計劃以及sed簡介

說明:逆序顯示文件內容

linux程序包管理,定時計劃以及sed簡介

說明:顯示文件最后2行

linux程序包管理,定時計劃以及sed簡介

說明:刪除原有的所有空白行,而后為所有的非空白行后添加一個空白行

linux程序包管理,定時計劃以及sed簡介

說明:取出給定路徑的dirname

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

(1)
xzxz
上一篇 2018-07-22 21:13
下一篇 2018-07-22 21:55

相關推薦

  • sed的高級用法,rpm .yum的使用以及磁盤存儲和文件系統

    sed的高級用法 和 包管理器(rpm , yum )

    Linux筆記 2018-04-19
  • 軟raid5創建及管理

    linux mdadm raid5

    Linux筆記 2018-04-28
  • 第二周作業

    第二周作業
    1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。
    2、bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示。
    3、請使用命令行展開功能來完成以下練習:
    (1)、創建/tmp目錄下的:a_c, a_d, b_c, b_d
    (2)、創建/tmp/mylinux目錄下的:
    mylinux/
    ├── bin
    ├── boot
    │ └── grub
    ├── dev
    ├── etc
    │ ├── rc.d
    │ │ └── init.d
    │ └── sysconfig
    │ └── network-scripts
    ├── lib
    │ └── modules
    ├── lib64
    ├── proc
    ├── sbin
    ├── sys
    ├── tmp
    ├── usr
    │ └── local
    │ ├── bin
    │ └── sbin
    └── var
    ├── lock
    ├── log
    └── run

    Linux筆記 2018-05-13
  • 計算機組成及其功能

    計算機組成

    2018-05-09
  • 第三周作業

    1 列出當前系統上所有已經登陸的用戶的用戶名,注意:同一個用戶名登陸多次,則只顯示一次。
    2 取出最后登陸到當前系統的用戶的相關信息。
    3 取出當前系統上被用戶當作其默認shell的最多的那個shell.
    4 將/etc/passwd中的第三個字段數值最大的后10個用戶的信息全部改為大寫后保存至/tmp/maxusers.txt文件中。
    5 取出當前主機的IP地址,提示:對ifconfig命令的結果進行切分。
    6 列出/etc目錄下所有以.conf結尾的文件的文件名,并將其名字裝換為大寫后保存至/tmp/etc.conf文件中。
    7 顯示/var目錄下一級子目錄或文件的總個數。
    8 取出/etc/group文件中第三個字符段數值最小的10個組的名字。
    9 將/etc/fstab和/etc/issue文件的內容合并為同一個內容后保存至/tmp/etc.test文件中。
    10. 請總結描述用戶和組管理類命令的使用方法并完成以下練習:
    (1)創建組distro, 其GID為2016
    (2)創建用戶mandriva, 其ID號為1005,基本組為distro
    (3)創建用戶mageia, 其ID號為1100,家目錄為/home/linux
    (4)給用戶mageia添加密碼,密碼為mageedu
    (5)刪除mandriva, 但保留其家目錄
    (6)創建用戶slackware, 其ID號為2002, 基本組為distro, 附加組為peguin
    (7)修改slackware的默認shell為/bin/tcsh
    (8)為用戶slackware的新增附加組admins

    2018-06-05
  • 運維自動化部署

    CentOS系統啟動流程:bootloader(引導模式)>kernel(內核)>rootfs(根文件系統)>/sbin/init(開機啟動服務) 安裝程序啟動過程:?MBR:isolinux/boot.cat ?stage2: isolinux/isolinux.bin ?配置文件:isolinux/isolinux.cfg每個對應的菜單…

    Linux筆記 2018-06-10

評論列表(1條)

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

    很棒的文章,內容清晰,實操部分遇到的問題也給出了詳細的解決方法,很不錯,繼續加油。

欧美性久久久久