㈠ linux怎樣用grep過濾
不知道你是想實現什麼目的,如果你是想只顯示配置文件中的以 # 號開頭的行版,那就使用
# grep ^# filename
如果是想顯示除權 # 號開頭的行的話呢,只需加個參數-v (-v 表示相反的過濾)就行了
# grep -v ^# filename
㈡ Linux如何過濾空文件
if test ! -s file 命令可以判斷是否是空文件,
把這段代碼添加到你的腳本裡面就可以過濾了。
㈢ 在linux系統如何grep過濾中,不包含某些字元
1、linux系統中grep命令是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行列印出來。grep全稱是Global Regular Expression Print,表示全局正則表達式版本,它的使用許可權是所有用戶。
2、格式
grep[options]
3、主要參數
[options]主要參數:
-c:只輸出匹配行的計數。
-I:不區分大小寫(只適用於單字元)。
-h:查詢多文件時不顯示文件名。
-l:查詢多文件時只輸出包含匹配字元的文件名。
-n:顯示匹配行及行號。
-s:不顯示不存在或無匹配文本的錯誤信息。
-v:顯示不包含匹配文本的所有行。
pattern正則表達式主要參數:
\:忽略正則表達式中特殊字元的原有含義。
^:匹配正則表達式的開始行。
$: 匹配正則表達式的結束行。
\<:從匹配正則表達式的行開始。
\>:到匹配正則表達式的行結束。
[ ]:單個字元,如[A]即A符合要求。
[ - ]:范圍,如[A-Z],即A、B、C一直到Z都符合要求。
。:所有的單個字元。
* :有字元,長度可以為0。
4、grep命令使用簡單實例:
$ grep 『test』d*
顯示所有以d開頭的文件中包含test的行。
$ grep 『test』aa bb cc
顯示在aa,bb,cc文件中匹配test的行。
$ grep『[a-z]\{5\}』 aa
顯示所有包含每個字元串至少有5個連續小寫字元的字元串的行。
㈣ linux下如何屏蔽埠
埠是linux下應用軟體因需要而開啟的socket套接字,具有唯一性。埠可以查看、啟動關閉、設置防火牆規則等。
1、埠查看
netstat -tln //表示已數字形式查看,正在監聽的埠
netstat -ap //查看所有應用佔用埠情況
2、啟動停止
埠自己是不會停止和啟動的,需要停止和啟動的是埠對應的應用。
可以先找到埠,再對應PID,命令如下:
netstat -anp|grep 57069 //這個是要找的埠號
lsof -i:57069 //查找器PID信息
第三部殺死進程:圖例裡面沒有在這里寫上,kill -9 PID
3、屏蔽
linux下一般使用防火牆的filter規則 定義允許或者不允許進行屏蔽。對於filter一般只能做在3個鏈上:INPUT ,FORWARD ,OUTPUT。
例如設置在輸入端屏蔽53埠:
iptables-AINPUT1-d172.16.100.1-pudp--dport53-jREJECT
-A是增加規則,-d:表示匹配目標地址,-pudp表示UPD協議,--dPort 是埠53
這里表示在輸入端目的地址是172.16.100.1的53埠被屏蔽
㈤ 怎麼在linux中用正則過濾文本
awk或者sed大把過濾方式
看你需求,
㈥ 如何通過linux命令根據某一列值唯一來過濾
你可以這樣做:
(1)為Server的那些使用者建立單獨的賬戶,例如:user01、user02....等等(可以給每個人建立一個單獨的賬戶。當然,為了使系統中的賬戶不至於太多而導致難以管理,也可以按照他們所在的部門、項目組(或工作組)、或是其它分類方式去建立賬戶)。
(2)對每個賬戶下的$HOME/.profile文件或者是$HOME/.cshrc文件(視不同用戶的SHELL來決定,例如:bsh和sh就是.profile,csh就是.cshrc),用
chown root:root ... (例如: chown root:root .cshrc)
命令將它們改成root用戶及屬組所有,只有root用戶才可以更改它們。
(3)在每個用戶的$HOME/.profile或是$HOME/.cshrc等shell環境配置文件中,將你認為是危險的命令做以下的轉換:
alias 命令名='echo 管理員不運行執行該命令'
例如: alias format='echo 管理員不運行執行該命令'
這樣這些用戶就無法執行你限定的命令,執行之後都顯示「管理員不運行執行該命令」。
如果覺得改.profile或是.cshrc文件不保險,還可以在每個用戶的$HOME下建立.login文件,也用上述的方法將它改成root用戶屬組的,在裡面加入
alias 命令名='echo 管理員不運行執行該命令'
效果更好。
----看到了你的問題追加。我覺得要是大家都只能使用root賬戶,那麼這個系統的規劃是否合理?假如一定都要使用root賬戶的話,對於每個用戶在鍵入命令的過程中,你很難去捕獲他們都正在敲入什麼命令。只有等他們在命令行上都輸入完了,回車確認之後才可能去發現他們執行的進程。假如真有這樣的一個監控程序在你的系統中,就算是監控到了,那麼那些進程已經開始運行了,對很多人來說已經是無法收拾了,只有及時的殺掉那些進程了。建議你把敏感的命令給rename了算了,例如mv format frmt
㈦ linux使用find命令如何過濾文件夾
先用find 查找的時候,制定不查找「.」開頭的文件夾
find /your/dir -type d ! -name ".*"
㈧ 如何通過linux命令根據某一列值唯一來過濾數據
你可以這樣做:
(1)為Server的那些使用者建立單獨的賬戶,例如:user01、user02....等等(可以給每個人建立一個單獨的賬戶。當然,為了使系統中的賬戶不至於太多而導致難以管理,也可以按照他們所在的部門、項目組(或工作組)、或是其它分類方式去建立賬戶)。
(2)對每個賬戶下的$HOME/.profile文件或者是$HOME/.cshrc文件(視不同用戶的SHELL來決定,例如:bsh和sh就是.profile,csh就是.cshrc),用
chown root:root ... (例如: chown root:root .cshrc)
命令將它們改成root用戶及屬組所有,只有root用戶才可以更改它們。
(3)在每個用戶的$HOME/.profile或是$HOME/.cshrc等shell環境配置文件中,將你認為是危險的命令做以下的轉換:
alias 命令名='echo 管理員不運行執行該命令'
例如: alias format='echo 管理員不運行執行該命令'
這樣這些用戶就無法執行你限定的命令,執行之後都顯示「管理員不運行執行該命令」。
如果覺得改.profile或是.cshrc文件不保險,還可以在每個用戶的$HOME下建立.login文件,也用上述的方法將它改成root用戶屬組的,在裡面加入
alias 命令名='echo 管理員不運行執行該命令'
效果更好。
----看到了你的問題追加。我覺得要是大家都只能使用root賬戶,那麼這個系統的規劃是否合理?假如一定都要使用root賬戶的話,對於每個用戶在鍵入命令的過程中,你很難去捕獲他們都正在敲入什麼命令。只有等他們在命令行上都輸入完了,回車確認之後才可能去發現他們執行的進程。假如真有這樣的一個監控程序在你的系統中,就算是監控到了,那麼那些進程已經開始運行了,對很多人來說已經是無法收拾了,只有及時的殺掉那些進程了。建議你把敏感的命令給rename了算了,例如mv format frmt
----呵呵,你也夠執著的。既然一定要寫個程序,那我就說說大概的思路吧!具體的程序代碼你可以自己去寫,這樣也有些成就感。:)
不過我能保證,就算採用這樣的做法也不會取得什麼好的效果,尤其是大家都使用root賬戶。我用unix類操作系統近十年,聽我一句勸告不會有什麼害處啊!
程序思路:
(1)定義你的敏感命令列表(可以賦值給一個字元串數組)。
(2)獲取你本人在系統中當前的tty編號,以及你自己的IP地址(你是從哪個IP地址發起的telnet?如果你本人使用Console,也需要如此)。
(3)按照你的敏感命令列表,循環檢測除了自己的tty及IP地址之外的,其它tty及IP地址發起的敏感命令進程,如果發現,立即予以kill -9。並向相應的tty發送警告信息。
注意:這個循環是無限循環;這個程序是一個守護進程(Daemon)。除非接到進程中止信號,否則它將一直運行。這樣做的缺點是,循環檢測並殺掉那些敏感進程的過程並不能確保實時性,在發現相應的進程時,那些進程可能已經運行了一小段時間,盡管這段時間非常非常的短,但是也可能已經產生了效力甚至是危害。不過,這也是沒辦法的事情了。誰要你非要這樣呢?
㈨ linux下按時間過濾文件如何設置
find dir -mtime +10 -a -mtime -20
找出最後寫入時間為10天-20天前的文件
你這樣算算就好了
-mtime是天
-mmin是分鍾