shell編程、程序包管理及習題

shell編程、程序包管理及習題

一、編程語句

1、while 循環

while CONDITION; do

    循環體

done

CONDITION :循環控制條件;進入循環之前,先做一次判

斷;每一次循環之后會再次做判斷;條件為“true” ,則執行

一次循環;直到條件測試狀態為“false” 終止循環

因此:CONDTION 一般應該有循環控制變量;而此變量的值

會在循環體不斷地被修正

進入條件:CONDITION true

退出條件:CONDITION false;

2、until 循環

until CONDITION; do

      循環體

done

進入條件: CONDITION  false

退出條件: CONDITION  true

3、循環控制語句continue

 用于循環體中

continue [N] :提前結束第N 層的本輪循環,而直接進入下一

輪判斷;最內層為第1層 層

while CONDTIITON1; do

    CMD1

    …

    if CONDITION2; then

         continue

    fi

    CMDn

    …

done

4、循環控制語句break

用于循環體中

break [N] :提前結束第N 層循環, 最內層為第1

 while CONDTIITON1; do

      CMD1

      …

      if CONDITION2; then

              break

      fi

      CMDn

      …

done

二、打包壓縮

 tar [OPTION]…

(1)  創建歸檔

tar -c -f / PATH/TO/SOMEFILE .tar FILE…

tar cf / PATH/TO/SOMEFILE .tar FILE…

(2)  查看歸檔文件中的文件列表

tar -t -f  /PATH/TO/SOMEFILE .tar

(3)  展開歸檔

tar -x -f  /PATH/TO/SOMEFILE .tar

tar -x -f  /PATH/TO/SOMEFILE .tar -C  /PATH/

v  結合壓縮工具實現:歸檔并壓縮

-j: bzip2, -z: gzip, -J: xz

30

cpio

 復制  從或到文件

 cpio 命令是通過重定向的方式將文件進行打包備份,還原恢復

的工具,它可以解壓以“.cpio” 或者“.tar” 結尾的文件。

 cpio [ 選項] >  文件名或者設備名

 cpio [ 選項] <  文件名或者設備名

  選項

-o  將文件拷貝打包成文件或者將文件輸出到設備上

-i  解包,將打包文件解壓或將設備上的備份還原到系統

-t  預覽,查看文件內容或者輸出到設備上的文件內容

-v  顯示打包過程中的文件名稱。

-d  解包生成目錄,在cpio 還原時,自動的建立目錄

-c  一種較新的存儲方式

實例

 將 將etc 目錄備份:

find ./etc -print |cpio -ov >etc.cpio

  內容預覽

cpio tv < etc.cpio

  要解包文件

cpio iv <etc.cpio

cpio idv < etc.cpio

三、rpm包管理

1、包管理器

二進制應用程序的組成部分:

二進制文件、庫文件、配置文件、幫助文件

 程序包管理器:

debian deb 文件, dpkg 包管理器

redhat: rpm 文件, rpm 包管理器

rpm: Redhat Package Manager

RPM Package Manager

2、包文件組成

  程序包管理器:

功能:將編譯好的應用程序的各組成文件打包一個或幾個

程序包文件,從而方便快捷地實現程序包的安裝、卸載、查詢、

升級和校驗等管理操作

 1)包文件組成 、包文件組成 ( 每個包獨有)

RPM 包內的文件

RPM 的元數據,如名稱,版本,依賴性,描述等

安裝 或卸載時運行的腳本

 2 )、數據庫( 公共)

程序包名稱及版本

依賴 關系

功能 說明

包安裝后生成的各文件路徑及校驗碼信息

3、程序包的來源

管理程序包的方式:

使用包管理器:rpm

使用前端工具:yum, dnf

獲取程序包的途徑:

(1)  系統發版的光盤或官方的服務器;

CentOS 鏡像:

https://www.centos.org/download/

http://mirrors.aliyun.com

http://mirrors.sohu.com

http://mirrors.163.com

(2)  項目官方站點

程序包的來源

(3)  第三方組織:

Fedora-EPEL: :

Extra Packages for Enterprise Linux

Rpmforge:RHEL 推薦,包很全

搜索引擎:

http://pkgs.org

http://rpmfind.net

http://rpm.pbone.net

https://sourceforge.net/

4rpm 包管理

1CentOS 系統上使用rpm 命令管理程序包

   安裝、卸載、升級、查詢、校驗、數據庫維護

   安裝:

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

-v: verbose

-vv:

-h:  # 顯示程序包管理執行進度

rpm -ivh PACKAGE_FILE …

2rpm 包安裝

    [install-options]

–test:  測試安裝,但不真正執行安裝;dry run 模式

–nodeps :忽略依賴關系

–replacepkgs | replacefiles

–nosignature:  不檢查來源合法性

–nodigest :不檢查包完整性

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

%pre: ; 安裝前腳本; –nopre

%post: ; 安裝后腳本; –nopost

