當前位置:首頁 » 幣種行情 » eth地址正則表達式

eth地址正則表達式

發布時間: 2023-01-22 21:10:43

㈠ 怎麼用Linux 正則表達式過濾出IP地址

用正則表達式提取網址的方式如下: 用ifconfig來提取 ifconfig eth0|grep "inet addr"|awk '{print $2}'|awk -F: '{print $2}'192.168.10.1 用ip addr來提齲 ip addr | grep -Po '[^ ]+(?=/\d)'

㈡ Linux下如何利用重定向和正則表達式替換字元

可以用sed命令比如 要把192.168.1.11換成192.168.1.12

sed-i's/address192.168.1.11/address192.168.1.12/g'/etc/network/interfaces

㈢ LINUX操作系統課程設計:企業伺服器的配置與實現怎樣做

一般購買大品牌的伺服器才有相應的驅動程序:
硬體:4核CPU,4G的內存,主板帶RIAD,512G內存,

安裝與配置Web伺服器
Apache伺服器源代碼安裝:
http://httpd.apache.org
Apache RPM軟體下載:
http://updates.redhat.com
Apache模塊和MPM可使用類型的更詳細介紹:
http://httpd.apache.org/docs-2.0/mod/N
Apache對模塊的使用有兩種方法,一種是將其永久性地編譯Apache內核中,即採用靜態編譯;另一種是採取動態編譯,將其編譯成DSO(Dynamic shared object,動態共享對象)模塊,DSO模塊的存儲是獨立於內核的,可被內核在需要時調用,具體是由mod_so模塊提供的運行時配置指令(LoadMole)來實現的,若在編譯中包含有任何動態模塊,則mod_so模塊會被自動包含進內核。若僅希望內核能夠支持裝載DSO模塊,但不實際編譯任何動態模塊,則在編譯配置時就明確指定--enable-so配置參數。
還提供了多道處理模塊MPMs(multi-processing moles),編譯過程中必須包含一個且只能有一個MPM,編譯時系統會根據平台類型自動選擇使用默認的MPM,也可在configure命令行中配置:
--with-mpm=要使用MPM類型

模塊的指定方法:
1.靜態編譯模塊到內核中,如編譯包含mod-sll和mod_rewrite(去掉mod_)模塊:
./configure --enable-mole="ssl rewrite"或./configure --enable-sll --enable-rewrite
動態編譯模塊為DSO:
./configure --enable-mods-shared="ssl rewrite"或./configure --enable-rewrite=shared

模塊說明:
httpd -l //查看httpd進程中包含哪些模塊;
httpd -S //檢查虛擬主機的配置是否存在語法錯誤;
httpd -f //啟動httpd守護進程時,載入配置文件;
mod_deflate模塊允許支持此功能的瀏覽器,在請求的頁面內容發送前進行壓縮,以節少網路帶寬。
mod_vbost_alias模塊支持虛擬主要的動態配置。

chkconfig --level 235 httpd on
chkconfig --list httpd
service httpd start
service httpd restart
service httpd reload //重新裝載httpd.conf(不重啟伺服器)
./configure --prefix=/usr/local/apache2 --enable-so --with-mpm=prefork --enable-moles="setenvif rewrite deflate vhost_alias"
#apachectl start //啟動Apache伺服器;
#apachectl restart
#echo "/usr/local/apache2/bin/apachectl start">>/etc/rc.d/rc.local //自動啟動
#httpd -t //檢查配置文件httpd.conf
#apachect configtest //檢查配置文件httpd.conf
#ServerRoot apache安裝路徑 //設置伺服器的根目錄;
#ServerName 完整的域名[:埠號] //設置伺服器用於重定向(埠)和虛擬主機;
#Listen [IP地址]埠號 //告訴伺服器接受來自指定埠或者指定IP地址的某埠的請求;
Listen 80
Listen 61.186.160.104:8088
#ServrAdmin E-mail地址 //設置Web站點管理員的E-mail地址,當產生錯誤時(如指定的網頁找不到),伺服器返回給客戶端的
錯誤信息中將包含該郵件地址,以告訴用戶該向誰報告錯誤;
#DocumentRoot 目錄路徑名 //設置Web伺服器站點根目錄;
DocumentRoot /usr/local/apache2/htdocs
#ErrorDocument 錯誤號 所要顯示的網頁 //定義當遇到錯誤時,伺服器將給客戶端什麼樣的回應,通常是顯示預設置的一個錯誤頁面;
grep ErrorDocument /etc/httpd/conf/httpd.conf //httpd.conf中一些對不同錯誤的響應信息;
#DirectoryIndex index.php index.htm index.html default.htm //設置站點主頁文件的搜索順序;
#user nobody //設置伺服器以哪種(nobody)用戶身份來響應客戶端的請求;
#Group # -1 //設置伺服器以哪種(nobody)用戶身份來響應客戶端的請求;nobody用戶許可權較小。
#AddDefaultCharset GB2312 //指定默認的字元集;
#TimeOut //設置連接請求超時的時間(秒),超時將斷開;
#KeepAlive //用於啟用持續的連接或者禁用;KeepAlive On|Off
#MaxKeepAliveRequests //設置在一個持續連接期間允許的最大HTTP請求數目;
#KeepAliveTimeout //設置在關閉TCP連接之前,等待後續請示求的秒數;一旦接受請求建立了TCP連接後則開始計時;
#PidFile logs/httpd.pid //指定存放httpd主(父)進程號的文件名;

