Linux第三周

一.正則表達式和擴展正則表達式

1.首先有各種工具來對文本進行的查看,分析,統計

  cat 命令:查看文本的工具

Linux第三周

   cat主要有三大功能:
1.一次顯示整個文件。$ cat filename
2.從鍵盤創建一個文件。$ cat > filename  
   只能創建新文件,不能編輯已有文件.
3.將幾個文件合并為一個文件: $cat file1 file2 > file
參數:
-n  由 1 開始對所有輸出的行數編號
-b  和 -n 相似,只不過對于空白行不編號
-s  當遇到有連續兩行以上的空白行,就代換為一行的空白行
例:
把 textfile1 的檔案內容加上行號后輸入 textfile2 這個檔案里
cat -n textfile1 > textfile2

2.cut  抽取文件 

   cut -d(指明分隔符,默認是:)

如顯示文件的情況:例cut  -d: –f1 /etc/passwd  抽取第一行的

Linux第三周

3.其次有 head tail 行前 行后的提取  文本的整理wl  數據的排序sort距離可以說明

   3.1、找出ifconfig “網卡名” 命令結果中本機的IPv4地址

centos7
ifconfig ens33|head -n2|tail -n1 |tr -s ‘ ‘|cut -d” ” -f3
centos6
ifconfig eth0|head -n2 |tail -n1|tr -s ” ” : |cut -d: -f4
ifconfig eth0|head -n2 |tail -n1|cut -d: -f2|cut -d” ” -f1
ifconfig eth0|head -2 |tail -1|cut -d: -f2|cut -d”B” -f1 

    3.2查出分區空間使用率的最大百分比值

df |tr -s ” ” %|cut -d% -f5|sort -nr|head -n1
df -i |tr -s ” ” %|cut -d% -f5|sort -nr|head -n1
    3.3、查出用戶UID最大值的用戶名、UID及shell類型
sort -t: -k3 -n /etc/passwd|tail -n1|cut -d: -f1,3,7

4 Linux 文本處理三劍客  grep awk sed  本次介紹的重點就是grep

grep 文本搜索工具,根據用戶的要求對文本進行處理。

 模式:有正則表達式來進行過濾處理

grep root /etc/passwd

 grep “$USER” /etc/passwd

 grep ‘$USER’ /etc/passwd

 grep
`whoami` /etc/passwd

grep的命令有很多:

   -v: 顯示不被pattern匹配到的行 

 -i: 忽略字符大小寫 

 -n:顯示匹配的行號

  -c: 統計匹配的行數 

 -o: 僅顯示匹配到的字符串 

 -q: 靜默模式,不輸出任何信息 

 -A #: after, 后#行 

 -B #: before, 前#行 

 -C #:context, 前后各#行 

 -e:實現多個選項間的邏輯or關系
grep
–e ‘cat ’
-e ‘dog’ file 

 –
w:匹配整個單詞 

 –
E:使用ERE 

 –
F:相當于fgrep,不支持正則表達式

5 正則表達式和擴展正則表達式

其中:正則表達式

元字符分類:字符匹配、匹配次數、位置錨定、分組 

5.1 字符匹配

. 匹配任意單個字符

 [] 匹配指定范圍內的任意單個字符

 [^] 匹配指定范圍外的任意單個字符

 [:alnum:] 字母和數字

 [:alpha:] 代表任何英文大小寫字符,亦即 A-Z, a-z
[:lower:] 小寫字母

 [:upper:] 大寫字母

 [:blank:] 空白字符(空格和制表符)

 [:space:] 水平和垂直的空白字符(比[:blank:]包含的范圍廣)

 [:cntrl:] 不可打印的控制字符(退格、刪除、警鈴…)

 [:digit:] 十進制數字 [:xdigit:]十六進制數字
[:graph:] 可打印的非空白字符

 [:print:] 可打印字符

 [:punct:] 標點符號

 5.2 匹配次數

  * 匹配前面的字符任意次,包括0次
貪婪模式:盡可能長的匹配
.

* 任意長度的任意字符

 \? 匹配其前面的字符0或1次

 \+ 匹配其前面的字符至少1次

 \{n\} 匹配前面的字符n次

 \{m,n\} 匹配前面的字符至少m次,至多n次

 \{,n\} 匹配前面的字符至多n次

 \{n,\} 匹配前面的字符至少n次

5.3 位置錨定

   位置錨定:定位出現的位置
