查看grep与egrep的区别 2.10和2.25版本有什么区别

grep命令梳理 - fengyv - 博客园
http://www.cnblogs.com/fengyv
posts - 189, comments - 44, trackbacks - 0, articles - 0
一:grep的工作原理
&&& grep命令在一个或多个文件中查找某个字符模式,如果这个模式中包含空格,就必须用引号把它括起来。grep命令中,模式可以是一个被引号括起来的字符 串,也可以是单个词。位于模式之后的所有单词都被视为文件名。grep将输出发送到屏幕,它不会对输入文件进行任何修改或变化。grep返回的退出状态为 0,表示成功。退出状态为1,表示没有找到。如果找不到指定的文件,退出状态为2。
二:支持的正则表达式元字符
行首定位符
grep “^test” datafile
打印所有以test开头的行
行尾定位符
grep “test$” datafile
打印所有以test结尾的行
匹配除“/n”之外的任何单个字符
匹配包含一个t,后跟两个字符,在跟一个t的行。
定位.本身只需加上转义符即可
零次或多次匹配前面的字符或子表达式
匹配包含0个或者多个t后跟est的行。可以匹配:est、test、ttest
匹配一组字符中的任一个
匹配包含Test或者test行
匹配不在指定组内的字符
匹配不在范围A至Z之间的任一个字符
词首定位符
匹配包含以love开头的词的行。如:love、lover
grep “/打印所有包含以north开头的单词的行。
词尾定位符
匹配包含以love结尾的词的行。
如:aalove
grep “north/&” datafile
打印所有包含以north结尾的单词的行。
/(pattern/)
匹配模式pattern,并将之存储在寄存器中,供之后使用。
//(love/)able /1r/
最多可以使用9个标签,模式中最左边的标签是第一个。例如:模式love被保存为标签1,用/1表示。左边这个例子中,查找串是一个loveable 后跟 lover的长串。
sed、vi、grep支持。
sed “s//(love/)//1able/” 功能是将文件中的love替换成loveable。
x/{m,/} 或
字符x的重复出现;
m次,至少m次,至少m次且不超过n次。
匹配包含5-10个连续的字母o的行。
vi和grep支持
三:grep选项
在每一行前面加上其所在的块号,根据上下文定位磁盘块时可能会用到。
显示匹配到的行的数目,而不显示行的内容
不显示文件名
比较字符的时候忽略大小写的区别
只列出匹配行所在文件的文件名(每个文件名只列一次),文件名之间用换行符分隔。
在每一行前面加上它在文件中的相对行号
无声操作,即只显示报错信息,以检查退出状态
反向查找,只显示不匹配的行
grep –n& ‘^south’ datafile&& ----- 选项-n在找到指定模式的行前面加上其行号在一并输出
grep –i& ‘pat’ datafile&& ----- 选项-i 关闭大小写敏感性,表达式pat包含任意大小写的组合都符合
grep –v ‘test’ datafile -----查找所有不包含test的行
grep –l ‘test’ *&&& ----- 查询输出当前目录下所有包含test的文件名随笔 - 279&
文章 - 1&评论 - 3&trackbacks - 0
转自:http://www.itokit.com/883.html
linux系统中,利用grep打印匹配的上下几行
如果在只是想匹配模式的上下几行,grep可以实现。
$grep -5 'parttern' inputfile //打印匹配行的前后5行
$grep -C 5 'parttern' inputfile //打印匹配行的前后5行
$grep -A 5 'parttern' inputfile //打印匹配行的后5行
$grep -B 5 'parttern' inputfile //打印匹配行的前5行查看mysql慢日志中ip地址为192.168.0.10发送过来的SQL语句的后面三行
tail&-50&/usr/local/mysql/data/sql-slow.log&|grep&-3&'192.168.0.10'&&
匹配php错误日志中某一个字段
  2,tail -100 /data/logs/php/php_error_5.3.log &| grep &"Memcache::get()";
