Linux第五周作業

Linux

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

rpm

rpm安裝軟件分為二進制包(Binary)以及源代碼包(Source)兩種。二進制包可以直接安裝在計算機中,而源代碼包將會由RPM自動編譯、安裝。源代碼包經常以src.rpm作為后綴名。

rpm安裝軟件時的常用參數:

Install/Upgrade/Erase options:

-i, –install???????????????????? install package(s)

-v, –verbose???????????????????? provide more detailed output

-h, –hash??????????????????????? print hash marks as package installs (good with -v)

-e, –erase?????????????????????? erase (uninstall) package

-U, –upgrade=<packagefile>+????? upgrade package(s)

--replacepkge?????????????? ?????無論軟件包是否已被安裝,都強行安裝軟件包

–test??????????????????????????? 安裝測試,并不實際安裝

–nodeps????????????????????????? 忽略軟件包的依賴關系強行安裝

–force?????????????????????????? 忽略軟件包及文件的沖突

 

Query options (with -q or –query):

-a, –all???????????????????????? query/verify all packages

-p, –package???????????????????? query/verify a package file

-l, –list??????????????????????? list files in package

-d, –docfiles??????????????????? list all documentation files

-f, –file??????????????????????? query/verify package(s) owning file

 

常用命令組合:

-ivh:安裝顯示安裝進度–install–verbose–hash

-Uvh:升級軟件包–Update;

-qpl:列出RPM軟件包內的文件信息[Query Package list];

-qpi:列出RPM軟件包的描述信息[Query Package install package(s)];

-qf:查找指定文件屬于哪個RPM軟件包[Query File];

-Va:校驗所有的RPM軟件包,查找丟失的文件[View Lost];

-e:刪除包

 

示例如下:

 

~]# rpm -q gcc????????? #查詢是否已經安裝gcc軟件

gcc-4.4.7-23.el6.x86_64

~]# rpm -qa |grep gcc?? #查詢是否已經安裝gcc相關軟件

libgcc-4.4.7-23.el6.x86_64

gcc-4.4.7-23.el6.x86_64

~]# rpm -qi gcc?????? #查詢安裝的gcc軟件詳細信息

Name??????? : gcc????????????????????????? Relocations: (not relocatable)

Version???? : 4.4.7???????????????????????????? Vendor: CentOS

Release???? : 23.el6??????????????????????? Build Date: 2018年06月19日 星期二 20時30分36秒

Install Date: 2018年07月18日 星期三 15時41分19秒????? Build Host: x86-01.bsys.centos.org

Group?????? : Development/Languages???????? Source RPM: gcc-4.4.7-23.el6.src.rpm

Size??????? : 19499265???????????????????????? License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions

Signature?? : RSA/SHA1, 2018年06月20日 星期三 19時35分44秒, Key ID 0946fca2c105b9de

Packager??? : CentOS BuildSystem <http://bugs.centos.org>

URL???????? : http://gcc.gnu.org

Summary???? : Various compilers (C, C++, Objective-C, Java, …)

Description :

The gcc package contains the GNU Compiler Collection version 4.4.

You’ll need this package in order to compile C code.

~]# rpm -qd gcc? 查看一個gcc軟件的文檔安裝位置:

~]# rpm -qR gcc??? 查看一下gcc軟件所依賴的軟件包及文件;

 

yum指令

yum [options] [command] [package …]

  1. intall

 

安裝軟件包或者軟件包組的最新版本,前提是所有的依賴關系滿足要求。如果根據package參數沒有對應的匹配,則會根據glob正則模式來匹配下載軟件包。如果package參數以“@“開頭,則將會以groupintall命令執行軟件包組的安裝。如果package參數是一個文件時,則會以localinstall命令執行本地軟件包安裝。

 

yum install package1 [package2] […]

 

  1. update

如果命令執行時沒有package參數,則會更新所有已安裝的軟件。如果有一個或更多的package參數,則只會更新package參數對應的軟件。在更新的過程中,yum會確保所有的依賴關系都滿足。如果package參數對應的軟件還沒有安裝,則update命令不會進行安裝操作。

yum update [package1] [package2] […]

 

  1. update-to

命令的執行和update類似,和update不同的是可以更新到軟件具體版本。

yum update-to [package1] [package2] […]

 

  1. check-update

檢測系統所有需要更新的軟件,這個檢測過程并不不需要軟件運行。若有軟件需要更新,則返回值100并展示一個需要更新軟件列表。若沒有軟件需要更新,則返回值0。若執行過程中發生了錯誤,則返回1。

 

yum check-update

 

  1. upgrade

命令的執行和update –obsoletes類似,廢棄的軟件包也會被更新

yum upgrade [package1] [package2] […]

 

  1. upgrade-to