%preun: ; 卸載前腳本; –nopreun

%postun:  卸載后腳本; –nopostun

3rpm 包升級

   升級:

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:  強行升級

習題

until實現下列作業(有些習題不會做,等老師下次上課,我好好跟著老師做做)

1、每隔3秒鐘到系統上獲取已經登錄的用戶的信息;如果發現用戶hacker登錄,則將登錄時間和主機記錄于日志/var/log/login.log,并提示該用戶退出系統。

圖片1.png 

2、隨機生成10以內的數字,實現猜字游戲,提示比較大或小,相等則退出.

答:

圖片2.png

3、編寫腳本,求100以內所有正整數之和

答:

圖片3.png 

4、編寫腳本,通過ping命令探測10.1.44.1-254范圍內的所有主機的在線狀態,統計在線主機和離線主機各多少。

答:

圖片4.png 

5、編寫腳本,打印九九乘法表

 

6、編寫腳本,利用變量RANDOM生成10個隨機數字,輸出這個10數字,并顯示其中的最大者和最小者

答:

7、編寫腳本,實現打印國際象棋棋盤

答:

8、打印等腰三角形

答: 

9、安裝centos6.7,centos6.8kernel升級

答:

原創文章,作者:178babyhanggege,如若轉載,請注明出處:http://www.www58058.com/37134

(0)
178babyhanggege178babyhanggege
上一篇 2016-08-18 10:09
下一篇 2016-08-18 10:09

相關推薦

  • Nginx/LVS/HAProxy負載均衡軟件優缺點總結

    Nginx/LVS/HAProxy簡單介紹:   Nginx:專為性能優化而開發,性能是其最重要的考量,實現上非常注重效率 。它支持內核Poll模型,能經受高負載的考驗,有報告表明能支持高達 50,000個并發連接數。 LVS:使用Linux內核集群實現一個高性能、高可用的負載均衡服務器,具有很好的可伸縮性(Scalability)、可靠性(Rel…

    2017-06-24
  • Linux基本操作:關機 重啟

        Linux系統安裝完成以后,就要學會一些Linux的基本操作命令,首先是關機和重啟命令,如果進入Linux系統之后連關機重啟都不會是不是太不應該了,總不能關機或重啟的時候直接關閉電源在開機吧,這就顯得太不專業了,這樣也會對Linux系統主機不太好,一些進程還沒有關閉就直接斷電,會導致Linux系統的不穩定出現問題,何況也…

    Linux干貨 2016-08-04
  • Nginx配置與應用詳解

    前言 Nginx是由俄羅斯軟件工程師Igor Sysoev開發的一個高性能的HTTP和反向代理服務器,具備IMAP/POP3和SMTP服務器功能。Nginx最大的特點是對高并發的支持和高效的負載均衡,在高并發的需求場景下,是Apache服務器不錯的替代品。目前,包括新浪、騰訊等知名網站都已使用Nginx作為Web應用服務器。本文帶來的是Nginx配置與應用詳…

    Linux干貨 2015-06-15
  • CentOS7的虛擬機安裝

    剛學習linux下CentOS7的操作,熟悉一下CentOS7的安裝,所以寫一下CentOS7的安裝教程,如果那里有寫的不對的話希望得到指正。 我是在VMware下裝的CentOS7 第一步配置硬件 先創建一個虛擬機 這里我選擇的典型模式,新手嘛,新手難度的創建就好,高手難度的等新手難度熟練了再去碰好了,當然這是我的建議… 下一步然后光盤選擇稍后…

    2017-07-15
  • date命令常見用法。

    date是一個非常實用的小工具,可以查看時間,并且也可以添加選項去完成自己想完成的東西。

    Linux干貨 2017-11-13
  • Linux系統中文件權限(特殊權限)的相關認識

    文件屬性 在linux系統中一切皆文件,所有的數據都是以文件的形式存儲在系統中,我們可以通過ls命令可以查看文件的相關屬性,如下圖:                                &n…

    Linux干貨 2016-08-04

評論列表(2條)

  • 178babyhanggege
    178babyhanggege 2016-08-18 12:04

    作業中的第五題:針對九九乘法表,今天學習了使用for(()),具體編程如下:
    “for999.sh” 8L, 147C
    #!/bin/bash
    for ((i=1;i <= 9;i++ ));do
    for (( j=1;j <=i;j++ ));do
    echo -ne "$j*$i=$[$i*$j]\t"
    done
    echo " "
    done

  • 178babyhanggege
    178babyhanggege 2016-08-19 09:29

    作業中的第八題,答案
    [root@centos6bin]#cat sanjiao.sh
    #!/bin/bash
    read -p “number:” n
    for j in `seq $n` ;do
    for a in `seq $[$n-$j]`;do
    echo -n ” ”
    done

    b=$[$j*2-1]
    for m in `seq $b`;do
    echo -n “*”
    done
    echo
    done

欧美性久久久久