Linux基礎知識—Vim編輯器/crond周期性任務計劃

vim文本編輯

vim是vi文本編輯的增強版本,因其編輯功能強大、且支持各種語言開發環境關鍵字自動增亮功能,也可稱為是開發工具。在Centos7/RHEL7開始,默認將vi定義成vim –color=auto,已經取代了vi的地位。下面總結下關于vim工具的使用

vim有三種模式,每個模式下有其特定的功能;我們可自由在三者之間切換使用:

COMMAND MODE:vim的默認模式(初始模式)

          可以使用方向鍵來移動光標、可以刪除字符或者整行刪除、可以復制粘貼等操作

INSERT MODE:vim的編輯模式

          當你按下【a,i,o,A,I,O,R,r】便可從初始的命令模式進入編輯模式,再按下【esc】按鍵時,便可從輸入模式轉換到命令模式

COMMAND-LINE MODE:末行模式

          可通過【: / ?】三個符合從命令模式進入末行編輯模式,此模式下可查詢、替換、讀取其他文件、存盤、退出、界面設置等操作;功能十分強大

Linux基礎知識---Vim編輯器/crond周期性任務計劃

vim相關命令
zz

       類似于:wq 保存退出

光標跳轉

w:下一個詞首
e:下一個詞尾
b:當前或者前一個詞首

行首行尾跳轉

^:跳轉至行首第一個非空白字符
0:跳轉至行首
$:跳轉至行尾

行間跳轉

nG:跳轉至第n行
1G、gg:跳轉至第一行行首
G:跳轉至末行行首

句間跳轉

(:上一句
):下一句

段間跳轉

{:上一段
}:下一段

翻屏

ctrl+f:向文件尾部翻一頁
ctrl+b:向文件首部翻一頁
ctrl+d:向文件尾部翻半頁
ctrl+u:向文件首部翻半頁

編輯命令

x:刪除光標所在位置字符
nyy:復制光標所在往下n行
p:粘貼復制的內容
d:刪除命令,可結合光標跳轉字符,實現范圍刪除
dd:刪除光標所在行
ndd:光標所在行往下n行刪除
u:undo,即撤銷操作的意思,可緩存50條記錄
ctrl+r:撤銷之前的撤銷操作

光標位置定界

:start_pos[,end_pos]    
n:  特定的第n行
.:  表示當前行,可+可-
$:  表示最后一行
%:  表示全部內容
m,n:    表示從m行到n行
m,+n:   表示從m行開始的n行內

查找、替換

s/要查找的內容/要替換的內容/修飾符
其中:要查找的內容可使用正則表達式
         要替換的內容不能使用正則表達式,但是可以引用
         修飾符:i  忽略大小寫
                g   全局替換
:%s/匹配字符/替換字符/g

平時在寫程序時經常會遇到大小寫轉換的問題,vim中提供了很多非常方便的大小寫轉換命令,可以快速的進行字母、單詞、任意行的大小寫轉換,可以和vim的光標移動指令組合使用。

~ 將光標下的字母改變大小寫

3~ 將光標位置開始的3個字母改變其大小寫

g~~ 改變當前行字母的大小寫

U 將可視模式下選擇的字母全改成大寫字母

u 將可視模式下選擇的字母全改成小寫

gUU 將當前行的字母改成大寫

3gUU 將從光標開始到下面3行字母改成大寫

guu 將當前行的字母全改成小寫

gUw 將光標下的單詞改成大寫。

guw 將光標下的單詞改成小寫。

更多技巧可以查看文檔

任務計劃

bash shell極大的方便了系統管理員的工作,可是有些工作呢不是任何時候都可以人為操作的,根據工作需要,往往有很多工作需要定時定點的去執行;因此Linux為了方便系統管理工作,加入了周期性任務計劃管理,Linux下的任務調度分為兩類,系統任務調度和用戶任務調度。:

crontab用戶任務調度

maintains crontab files for individual users這里是一個命令,/usr/bin/crontab;所有的用戶crontab文件保存的地方在/var/spool/cron/$USERNAME,/etc/cron.allow或者/etc/cron.deny可限制哪些用戶可以使用crontab哪些用戶不可以使用crontab,cron.allow優先級比cron.deny高,只需要將用戶名編輯入其中一個即可
【SYNOPIS】
    crontab [-u user] file
       crontab [-u user] [-l | -r | -e] [-i] [-s]
       crontab -n [ hostname ]
       crontab -c
【OPTIONS】
    -u  --user  指定用戶crontab任務
    -l  列出任務計劃
    -r  刪除可用的任務計劃
    -e  編輯任務計劃,類似vi,編輯文件后:wq保存即可
    -i  與-r同用,交互式刪除任務計劃
    -n  --host  指定用戶執行任務計劃

其格式如下:
        # For details see man 4 crontabs
        # Example of job definition:
        # .---------------- minute (0 - 59)
        # |  .------------- hour (0 - 23)
        # |  |   .---------- day of month (1 - 31)
        # |  |   |   .------- month (1 - 12) OR jan,feb,mar,apr ...
        # |  |   |   |     .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
        # |  |   |   |    |
        # *  *   *   *    *      command to be executed 
