第六周

 

第6周

 

1

復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#;
cp /etc/rc.d/rc.sysinit ; sed -i 's@^[[:space:]]\+@#@g' rc.sysinit

2

復制/boot/grub/grub.conf至/tmp目錄中,刪除/tmp/grub.conf文件中的行首的空白字符;
cp /boot/grub/grub.conf ; sed '/^[[:space:]]\+/d' grub.conf

3

刪除/tmp/rc.sysinit文件中的以#開頭,且后面跟了至少一個空白字符的行行的#和空白字符
sed  '/^#[[:space:]]\+/d' rc.sysinit

4

為/tmp/grub.conf文件中前三行的行首加#號;
sed -n '1,3s@^@#@gp ' grub.conf

5

將/etc/yum.repos.d/CentOS-Media.repo文件中所有的enabled=0或gpgcheck=0的最后的0修改為1;
sed -r 's@([enabled|gpgcheck])=0@\1=1@' epel.repo

6

每4小時執行一次對/etc目錄的備份,備份至/backup目錄中,保存的目錄名為形如etc-201504020202
0 */4 * * * /bin/cp -ar /etc /backup/etc-$(date "+%Y%m%d%H%M%S")

7

每周2,4,6備份/var/log/messages文件至/backup/messages_logs/目錄中,保存的文件名形如messages-20150402
0 0 2,4,6 * * /bin/cp -ar /var/log/messages /backup/messages_logs/messages$(date "+%Y%m%d)

8

每天每兩小時取當前系統/proc/meminfo文件中的所有以S開頭的信息至/stats/memory.txt文件中
0 */2 * * * cat /proc/meminfo|grep -i '^s'>>/stats/memory.txt

9

工作日的工作時間內,每兩小時執行一次echo "howdy"
0 */2 1-5 * echo "howdy"

10

創建目錄/tmp/testdir-當前日期時間; 
 #!/bin/bash
 mkdir /tmp/testdir-$(date "+%Y%m%d%H%M%S")

11

在此目錄創建100個空文件:file1-file100
#!/bin/bash
declare -i i=1
while [ $i -le 100 ];do
    touch file$i
    let i++
done

12

 顯示/etc/passwd文件中位于第偶數行的用戶的用戶名;
 cat  /etc/passwd|sed -n '2~2p'|cut -d: -f1

13

 創建10用戶user10-user19;密碼同用戶名;
 #!/bin/bash
 for i in {10..19};do useradd user$i;passwd --stdin user$i ;done

14

在/tmp/創建10個空文件file10-file19; 
#!/bin/bash
for i in $(seq 10 19);do touch /tmp/file$i ;done

15

把file10的屬主和屬組改為user10,依次類推。
#!/bin/bash
for i in {10..19};do chown file$i:file$i file$i;done

vim編輯器

vim是什么?

    vi:Virtual Interface,是一種文本編輯器,所謂文本數據基于文本編碼的文件.常見的文本編碼有ASCLL碼、UNICODE碼等等.

    文本編輯器分為兩種:
        行編輯器: 一行行的編輯文件,例sed.
        全屏編輯器: 全屏編輯文件,例 nano ,vim.
    vim 即 Vi IMproved.vi的提升版,vim是模式化的編輯.

vim工作模式

    vim在工作過程中分為三個模式.分別為命令模式、輸入模式、末行模式;
        命令模式: 在編輯模式下所執行的特定命令.也稱為編輯模式.
        輸入模式: 用于輸入文本信息.
        末行模式: vim內置的命令行接口,執行vim的內置命令.

vim.png

    模式切換
        1 Esc鍵和":"用于切換模式
        2 命令模式 --> 輸入模式
            i: 在光標所在處開始輸入
            a: 在光標所在處的后方開始輸入
            o: 在光標所在處的下方新建一空行開始輸入   
            I: 在光標所在行首開始輸入
            A: 在光標所在行尾開始輸入
            O: 在光標所在上方新建一空行開始輸入
        3 輸入模式 --> 命令模式
                鍵入Esc
        3 命令模式 --> 末行模式
                使用":"
        4 末行模式 --> 命令模式
                鍵入Esc

vim基礎使用

打開文件

    vim [options] [file ..]
         options:
            +[num]: 打開第一個文件,光標將放置于指定的行的行首.
            +/{pat}: 打開第一個文件,光標將放置在第一個被模式匹配到的行的行首.

退出文件

    打開文件時,默認處于命令模式.

        命令模式的退出
            ZZ:保存退出
        末行模式的退出
            :q          ///退出
            :q!         ///不保存退出
            :wq         ///保存退出
            :wq!        ///強制保存退出,先后順序不能顛倒
            :x          ///保存退出

命令模式下
    光標移動
        字符間移動
         h 左
         l 右
         k 上
         j 下

        單詞間移動
         w 跳至下一個單詞的詞首
         e 跳至下一個單詞的詞尾
         b 跳至上一個單詞的詞首

         注意: 
         支持數字移動: #{h|l|j|k|w|e|b}  \\\一次移動多少字符,跳多少單詞

        行間移動
          ^ 跳至行首(非空字符行首)
          $ 跳至行尾
          0 跳至行首(絕對行首)


        句子間移動
           (  上一句
           )  下一句

        段落間移動
            {  上一段
             } 下一段

    編輯命令

        字符編輯:
            x     ///刪除當前光標字符
            #x    ///刪除當前光標開始的#個字符

            結合命令:   
            xp     ///將前后字符對換位置


        刪除,負責,修改命令;c,y與d用法相同
        編輯命令可與光標移動命令和數字移動結合使用(以d命令為例):
            dw
            de
            db
            d^
            d$
            d0
            d[h|j|k|l]
            dd              ///刪除當前行
            #COMMAND        ///命令操作數量,例如3dd,刪除三行

        粘貼命令:
        p: 粘貼,粘貼內容為上一次操作編輯的內容;
            如果內容為字符串,則粘貼至光標后方;
            如果內容為行,則粘貼至光標行的下一行;
        P: 粘貼,粘貼內容為上一次操作編輯的內容;
            如果內容為字符串,則粘貼至光標前方;
            如果內容為行,則粘貼至光標行的上一行;

        替換命令:
            r: 替換,替換單個字符
                rCHAR
            R: 替換,進入替換模式,在此模式下可替換所有文本;

        其他編輯命令:

            可視化編輯:
                v: 按字符選定
                V: 按行選定

                結合編輯命令使用

            撤銷操作命令(undo):
                u: 撤銷上一步操作
                 #: 撤銷上#步操作

            撤銷此前的撤銷:
                Ctrl+r

            重復執行上一次操作:
                .

    翻屏操作
        Ctrl+f : 向下翻一屏
        Ctrl+b : 向上翻一屏
        Ctrl+d : 向下翻半屏
        Ctrl+u : 向上翻半屏
        Enter  : 向下翻一行

    vim自帶的練習教程:vimtutor


末行模式下
    地址定界
        :start_1[,End_2]

        .: 光標所在行;
        #: 指定特定為#行,例如5,則為第5行;
        #,#: 左邊指定起始行,右邊指定結束行;
        #,+#: 左邊指定起始行,右邊指定向下偏移行數;
        %: 代表全文;
        $: 末行;
        /part1/,$: 左邊為第一次模式匹配到的行,右邊為末行;
        /part1/,/part2/: 左邊為左側模式匹配第一次匹配到的行,右邊為右側模式匹配第一次匹配到的行;

        可結合編輯命令一起使用,
            d
            c
            y
            w  /some/where/file        ///保存至指定文件
            r  /some/where/file        ///將指定文件讀入指定位置

        練習:
            1 寫出第一次行首為#,至行首不為#的行,復制
                :/^#/^[^#]/y
            2 第一行至倒數第二行,刪除
                :1,$-1d
            3 刪除全文 
                :%d
            4 vim編輯/etc/fstab,將/etc/issue文件內容讀入最后一行
                :$r /etc/issue

    查找
        /PATTERN : 從當前光標處,到末尾查詢匹配到的字符串
        ?PATTERN : 從當前光標處,到行首查詢匹配到的字符串
            n: 下一個匹配到的字符串,與命令查詢方向一致
            N: 上一個匹配到的字符串,與命令查詢方向相反

    查找并替換:
        s:末行模式的命令
        使用格式:
            s/要查找的內容/替換為的內容/修飾符

            要查找的內容: 可以使用正則表達式
            要替換的內容: 不能使用正則表達式,但可以引用;
                引用:
                    后項引用
                    引用查詢模式匹配到的全部文本,使用&符號;
            修飾符:
                i: 忽略大小寫;
                g: 全局替換(默認為替換第一個匹配到的字符串);

        分割符可以為多種:
            s@@@
            s###

        練習:
            1、復制/etc/grub2.cfg文件至/tmp目錄中,用查找替換命令刪除/tmp/grub2.cfg文件中以空白字符開頭的行的行首的空白字符;
                %s@^[[:space:]]\+@@
            2、復制/etc/rc.d/init.d/functions文件至/tmp目錄中,用查找替換命令為/tmp/functions文件的每個以空白字符開頭的行的行首加上#;
                %s@^[[:space:]]\+[^[:space:]]@#&@g
            3、為/tmp/grub2.cfg文件的前三行的行首加上#號;
                1,3s@^@#@g
            4、將/etc/yum.repos.d/CentOS-Base.repo文件中所有的enabled=0替換為enabled=1,所有gpgcheck=0替換為gpgcheck=1;
                %s@\(enabled\|gpgcheck\)=0@\1=1@g

vim多文件編輯:

多文件:
    vim FILE1 FILE2 ...

    在文件間切換:
        :first    ///第一個文件
        :last     ///最后一個文件
        :prev     ///上一個文件
        :next     ///下一個文件

    退出所有文件:
        :wqall   <-->    :wqa         ///退出并保存所有文件
        :qall    <-->    :qa          ///退出所有文件
        :wall    <-->    :wa          ///保存所有文件

多窗口:
    -o : 水平分割窗口
    -O : 垂直分割窗口

切換窗口:
    Ctrl+w --> ARROW(h,j,k,l,w)

注意:單文件也可分割為多窗口編輯查看;
    Ctrl+w --> s : 水平分割窗口
    Ctrl+w --> v : 垂直分割窗口

vim相應配置文件

末行模式下使用配置命令,只生效于當前vim進程;
全局配置:   /etc/vimrc               
個人配置:   ~/.vimrc (默認不存在,需手動創建)

記錄vim操作歷史:  ~/.viminfo

定制vim的工作特性:

    1、行號
        顯示:set number, 簡寫為set nu
        取消顯示:set nomber, set nonu
    2、括號匹配高亮
        匹配:set showmatch, set sm
        取消:set nosm
    3、自動縮進
        啟用:set ai
        禁用:set noai
    4、高亮搜索
        啟用:set  hlsearch
        禁用:set nohlsearch
    5、語法高亮
        啟用:syntax on
        禁用:syntax off 
    6、忽略字符大小寫
        啟用:set ic
        禁用:set noic
    7、設置tab鍵縮進4個字符
         set ts=4 (注:ts是tabstop的縮寫,設TAB寬4個空格)

    獲取幫助:
        :help
        :help subject

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

(0)
N25_sadanN25_sadan
上一篇 2017-02-13
下一篇 2017-02-13

相關推薦

  • shell編程之循環及函數

    for 循環 for 變量名 in 列表;do    循環體 done   執行機制: 依次將列表中的元素賦值給“變量名”; 每次賦值后即執行一次循環體; 直到列表中 的元素耗盡,循環結束   列表生成方式: (1)直接給出列表 (2)整數列表: (a) {start..end} (b) $(seq [start [s…

    Linux干貨 2016-08-24
  • Linux-Centos7編譯內核

    編譯內核     前提:         (1)準備好開發環境         (2) 獲取目標主機上硬件設備的相關信息         (3) 獲取目標主機系統功能的相關信息       …

    2017-07-16
  • 文本查找相關命令簡單介紹

    文件查找命 在文件系統上查找符合條件的文件 非實時查找:基于索引查找 locate 實時查找:find locate介紹 依賴于事先構建的索引:索引的構建是在系統較為空閑時自動進行(周期性任務):手動更新數據庫(updatedb) 索引構建過程需要遍歷整個根文件系統,極消耗資源,生產中盡量避免手動更新。 語法: locate KEYWORD -i:忽略大小寫…

    Linux干貨 2017-04-10
  • 第一周作業

    1、描述計算機的組成及其功能。     運算器,控制器,存儲器,輸入設備,輸出設備     CPU:運算器+控制器     內存,硬盤:存儲器     輸入設備:鍵盤鼠標   &n…

    Linux干貨 2016-06-26
  • 于浩的第一篇隨筆

    人生只有兩件事,努力工作,享受生活!

    2018-03-26
  • Linux基礎知識——文件查找

    Linux系統的核心思想之一就是一切皆文件,可想而知你要靠記憶去查找一個文件該是多么費勁;今天我們介紹幾個文件查找命令:whereis,locate,find whereis locate the binary, source, and manual page files for…

    Linux干貨 2016-10-11

評論列表(1條)

  • 馬哥教育
    馬哥教育 2017-03-30 14:12

    很不錯,再接再勵。

欧美性久久久久