㈠ 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是分钟