馬哥教育網絡班22期-第6周博客作業

1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#;

[root@centos6 ~]# cp /etc/rc.d/rc.sysinit /tmp/
[root@centos6 ~]# sed -i 's/^[[:space:]]/#/' /tmp/rc.sysinit

2、復制/boot/grub/grub.conf至/tmp目錄中,刪除/tmp/grub.conf文件中的行首的空白字符;

[root@centos6 ~]# cp /boot/grub/grub.conf /tmp/
[root@centos6 ~]# sed -i 's/^[[:space:]]//' /tmp/grub.conf

3、刪除/tmp/rc.sysinit文件中的以#開頭,且后面跟了至少一個空白字符的行行的#和空白字符

[root@centos6 ~]# sed 's@^#[[:space:]]\+@@g' /tmp/rc.sysinit

4、為/tmp/grub.conf文件中前三行的行首加#號;

[root@centos6 ~]# sed '1,3s@^.*@#&@g' /tmp/rc.sysinit | head -3
##!/bin/bash
##
## /etc/rc.d/rc.sysinit - run once at boot time

5、將/etc/yum.repos.d/CentOS-Media.repo文件中所有的enabled=0或gpgcheck=0的最后的0修改為1;

sed 's/enabled=0/enabled=1/g;s/gpgcheck=0/gpgcheck=2/g' /etc/yum.repos.d/CentOS-Media.repo | egrep "(enabled|gpgcheck)"

6、每4小時執行一次對/etc目錄的備份,備份至/backup目錄中,保存的目錄名為形如etc-201504020202

00 */4 * * * root /bin/tar -zcf /backup/etc-`date +%Y%m%d%H%M` /etc

7、每周2,4,6備份/var/log/messages文件至/backup/messages_logs/目錄中,保存的文件名形如messages-20150402

00 00 * * 2,4,6 /bin/tar -zcf /backup/messages_logs/messages-`date +%Y%m%d` /var/log/messages

8、每天每兩小時取當前系統/proc/meminfo文件中的所有以S開頭的信息至/stats/memory.txt文件中

[root@centos6 backup]# mkdir /stats
00 */2 * * * /bin/grep '^S' /proc/meminfo >>/stats/memory.txt

9、工作日的工作時間內,每兩小時執行一次echo "howdy"

00 8-17/2 * * 1-5 /bin/echo "howdy"

腳本編程練習

10、創建目錄/tmp/testdir-當前日期時間;

11、在此目錄創建100個空文件:file1-file100

12、顯示/etc/passwd文件中位于第偶數行的用戶的用戶名;

13、創建10用戶user10-user19;密碼同用戶名;

14、在/tmp/創建10個空文件file10-file19;

15、把file10的屬主和屬組改為user10,依次類推。

#!/bin/bash
#
DIR=/tmp/testdir-`date +%Y%m%d`
touch /tmp/$DIR/file{1..100}
sed -n 'n;p' /etc/passwd|cut -d: -f1
for i in `seq 10 19`;do
   useradd user$i
   echo "user$i" | passwd --stdin user$i
   touch /tmp/file$i
   chown user$i:user$i /tmp/file$i
done

vim編輯器

1 什么是vim編輯器

    vim是模式化的編輯器

    文本編輯器:

    文本:純文本,ASCII text;Unicode;

    文本編輯種類:

    行編輯器:sed

    全屏編輯器:nano, vi

2 vim基本模式

    編輯模式,命令模式

    輸入模式

    末行模式:內置的命令行接口;

2.1 模式轉換

2.1.1 編輯模式–>輸入模式

    i:insert, 在光標所在處輸入;

    a: append,在光標在處后方輸入;

    o:在光標所在處的下方打開一個新行;

    I:在光標所在行的行首輸入;

    A:在光標所在行的行尾輸入;

    O:在光標所在處的上方打開一個新行;

2.1.2 輸入模式–>編輯模式

    ESC

2.1.3 編輯模式–>末行模式

    :

2.1.3 末行模式 –> 編輯模式

    ESC

3 打開文件

    # vim [options] [file ..]

    +#:打開文件后,直接讓光標處于第#行的行首;

    +/PATTERN:打開文件后,直接讓光標處于第一個被PATTERN匹配到的行的行首;

    [root@centos6 ~]# vim +5 /etc/fstab  #打開/etc/fstab文件,讓光標處于第5行行首

    [root@centos6 ~]# vim +/UUID /etc/fstab  #打開/etc/fstab文件,讓光標處于第一個被匹配到的字符“UUID”行的行首

    [root@centos6 ~]# vim + /etc/fstab   #打開/etc/fstab文件,讓光標處于最后一行的行首

4 關閉文件:

4.1 編輯模式下

    ZZ:保存并退出;

4.2 末行模式下

    :q 退出

    :q! 強制退出,不保存此前的編輯操作

    :wq 保存并退出;

    :w, :q

    :x 保存并退出;

    :w /PATH/TO/SOMEFILE 另存為

5 光標跳轉

5.1 字符間跳轉

    h:左

    j:下

    k:上

    l:右

    #COMMAND:跳轉由#指定的個數的字符;