命令的執行和upgrade類似,和upgrade不同的是可以更新到軟件的指定版本。

yum upgrade-to [package1] [package2] […]

 

  1. distribution-synchronization/distro-sync

 

同步已安裝的軟件到最新的可用版本,yum根據情況選擇是廢棄還是更新還是降級軟件。在一般的情況下都是和upgrade命令相同,但是有一種情況特殊,當已經安裝了軟件FOO的版本4,但是yum源中最新可用版本是版本3,則此命令會進行軟件降級,降到版本3。

此命令在對groups(軟件包組)和本地軟件包是不起作用的。

yum distribution-synchronization [package1] [package1] […]

 

  1. remove/erase

移除系統里指定的軟件,同時依賴這個軟件的其它軟件也會被一并移除。

yum remove | erase package1 [package2] […]

 

  1. list

列出可用軟件包的各種信息。更多命令參數信息詳見以下的“List Options“一節。

 

yum list […]

 

  1. info

列出可用軟件包的描述和概要信息。更多命令參數信息和list命令的相同。

yum info […]

 

  1. provides/whatprovides

找出包含指定feature(特性)或文件的軟件包,使用一個特定字段或file-glob-syntax通配符來找出相關的可用或已安裝軟件包。

 

yum provides | whatprovides feature1 [feature2] […]

 

  1. clean

清除yum緩存,

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

 

  1. makecache

針對當前的yum repo(源/資源庫)下載元數據并使其可用。

yum makecache

 

  1. groupinstall

安裝一個group(軟件包組)內所有的軟件包。

yum groupinstall group1 [group2] […]

 

  1. groupupdate

更新一個group(軟件包組)內所有的軟件包。

yum groupupdate group1 [group2] […]

 

  1. grouplist

列出所有的yum repo(源/資源庫)中可用的group(軟件包組),如果group(軟件包組)內所有必要的軟件包都已安裝,則該group(軟件包組)被標識為已安裝。參數“hidden“能顯示隱藏的group(軟件包組)。如果還添加了“-v“參數,則進入詳情模式并同時顯示groupid。

yum grouplist [hidden] [groupwildcard] […]

 

  1. groupremove

移除group(軟件包組)所有的軟件。

yum groupremove group1 [group2] […]

  1. groupinfo

列出group(軟件包組)的描述以及所包含的軟件包。添加“-v“進入詳情模式能看到更多的詳情。

yum groupinfo group1 […]

 

  1. search

在只知道軟件包部分信息的情況下進行軟件包查找。默認先查找軟件包名稱和概要,接著對軟件包的描述和url進行查找。

yum搜索會把匹配度高的軟件包放在結果的前面。

可以在第一個參數設置為“all“來強制搜索所有內容。

yum search string1 [string2] […]

 

  1. shell

yum shell [filename]

 

  1. resolvedep

列出依賴參數dep的所有軟件包

yum resolvedep dep1 [dep2] […]

 

  1. localinstall

通過本地軟件包安裝軟件

yum localinstall rpmfile1 [rpmfile2] […]

 

  1. localupdate

通過本地軟件包更新軟件

yum localupdate rpmfile1 [rpmfile2] […]

 

  1. reinstall

重新安裝軟件

yum reinstall package1 [package2] […]

 

  1. downgrade

通過package對軟件進行降級

yum downgrade package1 [package2] […]

 

  1. deplist

列出軟件所依賴的信息

 

yum deplist package1 [package2] […]

 

  1. repolist

列出repo(源/資源庫)的信息

yum repolist [all | enabled | disabled]

 

  1. version

列出yum的版本信息

yum version [all | installed | available | group-* | nogroups* | grouplist | groupinfo]

 

  1. history

列出操作信息

 

yum history [info | list | packages-list | packages-info | summary | addon-info | redo | undo | roll-back | new | sync | stats]

 

  1. load-transaction

yum load-transaction [txfile]

 

  1. check

檢查本地rpmdb以及軟件是否存在問題

yum check

 

  1. 使用Cache執行命令

-C | –cacheonly

 

  1. 使用執行的配置文件執行命令

-c [配置文件路徑]

 

  1. 顯示命令執行詳情

-v | –verbose

 

  1. 靜默安裝

-q | –quiet

 

  1. 默認執行yes確認

-y | –assumeyes

 

  1. 默認執行no否定

–assumeno

 

  1. 指定軟件安裝目錄路徑,覆蓋默認的目錄

–installroot=[安裝目錄路徑]

 

  1. 指定可用repo(軟件庫)

–enablerepo=[repo名稱]

 

  1. 指定不可用repo(軟件庫)

–disablerepo=[repo名稱]

 

  1. 忽略依賴關系

–skip-broken

 

  1. 不更新,只下載

–downloadonly

 

  1. 指定更新下載路徑