在以上各個字段中,還可以使用以下特殊字符:
星號(*):代表所有可能的值,例如month字段如果是星號,則表示在滿足其它字段的制約條件后每月都執行該命令操作。   
逗號(,):可以用逗號隔開的值指定一個列表范圍,例如,“1,2,5,7,8,9”    
中杠(-):可以用整數之間的中杠表示一個整數范圍,例如“2-6”表示“2,3,4,5,6”   
正斜線(/):可以用正斜線指定時間的間隔頻率,例如“0-23/2”表示每兩小時執行一次。同時正斜線可以和星號一起使用,例如*/10,如果用在minute字段,表示每十分鐘執行一次。

/etc/crontab

這是系統級別的任務計劃管理文檔,可通過直接編輯/etc/crontab文件實現,其格式跟用戶crontab編輯格式一樣;該進程默認啟動;
服務狀態:#service crond status 或者 systemctl status crond.service
啟動服務:#service crond start 或者 systemctl start crond.service
停止服務:#service crond stop 或者 systemctl stop crond.service

vim練習總結:

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

:%s/^[[:blank:]]\+.*/\0#/g

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

:%s/^[[:space:]]\+//g

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

:%s/^#[[:blank:]]\+//g

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

:1,3s/^/\0#/g

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

* */4 * * * /usr/bin/cp /etc /backup/etc-$(date +%Y%m%d%h%M)/

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

* * * * 2,4,6   /usr/bin/cp /var/log/messages /backupmessages_logs/messages-$(date +%Y%m%d)

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

* */2 * * * /usr/bin/grep -E "S.*" /proc/meminfo>>/stats/memory.txt

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

* 9-18/2 * * 1-5        /usr/bin/echo "howdy"

腳本編程練習

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

    #!/bin/bash
    if [ -d /tmp/testdir-$(date +%Y%m%d) ]
              then
             echo "the dirctory is exist!"
    else
             mkdir -p /tmp/testdir-$(date +%Y%m%d) &&echo "create the dirctory successful!" 
    fi

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

#!/bin/bash
    for ((i = 1; i<=100; i++))
do
        touch /tmp/files/file$i;
done
echo "create 100 files successful!"

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

#!/bin/bash

i=0
for username in `cat /etc/passwd|cut -d: -f1`
do
        i=$(($i+1))
        [ $((i%2)) -eq 0 ] && echo $username;
done

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

#!/bin/bash
for (( i=10;i<20;i++ ))
    do
    id user$i>/dev/null 2>&1;
    if [ $? == 0 ];then
            echo "the user$i is exist!"
    else
            useradd user$i && echo "user$i"|passwd --stdin user$i>>/dev/null 2>&1;
            echo "create user$i successful!"
    fi

done

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

#!/bin/bash
#   
for (( i=10; i<20; i++ ))
    do
        if [ -f /tmp/file$i ];then
           echo "the file$i is exist."
        else
           touch /tmp/file$i && echo "create file$i successful!"
        fi
done

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

(0)
396064847396064847
上一篇 2016-10-31
下一篇 2016-11-01

相關推薦

  • Linux系統結構 詳解

    Linux系統一般有4個主要部分: 內核、shell、文件系統和應用程序。內核、shell和文件系統一起形成了基本的操作系統結構,它們使得用戶可以運行程序、管理文件并使用系統。部分層次結構如圖1-1所示。  1. linux內核         內核是操作系統的核心,具有很多最基本功能,它負責管理系…

    Linux干貨 2015-04-13
  • 系統自動化安裝

    系統自動化安裝:實現同時部署多臺操作系統,批量進行安裝linux系統 CentOS系統安裝     系統啟動流程:       bootloader–>kernel(initaramfs)–>rootfs–>/sbi…

    Linux干貨 2016-09-22
  • linux基礎知識

    馮*諾依曼體系 摩爾定律

    2018-03-26
  • Nginx負載均衡

    基于Nginx的負載均衡以及高可用簡單應用 一、負載均衡配置 1、Nginx負載均衡配置 前面配置好的Nginx,可以訪問之后,克隆4臺,統一配置為512M,因為我的電腦內存是4G的。一臺用來訪問,一臺用來做調度器(Director),兩臺web服務器(real server),Nginx前面已經介紹過了,故在此簡單介紹一下那臺Director的配置。 2、…

    Linux干貨 2016-12-29
  • LVS(Linux Virtual Server)學習筆記

    LVS(Linux Virtual Server)學習筆記 此文主要對lvs負載均衡學習的總結,一為記錄,二為鞏固。主要介紹:1、lvs基礎;2、lvs的配置;3、lvs的實現 前提:負載均衡(LB Cluster)     負載均衡實現方法有兩種:硬件實現和軟件實現;    &…

    Linux干貨 2017-02-13
  • Linux boot分區意外格式化或清除之后…

    boot分區在沒有備份的情況下意外被清空,包括啟動引導信息也沒了。這時若Linux還在運行,那你是幸運的, 修復的方法: 1. cat  /etc/*release      #趕快先確定當前系統的具體版本。有ISO鏡像趕快掛載上來.   &nbsp…

    Linux干貨 2016-03-22

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-11-01 22:54

    完成的非常好,6、8、9題需要精確到分鐘,7題需要精確到分鐘、小時哈,加油!

欧美性久久久久