N31第五周作業

本周(7.16–7.22)第五周

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

rpm相關

rpm安裝
? ? ? ? ? ? rpm {-i|–install} [install-options] PACKAGE_FILE …
?? ??? ??? [install-options]:
??????????????? -i:install
????????????????-v:顯示詳細的安裝信息
? ? ? ? ? ? ? ? –vv
?? ??? ??? ???? -h:hash marks輸出進度條;每個#表示2%的進度;
?? ??? ??? ???? –test:測試安裝,檢查并報告依賴關系及沖突消息等;
?? ??? ??? ???? –nodeps:忽略依賴關系,此操作有風險;
??????????????? –replacepkgs:重新安裝該程序包;
? ? ? ? ? ? ? ? ?–force:強制安裝
? ??? ??? ?? ?? –nosignature:不檢查包簽名信息,不檢查來源合法性
?? ??? ??? ? ?? –nodigest:不檢查包完整性信息;
rpm升級
? ? ? ? ? ? rpm? -U [install-options] PACKAGE_FILE …
? ? ? ? ? ? rpm? -F [install-options] PACKAGE_FILE …
????????????-Uvh:后面接的軟件包被安裝過,會自動安裝,安裝過,則進行升級;
????????????-Fvh:后面接的軟件包安裝過則進行升級,未安裝,則該軟件不會被安裝(升級);
?? ??? ??? ? 常用選項:
????????????????????–oldpackage:降級;
?? ??? ??? ??? ??? ?–force:強制升級;
? ? ? ? ? ? 注意:
????????????????(1) 不要對內核做升級操作;Linux支持多內核版本并存,因此,直接安裝新版本內核;
?? ??? ??? ???? (2) 如果某原程序包的配置文件安裝后曾被修改過,升級時,新版本的程序提供的同一個配置文件不會覆蓋原有版本的配置文件,而是把新版本的配置文件重命名。
rpm卸載
????????????rpm {-e|–erase} [–allmatches] [–nodeps] [–noscripts] [–test] PACKAGE_NAME …
???????????? 常用選項:
??????????????????? –allmatches:卸載所有匹配指定名稱的程序包的各版本;
?? ??? ??? ??? ???? –nodeps:忽略依賴關系
?? ??? ??? ??? ???? –test:測試卸載并不會正真的卸載程序包;
? ? ? ? ? ? 注意:
????????????????(1) 通常文件的卸載操作用rpm -e PACKAGE_NAME就可以完成;
??????????????? (2) 卸載的時候只需要給出包名,安裝與升級的時候給出文件路徑和包名。
查詢
????????????rpm {-q|–query} [select-options] [query-options]
?? ??? ???? [select-options]
?? ??? ??? ??? rpm -q?PACKAGE_NAME:查詢指定的程序包是否已經安裝;
?? ??? ??? ??? ?rpm -qa查詢所有已經安裝過的包;
?? ??? ??? ???? rpm -qf? FILE:查詢指定的文件由哪個程序包安裝生成;
?? ??? ??? ???? rpm -qpi PACKAGE_FILE:用于實現對未安裝的程序包執行查詢操作;
?? ??? ??? ?[query-options]
?? ??? ??? ???? -ql, –list:程序安裝生成的所有文件列表;
?? ??? ??? ???? -qi, –info:程序包相關的信息,版本號、大小、所屬的包組,等;
?? ??? ??? ???? -qc, –configfiles:查詢指定的程序包提供的配置文件;
?? ??? ??? ???? -qd, –docfiles:查詢指定的程序包提供的文檔;
?? ??? ??? ???? –provides:列出指定的程序包提供的所有的CAPABILITY;
?? ??? ??? ??? ?–changelog:查詢bash的changlog;
?? ??? ??? –requires:查詢指定的程序包的依賴關系;
??? ??? ??? ???? –scripts:查看程序包自帶的腳本片斷;
校驗
????????????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??# MD5碼校驗
?? ??? ??? ?????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?? # 文件capability的校驗
???? Linux安裝程序包來源合法性驗正和完整性驗正
?? ???? 獲取并導入信任的包制作者的密鑰:
?? ??? ??? ?對于CentOS發行版來說:rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
?? ??? ?驗正:
?? ??? ??? ?(1) 安裝此組織簽名的程序時,會自動執行驗正;
?? ??? ??? ?(2) 手動驗正:rpm -K PACKAGE_FILE
數據庫維護
????數據庫重建:
?? ??? ?rpm管理器數據庫路徑:/var/lib/rpm/
???????????? rpm {–initdb|–rebuilddb} [–dbpath DIRECTORY] [–root DIRECTORY]
?? ??? ??? ??? ?–initdb:初始化數據庫,當前無任何數據庫可初始化創建一個新的;
??????????????????????????????? 當前有時不執行任何操作;
?? ??? ??? ??? ?–rebuilddb:無論是否存在,重新構建,通過讀取當前系統上所有已經安裝過的程序包進行重新創建。
yum相關
安裝程序包:
????yum install package1 [package2] […]
注意:這里用的是軟件包名,不是軟件包的文件名
????yum reinstall package1 [package2] […] ?重新安裝
????????–nogpgcheck :禁止進行gpg check
????????-y: ?自動回答為“yes”
????????-q :靜默模式
????????–noplugins :禁用所有插件
升級程序包:
????yum update [package1] [package2] […]
降級程序包
????yum downgrade package1 [package2] […]
檢查可用升級:
????yum check-update
卸載程序包:
????yum remove | erase package1 [package2] […]
安裝及升級本地程序包:
????yum localinstall rpmfile1 [rpmfile2] […] ? ( 用install 替代)
????yum localupdate rpmfile1 [rpmfile2] […] ?( 用update 替代)
包組管理的相關命令:
????yum groupinstall group1 [group2] […]
????yum groupupdate group1 [group2] […]
????yum grouplist [hidden] [groupwildcard] […]
????yum groupremove group1 [group2] […]
????yum groupinfo group1 […]
查詢:
????yum info […] ?查看指定的特性(可以是某文件)由哪個程序包所提供:
????yum provides | whatprovides feature1 [feature2][…]
????yum search string1 [string2] […] 以指定的關鍵字搜索程序包名及summary 信息
查看yum 事務歷史:
????yum history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]
yum倉庫管理:
????yum repolist:列出已經配置的所有的可用倉庫
????yum repolist [all|enabled|disabled]
程序包查看:
????yum list
????yum list [all | glob_exp1] [glob_exp2] […]
????yum list {available|installed|updates} [glob_exp1][…]
yum緩存管理
yum clean:清理本地緩存:
yum clean [ packages | metadata | expire-cache |rpmdb | plugins | all ]
yum makecache:構建緩存
2、自建yum倉庫,分別為網絡源和本地源
yum本地源
[root@localhost ~]# mkdir /media/cdrom
[root@localhost ~]# mount -r /dev/cdrom /media/cdrom
[root@localhost ~]# mount
/dev/sr0 on /media/cdrom type iso9660 (ro,relatime)
[root@localhost ~]# vi /etc/yum.repos.d/local.repo
[local]
name=local
baseurl=file:///media/cdrom
enabled=1
gpgcheck=0
[root@localhost ~]# yum repolist
Loaded plugins: fastestmirror, langpacks
Repository epel is listed more than once in the configuration
Repository epel-debuginfo is listed more than once in the configuration
Repository epel-source is listed more than once in the configuration
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
repo id repo name status
base/7/x86_64 CentOS-7 – Base – mirrors.aliyun.com 9,911
epel/x86_64 Extra Packages for Enterprise Linux 7 – x86_64 12,618
extras/7/x86_64 CentOS-7 – Extras – mirrors.aliyun.com 363
local local 3,894
updates/7/x86_64 CentOS-7 – Updates – mirrors.aliyun.com 970
repolist: 27,756
yum網絡源
[root@localhost ~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
[root@localhost ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@localhost ~]# yum makecache
[root@localhost ~]# cat /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever – Base – mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/
http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
3、簡述at和crontab命令,制定?每周三凌晨三、五點10分執行某個腳本,輸出當前時間,時間格式為?2017-12-28?10:00:00
at相關
at命令格式: at [OPTION]… TIME
? ? ? ? ?OPTION:
? ? ? ? ? ? ? ?-l:查看作業隊列,相當于atq
? ? ? ? ? ? ? ?-f /PATH/FROM/SOMEFILE:從指定文件中讀取作業任務,而不用再交互式輸入;
? ? ? ? ?  -d:刪除指定的作業,相當于atrm;
? ? ? ? ? ? ? -c:查看指定作業的具體內容;
? ? ? ? ? ? ? -v:可以使用較明顯的時間格式列出at中的工作列表
? ? ? ? TIME:
 ? ?  HH:MM 如:18:00
? ? ? ? ? ? ? ? ? ? ? 在今日的HH:MM進行,若時間超過,則明天此時刻運行
? ? ? ? ? ? HH:MM YYYY-MM-DD 如:18:00 2018-01-23
crontab相關
crontab命令格式:
? ? ? ?crontab [-u user] file
? ? ? ?crontab [-u user] [-l | -r | -e] [-i] [-s]
? ? ? ?crontab -n [ hostname ]
? ? ? ?crontab -c
選項:
-e:編輯任務( 進入vi編輯器 );
-l:列出所有任務;
-r:移除所有任務,即刪除/var/spool/cron/USERNAME文件;
-i:在使用-r選項移除所有任務時提示用戶確認;
-u user:root用戶可為指定用戶管理cron任務
執行腳本 輸出時間
[root@localhost tmp]# vim date.sh
#!/bin/bash date “+%Y-%m-%d %H:%M:%S”
:wq
[root@localhost tmp]# chmod +x date.sh
[root@localhost tmp]# crontab -e
10 3,5 * * 3 root /bin/bash /tmp/date.sh
:wq
crontab: installing new crontab
[root@localhost tmp]# crontab -l
10 3,5 * * 3 root /bin/bash /tmp/date.sh
4、簡述sed常用操作命令,并舉例
sed語法結構
sed [OPTION]… {script-only-if-no-other-script} [input-file]…
[OPTION]
-r: 支持擴展正則表達式
-n: 靜默模式
-i: 直接修改源文件
-e script1 -e script2 -e script3:指定多腳本運行
-f /PATH/TO/SCRIPT_FILE從指定的文件中讀取腳本并運行
sed的地址定界
# :表示數字,指定行
$:最后一行
/regexp/:任何能被regexp所匹配到的行
\%regexp%:同上,%為regexp的邊界符
地址范圍
 #,#:第 #行到第#行
 #,+#:第 #行開始,往后再加 #行
? ? #,/regexp/:第 #行到第一次被模式匹配之間的行
? ?/regexp1/,/regexp2/:第一次被regexp1匹配到第一次被regexp2匹配之間的行
sed的編輯命令
d: 刪除匹配到的行
a \text: 在行后面追加文本,支持使用\n實現多行追加
i \text: 在行后面插入文本,支持使用\n實現多行插入
c \text: 用text替換匹配到的行
p:打印模式空間的行
! 對地址范圍取反
= 為模式匹配到的行打印行號
w /PATH/TO/SOMEFILE:保存模式空間的內容至指定文件中; 覆蓋寫入;
r /PATH/FROM/SOMEFILE: 讀取指定文件至當前文件被模式匹配到的行后;文件合并;
查找替換
s///:查找替換 (其分隔符/可自行指定,形如s@@@, s###)
? ? ? ? ?  替換標記:
? ? ? ? ? ? ? ? ? ? ? ? ? ? g:全局替換;
? ? ? ? ? ? ? ? ? ? ? ? ? ?w /PATH/TO/SOMEFILE:將替換成功的結果保存至指定文件中;
? ? ? ? ? ? ? ? ? ? ? ? p:顯示替換成功的行
示例
刪除/tmp/grub.conf文件中所有行的行首的空白字符
sed ‘s/^[[:space:]]\+//’ /tmp/grub.conf
刪除/tmp/grub.conf文件中所有以#開頭,后面至少跟一個空白字符的行的行首的#和空白字符
sed ‘s/^#[[:space:]]\+//’ /tmp/grub.conf

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

(0)
蒼茫蒼茫
上一篇 2018-07-23
下一篇 2018-07-23

相關推薦

  • Linux基礎知識入門

    涉及內容:
    計算機組成、發行版介紹、哲學思想、基本命令介紹、命令幫助使用、系統基本目錄名和功用介紹

    2018-05-13
  • HAProxy反向代理

    HAProxy的簡單配置實現反向代理服務器的功能:(有自動的健康性檢查的功能) 程序環境:主程序:/usr/sbin/haproxy主配置文件:/etc/haproxy/haproxy.cfgUnit file:/usr/lib/systemd/system/haproxy.service 官網文檔: http://cbonte.github.io/hapr…

    2018-07-09
  • 第三周

    CMD=”hostname”echo $CMDhostname$CMDcentos6.com 全局配置文件/etc/profile 定義變量的/etc/profile.d/*.sh /etc/profile.d/env.sh在這該/etc/bashrc 放別名個人配置文件~/.bash_profile 定義變量的~/.bashrc.b…

    Linux筆記 2018-04-15
  • Linux命令之alias

    語法,選項,參數

    Linux筆記 2018-07-22
  • 一次性任務:at命令

    一次性任務:at命令at使用必備1th:1)type at2)rpm -qf path3)yum install 包名4)rpm -ql at (有atd.service發現它也是個服務,即要使用at必須要開啟這個服務)2th:1)systemctl status atd (active running)2)systemctl start atd3th:nt…

    Linux筆記 2018-05-06
欧美性久久久久