linux基礎學習-第八天

2016-08-08

授課內容:

處理文本的工具sed

vim編輯器

Shell腳本編程基礎介紹

sed:sed是一種流編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”(pattern space),

    接著用sed命令處理緩沖區中的內容,處理完成后,把緩沖區的內容送往屏幕。默認不編輯原文件,僅對模式空間的文件副本進行處理

sed [option] ‘addresscommand‘ file….

-n:靜默模式(不輸出模式空間內容的自動打印)

-r:支持擴展正則表達式

-i:原文編輯

-e:多點編輯

‘addresscommand‘:

address:

#:第幾行

n,m:第n到第m行

n,$:第n行到最后一行

/pattern/:被此處模式所能夠匹配到的每一行(正則表達式)

command:

d:刪除 

p:打印顯示

a \text:在行后面追加文本;支持使用\n實現多行追加

i \text:在行前面追加文本,同樣支持使用\n實現多行追加 

s///:查找替換,支持使用其它分隔符,s@@@,s###

替換標記:

g: 行內全局替換

p: 顯示替換成功的行

w /PATH/TO/SOMEFILE:將替換成功的行保存至文件中

vim編輯器:

visual edit improved

vim [OPTION]… FILE…

+:打開文件時定位在最尾一行

+#:打開文件時定位在第#行內

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

–d file1 file2… 比較多個文件

vim編輯多個文件

vim FILE1 FILE2 FILE3

:next 切換至下一個文件

:prev 切換至前一個文件

:last 切換至最后一個文件

:first 切換至第一個文件

vim的模式:

命令模式(command mode):打開文件時的默認模式

編輯模式(edit mode):輸入i,I,a,A,o,O時進入的文本編輯模式

擴展命令模式(extended command mode):輸入:時的模式

命令模式–>編輯模式:

I:在當前光標所在的行首輸入

i:在當前光標所在處輸入

A:在光標所在行的行尾處

a:在光標后面處輸入

O:在光標的上一行開始處

o: 在光標的下一行開始處

插入模式—-> 命令模式

ESC

?命令模式—-> 擴展模式

:

?擴展模式—-> 命令模式

ESC

關閉文件:

擴展命令模式下

:q  沒有更改文件時退出

:wq 保存退出

:q! 強制不保存退出

:wq! 強制保存退出

命令模式:

ZZ:保存退出

ZQ:不保存退出

命令模式下的光標跳轉:

  字符間跳轉:

h: 左l: 右j: 下k: 上

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

  單詞間跳轉:

w:下一個單詞的詞首

e:當前或下一單詞的詞尾

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

#COMMAND:由#指定一次跳轉的單詞數

  當前頁跳轉:

H:頁首M:頁中間行L:頁底

  行首行尾跳轉:

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

0: 跳轉至行首

$: 跳轉至行尾

  行間移動:

#G、擴展模式:# :跳轉至由#指定行

G:最后一行