–downloaddir=[下載路徑]

  1. 查看rmp/yum的版本

yum –version | yum version

 

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

建立本地yum倉庫(包含網絡源和本地源):

1)掛載系統或者安裝包的光盤到光驅;

# mkdir /mnt/Centos6.7/

~]# mount /dev/cdrom /mnt/Centos6.7/

mount: block device /dev/sr0 is write-protected, mounting read-only

# cd /etc/yum.repos.d/

# mkdir repo_bak

# mv *.repo /etc/yum.repos.d/repo_bak/

# vim Local-ISO.repo

1 [CentOS6-base]

2 name=CentOS-6-base

3 baseurl=file:///mnt/Centos6/Packages

4???????? https://mirrors.aliyun.com/centos/7.5.1804/os/x86_64/

5 gpgcheck=1

6 enabled=1

7 gpgkey=file:///mnt/Centos6RPM-GPG-KEY-CentOS-6

8 gpgkey=https://mirrors.aliyun.com/centos/7.5.1804/os/x86_64/RPM-GPG-KEY-CentOS-7

~]# yum clean all

已加載插件:fastestmirror, refresh-packagekit, security

Cleaning repos: CentOS6-base

清理一切

Cleaning up list of fastest mirrors

~]# yum makecache

已加載插件:fastestmirror, refresh-packagekit, security

Determining fastest mirrors

* CentOS6-base:

CentOS6-base????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ???????????????????????????????????????????????????????????????| 4.0 kB???? 00:00 …

CentOS6-base/group_gz??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????????????????????????????????????????????| 219 kB???? 00:00 …

CentOS6-base/filelists_db?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?????????????????????????| 6.2 MB???? 00:00 …

CentOS6-base/primary_db??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ??????| 4.6 MB???? 00:00 …

CentOS6-base/other_db??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? | 2.8 MB???? 00:00 …

元數據緩存已建立

~]# yum repolist

Loading mirror speeds from cached hostfile

* CentOS6-base:

倉庫標識?????????????????????????????????????????????????????????????????????????????????????????????????????????? 倉庫名稱??????????????????????????????????????????????????????????????????????????????????????????????????????????? 狀態

CentOS6-base?????????????????????????????????????????????????????????????????????????????????????????????????????? CentOS-6-base???????????????? ??????????????????????????????????????????????????????????????????????????????????????6,575

repolist: 6,575

~]# yum list

 

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

at 命令是針對僅運行一次的任務,crontab命令是用來制定執行循環運行的例行性計劃任務。

at命令格式:

at[參數][時間]

命令功能:

在一個指定的時間執行一個指定任務,只能執行一次,且需要開啟atd進程(

ps -ef | grep atd查看, 開啟用/etc/init.d/atd start or restart;

開機即啟動則需要運行 chkconfig –level 2345 atd on)。

-m 當指定的任務被完成之后,將給用戶發送郵件,即使沒有標準輸出

-I atq的別名

-d atrm的別名

-v 顯示任務將被執行的時間

-c 打印任務的內容到標準輸出

-V 顯示版本信息

-q<列隊> 使用指定的列隊

-f<文件> 從指定文件讀入任務而不是從標準輸入讀入

-t<時間參數> 以時間參數的形式提交要運行的任務

示例:

~]# at 9:26

at> /bin/ls >/root/ls.txt

at> <EOT>? #此處使用Ctrl+D鍵作為停止輸入;

job 8 at 2018-07-26 09:26

~]# cat ls.txt

date.sh

fun.sh

guess.sh

jisuan.sh

num.sh

test.sh

~]# atq? #計劃任務設定后,在沒有執行之前我們可以用atq命令來查看系統沒有執行工作任務

12?? 2018-07-26 11:20 a root

crontab命令格式:

crontab?[-u?user]?file

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

命令功能:

通過crontab?命令,我們可以在固定的間隔時間執行指定的系統指令或?shell?script腳本。時間間隔的單位可以是分鐘、小時、日、月、周及以上的任意組合。這個命令非常設合周期性的日志分析或數據備份等工作。

命令參數:

-u?user:用來設定某個用戶的crontab服務,例如,“-u?ixdba”表示設定ixdba用戶的crontab服務,此參數一般由root用戶來運行。

file:file是命令文件的名字,表示將file做為crontab的任務列表文件并載入crontab。如果在命令行中沒有指定這個文件,crontab命令將接受標準輸入(鍵盤)上鍵入的命令,并將它們載入crontab。

-e:編輯某個用戶的crontab文件內容。如果不指定用戶,則表示編輯當前用戶的crontab文件。

-l:顯示某個用戶的crontab文件內容,如果不指定用戶,則表示顯示當前用戶的crontab文件內容。