查看某一个文件第5行和第10行
&sed -n '5,10p' filename 这样你就可以只查看文件的第5行到第10行。
阅读(...) 评论()如何在Fedora 25上部署Ghostv0.11 LTS - 操作系统、应用软件相关使用和技巧 -
恩山无线论坛 -
Powered by Discuz!
后使用快捷导航没有帐号?
只需一步,快速开始
请完成以下验证码
请完成以下验证码
查看: 51|回复: 1
如何在Fedora 25上部署Ghostv0.11 LTS
Ghost是一个开源的博客平台,自2013年发布以来,它在开发者和普通用户中越来越受欢迎。它把重点放在内容和博客上。Ghost最吸引人的地方在于它简单、干净、反应灵敏的设计。你可以从手机上写博客文章。Ghost的内容是使用Markdown语言编写的。“Ghost”完全适合于个人或小群体的作家。
在本指南中,我们将设置并部署一个安全的Ghostv0.11。xlts在Fedora 25 VPS上使用Let ' s加密,Certbot,Node。js,NPM,NGINX和MySQL。
要求注册(购买)域名。
Fedora 25服务器实例,最小1GB RAM。
Sudo用户。
您可能必须使用 semanage port -a -t http_port_t -p tcp 2368.打开端口2368
在你开始之前
1、检查Fedora版本:cat /etc/fedora-release# Fedora release 25 (Twenty Five)
2、创建一个新的non-root用户:useradd -c &John Doe& johndoe && passwd johndoe3、通过将其添加到wheel 组,使其成为超级用户:usermod -aG wheel johndoe4、切换到新用户:su - johndoe5、更新操作系统的软件:sudo dnf check-update || sudo dnf upgrade -y6、设置时区:timedatectl list-timezonessudo timedatectl set-timezone 'Region/City'7、安装开发工具:sudo dnf install @development-tools -y8、安装Vim文本编辑器和Wget:sudo dnf install -y vim wget9、如果需要重新启动系统:sudo shutdown -r now安装Certbot注意:在开始此步骤之前,请确保您已经为您的域设置了DNS记录。我们将使用Let ' s加密CA和EFF的Certbot客户端为我们的Ghost blog获取SSL / TLS证书。不要忘记替换的所有实例。tld与您的域名。1、安装Certbot(以前让我们加密客户端)用Python制作的证书管理软件:sudo dnf install -y certbot2、检查Certbot版本:certbot --version# certbot 0.14.13、使用独立认证方法获取RSA证书(插件):sudo certbot certonly --standalone --domains blog.domain.tld --rsa-key-size 2048 --must-staple --email
--no-eff-email --agree-tos # IMPORTANT NOTES:#&&- Congratulations! Your certificate and chain have been saved at& & /etc/letsencrypt/live/blog.domain.tld/fullchain.pem.#&&Your cert will expire on YYYY-MM-DD. . . .#&&. . .经过前面的步骤,你的证书和私钥将/etc/letsencrypt /生活/ blog.domain。tld目录。
安装Node.js和NPM注意: Ghost目前支持节点。js版本4.5 + 6.9 +。Ghost是建立在node . js.我们要安装v6的推荐版本GhostLTSBoron在撰写本文时。1、下载并安装节点.js v6 LTS:curl --silent --location
| sudo bash -sudo dnf install -y nodejs2、检查节点.js和NPM版本:node -v && npm -v# v6.11.2# 3.10.10安装MySQL默认情况下,Ghost被配置为使用一个SQLite数据库,它不需要配置。另外,也可以通过更改数据库配置来使用一个MySQL数据库。您必须先创建一个数据库和用户,然后才能更改现有的sqlite3配置。从官方MySQL Dnf库下载并安装最新版本的MySQL(当前5.7):cd /tmp # Adding the MySQL dnf Repositorywget
dnf install -y mysql57-community-release-fc25-10.noarch.rpm # Installing MySQLsudo dnf install -y mysql-community-server2、检查MySQL版本:mysql --version# mysql&&Ver 14.14 Distrib 5.7.19, for Linux (x86_64) using&&EditLine wrapper3、启动MySQL服务器并检查其状态:sudo systemctl start mysqld.servicesudo systemctl status mysqld.service4、MySQL版本5.7或更高版本为MySQL根用户生成临时随机密码,安装和密码存储在MySQL错误日志文件中,位于/ var/ log/mysqld.log。要显示它,请使用以下命令:sudo grep 'temporary password' /var/log/mysqld.log5、运行mysql_secure_installation脚本以确保您的数据库有一点:注意:密码验证插件被安装和启用,所以你的新密码为root用户需要强大(一个大写字母,一个小写字母,一个数字,一个特殊字符,以及总密码长度至少为8个字符)。如果您想要完全放松或禁用插件(不推荐),请参考官方MySQL文档来了解如何做到这一点。sudo mysql_secure_installation6、作为根用户登录MySQL:mysql -u root -p# Enter password:7、创建一个新的MySQL数据库和用户:crgrant all on dbname.* to 'user' identified by 'password';8、退出MySQL:exit安装NGINX1、下载并安装NGINX:sudo dnf install -y nginx2、检查NGINX版本是否安装了它:sudo nginx -v# nginx version: nginx/1.10.23、检查状态,启用和启动NGINX服务(守护进程):sudo systemctl status nginx.service # inactive (dead)sudo systemctl enable nginx.servicesudo systemctl start nginx.service4、创建/ etc/ nginx/ssl目录并生成一个新的diffie- hellman(DH)参数:sudo mkdir -p /etc/nginx/sslsudo openssl dhparam -out /etc/nginx/ssl/dhparams-2048.pem 20485、为blog.domain创建日志目录。tld虚拟主机:sudo mkdir -p /var/log/nginx/blog.domain.tld6、配置NGINX作为HTTP(S)反向代理服务器:sudo vim /etc/nginx/conf.d/ghost.conf7、在/etc/nginx/conf.d/ghost.conf粘贴如下:# domain: blog.domain.tld# public: /var/www/ghost upstream ghost_app {& & server 127.0.0.1:2368;& & keepalive 32;} server {& & listen [::]:80;& & listen 80;& & listen [::]:443 ssl http2;& & listen 443 ssl http2;& &&&server_name blog.domain.& & root /var/www/& &&&error_log /var/log/nginx/blog.domain.tld/error.& & access_log /var/log/nginx/blog.domain.tld/access.& &&&client_max_body_size 100M;& &&&ssl_certificate /etc/letsencrypt/live/blog.domain.tld/fullchain.& & ssl_certificate_key /etc/letsencrypt/live/blog.domain.tld/privkey.& & ssl_dhparam ssl/dhparams-2048.& &&&ssl_protocols TLSv1 TLSv1.1 TLSv1.2;& & ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384HE-RSA-AES128-GCM-SHA256HE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHAHE-RSA-AES128-SHA256HE-RSA-AES128-SHAHE-RSA-AES256-SHA256HE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHAES-CBC3-SHA:!DSS';& & ssl_prefer_server_& &&&ssl_buffer_size 4K;& &&&ssl_session_timeout 1d;& & ssl_session_cache shared:SSL:50M;& & ssl_session_& &&&ssl_& & ssl_stapling_& & ssl_trusted_certificate /etc/letsencrypt/live/blog.domain.tld/chain.& &&&resolver 8.8.8.8 8.8.4.4 valid=300s;& &&&location / {& && &&&proxy_pass http://ghost_& && &&&proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_& && &&&proxy_set_header Host $http_& && &&&proxy_set_header X-Forwarded-Proto $& && &&&proxy_hide_header X-Powered-By;& && && &proxy_http_version 1.1;& && &&&proxy_set_header Connection &&;& & }}8、保存和测试NGINX配置的语法错误:sudo nginx -t9、重载NGINX配置:sudo systemctl reload nginx.service安装Ghost注意:如果您想在相同的VPS上托管多个Ghost博客,则每个Ghost实例必须在一个单独的端口上运行。1、创建文档根目录:sudo mkdir -p /var/ 2、创建一个新的Ghost用户:sudo useradd -c 'Ghost application' ghost3、下载Ghostcurl -L
-o ghost.zip4、解压到/ var/www/ghost目录(推荐安装位置):sudo unzip -uo ghost.zip -d /var/www/ghostrm ghost.zip5、移动到新的Ghost目录:cd /var/www/ghost6、更改/ var/ www/ghost目录的所有权:sudo chown -R ghost:ghost .7、切换到新的ghost用户:sudo su - ghost8、导航到文档根/var/www/ghost:cd /var/www/ghost9、仅使用生产依赖项安装Ghost。完成后,就安装了Ghost:npm install --production10、通过更改配置中的生产对象的url、邮件和数据库属性来配置Ghost。js文件:cp config.example.js config.jsvim /var/www/ghost/config.js&&var path = require('path'),& & config = {// ### Production// When running Ghost in the wild, use the production environment.// Configure your URL and mail settings hereproduction: {& & url: 'https://blog.domain.tld',& & mail: {& && &&&transport: 'SMTP',& && &&&options: {& && && && &service: 'Mailgun',& && && && &auth: {& && && && && & user: '',& && && && && & pass: ''& && && && &}& && &&&}& & },& & database: {& && &&&client: 'mysql',& && &&&connection: {& && && && &host: '127.0.0.1',& && && && &user: 'your_database_user',& && && && &password: 'your_database_password',& && && && &database: 'your_database_name',& && && && &charset: 'utf8'& && &&&},& && &&&debug: false& & },& & // . . .& & // . . .注意:您也应该配置邮件设置。查阅官方的Ghost文档如何做到这一点。
11、在生产环境中启动Ghost:npm start --productionGhost现在正在运行。博客前端和管理界面都使用HTTPS加密,而HTTP / 2也在工作。你可以在打开你的浏览器和访问网站。别忘了替换blog.domain。tld与您的域名。12、通过按CTRL + C关闭Ghost进程,从Ghost用户退出到您在开始创建的非root用户:exit运行Ghost作为系统服务如果你用VPS结束你的终端会话,你的博客也会被关闭。那不是很好。为了避免这种情况,我们将使用systemd。它将使我们的博客每天24小时不间断。
创建Ghost服务systemd单元文件。运行sudo sudo vim /etc/systemd/system/ghost.服务及复制/粘贴以下内容:[Unit]Description=Ghost - the professional publishing platformDocumentation=https://docs.ghost.org/v0.11.11/docsAfter=network.target [Service]Type=simple# Edit WorkingDirectory, User and Group as neededWorkingDirectory=/var/www/ghostUser=ghostGroup=ghostExecStart=/usr/bin/npm start --productionExecStop=/usr/bin/npm stop --productionRestart=alwaysSyslogIdentifier=Ghost [Install]WantedBy=multi-user.target启用和开始ghost.service:sudo systemctl enable ghost.service && sudo systemctl start ghost.service检查ghost.service状态:sudo systemctl status ghost.service && sudo systemctl is-enabled ghost.service导航到 /并创建一个ghost管理员用户。尽快做到这一点!
结论就是这样。我们现在有了一个完全功能的ghost博客。您的服务器在客户端支持时通过HTTP / 2传递内容。如果你想改变默认的ghost小精灵一个自定义一个主题,主题你可以下载并解压缩到/var/www/ghost/content/themes文件夹并选择通过ghost管理界面,位于。
本文转载于:
我的恩山、我的无线
The best wifi forum is right here.
我还以为是Symantec Ghost呢...
我的恩山、我的无线
The best wifi forum is right here.
Powered by用&grep&搜索文本文件如果您要在几个文本文件中查找一字符串,可以使用&grep&命令。&grep&在文本中搜索指定的字符串。举个例子:假设您正在&/usr/src/linux/Documentation&目录下搜索带字符串&magic&的文件:
$ grep magic /usr/src/linux/Documentation/*sysrq.txt:* How do I enable the magic SysRQ key?
sysrq.txt:* How do I use the magic SysRQ key?
其中文件&sysrp.txt&包含该字符串,讨论的是 SysRQ 的功能。默认情况下,&grep&只搜索当前目录。如果此目录下有许多子目录,&grep&会以如下形式列出:grep: sound: Is a directory这可能会使&grep&的输出难于阅读。这里有两种解决的办法:明确要求搜索子目录:grep -r忽略子目录:grep -d skip当然,如果预料到有许多输出,您可以通过&管道将其转到&less&上阅读:$ grep magic /usr/src/linux/Documentation/* | less这样,您就可以更方便地阅读。有一点要注意,您必需提供一个文件过滤方式(搜索全部文件的话用*)。如果您忘了,&grep&会一直等着,直到该程序被中断。如果您遇到了这样的情况,按ctrl+c,然后再试。(important!!)
下面是一些有意思的命令行参数:grep&-i&pattern files:不区分大小写地搜索。默认情况区分大小写,grep&-l&pattern files :只列出匹配的文件名,grep&-L&pattern files :列出不匹配的文件名,grep&-w&pattern files:只匹配整个单词,而不是字符串的一部分(如匹配&magic&,而不是&magical&),grep&-C number&pattern files:匹配的上下文分别显示[number]行,grep&pattern1 | pattern2&files :显示匹配 pattern1 或 pattern2的行,grep pattern1 files&|&grep pattern2 :显示既匹配 pattern1 又匹配pattern2 的行。这里还有些用于搜索的特殊符号:\& 和 \& 分别标注单词的开始与结尾。&例如:&grep man * 会匹配 &Batman&、&manic&、&man&等,&grep '\&man' * 匹配&manic&和&man&,但不是&Batman&,&grep '\&man\&' 只匹配&man&,而不是&Batman&或&manic&等其他的字符串。&'^':指匹配的字符串在行首,&'$':指匹配的字符串在行尾,&如果您不习惯命令行参数,可以试试图形界面的&grep&,如 reXgrep 。这个软件提供 AND、OR、NOT 等语法,还有漂亮的按钮 :-) 。如果您只是需要更清楚的输出,不妨试试 fungrep 。
Grep的常用命令语法1. 双引号引用和单引号引用在g r e p命令中输入字符串参数时,最好将其用双引号括起来。例如:&m y s t r i n g&。这样做有两个原因,一是以防被误解为 s h e l l命令,二是可以用来查找多个单词组成的字符串,例如:&jet plane&,如果不用双引号将其括起来,那么单词 p l a n e将被误认为是一个文件,查询结果将返回&文件不存在&的错误信息。在调用变量时,也应该使用双引号,诸如: g r e p&$ M Y VA R&文件名,如果不这样,将没有返回结果。在调用模式匹配时,应使用单引号.[root@mypc ]# echo `grep 123 111.txt`& (#注意是反单引号)
2. 常用的g r e p选项有:-c&& 只输出匹配行的计数。-i&& 不区分大小写(只适用于单字符)。-h&& 查询多文件时不显示文件名。-l&& 查询多文件时只输出包含匹配字符的文件名。-n&& 显示匹配行及行号。-s&& 不显示不存在或无匹配文本的错误信息。-v&& 显示不包含匹配文本的所有行。
3. 特殊的&在多个文件中进行查询$ grep &sort&*.doc&&&& ( #在当前目录下所有. d o c文件中查找字符串&s o r t&)&$ grep &sort it& *&&&&& (#或在所有文件中查询单词&sort it&)接下来的所有示例是指在单个文件中进行查询4. 行匹配$ grep -c &48&P data.f$ 4&&&&&&&&&&&&&&&&&&&&& (#g r e p返回数字4,意义是有4行包含字符串&4 8&P。)$ grep &48&P data.f&&&&&&&&& (#显示包含&4 8&P字符串的4行文本)
5. 显示满足匹配模式的所有行行数:[root@mypc oid2000]# grep -n .txt1:12343:1234ab
6. 精确匹配[root@mypc oid2000]# grep &1234\&& 111.txt1234
7. 查询空行,查询以某个条件开头或者结尾的行。结合使用^和$可查询空行。使用- n参数显示实际行数[root@mypc oid2000]# grep -n &^$& 111.txt&&& (返回结果 2:&& #说明第二行是空行)[root@mypc oid2000]# grep -n &^abc& 111.txt (#查询以abc开头的行)[root@mypc oid2000]# grep -n &abc$& 111.txt& (#查询以abc结尾的行)
8. 匹配特殊字符,查询有特殊含义的字符,诸如$ . & & * [] ^ | \ + ? ,必须在特定字符前加\。[root@mypc oid2000]# grep& &\.& 111.txt& (#在111.txt中查询包含&.&的所有行)[root@mypc oid2000]# grep& &my\.conf&& 111.txt (#查询有文件名my. c o n f的行)
9. 目录的查询[root@mypc oid2000]# ls -l |grep &^d&&&&&& (#如果要查询目录列表中的目录)[root@mypc oid2000]# ls -l |grep &^d[d]&&&& (#在一个目录中查询不包含目录的所有文件)[root@mypc]# ls -l |grpe &^d&..x..x& (#查询其他用户和用户组成员有可执行权限的目录集合)
阅读(...) 评论()grep -E '123|abc' filename
// 找出文件(filename)中包含123或者包含abc的行
egrep '123|abc' filename
// 用egrep同样可以实现
awk '/123|abc/' filename
// awk 的实现方式
grep pattern1 files
| grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。
3、其他操作
grep -i pattern files :不区分大小写地搜索。默认情况区分大小写,
grep -l pattern files :只列出匹配的文件名,
grep -L pattern files :列出不匹配的文件名,
grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’),
grep -C number pattern files :匹配的上下文分别显示[number]行
转自http://find11.blog.163.com/blog/static//
Linux: grep多个关键字“与”和“或”
Linux: grep多个关键字“与”和“或”
http://www.tuicool.com/articles/6VJzI3v
grep 查找两个以上条件
grep -E &\.pcm|\.wav& tbnr_Result.txt | wc -l
grep -E 即 egrep 匹配多个
grep --help
-E, --extended-regexp
PATTERN 是一个可扩展的正则表达式(缩写为 ERE)
‘egrep’即‘grep -E’。
匹配单个,...
grep 同时排除多个关键字
最近查日志和文件所以管道grep命令用的多一点,一些比较实用的方法就收藏转载一下,请支持原版,原文地址是:http://www.cnblogs.com/smallrookie/p/7058278.ht...
没有更多推荐了,

我要回帖

更多关于 grep-e 的文章

 

随机推荐