N31-5

rpm包管理、計劃和周期任務、sed命令

1、簡述rpm與yum命令的常見選項,并舉例
rpm常見選項:
-i ?安裝指定的rpm程序包
-U 使用rpm包進行升級或者安裝
-e 卸載指定的rpm包
-q 查詢rpm包
-i安裝、-U升級、-e卸載、-q查詢,四個選項每個都有對應的其他可用選項
-i:
-v ? ? ? ? ? ?輸出操作過程的信息
-h ? ? ? ? ? ?顯示進度條
–test ? ? ? ? ?測試安裝,主要檢查并報告依賴關系及沖突信息等,并不會實際安裝
–nodeps ? ? ? ?安裝時忽略依賴關系
–replacepkgs ? 替換現有已安裝的程序包,即重新安裝
–nosignature ? 不檢查rpm包的簽名信息,即不檢查來源的合法性
–nodigest ? ? ?不檢查rpm包的完整性
-U:
–force ? ? ? ? 強制升級
–oldpackage ? ?降級安裝rpm包
-e:
–allmatches ? ?所有匹配指定名稱的程序包的所有哦版本都會被卸載
–nodeps ? ? ? ?忽略依賴關系
–test ? ? ? ? ?測試卸載
-q:
-a ? ? ? ? ? ? ?查詢所有已經安裝的rpm包
-f ? ? ? ? ? ? ?查詢指定的文件是由哪個安裝的rpm包產生的
-p ? ? ? ? ? ? ?指定未安裝的rpm包進行查詢
-l ? ? ? ? ? ? ?查詢rpm包安裝生成的所有文件列表
-i ? ? ? ? ? ? ?查詢rpm包的詳細信息,如版本號,大小等
-c ? ? ? ? ? ? ?查詢rpm包提供的配置文件
-d ? ? ? ? ? ? ?查詢rpm包提供的文檔
–provides ? ? ?查詢rpm包提供的所有CAPABILITY能力
-R,–require ? ?查詢rpm包安裝時所需要的依賴關系
常見用法:
安裝rpm包:
rpm -ivh PACKAGE
測試安裝rpm包:
rpm -ivh –test PACKAGE
升級rpm包:
rpm -Uvh PACKAGE
強制升級rpm包:
rpm -Uvh –force PACKAGE
卸載rpm包:
rpm -e PACKAGE
卸載時忽略依賴關系:
rpm -e –nodeps PACKAGE
查詢rpm包是否安裝:
rpm -qa PACKAGE
查詢rpm包的詳細信息:
rpm -qi PACKAGE
查詢rpm包的配置文件:
rpm -qc PACKAGE
查詢rpm包產生的所有文件:
rpm -ql PACKAGE
查詢未安裝的rpm包的信息:
rpm -qpi PACKAGE
yum命令:
用法:yum [options] [command] [package…]
options:
-y ? ? ? ? ? ? ? ? ? ? ? ?直接安裝指定的rpm包
-q ? ? ? ? ? ? ? ? ? ? ? ?靜默安裝,不顯示安裝信息
–noplugins ? ? ? ? ? ? ? 禁用所有插件
–nogpgcheck ? ? ? ? ? ? ?不進行gpg檢查
–disablerepo=FILE.REPO ? 臨時禁用指定的yum源
–enablerepo=FILE.REPO ? ?臨時啟用yum源
command:
repolist ? ? ? ? ?顯示啟用的每個yum源列表
list ? ? ? ? ? ? ?顯示rpm包
install ? ? ? ? ? 安裝rpm包
update ? ? ? ? ? ?升級rpm包
remove ? ? ? ? ? ?卸載rpm包
info ? ? ? ? ? ? ?顯示rpm包的信息
clean ? ? ? ? ? ? 清除本地緩存的yum源的元數據
makecache ? ? ? ? 建立yum源的緩存
search ? ? ? ? ? ?根據給定的字符串搜索rpm包
grouplist ? ? ? ? 列出可用的包組
groupinstall ? ? ?安裝包組
groupremove ? ? ? 卸載包組
groupinfo ? ? ? ? 顯示包組信息
groupupdate ? ? ? 升級包組
示例:
創建本地yum源緩存
yum makecache
查看本地可用的repo列表
yum repolist [enabled]
查看httpd程序包的信息
yum info httpd
直接安裝httpd程序包
yum -y install httpd
安裝程序包組
yum -y groupinstall Development tools
卸載httpd程序包
yum remove httpd
2、自建yum倉庫,分別為網絡源和本地源
網絡yum源:
在/etc/yum.repo.d/目錄下創建repo文件,文件名必須以.repo結尾
通過文本編輯器在新創建的文件中輸入以下內容:
[aliyun]
name=aliyun base package
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
enabled=1
gpgcheck=0
本地yum源:
通過掛載系統鏡像里文件,建立本地yum源
掛載鏡像文件:
mount -r /dev/sr0 /mnt/
在/etc/yum.repo.d/目錄下創建repo文件,文件名必須以.repo結尾
通過文本編輯器在新創建的文件中輸入以下內容:
[local]
name=cdrom mirrors
baseurl=file:///mnt
enabled=1
gpgcheck=0
3、簡述at和crontab命令,制定 每周三凌晨三、五點10分執行某個腳本,輸出當前時間,時間格式為 2017-12-28 10:00:00
at命令:
通過at命令創建一個任務,在未來指定的時間點運行,然后將運行的結果通過郵件反饋給發起的用戶
用法: at [options] TIME
TIME的指定方式:
HH:MM ? ? ? ? ? ? 即08:30,也可以在后面指定日期
HH:MM YYYY-MM-DD ?即20:10 2018-07-20
也可以使用其他表示時間的單詞:如
noon ? ? 中午
midnight 午夜
teatime ?喝茶時間,下午4點
tomorrow 明天
還可以指定在當前時間后的某個時間點執行任務:如
now+5min ? 在5分鐘后執行
now+1hours 在1小時后執行
now+2days ?在2天后執行
now+1weeks 在1走后執行
options:
-l ? ? ? ? ? ?查看已有的作業隊列
-d ? ? ? ? ? ?刪除指定的作業
-c ? ? ? ? ? ?查看指定作業的具體內容
-q ? ? ? ? ? ?創建作業時指定隊列
-f /PATH/FILE 從指定文件讀取作業內容
示例:
在5分鐘后創建一個作業:
at now+5min
查看當前所有的作業:
at -l
通過指定的文件創建作業:
at -f /root/test.sh now+5min
查看指定作業的具體內容,需要指定作業號,通過at -l 可以查看作業號:
at -c 3
crontab命令:
使用crontab命令可以創建任務,由系統內核運行的守護進程周期性的檢查任務的執行條件,只有當條件滿足時才會執行任務,執行結果通過郵件返回給用戶
任務分為兩種:系統任務和用戶任務
系統任務:實現系統自身維護的任務,保存在/etc/crontab 文件中
用戶任務:用戶自己創建的,保存在/var/spool/cron/目錄下對應的用戶名文件中
命令的用法:crontab [ooptions]
常用選項:
-e ? ? ?編輯任務文件
-l ? ? ?列出所有任務
-r ? ? ?移除所有任務,會刪除/var/spool/cron/目錄下對應的用戶名文件
-u ? ? ?root用戶可以為指定的用戶創建任務
在不指定選項時,直接使用crontab命令添加任務,會將文件中其他任務覆蓋掉
使用crontab命令添加任務是需要按照指定的格式進行的:格式如下
* * * * * COMMAND
前面5個字段代表執行時間,后面是符合設置的時間后執行的命令
前5個字段分別表示分鐘,小時,每月的第幾天,月份,周幾
.—————- minute (0 – 59)
| ?.————- hour (0 – 23)
| ?| ?.———- day of month (1 – 31)
| ?| ?| ?.——- month (1 – 12) OR jan,feb,mar,apr …
| ?| ?| ?| ?.—- day of week (0 – 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
| ?| ?| ?| ?|
* ?* ?* ?* ?* command to be executed
在指定時間時有多種表示方法:
1、指定值,即在有效范圍內的任意值
2、* 表示范圍內的時間點都有效
3、離散取值,中間用逗號,隔開
4、連續取值,中間使用短橫線-隔開
5、指定步長,每個步長執行一次,需要被整除
示例:
3 * * * * ls /root
在每小時的第3分鐘執行 ls /root 命令
3 5 * * 3 cat /etc/passwd
在每周三的05:03執行 cat /etc/passwd
8 9 4 5 * echo “hello”
在每年的5月4號的09:08執行 echo “hello”
練習:每周三凌晨三、五點10分執行某個腳本,輸出當前時間,時間格式為 2017-12-28 10:00:00
創建腳本
vim date-cron.sh
輸入以下內容
#!/bin/bash
/usr/bin/date +”%Y-%m-%d %T”
修改執行權限
chmod +x date-cron.sh
創建周期任務
crontab -e
添加以下內容
10 3,5 * * 3 /root/date-cron.sh
4、簡述sed常用操作命令,并舉例
sed命令:
將文件內容按行讀取到模式空間,根據條件進行匹配處理,并將結果輸出,不修改源文件
用法:sed [options] ‘script’ [input-file]…
options:
-n ? ? ? ? ? ? ?不輸出模式空間的內容
-e script;–expression=script ? ? ?使用多個編輯命令
-f /PATH/TO/SCRIPT_FILE ? ? ? ? ? ?導入sed腳本文件編輯每行數據
-r ? ? ? ? ? ? ?使用擴展的正則表達式進行匹配
-i ? ? ? ? ? ? ?直接編輯源文件
script:一般包含兩部分,指定處理的行范圍和編輯命令
行范圍的定界表示方法:
空地址:對全文進行處理
指定地址:
# ? ? ? ? ? 單個數字指定行號
/PATTERN/ ? 使用正則表達式
指定范圍:
#,# ? ? ? ? 如3,5表示從第三行到第五行
#,+# ? ? ? ?從起始行開始加指定行結束,如3,+2表示從第三行開始加上后面的二行
#,/pattern/ 從指定行開始,到第一個被模式匹配到的行結束,如果沒有匹配的即到最后一行
/pattern/,/pattern/ ?表示第一個匹配的行到第二個匹配到的行
$ ? ? ? ? ? ?表示最后一行
#~# ? ? ? ? ?步進,如1~2表示第1行開始,每次加2的行
編輯命令:
d ? ? ? ? ? ?刪除
p ? ? ? ? ? ?顯示
a \text ? ? ?行后追加文本
i \text ? ? ?行前插入文本
c \text ? ? ?行替換,會將指定的行都替換
w /PATH/TO ? 保存模式空間匹配到的行至指定文件中
r /PATH/FROM 讀取指定的文件,將文件內容追加至指定的行后面
= ? ? ? ? ? ?對匹配到的行輸出行號
! ? ? ? ? ? ?對地址取反,即 3!d 非第3行刪除
s/// ? ? ? ? 查找替換
高級編輯命令:
sed處理行時有兩個空間,模式空間和保持空間,兩個空間的數據可以互相引用
上述的編輯命令都是在模式空間操作的,高級編輯命令會涉及保持空間
h ? 將模式空間的內容覆蓋至保持空間
H ? 將模式空間的內容追加至保持空間
g ? 用保持空間的內容覆蓋模式空間
G ? 將保持空間的內容追加至模式空間
x ? 將兩個空間的內容互相交換
n ? 使用匹配到的行的下一行內容覆蓋模式空間,即直接引用下一行的數據
N ? 將匹配到的行的下一行內容追加至模式空間
d ? 刪除模式空間中的行
D ? 刪除模式空間中的所有行
示例:
sed -n ‘3p’ /etc/fstab
將/etc/fstab文件中的第3行打印出來
sed ‘3d’ /etc/fstab
將/etc/fstab文件中第3行刪除,即除了第3行的其他行全部輸出
sed -n ‘/^UUID/p’ /etc/fstab
將/etc/fstab文件中UUID開頭的行打印輸出
sed ‘G’ /etc/fstab
在文件中的每一行追加一個空白行
sed ‘/^$/d;G’ /etc/fstab
將/etc/fstab文件中的所有空白行刪除,然后在每一行后面追加一個空白行

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

(1)
貴上蔣貴上蔣
上一篇 2018-07-17
下一篇 2018-07-18

相關推薦

  • 學習筆記(10)

    學習筆記

    Linux筆記 2018-04-22
  • 第三周筆記總結

    第七天運行腳本的條件:1、加執行權限或者bash+腳本名2、寫路徑(絕對、相對均可) 加執行權限以后,如果沒有放在PATH變量下的路徑內,運行腳本需要寫路徑3、如果不想寫路徑,可以將腳本放在PATH變量中的任何位置均可,通常放/root/bin下,/bin需要增加創建 腳本調試只檢測腳本中的語法錯誤bash -n /path/to/some_script跟蹤…

    Linux筆記 2018-04-15
  • CentOS系統/boot/下的文件恢復

    如果不小心刪除了/boot/下的所有文件,不知道恢復的具體步驟,請您看這里!

    2018-05-11
  • Linux第六周作業

    1、簡述osi七層模型和TCP/IP五層模型   2、簡述iproute家族命令   3、詳細說明進行管理工具htop、vmstat等相關命令,并舉例   4、使用until和while分別實現192.168.0.0/24網段內,地址是否能夠ping通,弱ping通則輸出”success!”,若ping不…

    2018-08-06
  • elk

    轉載,供日后回查

    2018-07-31
  • 進入各種模式操作 在centos虛擬機上實現內外網的連接

    ? 進入單用戶模式; 重啟后在下面界面按任意鍵 進入此界面后按“ a ” 在下面界面 輸入? 1 ? 進入單用戶模式? 1之前有空格     進入救援模式 1 重啟后將鼠標鍵入界面里,在第一個界面的進度條沒走完之前按一次ESC鍵即可進入(只能按一次ESC) 2 選擇上圖中的第三項光盤引導啟動,之后選擇下圖的第三項救援模式啟動。 &nbsp…

    2018-05-09
欧美性久久久久