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
下一篇 2016-08-18

相關推薦

  • 第六周課程作業

    1、復制/etc/rc.d/init.d/functions文件至/tmp目錄,將/tmp/functions文件中 的以至少一個空白字符開頭的行的行首加# ~]# cp /etc/rc.d/init.d/functions /tmp~]# vim /tmp/functions %s@^[[:space:]]\+@#@g 2、復制/boot/gru…

    Linux干貨 2016-12-12
  • 第二周

    3、(1)、  :  ~]# mkdir -p /tmp/{a_c,a_d,b_c,b_d}                  or     ~]# …

    Linux干貨 2016-08-22
  • 正則表達式練習

       grep練習  : 1 、顯示/proc/meminfo 文件中以大小s 開頭的行:  2 、顯示/etc/passwd 文件中不以/bin/bash 結尾的行      3 、顯示用戶rpc 默認的shell        4 、找出/etc…

    Linux干貨 2016-08-10
  • N22-妙手 第4天視頻課程練習

    一、Globbing文件名通配練習 練習1:顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間出現任意一位字符的目錄 [root@localhost ~]# ls -d /var/l?[[:lower:]] /var/lib  /var/log 練習2:顯示/etc目錄下,以任意一位數字開頭…

    Linux干貨 2016-08-22
  • 初識selinux

    一、selinux介紹     1.selinux歷史     SELinux: Secure Enhanced Linux,是美國國家安全局「NSA=The National Security Agency」和SCC(Secure Computing Corporation)開…

    Linux干貨 2016-09-21
  • 推薦-tree命令的安裝和使用

    一、前言     tree命令是可以把指定文件夾的所以文件用樹狀羅列出來,呈現目錄形式的一個命令。在Centos 6.5中默認不能直接使用: 輸入type tree命令(type COMMAND:區別是內建命令還是外部命令)提示不存在: 二、安裝       …

    系統運維 2016-03-27

評論列表(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

欧美性久久久久