5.2 單詞間跳轉

    w:下一個單詞的詞首;

    e:當前或后一個單詞的詞尾;

    b:當前或前一個單詞的詞首;

    nCOMMAND:跳轉由n指定的個數的單詞;

5.3 行首行尾跳轉

    ^:跳轉至行首的第一個非空白字符;

    0:跳轉至行首;

    $:跳轉至行尾;

5.4 行間跳轉

    nG:n為數字,跳轉至這個文件的第n行;

    1G, gg:跳轉琺第一行;

    G:跳轉至最后一行;

    n+[Enter]鍵:n為數字,光標向下跳轉n行(常用)

5.5 句間跳轉:

    )

    (

5.6 段間跳轉

    }

    {

5.7 翻屏:

    Ctrl+f:向文件尾翻一屏

    Ctrl+b:向文件首部翻一屏

    Ctrl+d:向文件尾部翻半屏

    Ctrl+u:向文件首部翻半屏

    Enter:按行向后翻

6 vim的編輯命令

6.1 字符編輯

    x:刪除光標所在處一個的字符

    X:刪除光標所在處之前的一個字符

    nx:n為數字,刪除光標所在處起始的n個字符

    xp:交換光標所在處的字符與其后面字符的位置;

6.2 替換命令

    r:替換光標所在處的字符一次

    R:會一直替換光標所在處的字符,直到按下[Esc]鍵為止(常用)

6.3 刪除命令

    dd:刪除光標所在處的那一整行(常用)

    ndd:n為數字,刪除光標所在的向下n行,例如20dd則是向下刪除20行(常用)

    d$:刪除從光標所在處到該行行尾的字符

    d^:刪除從光標所在處到該行行首的字符

    dw:刪除光標所在處的這個單詞至下個單詞詞首

    de:刪除光標所在處的這個單詞

    db:刪除光標所在處前面的一個單詞

    d0:那個是數字的0,刪除從光標所在處到該行的最前面的一個字符

6.4 粘貼命令

    p:緩沖區中的內容如果為整行,則粘貼在當前光標所在行的下方;否則,則粘貼至當前光標所在處的后方;(常用)

    P:緩沖區中的內容如果為整行,則粘貼在當前光標所在行的上方;否則,則粘貼至當前光標所在處的前方;(常用)

6.5 復制命令

    yy:復制光標所在的那一行(常用)

    nyy:n為數字,復制光標所在的向下n行,例如20yy則是向下復制20行(常用)

    y1G:復制光標所在行到第一行的所有數據

    yG:復制光標所在行到最后一行的所有數據

    y0:復制光標所在的字符到該行行首的所有數據

    y0:復制光標所在的字符到該行行尾的所有數據

6.6 改變命令(chage,c)

    編輯模式 –> 輸入模式,實現刪除操作;

    cc:刪除光標所在的行,并轉換為輸入模式;

    ncc:n為數字,刪除光標所在的向下n行,并轉換為輸入模式;例如20cc則是向下刪除20行(常用)

6.7 可視化模式

    v:按字符選定;

    V:按行選定;

    結合編輯命令使用:d, c, y

6.8 撤銷(undo)操作:

    u:撤銷此前的操作;(常用)

    nu:n為數字,撤銷此前的n個操作;

    Ctrl+r:恢復此前的撤銷(常用)

    .:重復執行前一個編輯操作

    默認可以撤銷50個之前的操作

    vim自帶的練習教程:vimtutor

7 vim末行模式:

    vim末行模式是內建的命令行接口

7.1 地址定界

    :start_position[,end_position]:起始位置,結束位置

    n:特定的第#行,例如5即第5行;

    .:點號表示當前行;

    $:最后一行;

    n,n:指定行范圍,左側為起始行,右側為結束行;

    n,+n:指定行范圍,左側為超始行絕對編號,右側為相對左側行號的偏移量;例如:3,+7,從第3行開始向后+7行

    .,$-1:表示從當前行到倒數第二行

    1,$:表示從第一行到最后一行;

    %:表示全文

    /pattern/:從光標所在處起始向文件尾部第一次被模式所匹配到的行;

    例如,/first/,$:從第一次能被first匹配到的行開始到最后一行結束;

    /pat1/,/pat2/:從光標所在處起始,第一次由pat1匹配到的行開始,至第一次由pat2匹配到的行結束之間的所有行;

    可同編輯命令一同使用,實現編輯操作:

    d、y、c

    w /PATH/TO/SOMEFILE:將范圍內的文本保存至指定的文件中;

    r /PATH/FROM/SOMEFILE:將指定的文件中的文本讀取并插入至指定位置;

    范例:

    :5r /root/test.txt:將/root/test.txt文件中的5行內容添加到當前文件中。

7.2 查找

    /PATTERN:從當前光標所在處向文件尾部查找能夠被當前模式匹配到的所有字符串;

    ?PATTERN:從當前光標所在處向文件首部查找能夠被當前模式匹配到的所有字符串;

    n:這個n是英文n按鍵,繼續查找下一個,與命令方向相同;

    N:這個n是英文N按鍵,繼續查找上一個,與命令方向相反;

7.3 查找查找并替換

    s:末行模式的命令;使用格式:

    s/要查找的內容/替換為的內容/修飾符

    要查找的內容:可使用正則表達式;

    替換為的內容:不能使用下則表達式,但可以引用;

    如果“要查找的內容”部分在模式中使用分組符號:在“替換為的內容”中使用后向引用;

    直接引用查找模式匹配到的全部文本,要使用&符號;

    修飾符:

    i:忽略大小寫;

    g:全局替換,意味著一行中如果匹配到多次,則均替換;

    范例:

        :1,20s/this/THIS/ig:將1到20行的this替換為THIS,并忽略大小寫

        可把分隔符替換為其它非常用字符:s@@@、s###

    示例:

        :%s@\<t\([[:alpha:]]\+\)\>@T\1@g:表示把文件中以t開頭的單詞替換為T開頭

        :%s@\<t[[:alpha:]]\+\>@&er@g:表示把文件中以t開頭的單詞尾部都加上一個er

    練習1、復制/etc/grub2.cfg文件至/tmp目錄中,用查找替換命令刪除/tmp/grub2.cfg文件中以空白字符開頭的行的行首的空白字符;

        [root@www ~]# cp /etc/grub2.cfg /tmp/

        [root@www ~]# vim /tmp/grub2.cfg 

        :%s@^[[:space:]]\+@@

    練習2、復制/etc/rc.d/init.d/functions文件至/tmp目錄中,用查找替換命令為/tmp/functions文件的每個以空白字符開頭的行的行首加上#;

        :%s@^[[:space:]]\+[^[:space:]]@#&@g

    練習3、為/tmp/grub2.cfg文件的前三行的行首加上#號;

    練習4、將/etc/yum.repos.d/CentOS-Base.repo文件中所有的enabled=0替換為enabled=1,所有gpgcheck=0替換為gpgcheck=1;

        :%s@\(enabled\|gpgcheck\)=0@\1=1@g

8 vim的多文件功能:

8.1 多文件

    vim FILE1 FILE2 …

8.1.1 在文件間切換:

    :next  下一個

    :prev  上一個

    :first   第一個

    :last   最后一個

8.1.2 退出所有文件:

    :wqall 保存所有文件并退出;

    :wall

    :qall

8.2 多窗口

    -o:水平分割窗口

    -O:垂直分割窗口

        在窗口間切換:Ctrl+w, ARROW

        注意:單個文件也可以分割為多個窗口進行查看:

    Ctrl+w, s:水平分割窗口

    Ctrl+w, v:垂直分割窗口

9 vim的環境設置

    注意:在末行模式下的設定,僅對當前vim進程有效;

    永久有效:

        全局:/etc/vimrc

        用戶個人:~/.vimrc

    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

    獲取幫助: 

        :help 

        :help subject

課外作業:如何設置tab鍵縮進4個字符;

vim /etc/vimrc 
set ts=4
set expandtab
set autoindent

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

(0)
zhuckeezhuckee
上一篇 2016-12-05
下一篇 2016-12-05

相關推薦

  • 筆記二、如何在VMWare WorkStations安裝CentOS6.8

    一、準備工作     1.安裝VMWare WorkStatrion     2.準備好CentOS 6.8 鏡像包     http://www.centoscn.com/CentosSoft/iso/    CenO…

    Linux干貨 2017-02-14
  • linux進程管理及計劃任務

    進程管理: 什么是進程?   在Linux系統當中:觸法任何一個事件時,系統都會將它定義成為一個進程,并且給予這個進程一個ID,稱為PID,同時依據觸發這個進程的用戶與相關屬性關系,給予這個PID一組有效的權限設置。 進程與程序: 程序(program):通常為二進制程序放置在存儲媒介中,以物理文件的形式存在。 進程(process):程序被觸發后…

    Linux干貨 2016-09-13
  • shell腳本之 select 循環菜單及 函數

    select 循環與菜單 select variable in list    do      循環體命令   done select 循環主要用于創建菜單,按數字順序排列的菜單項將顯示在標準錯誤上,并顯示PS3 提示符,等待用戶輸入 用戶輸入菜單列表中的某個數字,執行相應的命令…

    Linux干貨 2016-08-22
  • CentOS下搭建LAMP

    實驗:centos7.3實現lamp應用wordpress環境 host1 httpd,php? host2 mariadb1 yum install httpd php php-mysqlyum install mariadb-serversystemctl start httpdsystemctl start mariadb 2 創建數據庫及用戶mysq…

    2017-10-16
  • 沉舟側畔千帆進,枯木頭前萬樹春

    N21第五周博客作業 1、  顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行; ~]#  grep -E "^[[:space:]]+" //boot/grub/grub.conf root (hd0,0) kernel /vmlin…

    Linux干貨 2016-07-29
  • 第一天上課

                      2016.10.11 第一天上課 上課環境安排 電腦IP安排 學生IP地址安排     上課軟件安裝    虛擬機安裝 操作系統發展史    第一代計算機:電子管計算機&nb…

    Linux干貨 2016-10-18
欧美性久久久久