N25-第6周博客作業

N25-第6周博客作業

vim:
    模式化的編輯器
        基本模式:
            編輯模式,命令模式,
            輸入模式
            末行模式:
                內置的命令行借口;
打開文件:
    編輯模式:默認模式
        編輯模式-->輸入模式:
            i:insert,在光標所在處輸入;
            a:append,在光標所在處后方輸入;
            o:在光標所在處的下方打開一個新行;
            I:子啊光標所在行的行首輸入;
            A:在光標所在行的行尾輸入;
            O:在光標所在處的上方打開一個新行;
        輸入模式-->編輯模式
            ESC
        編輯模式-->末行模式
            :
        末行模式-->編輯模式
            ESC                                 
關閉文件:
    ZZ:保存并提出;
    :q 退出
    :q! 強制退出,不保存此前的編輯操作
    :wq 保存并退出;
    :w /PATH/TO/SOMEFILE 另存為
光標跳轉:
    字符間跳轉
        h:左
        j:下
        k:上
        l:右
        #COMMAND:跳轉由#指定的個數的字符;
    單詞間跳轉
        w:下一個單詞的詞首;
        e:當前或后一個單詞的詞尾;
        b:當前或前一個單詞的詞首;
        #COMMAND:跳轉由#指定的個數的單詞;
    行首行尾跳轉
        ^:跳轉至行首的第一個非空白字符;
        0:跳轉至行首;
        $:跳轉至行尾;
    行間跳轉
        #G:跳轉至#指定的行;
        1G,gg:第一行;
        G:最后一行;
    句間跳轉
        ) 下一句
        ( 上一句
        #):跳轉后#句
        #(:跳轉前#句
    段間跳轉
        } 上一段
        { 下一段
        #}:跳轉后#段            
        #{:跳轉前#段
翻屏:
    Ctrl+f:向文件尾部翻一屏
    Ctrl+b:向文件首部翻一屏
    Ctrl+d:向文件尾部翻半屏
    Ctrl+u:向文件首部翻半屏
    Enter:按行向后翻
vim的編輯命令:
字符編輯
    x:刪除光標所在處的字符;
    #x:刪除光標所在處起始的#個字符;
    xp:交換光標所在處的字符與其后面的字符的位置;
替換命令(replace):
    r:替換光標所在處的字符;
        rCHAR
刪除命令:
    d:刪除命令,可結合光標跳轉字符,實現范圍刪除;
        d$:
        d^:
        dw:
        de:
        db:
            #COMMAND:
        dd:刪除光標所在處的行;
            #dd:刪除光標所處的行起始的共#行;
粘貼命令(p,put。paste):
    p:緩沖區的內容如果為整行,則粘貼在當前光標所在行的下方;否則粘貼至當前光標所在處的后方;
    P:緩沖區的內容如果為整行,則粘貼在當前光標所在行的上方;否則粘貼至當前光標所在處的前方;
復制命令(yank,y):
    y:復制,工作行為相似于d命令
        y$
        y^
        y0
        ye
        yw
        yb
            #COMMAND
        yy:復制一整行
            #yy:復制#行
改變命令(change,c):修改
    編輯模式-->輸入模式 ,實現刪除操作;
        c$
        c^
        c0
        cb
        ce
        cw
            #COMMAND
        cc:刪除光標所在的行,并轉換為輸入模式;
            #cc:
其他的編輯操作:
可視化模式:選定(向鼠標一樣選定)
v:按字符選定;
V:按行選定;
結合編輯命令:d,c,y                        
撤銷(undo)操作:
    u:撤銷此前的操作;
        #u:撤銷此前的#個操作;
撤銷此前的撤銷:
    Ctrl+r  
重復執行前一個編輯操作;
    .   
vim自帶的練習教程:vimtutor
vim末行模式: 內建命令行接口
1.地址界定
    :start_pos[,end_pos]
        #:特定的第#行,例如5即di5行;
        .:當前行;
        $:最后一行;
        #,#:指定行范圍,左側為起始行,右側為結束行;
        #,+#:指定范圍,左側為起始絕對編號,右側為相對左側行號的偏移量;例如:3,+7
            .,$-1
            1,$
        %:全文
        /pattern/:從光標所在處起始向文件尾部第一次被模式所匹配到的行;
            /first/,$
        /pat1/,/pat2/:從光標所在處起始,第一次由pat1匹配到的行開始,至第一次由pat2匹配到的行結束之間的所有行;
    可同編輯命令一同使用,實現編輯操作:
        d
        y
        c
        w /PATH/TO/SOMEFILE:將范圍內的文本保存至指定的文件中;
        r /PATH/FROM/SOMEFILE:將指定的文件中的文本讀取并插入至指定位置;
2.查找
    /PATTERN:從當前光標所在處向文件尾部查找能夠被當前模式匹配到的所有字符串;
    ?/PATTERN:從當前光標所在處向文件首部查找能夠被當前模式匹配到的所有字符串;          
        n:下一個,與命令方向相同;
        N:上一個,與命令方向相反;
3.查找并替換
    s:末行模式的命令;使用格式:
        s/要查找的內容/替換為的內容/修飾符
            要查找的內容:可使用正則表達式;
            替換為的內容:不能使用正則表達式,但可以引用;
                如果“要查找的內容”部分在模式中使用分組符號:在“替換為的內容”中使用后向引用;
                直接引用查找模式匹配到的全部文本;
            修飾符:
                i:忽略大小寫;
                g:全局替換,意味著一行中如果匹配到多次,則均替換;
        可把分隔符替換為其他非常用字符:
            s@@@
            s###

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

:%s/^[[:space:]]\{1,\}.*/#&/g

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

:%s/^[[:space:]]\{1,\}//g

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

:%s/^#[[:space:]]\{1,\}//g

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

:1,3s/^/#&/

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

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

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

0 */4 * * * /usr/bin/cp -r /etc/   /backup/etc-`date +%Y%m%d%H%M%S`/  >dev/null 2>&1

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

0 0 * * 2,4,6 /usr/bin/cp -r /var/log/messages  /backup/messages_logs/messages-`date +%Y%m%d`  >/dev/null  2>&1

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

0 */2 * * * /usr/bin/grep '^S' /proc/meminfo  >> /stats/memory.txt  >/dev/null  2>&1

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

0 9-18/2 * * echo "howdy" 2>&1

腳本編程練習

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

#!/bin/bash
#
DATE=`date +%Y%m%d%H%M%S`
if [ -d /tmp/testdir-$DATE ];then
echo "testdir-$DATE is exist!"
exit 2
else
mkdir /tmp/testdir-$DATE
if [ -d /tmp/testdir-$DATE ];then
echo "create testdir-$DATE success!"
else
echo "create failure testdir-$DATE!"
fi
fi

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

#!/bin/bash
#
for i in {1..100};do
if [ -e /tmp/file$i ];then
echo "/tmp/file$i exist"
else
touch /tmp/file$i
fi
done

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

#!/bin/bash
#
FILE=/etc/passwd
SUM=`wc -l $FILE|cut -d' ' -f1`、
for i in $(seq 2 2 $SUM);do
NAME=`head -n$i $FILE|tail -1|cut -d: -f1`
echo "$NAME   "
done

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

#!/bin/bash
#
for i in {10..19};do
if id user$i &>/dev/null;then
echo "user$i exist,adduser failure"
else
useradd user$i
echo "user$i"|passwd --stdin user$i >/dev/null
echo "user$i add success"
fi
done

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

#!/bin/bash
#
for ((i=10;i<=19;i++));do
if [ -e /tmp/file$i ];then
echo "/tmp/file$i exist"
else
touch /tmp/file$i
fi
done

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

#!/bin/bash
#
for ((i=10;i<=19;i++));do
chown user$i:user$i /tmp/file$i
done

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

(0)
oranixoranix
上一篇 2017-01-09 16:31
下一篇 2017-01-09 22:23

相關推薦

  • Linux主要發行版

    Redhat:三大發行版之一,由紅帽公司維護,分支有fedora,centosDebian:社區維護,非商業維護,三大發行版之一,分支有Ubuntu,Mintslackware:三大發行版之一,分支有Suse,opensusearch Linux:輕量級行業新貴

    Linux干貨 2018-03-03
  • 178linux博客寫作技巧

    為什么要寫博客 為什么要寫在178linux上 如何注冊178linux 178linux的文章提審規則 178linux寫文章的技巧 markdown 語法 為什么要寫博客 寫博客的好處不言而喻,也不做過多解釋,眼過千遍不如手過一遍。知識的吸收需要很長的過程,這個過程越艱難越我們對知識的吸收程度也越好。對于找工作也有好處,側面是自己工作能力的證明,大量學員…

    Linux干貨 2016-09-06
  • 過濾語句和復制,權限的一些事例

    1.復制/etc/skel 目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限 ~]# cp -r /etc/skel/ /home/tuser1/ ~]# chmod go= /home/tuser1/ 2.編輯/etc/group文件,添加組hadoop ~]# echo "hadoop:…

    Linux干貨 2016-10-14
  • linux進程及作業管理

    linux進程及作業管理 cpu指令權限等級: 特權級也叫hierarchical protection domains, 有的也叫用戶態. 是一種用來保護數據和阻止惡意行為的機制. 電腦操作系統提供不同權限訪問級別的資源. 特權級分為四級, 特權級0,1,2,3. 在windows中只使用特權級0和特權級3, 特權最高的是特權級0, 可以直接操作硬件, 如…

    Linux干貨 2016-09-19
  • N25-第二周作業

    第二周作業 1.Linux上的文件管理命令都有哪些,其常用的使用方法及相關示例演示。 Linux上的文件管理命令有:cp , mv , rm 等命令 cp是復制命令: 命令使用格式是: cp [OPTION]… SOURCE… DEST 例:root@vps ~]# cp /etc/passwd /tmp 復制…

    Linux干貨 2016-12-14
  • 簡述計算機網絡數據鏈路層

    數據鏈路層    數據鏈路層是什么?      數據鏈路層工作在七層網絡模型的第二層,它定義了在單個鏈路上如何傳輸數據。 數據鏈路層:是為了提供功能上和規程上的方法,以便建立、維護和釋放網絡實體間的數據鏈路 。 物理鏈路(物理線路):是由傳輸介質與設備組成的。原始的物理傳輸線路是指沒有采用高層差錯控…

    Linux干貨 2017-05-15
欧美性久久久久