^ 行首錨定,用于模式的最左側
$ 行尾錨定,用于模式的最右側
^PATTERN$ 用于模式匹配整行

 ^$ 空行 

^[[:space:]]*$ 空白行

 \< 或 \b 詞首錨定,用于單詞模式的左側

 \> 或 \b 詞尾錨定;用于單詞模式的右側
\
匹配整個單詞

例如:

 1  顯示/proc/meminfo文件中以大小s開頭的行(要求:使用兩
種方法) 

grep  “^\(s\|S\)”  /proc/meminfo
grep ^[sS] /proc/meminfo

 2、顯示/etc/passwd文件中不以/bin/bash結尾的行 

grep -v “/bin/bash$” /etc/passwd

 3、顯示用戶rpc默認的shell程序 

grep “^rpc\>” /etc/passwd |cut -d: -f1,7 

  4、找出/etc/passwd中的兩位或三位數

grep -o “\<[0-9]\{2,3\}\>” /etc/passwd

擴展正則表達式是對正則表達式的一個改進,升級

如:

  5 統計last命令中以root登錄的每個主機IP地址登錄次數

   last | grep “root” | egrep -o “([0-9]|[0-9]{2}|[0-9]{3})(\.([0-9]|[0-9]{2}|[0-9]{3})
    ){3}”|sort|uniq -c  

 6、利用擴展正則表達式分別表示0-9、10-99、100-199、
200-249、250-255 

[0-9]
[1-9][0-9]
1[0-9]{2}
2[0-4][0-9]
25[0-5]

 7、顯示ifconfig命令結果中所有IPv4地址

ifconfig |egrep -o “\<(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\>” 

二vim 編輯器 shell 腳本編程

打開文本編輯器(可以使用 vi/vim 命令來創建文件)

新建一個3文件hello。sh 是擴展名 表明你用的shell(其中的sh是shell)

首先開頭 #!是向解釋器傳達信息

然后echo 向窗體輸送文本

一個簡單的腳本:

第一 :創建文件 vim hello.sh

第二:按 i 建進入內容編輯模式

第三:#!/bin/bash

echo———–

echo———–

保存退出 :wq

給權限:chmod +x hello.sh

最后調試腳本  bash hello.sh 或者

./hello.sh

  

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

(0)
gd1479gd1479
上一篇 2017-06-04
下一篇 2017-06-04

相關推薦

  • centos 7.2 安裝pyenv多版本管理工具和虛擬環境pyenv-virtualenv

    軟件簡介: pyenv + pyenv-virtualenv pyenv,是一款特別好用的Python版本管理器,程序員可以建立不同的目錄,在不同的目錄里分別運行不同版本的Python, 并且互不影響,安裝的包也互不影響。github項目地址:https://github.com/yyuu/pyenv pyenv-virtualenv, 是pyenv的一個p…

    Linux干貨 2016-07-04
  • Linux之網絡管理

    Linux之網絡管理     在學習linux的過程中,Linux網絡的管理和配置中是很重要的,幾乎學習的后期都離不開網絡的概念和配置,如集群中的使用,學習好Linux網絡至關重要。     Linux網絡IP地址有兩種配置方式:靜態指定和動態分配 動態分配就是利用DHCP服務器,動態的給linux主機分配IP地址。靜…

    Linux干貨 2016-09-05
  • keepalived的原理及安裝應用

    keepalived的主從模式,keepalived的日志功能和主主模式

    2018-03-13
  • Linux基礎

    計算機組成和功能 按照Von Neumann的理解 [1],計算機分為以下幾部分:     輸入 (Input Device, 用于提供給計算機待處理的數據)         e.g. 鍵盤,…    &nbs…

    Linux干貨 2016-09-27
  • Linux 發展史

    Linux 發展史 一、Linux 系統概述     首先大家需要明白,Linux 只是內核,沒有應用程序,如果想有應用程序就需要GNU 組織來提供應用程序,GNU其實就是一個開源組織,這就要說GNU 和GPL 的概念了,其實GNU可以看作就是軟件行業的共產黨組織 而GPL 就是共產黨宣言 為全人類服務。所以說GNU 和 LIN…

    Linux干貨 2016-10-19
  • 文件的壓縮與解壓

    文件的壓縮與解壓   常用命令既參數 1, gzip                        …

    Linux干貨 2017-04-16
欧美性久久久久