1G, gg: 第一行

  句間移動:

):下一句(:上一句

?段落間移動:

}:下一段{:上一段

命令模式操作

  字符編輯:

x: 刪除光標處的字符;

#x: 刪除光標處起始的#個字符

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

~:轉換大小寫

  刪除命令:

d: 刪除命令,可結合光標跳轉字符,實現范圍刪除;

dd:刪除整行

#dd:shanchu#行 

d$: 刪除到行尾

d^:刪除到非空行首

d0:刪除到行首

  復制命令(y, yank):

y: 復制,行為相似于d命令

yy:復制整行

y$

y0

y^

  粘貼命令(p, paste):

p:緩沖區存的如果為整行,則粘貼當前光標所在行的下方;否則,則粘貼至當前光標所在處的后面

P:緩沖區存的如果為整行,則粘貼當前光標所在行的上方;否則,則粘貼至當前光標所在處的前面

擴展模式:查找

/PATTERN:從當前光標所在處向文件尾部查找

?PATTERN:從當前光標所在處向文件首部查找

n:與命令同方向

N:與命令反方向

s: 在擴展模式下完成查找替換操作

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

地址定界:

#: 具體第#行,例如2表示第2行;

#,#: 從左側#表示行起始,到右側#表示行結尾

#,+#: 從左側#表示的行起始,加上右側#表示的行數

:2,+3 表示2到5行

.: 當前行

$: 最后一行

.,$-1 當前行到倒數第二行

%:全文, 相當于1,$

命令模式:撤消更改

u撤銷最近的更改

. 重復前一個操作

使用多個窗口瀏覽

  多文件:

vim -o|-O FILE1 FILE2 …

-o: 水平分割

-O: 垂直分割

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

  單文件:

Ctrl+w,s: split, 水平分割

Ctrl+w,v: vertical, 垂直分割

ctrl+w,q:取消相鄰窗口

ctrl+w,o:取消全部窗口

:wqall退出

shell腳本基礎:

shell腳本是包含一些命令或聲明,并符合一定格式的文本文件

?格式要求:首行shebang機制

#!/bin/bash

創建shell腳本的規范:

shell腳本的開頭最好寫上作者、日期、描述等基本信息,一方面可以方便別人閱讀,另一方面也方便自己回顧

#!/bin/bash
#author: 
#Version: 1.0
#Description:This script displays some information about your environment

創建腳本步驟:

第一步:使用文本編輯器來創建文本文件

?第一行必須包括shell聲明序列:#!

#!/bin/bash

?添加注釋

注釋以#開頭

?第二步:運行腳本

?給予執行權限,在命令行上指定腳本的絕對或相對路徑

?直接運行解釋器,將腳本作為解釋器程序的參數運行

#!/bin/bash
#created by:
#date:2016-08-09
#ver:1.0
#DES:test script
echo `date`
echo `cal 08 2016`

[root@Centos7 ~]# sh first.sh 
Tue Aug 9 09:03:38 CST 2016
August 2016 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

原創文章,作者:麥德良,如若轉載,請注明出處:http://www.www58058.com/31997

(0)
麥德良麥德良
上一篇 2016-08-10
下一篇 2016-08-10

相關推薦

  • 使用iptables緩解DDOS及CC攻擊

    緩解DDOS攻擊 防止SYN攻擊,輕量級預防 iptables -N syn-flood iptables -A INPUT -p tcp –syn -j syn-flood iptables -I syn-flood -p tcp -m limit –limit 3/s –limit-burst 6 -j RETURN iptables -A syn-fl…

    Linux干貨 2015-02-09
  • Linux腳本基礎練習

    馬哥教育網絡班+ 第7周課堂練習 Linux腳本基礎練習 練習: 1、創建一個10G分區,并格式為ext4文件系統; (1)要求其block大小為2048,預留空間百分比為2,卷標為MYDATA,默認掛載屬性包含acl (2)掛載至/data/mydata目錄 要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳 第一步,在虛擬機中掛載一塊20G的新硬盤 &…

    Linux干貨 2016-11-09
  • Linux發行版及哲學思想

    Linux各發行版以及哲學思想 什么是Linux 為什么會有不同的Linux發行版 現有主流發行版,及其他們之間相互關系 Linux所遵循的哲學思想 什么是Linux Linux是一種自由和開放源代碼的Unix-like操作系統,由當時就讀于芬蘭赫爾辛基大學的Linus Torvalds于1991年10月5日首次發布于互聯網。Linux遵循第二版GNU通用公…

    Linux干貨 2016-10-29
  • 用戶和組命令及相關配置文件總結

    用戶和組相關的配置文件 目錄 一、創建用戶、組和權限相關命令… 1 1、useradd 帳號建立… 1 2、usermod 用戶屬性更改… 2 3、Passwd. 2 4、userdel 2 6、chfn. 3 7、Chsh. 3 8、finger. 3 9、groupadd. 3 10、Groupdel 3 11、gro…

    Linux干貨 2016-10-24
  • 馬哥教育網絡班20期+第二周課程練習

    1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。 文件管理有 cp, mv, rm  復制命令:cp [root@ddwhost ~]# cp /etc/magic /tmp/         cp&n…

    Linux干貨 2016-06-23
  • 馬哥教育網絡班21期-第六周課程練習

    請詳細總結vim編輯器的使用并完成以下練習題 1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#; 2、復制/boot/grub/grub.conf至/tmp目錄中,刪除/tmp/grub.conf文件中的行首的空白字符; 3、刪除/tmp/rc.sysinit文件…

    Linux干貨 2016-08-05
欧美性久久久久