-r:從/var/spool/cron目錄中刪除某個用戶的crontab文件,如果不指定用戶,則默認刪除當前用戶的crontab文件。

-i:在刪除用戶的crontab文件時給確認提示。

 

~]# crontab -e

10 3,5 * * 3 echo $(date ‘+\%F \%T’)

~]# crontab -l

10 3,5 * * 3 echo $(date ‘+\%F \%T’)

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

sed處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”,接著用sed命令處理緩沖區中的內容,處理完成后,把緩沖區的內容送往屏幕;接著處理下一行,這樣不斷重復,直到文件末尾。文件內容并沒有改變,除非你使用重定向存儲輸出。

sed命令行格式:sed [options] ‘command’ file(s)

options常用選項:

-n或–quiet或——silent:僅顯示script處理后的結果;

-e<script>或–expression=<script>:以選項中的指定的script來處理輸入的文本文件;??????? -f<script文件>或–file=<script文件>:以選項中指定的script文件來處理輸入的文本文件;

-r∶sed 的動作支援的是延伸型正規表示法的語法;

-i∶直接修改讀取的檔案內容,而不是由螢幕輸出;(此命令選項慎重使用,再三確認之后才使用。)

-h或–help:顯示幫助;

-V或–version:顯示版本信息。

Command常用命令:

a:新增,a 的后面可以接字符串,而這些字符串會在新的一行出現(目前的下一行);

c:取代,c 的后面可以接字符串,這些字符串可以取代n1,n2 之間的行;

d:刪除,d 后面通常不接任何字符串;

i:插入,i 的后面可以接字符串,而這些字符串會在新的一行出現(目前的上一行);

p:列印,亦即將某個選擇的資料印出。通常 p 會與參數 sed-n 一起運作;

s:取代,可以直接進行取代的工作,通常與正規表達式搭配使用。

實例說明:

新增操作:a命令

sed ‘/^bird/a\test’ file將test追加到 以bird開頭的行后面

刪除操作:d命令

sed ‘/^$/d’ file?? #刪除空白行;

sed ‘2d’ file???? #刪除第二行;

sed ‘2,$d’ file?? #刪除第2行到最后一行;

sed ‘$d’ file???? #刪除最后一行;

sed ‘/^bird/’d file?? #刪除所有開頭是bird的行;

插入操作:i命令

sed -i ‘3i\bird ‘ bird.conf?? #在bird.conf文件第3行之前插入bird

替換文本中的字符串:s命令

sed ‘s/bird/birds/’ file? #將文本中的bird替換成birds;

sed -i ‘s/ bird / birds /g’file? #將file文件中每一行的第一個bird替換為birds;

 

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

(1)
FelixFelix
上一篇 2018-07-24
下一篇 2018-07-27

相關推薦

  • awk小練習

    linux awk

    Linux筆記 2018-05-20
  • Linux系統上命令的使用格式

    在Linux系統中可執行的命令分為兩種:內建命令和外部命令??梢酝ㄟ^type+COMMAND來區分 內建命令的查詢: help COMMAND 外部命令的查詢: COMMAND –help / COMMAND -h man [options] [arguments] 常用選項: -a:在所有的man幫助手冊中搜索; -f:等同于whatis命令,…

    Linux筆記 2018-05-13
  • 軟raid5創建及管理

    linux mdadm raid5

    Linux筆記 2018-04-28
  • 2018年7月16日~7月22日(第五周作業)

    一、簡述rpm和yum命令的常用選項并舉例說明。 1)rpm命令:rpm [OPTIONS] [PACKAGE_FILE] 安裝:-i,–install 升級: -U,–upgrade,-F,–freshen 卸載: -e,–erase 查詢: -q,–query 校驗:-V,verify 數據庫維…

    Linux筆記 2018-07-28
  • 課堂筆記

    cat— 文本文件 1.cat/etc/centos/—release看到發行版名稱 lsb—releas—a ? ? ? ? ? ? ? ? ?? 看到發行版名稱 (centors? 7上如果看不到發行版名稱,并不是沒有,而是沒有安裝對映的軟件,生產環境中都是最小化安裝,默認安裝是最小文件) 2.sz/etc/centos—release傳到w…

    Linux筆記 2018-07-24
  • 第三周作業

    第三周作業 1列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 W 命令:顯示信息更加全面 第一行顯示系統的匯總信息,字段分別表示系統當前時間、系統運行時間、登陸內用戶總數及系統平均負載信息。 從第二行開始構成一個表格,共有8個欄目,分別顯示各個用戶正在做的事情及該用戶所占用的系統資料。 USER:顯示登陸用戶帳號名。用…

    2018-07-08

評論列表(1條)

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

    不錯的文章,其中rpm包管理上可以列舉一些例子稍微說明一下哈,繼續加油。

欧美性久久久久