日誌配置命令:
#ErrorLog //指定伺服器存放錯誤日誌文件的位置和文件名;
#LogLevel //設置記錄在錯誤日誌中的信息的詳細程序;
emerg 緊急,系統將無法使用;
alert 必須立即採取措施;
crit 致命情況;
crror 錯誤情況;
warm 警告;
info 普通信息;
notice 一般重要情況;
debug 出錯級別信息;

http://127.0.0.1 //測試Apache是否正常運行
Test Page
This page is used to test the proper operation of the Apache Web server after it has been installed. If you can read this page, it means that the Apache Web server installed at this site is working properly.

#rpm -q httpd
#rpm -Uvh http-2.0.40-21.11.i386.rpm

目錄說明:
/etc/httpd/conf //Apache伺服器的配置文件httpd.conf
/etc/rc.d/init.d/ //Apache伺服器啟動腳本安裝,httpd
/var/www/html //Web站點根目錄;
/usr/bin //Apache軟體包提供的可執行程序安裝在該目錄下。
/etc/httpd/logs //日誌文件
htdocs //默認Web站點的根目錄,可通過配置文件httpd.conf進行設置或更改;
cgi-bin //CGI腳本目錄;
bin //apachectl啟動腳本會自動設置在某些操作系統下,正常運行httpd所需的環境變數;
httpd守擴進程被調用後做的第一件事就是讀取httpd.conf,並根據其配置項來配置當前Web伺服器;
httpd.conf 分為三部分(section),
第一部分為全局環境設置,主要用於設置ServerRoot、主進程號的保存文件、
對進程的控制、伺服器偵聽的IP地址、埠、要裝載的DSO模塊
第二部分是伺服器的主要配置指一位置;
第三部分用於設置和創建虛擬主機;
Listen 80 //Web伺服器綁定在80埠;
DocumentRoot //設置Web站點的根目錄等;
訪問控制指令:
<Directory /usr/local/*/htdoes> //<Directory>使指定的目錄及其子目錄有效;不可嵌套。目錄名可使用「*」或「?」通配符,
<Files ~「\.ht"> //作用於指定的文件,則不管該文件實際存在子哪個目錄,允許所有主機訪問位於任何目錄下的.ht開的文件
Order allow,deny //指定allow和deny語句,哪一個被執行;允許、禁止訪問主機。
Allow from all //允許所有主機訪問;也可以是IP地址。
<Files>
</Directory>

<Location /assistant> //針對URL地址進行訪問限制,不是文件系統;
Order deny,allow //
Deny from all
Allow from 61.186.160.105
</Location>

Order deny,allow //若主機沒有被特別指出拒絕訪問,則該資源被允許訪問。
Order allow,deny //若主機沒有被特別指出允許訪問,則該主要將被拒絕訪問該資源。
Order mntual-failure //只有那些在allow語句中被指定,同時又沒有出現在deny語句的主機,才允許訪問。若主機在兩條指
令中都沒有出現,則將被拒絕訪問;
*、? //*代表任意個字元,?代表一個任意的字元;
<DirectoryMatch> //指定目錄名時,可直接使用正則表達式;<Directory>若要使用正則表達式,則需要在正則表達式前加「~"
<FilesMatch> //可直接使用正則表達式來通配多個文件;

AccessFileName .htaccess //.htaccess分布式配置文件,在該文件中也可放置一些配置指令,以作用於該文件所在的目錄以及
其下的所有子目錄。搜尋.htaccess文件會降低系統性能;
<Directory />
AllowOverride None //禁止系統查找.htaccess文件;
Options FollowSymLinks //Options:控制在特定目錄中將使用哪些伺服器特性;
</Directory>

Options命令可用的選項:
None 不啟用任何額處特性;
All 除MultiViews之外的所有特性,默認設置;
ExecCGI 允許執行CGI腳本;
FollowSymLinks 伺服器允許在此目錄中使用符號連接。在<Location>段中無效
Includes 允許伺服器端包含SSI(Server-side includes)
IncludesN()EXEC 允許伺服器端包含,但禁用#exec和#exec CGI命令。但仍可以從ScriptAltase目錄使用#include虛擬CGI腳本;
Indexes 如果一個映射目錄的URL被請求,而此目錄中又沒有DirectoryIndex(如:index.html),那麼伺服器返回一個
格式化後的目錄列表;
MultiViews 允許內容協商的多重視圖;
SymLinksIfOwnerMatch 伺服器僅在符號連接與其目的目錄或文件擁有者具有同樣的用戶ID時,才使用它;
ExecCGI 擁有ExecCGI執行許可權;

prefork.c 控制Apache進程,對於使用prefork多道處理模塊的Apache伺服器;
<IfMole prefork.c>
StartServers 5 //設置伺服器啟動時啟動的子進程的個數;
MinSpareServers 5 //設置伺服器中空閑子進程(即沒有HTTP處理請求的子進程)數目的下限;
MaxSpareServers 10 //設置伺服器中空閑子進程數目的上限。若空閑子進程超過該設置值,則父進程就會
停止多餘的子進程;
MaxClients 150 //設置伺服器允許連接的最大客戶數;
MaxRequestsPerChild 0 //設置子進程所能處理請求的數目上限,0為不受限制;
</IfMole>
access_log //日誌文件用於記錄伺服器處理的所有請求;
CustomLog 指定access_log日誌文件的位置和日誌記錄的格式;
LogFormat 定義日誌的記錄格式;
LogFormat 日誌格式字元串 日誌格式名稱
LogFormat "%h %1 %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined;
LogFormat "%h %1 %u %t \"%r\" %>s %b" common;
LogFormat "%{Referer}i->%U" referer;
LogFormat "%{User-agent}i「 agent;
LogFormat logs/access_log common

LogFormat "%v %h %l %u %t \"%r"\ %>s %b" vhost
CustomLog logs/vhost_log vhost

%a 遠程主機IP地址
%A 本地主機IP地址
%h 遠程主機名
%H 請求協議
%l 遠程登錄名
%u 來自auth 的遠程用戶
%U 請求的URL路徑
%U{User-agent}i 用戶瀏覽器類型
%b 發送的位元組數,不包括HTTP標題
%t 請求的時間
%r HTTP請求的第一行的內容
%s HTTP響應狀態碼,200代表訪問成功,404代表文件未找到,403代表禁止訪問,401代表未授權訪問,400代表錯誤請求。
%m 請求方法
%v 服務於該請求的伺服器的ServerName
%V 伺服器的名字,取決於UseCanonicalName的設置
%{Host}i 返回HTTP請求的主機頭信息,可能含埠號信息
split-logfile </var/www/myweb/vhost_log //當所有虛擬機日誌都記錄在主站點日誌中時,使用此命令將日誌按虛擬主機名分組,拆分成一個個獨立的日
志文件,第個日誌文件採用"虛擬主機名.log「形式命名,其中包含了該虛擬主機所產生的日誌記錄;

容器與訪問控制指令:容器指令通常用於封裝一組指令,使其在容器條件成立時有效,或者用於改變指令的作用域。
<IfMoe ! mpm_winnt.c> //<IfMoe>用於判斷指定的模塊是否存在,若存在(被靜態地編譯進伺服器,或是被動態裝載進伺服器)則包含於
其中的指令將有效,否則會被忽略。可嵌套使用。
<IfMoe ! mpm_netware.c> //若要使模塊不存在時所包含的指令有效,只需在模塊名前加一個「!」即可,
User nobody
Group # -1
</IfMoe>
</IfMoe>

基於域名虛擬主機:
例:假設當前伺服器的IP地址為192.168.3.120,現要在該伺服器創建兩個基於域名的虛擬主機,使用埠為標準的80,其域名分別為www.myweb1.com和www.myweb2.com,站點根目錄分別為/var/www/myweb1和/var/www/myweb2,日誌文件分別放在/var/vhlogs/myweb1和/var/vhlogs/myweb2目錄下面,Apache伺服器原來的主站點採用域名www.myweb.com進行訪問。
#vi /etc/hosts //使用/etc/hosts進行域名注冊;
192.168.3.120 www.myweb1.com www.myweb2.com www.myweb.com

#ping www.myweb1.com //檢測域名解析是否正常;
#ping www.myweb2.com
#ping www.myweb.com

#mkdir -p /var/www/myweb1
#mkdir -p /var/www/myweb2
#mkdir -p /var/vhlogs/myweb1
#mkdir -p /var/vhlogs/myweb2

#vi /etc/httpd/conf/httpd.conf
Listen 80 //設置Listen指令偵聽的埠
NameVirtualHost 192.168.3.120 //基於域名的虛擬主機,如果對多個地址使用了多個基於域名的虛擬主機
則對每個地址均要使用此指令:NameVirtualHost IP地址:埠
NameVirtualHost * 當IP地址無法確定時,使用「*」通配任意的IP地址
<VirtualHost 192.168.3.120> //定義一個虛擬主機,VirtualHost的參數必須與NameVirtualHost後面所使用的參數保持一致。
ServerName www.myweb.com //當一個請求到時,伺服器會首先檢查它是否使用了一個能和NameVirtualHost相匹配的IP地址。如果匹配,就會
DocumentRoot /usr/local/apache/htdoes //就會查找每個與這個IP地址相對應的<VirtualHost>配置段,並嘗試找出一個ServerName或ServerAlias配置相
ServerAdmin [email protected] //與請求的主機名(域名)相同的,若找到,則使用該虛擬主機的配置,並響應其訪問請求。否則將使用符合這個
</VirtualHost> //IP地址的第一個列出的虛擬主機。在最前面的虛擬主機成為默認虛擬主機。
<VirtualHost 192.168.3.120>
ServerName www.myweb1.com
DocumentRoot /var/www/myweb1
DirectoryIndex index.php index.php3 index.html index.htm default.html default.html
ServerAdmin [email protected]
ErrorLog /var/vhlogs/myweb/error_log
TransferLog /var/vhlogs/myweb1/access_log
</VirtualHost>
<VritualHost 192.168.3.200>
ServerName www.myweb2.com
DocumenRoot /var/www/myweb2
DirectoryIndex index.php index.php3 index.htm index.html default.htm default.html
ServerAdmin [email protected]
ErrorLog /var/vhlogs/myweb2/error_log
TranferLog /var/vhlogs/myweb2/access_log
</VirtualHost>

<Directory /var/www> //對Web站點目錄設置訪問控制;
Options FllowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>

Apachectl –S //查查虛擬主機配置是否正確;
Aparhectl restart //重啟Apache伺服器配置生效;

例:
NameVirtualHost 192.168.168.10 //伺服器配有兩塊網卡,IP:內網192.168.168.10,外網61.186.160.104,在Internet網中,企業域名
NameVirtualHost 61.186.160.104 //www.example.com指向外網IP地址,在企業內網的DNS伺服器中,指向內網IP地址;現要求為來自內網
<VirtualHost 192.168.168.10 61.186.160.104> //外網的請求提供同樣的Web服務。(httpd.conf中設置)
DocumentRoot /www/server1
ServerName www.example.com
</Virtual>

例:
Listen 80 //伺服器:192.168.168.154,伺服器上創建兩個基於域名(主機名)的虛擬主機,域名:www.myweb3.com和www.
Listen 8080 //myweb4.com,每個虛擬主機的80埠和8080埠,分別服務一個Web站點,其站點根目錄分別為
// /var/www/myweb3-80、/var/www/myweb3-8080、/var/www/myweb4-80、/var/www/myweb4-8080。
NameVirtualHost 192.168.168.154:80 //www.myweb3.com的80埠作為默認Web站點。
NameVirtualHost 192.168.168.154:8080

<VirtualHost 192.168.168.154:80>
ServerName www.myweb3.com
DocumentRoot /var/www/myweb3-80
<VirtualHost>
<VirtualHost 192.168.168.154:8080>
ServerName www.myweb3.com
DocumentRoot /var/www/myweb3-8080
</VirtualHost>
<VirtualHost 192.168.168.154:80>
ServerName www.myweb4.com
DocumentRoot /var/www/myweb4-80
</VirtualHost>
<VirtualHost 192.168.168.154:8080>
ServerName www.myweb4.com
DocumentRoot /var/www/myweb4-8080
</VirtualHost>

基於IP地址虛擬主機:
#cd /etc/sysconfig/network-scripts //伺服器有兩張網卡eth0、eth1,eth0:192.168.167.157,
#cp ifctg-eth1 ifcfg-eth1:0 //eth1:192.168.167.156.eth0網卡用作了基於主機名的虛擬主機,
#vi ifcfg-eth1:0 //eth1通過IP別名方式,為其綁定多個IP地址,用於提供基於IP地址
DEVICE=eth1:0 //的虛擬主機。eth1綁定的第一張虛擬網卡的設備名為eth1:0,對應的
IPADDR=192.168.167.157 //配置文件為ifcfg-eth1:0,通過修改配置文件中的設備名和IP地址,
#ifdown eth1 //即可實現IP地址的綁定。
#ifup eth1:0
#ifup eth1
#ping 192.168.167.157
#ping 192.168.167.156

#vi /etc/hosts //192.168.167.156:www.example2.com,192.168.167.157:
192.168.167.157 www.example3.com //www.example3.com,試為其創建基於IP地址的虛擬主機,埠使用80
#mkdir -p /var/www/example2 //目錄分別為/var/www/example2、/var/www/example3,為這兩個域再增
#mkdir -p /var/www/example3 //8080埠,使其也能在8080埠發布另外的Web站點。Web站點根目錄分
///var/www/example2-8080、/var/www/example3-8080
#vi httpd.conf
Listen 80
Listen 8080
<VirtualHost 192.168.167.156:80>
ServerName www.example2.com
DocumentRoot /var/www/example2
</VirtualHost>
<VirtualHost 192.168.167.156:8080>
ServerName www.example2.com
DocumentRoot /var/www/example2-8080
</VirtualHost>

<VirtualHost 192.168.167.157:80>
ServerName www.exaple3.com
DocumentRoot /var/www/example3
</VirtualHost>
<VirtualHost 192.168.167.157:8080>
ServerName www.exaple3.com
DocumentRoot /var/www/example3-8080
</VirtualHost>

㈣ 用正則表達式提取網址中的IP怎樣取

d+.d+.d+.d*:d+


import java.util.regex.*;


// 表達式對象

Pattern p = Pattern.compile("\d+\.\d+\.\d+\.\d*\:\d+");


// 創建 Matcher 對象

Matcher m = p.matcher("");


// 是否找到匹配

boolean found = m.find();


if( found )

{

String foundstring = m.group();

int beginPos = m.start();

int endPos = m.end();

}


㈤ shell基礎應用(五)

一,正則表達式

w匹配數字、字母、下劃線

egrep "roow" user //找roo後面是數字、字母、下劃線的字元串

s 匹配空格、tab鍵

egrep "roos" user //找roo後面是1個空格或者tab鍵打出來的空格的字元串,如果沒有

就不輸出


二,sed其他指令

a行下追加 i行上添加 c替換整行

sed 'a 666' user //所有行的下面追加666

sed Ƈa 666' user //第1行的下面追加666

sed '/^bin/a 666' user //在以bin開頭的行的下面追加666

sed 'i 666' user //所有行的上面添加666

sed Ƌi 666' user //第5行的上面添加666

sed '$i 666' user //最後1行的上面添加666

sed 'c 666' user //所有行都替換成666

sed Ƈc 666' user //替換第1行為666


---------------------------------------------------------

三,awk

可以實現精確搜索並輸出 ,逐行處理

1,前置指令 | awk 選項 條件 指令

2,awk 選項 條件 指令 被處理文檔

選項 -F 定義分隔符

指令 print

條件 /字元串/

內置變數 $1第一列 $2第二列 $3第三列 ...

$0 所有列 NR行號 NF 列號

[root@proxy opt]# cat abc.txt //准備素材

hello the world

welcome to beijing


awk '{print}' abc.txt //輸出所有

awk '/to/{print}' abc.txt //輸出有to的那行

awk '{print $2}' abc.txt //輸出所有行的第2列

awk '/to/{print $1}' abc.txt //輸出有to的那行的第1列

awk '{print $0}' abc.txt //輸出所有行所有列

awk '{print $0,$1}' abc.txt //輸出所有行所有列和第1列

awk '{print NR}' abc.txt //輸出所有行的行號

awk '{print NR,$0}' abc.txt //輸出所有行的行號,所有列

awk '{print NR,NF}' abc.txt //輸出所有行的行號,列號(有幾列)


awk '/^bin/{print NR}' user //找以bin開頭的行,顯示該行的行號

awk '/^bin/{print NR,$0}' user //找以bin開頭的行,顯示該行的

行號,所有列

awk '{print NF}' user //輸出所有行的列號(每行有幾列)

awk -F: '{print $1}' user //文檔中如果沒有空格,可以用F修改分

隔符

awk -F: '{print $1,$6}' user //使用冒號作為列的分隔符,顯示

第1、6列

awk -F: '{print $1" 的家目錄是 "$6}' user //還可以輸出常量,加

雙引號即可

awk -F: '{print $1" 的解釋器是 "$7}' user


收集根分區剩餘容量

df -h | awk '//$/{print $4}' //使用df -h 作為前置指令交給awk處理

找到以/結尾的行,並輸出第4列

df -h | awk '//$/{print "根分區剩餘容量是"$4}' //然後加常量輸出


收集網卡流量信息

ifconfig eth0 | awk '/RX p/{print "eth0網卡接收的數量量是"$5}'

ifconfig eth0 | awk '/TX p/{print "eth0網卡發送的數量量是"$5}'


------------------------------------------------------------

四,awk的條件

1,/字元串/ 還可以使用正則 ~ 包含 !~不包含

awk -F: '$6~/root/{print}' user //輸出第6列包含root的行

awk -F: '$6~/bin/{print}' user //輸出第6列包含bin的行

awk -F: '$6!~/bin/{print}' user //輸出第6列不包含bin的行

2,使用數字或者字元串

== != > >= < <=

awk -F: '$3<3{print}' user //輸出第3列小於3的行

awk -F: '$3<=3{print}' user //輸出第3列小於等於3的行

awk -F: 'NR==2{print}' user //輸出第2行

awk -F: 'NR>2{print}' user //輸出行號大於2的行

3,邏輯組合 &&並且 ||或者

awk -F: 'NR==2||NR==4{print}' user //找行號是2或者4的行

awk -F: 'NR==2||NR==40{print}' user //如果只有一個條件滿足就顯示一個

awk -F: '$7~/bash/&&$3<=500{print}' user //找第7列包含bash並且第3列

小於等於500的行

awk 'NR==2&&NR==4{print}' user //找行號既是2又是4的行,不存在,無輸出

awk -F: '$7~/bash/&&NR<=3{print}' user //找第7列包含bash並且行號是1~3的

awk -F: '$7~/bash/||NR<=3{print}' user //找第7列包含bash或者行號是1~3的



awk -F: '$1~/root/' user //找第1列包含root的行

如果有用戶叫root6,也會搜到,比較寬松的搜索方式,如果

任務就是{print}的話可以省略不寫

awk -F: '$1=="root"' user //找第1列完全等於root的行

多一個字元少一個字元都不行,比較嚴格的搜索方式


4,運算

awk 'NR%2==0{print NR,$0}' user //在條件中使用運算

,找到將行號除以2餘數等於0的行,然後輸出該行的

行號和所有列,相當於輸出偶數行


-----------------------------------------------------

五,awk處理時機,可以執行額外任務

BEGIN任務 執行1次,讀取文檔之前執行

逐行任務 執行n次,讀取文檔時執行

END任務 執行1次,讀取文檔之後執行


BEGIN{ 任務1 }{ 任務2 }END{ 任務3 }

awk -F: 'BEGIN{print "ok"}{print $1}END{print "ok"}' user

awk 'BEGIN{print NR}{print NR}END{print NR}' user


利用awk處理時機,輸出下列內容

awk 'BEGIN{print "User UID Home"}' //第1步輸出表頭信息

awk -F: '{print $1" "$3" "$6}' user //第2步輸出內容

awk 'END{print "總計"NR"行" }' user //第3步輸出結尾


awk -F: 'BEGIN{print "User UID Home"}{print $1" "$3" "$6}END{print "總計"NR"行"}' user //合在一起寫

---------------------------------------------------------------------------

使用awk統計網站訪問量

setenforce 0 //關閉selinux

systemctl stop firewalld //關閉防火牆

systemctl restart httpd //開啟網站服務

使用瀏覽器多訪問幾次網站,包括本機用curl

curl 192.168.4.7:82 //如果埠沒改過就不用敲

awk '{print $1}' /var/log/httpd/access_log //初步統計,不完美


六,使用awk數組+for循環實現高級搜索

數組 相當於可以存儲多個值的特殊變數

數組名[下標]=下標對應的值

awk 'BEGIN{a[1]=10;a[2]=20;print a[2],a[1]}' //使用awk測試數組,首先

創建數組a,下標1對應值是10,下標2對應值是20,然後輸出下標是2與

下標是1的值

awk 'BEGIN{a["abc"]="abcabc";a["xyz"]="xyzxyz";print a["xyz"]}' //數組的下標

和值都可以不是數字,測試時加雙引號即可


以上信息是手工輸入,實際情況中通常是從文檔收集

准備一個文檔,裡面有6行,每行分別是abc、xyz、abc、opq、xyz、abc 然後

按照awk逐行處理的工作特點使用awk '{a[$1]++}' shu.txt 走完每一行得到下列結果

但不會輸出到屏幕

a[$1]++ a[abc]++ a[abc]=1

a[$1]++ a[xyz]++ a[xyz]=1

a[$1]++ a[abc]++ a[abc]=2

a[$1]++ a[opq]++ a[opq]=1

a[$1]++ a[xyz]++ a[xyz]=2

a[$1]++ a[abc]++ a[abc]=3


如果要輸出到屏幕可以使用命令awk '{a[$1]++}END{print a[abc]}' shu.txt

----------------------

根據上述操作得知使用數組可以收集信息,但收集完了之後查看確不方便,可以用for循環實現。方法如下:

for(變數名 in 數組名){print 變數名} //這個格式可以查看數組的所有下標


awk '{a[$1]++}END{for(i in a){print i,a[i]}}' shu.txt //使用逐行任務與數組

收集文檔shu.txt中的信息,然後在END任務中使用for循環顯示所有

數組a的下標與值


awk '{ip[$1]++}END{for(i in ip){print i,ip[i]}}' /var/log/httpd/ac

cess_log //將上述的文件替換成網站的日誌,就可以

最終用來查看日誌得到可以得到哪個ip來訪以及來訪的次數


awk '{ip[$1]++}END{for(i in ip){print i,ip[i]}}' /var/log/httpd/ac

cess_log | sort -nr -k 2 //使用sort命令增加排序

功能,-n是以數字形式排序,-r是降序, -k是指定為

第幾列排序


----------------------------------------------------------------------------

/var/log/secure是安全日誌,如果有人登陸時輸入錯誤密碼的話

信息會記錄下來,這種信息可以用awk抓取出來,方法如下:

awk '/Failed password for root/{ip[$11]++}END{for(i in ip){print i,ip[i]}}'

/var/log/secure //統計安全日誌中訪問root賬戶密碼輸入錯誤

的ip地址與次數

-----------------------------------------------------------------------------

編寫腳本,可以查看系統的各種參數信息

#!/bin/bash

while :

do

clear

free -h | awk '/^Mem:/{print "剩餘內存容量是"$4}'

df -h | awk '//$/{print "根分區剩餘容量是"$4}'

awk 'END{print "用戶總數是"NR"個"}' /etc/passwd

who | awk 'END{print "登錄用戶數量是"NR"個"}'

uptime | awk '{print "cpu的15分鍾平均負載是"$NF}'

rpm -qa | awk 'END{print "安裝的軟體包數量是"NR"個"}'

sleep 3

done

㈥ 使用正則表達式把所有700替換為上一行的4位數字如下面的2068

要實現你的要求,需要先用正則表達式匹配出上一行四位數字,然後把其下面700替換為這個4位數字.

我給你一個php語言的例子,你看看吧.(這個程序可以處理多個四位數每個下面有多個700的情況)

<?php

$str="vlan port eth_0/3 mode tag vlan 2068 priority 0 vlan port eth_0/4 mode tag vlan 700 priority 0 vlan port eth_0/4 mode tag vlan 700 priority 0 vlan port eth_0/3 mode tag vlan 2067 priority 0 vlan port eth_0/4 mode tag vlan 700 priority 0 vlan port eth_0/4 mode tag vlan 700 priority 0 ";

$regex="/[0-9]{4}(?=[sS]*?700)/";

preg_match_all($regex,$str,$matches);

for($i=0;$i<count($matches[0]);$i++){

$regex1="/(".$matches[0][$i]."[sS]*?)700(?=[sS]*?".$matches[0][$i+1].")/";

$n=preg_match($regex1,$str,$match);

while($n!=0){

$replace='${1}'.$matches[0][$i];

$str=preg_replace($regex1,$replace,$str);

$n=preg_match($regex1,$str,$match);

}

}

echo $str;

?>

㈦ 在linux下如何用正則表達式執行ifconfig命令,只顯示IP地址的內容!

貌似這個可以,但要用兩次awk
ifconfig eth0 |grep 'inte addr' |awk '{print $2}' |awk -F ":" '{print $2}'

㈧ 請給出Linux中eth0的IP地址和廣播地址的指令,需使用cut、awk、grep、sed指令。

第一種方法:使用grep和cut取值
第二種方法:使用grep和awk(默認分隔符為空格)取值
第三種方法:使用grep和awk(多分隔符)
第四種方法:使用sed和awk
第五種方法:使用grep和awk(多分隔符與加號+)
第六種方法:awk (分隔符及取行)
第七種方法:grep 網卡文件
第八種方法:head取行 awk分割

如果有什麼不懂的話可以去看看《Linux就該這么學》這本書,非常適合新手學習Linux。

㈨ linux grep怎麼查ip地址

ifconfig是linux中用於顯示或配置網路設備(網路介面卡)的命令,英文全稱是network interfaces configuring。它能夠顯示網卡的IP地址、子網掩碼、廣播地址、硬體地址等信息。

如果希望結果只返回ip地址,可以使用grep命令對返回的結果進行過濾。可以根據IP地址位於"inet addr:"字元串之後這一特徵對ifconfig命名返回的結果進行匹配。

用法示例:使用ifconfig結合grep命令獲取網卡eth0的IP地址

$ ifconfig eth0 | grep -o -E "inet addr:[0-9.]+"

參數-E表示使用擴展正則表達式egrep

參數-o表示只顯示一行中匹配正則表達式的部分

㈩ 用正則表達式提取指定字元

\d{1,3}(\.\d{1,3}){3}(?= netmask)
取出以點分隔的四個1-3位數字(IP地址), 其後跟的是一個空格和單詞netmask

熱點內容
三星移動合約機怎麼扣費 發布:2024-05-18 12:18:11 瀏覽:454
怎麼做幣本位合約 發布:2024-05-18 11:54:45 瀏覽:478
bnb提幣冷錢包 發布:2024-05-18 11:49:52 瀏覽:99
btce被黑 發布:2024-05-18 11:33:34 瀏覽:970
100m算力eth 發布:2024-05-18 11:27:42 瀏覽:670
lpfs礦機現在可以挖礦嗎 發布:2024-05-18 10:58:04 瀏覽:312
神奇挖礦賺錢 發布:2024-05-18 10:55:13 瀏覽:503
2009年關於比特幣的新聞 發布:2024-05-18 10:20:12 瀏覽:36
挖礦比顯卡 發布:2024-05-18 09:57:33 瀏覽:453
元宇宙賬號要錢嗎 發布:2024-05-18 09:44:35 瀏覽:284