每天一个linux命令(13):less 命令

less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看,但若使用了 less 时,就可以使用 [pageup] [pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。 1.命令格式: less [参数]  文件 2.命令功能: less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。 3.命令参数: -b <缓冲区大小> 设置缓冲区的大小 -e  当文件显示结束后,自动离开 -f  强迫打开特殊文件,例如外围设备代号、目录和二进制文件 -g  只标志最后搜索的关键词 -i  忽略搜索时的大小写 -m  显示类似more命令的百分比 -N  显示每行的行号 -o <文件名> 将less 输出的内容在指定文件中保存起来 -Q  不使用警告音 -s  显示连续空行为一行 -S  行过长时间将超出部分舍弃 -x <数字> 将“tab”键显示为规定的数字空格 /字符串:向下搜索“字符串”的功能 ?字符串:向上搜索“字符串”的功能 n:重复前一个搜索(与 / 或 ? 有关) N:反向重复前一个搜索(与 / 或 ? 有关) b  向后翻一页 d  向后翻半页 h  显示帮助界面 Q  退出less 命令 u  向前滚动半页 y  向前滚动一行 空格键 滚动一行 回车键 滚动一页 [pagedown]: 向下翻动一页 [pageup]:   向上翻动一页 4.使用实例: 实例1:查看文件 命令: less log2013.log 输出: 实例2:ps查看进程信息并通过less分页显示 命令: ps -ef |less 输出: 实例3:查看命令历史使用记录并通过less分页显示 命令: history | less 输出: [root@localhost test]# history | less 22  scp -r tomcat6.0.32 root@192.168.120.203:/opt/soft 23  cd .. 24  scp -r web root@192.168.120.203:/opt/ 25  cd soft 26  ls 27  scp -r jdk1.6.0_16/ root@192.168.120.203:/opt/soft 28  clear 29  vim /etc/profile 30  vim /etc/profile […]

每天一个linux命令(12):more命令

more命令,功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上。 more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能 。more命令从前向后读取文件,因此在启动时就加载整个文件。 1.命令格式: more [-dlfpcsu ] [-num ] [+/ pattern] [+ linenum] [file … ] 2.命令功能: more命令和cat的功能一样都是查看文件里的内容,但有所不同的是more可以按页来查看文件的内容,还支持直接跳转行等功能。 3.命令参数: +n      从笫n行开始显示 -n       定义屏幕大小为n行 +/pattern 在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示 -c       从顶部清屏,然后显示 -d       提示“Press space to continue,’q’ to quit(按空格键继续,按q键退出)”,禁用响铃功能 -l        忽略Ctrl+l(换页)字符 -p       通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似 -s       把连续的多个空行显示为一行 -u       把文件内容中的下画线去掉 4.常用操作命令: Enter    向下n行,需要定义。默认为1行 Ctrl+F   向下滚动一屏 空格键  向下滚动一屏 Ctrl+B  返回上一屏 =       输出当前行的行号 :f     输出文件名和当前行的行号 V      调用vi编辑器 !命令   调用Shell,并执行命令 q       退出more 5.命令实例: 实例1:显示文件中从第3行起的内容 命令: more +3 log2012.log 输出: [root@localhost test]# cat log2012.log 2012-01 2012-02 2012-03 2012-04-day1 2012-04-day2 2012-04-day3 ======[root@localhost test]# more +3 log2012.log 2012-03 2012-04-day1 2012-04-day2 2012-04-day3 ======[root@localhost test]#   实例2:从文件中查找第一个出现”day3″字符串的行,并从该处前两行开始显示输出 命令: more +/day3 log2012.log 输出: [root@localhost test]# more +/day3 log2012.log …skipping 2012-04-day1 2012-04-day2 2012-04-day3 2012-05 2012-05-day1 […]

每天一个linux命令(11):nl命令

nl命令在linux系统中用来计算文件中行号。nl 可以将输出的文件内容自动的加上行号!其默认的结果与 cat -n 有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等等的功能。 1.命令格式: nl [选项]… [文件]… 2.命令参数: -b  :指定行号指定的方式,主要有两种: -b a :表示不论是否为空行,也同样列出行号(类似 cat -n); -b t :如果有空行,空的那一行不要列出行号(默认值); -n  :列出行号表示的方法,主要有三种: -n ln :行号在萤幕的最左方显示; -n rn :行号在自己栏位的最右方显示,且不加 0 ; -n rz :行号在自己栏位的最右方显示,且加 0 ; -w  :行号栏位的占用的位数。 -p 在逻辑定界符处不重新开始计算。 3.命令功能: nl 命令读取 File 参数(缺省情况下标准输入),计算输入中的行号,将计算过的行号写入标准输出。 在输出中,nl 命令根据您在命令行中指定的标志来计算左边的行。 输入文本必须写在逻辑页中。每个逻辑页有头、主体和页脚节(可以有空节)。 除非使用 -p 标志,nl 命令在每个逻辑页开始的地方重新设置行号。 可以单独为头、主体和页脚节设置行计算标志(例如,头和页脚行可以被计算然而文本行不能)。 4.使用实例: 实例一:用 nl 列出 log2012.log 的内容 命令: nl log2012.log 输出: [root@localhost test]# nl log2012.log 1  2012-01 2  2012-02     3  ======[root@localhost test]# 说明: 文件中的空白行,nl 不会加上行号 实例二:用 nl 列出 log2012.log 的内容,空本行也加上行号 命令: nl -b a log2012.log 输出: [root@localhost test]# nl -b a log2012.log 1  2012-01 2  2012-02 3 4 5  ======[root@localhost test]# 实例3:让行号前面自动补上0,统一输出格式 命令: 输出: [root@localhost test]# nl -b a -n rz log2014.log 000001  2014-01 000002  2014-02 000003  2014-03 000004  2014-04 000005  2014-05 000006  2014-06 000007  2014-07 000008  2014-08 000009  2014-09 000010  2014-10 000011  2014-11 000012  2014-12 000013  ======= […]

为nginx增加nginx_http_concat模块

非覆盖安装 因为需要加入这个新的nginx模块,所以需要重新编译nginx。为了不影响之前的ngxin,所以我们打算采用[nginx添加模块(非覆盖安装][]中的方法来实现飞覆盖安装。主要步骤如下 试用nginx -V来查看nginx的版本以及nginx带上的参数,返回如下结果,configure arguments后面是我省略了,你可以自己记住那个编译的版本试用了什么configure,然后下面会用到 nginx version: nginx/1.2.8 built by gcc 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC) TLS SNI support enabled configure arguments: … 然后去nginx上面下载对应版本的的nginx的源代码,并解压缩 wget http://nginx.org/download/nginx-1.2.8.tar.gz tar xzvf nginx-1.2.8.tar.gz 按照nginx-http-concat上面说的,git clone一下它的源码 git clone git://github.com/alibaba/nginx-http-concat.git 用第一步获得的configure aguments,然后在最后没加上如下配置,调用./configure来配置 –add-module=/home/user/install/nginx-http-concat 配置OK之后就调用make make make完之后在objs目录下面找到nginx文件,然后覆盖掉当前的nginx文件即可 配置静态目录启用nginx-http-concat 可以参考 nginx-http-concat上面的来配置,我这边是在location下面增加了两行 concat on; concat_max_files 20; location /js/ {     # 打开concat 功能     # 默认关闭     concat on;     # 允许concat最大的文件数(http://m114.org/test/??1.css,2.css,3.css…10.css) 默认最大设置十个文件。     # (默认: 10)     # concat_max_files 10; […]

MySQL创建用户与授权方法

一, 创建用户: 命令:CREATE USER ‘username’@’host’ IDENTIFIED BY ‘password’; 说明:username – 你将创建的用户名, host – 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost, 如果想让该用户可以从任意远程主机登陆,可以使用通配符%. password – 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器. 例子: CREATE USER ‘dog’@’localhost’ IDENTIFIED BY ‘123456’; CREATE USER ‘pig’@’192.168.1.101_’ IDENDIFIED BY ‘123456’; CREATE USER ‘pig’@’%’ IDENTIFIED BY ‘123456’; CREATE USER ‘pig’@’%’ IDENTIFIED BY ”; CREATE USER ‘pig’@’%’; 二,授权: 命令:GRANT privileges ON databasename.tablename TO ‘username’@’host’ 说明: privileges […]

打开MySQL数据库远程访问的权限

Mysql为了安全性,在默认情况下用户只允许在本地登录,可是在有此情况下,还是需要使用用户进行远程连接,因此为了使其可以远程需要进行如下操作: 一、允许root用户在任何地方进行远程登录,并具有所有库任何操作权限,具体操作如下: 在本机先使用root用户登录mysql: mysql -u root -p”youpassword” 进行授权操作: mysql>GRANT ALL PRIVILEGES ON *.* TO ‘root’@’%’ IDENTIFIED BY ‘youpassword’ WITH GRANT OPTION; 重载授权表: FLUSH PRIVILEGES; 退出mysql数据库: exit 二、允许root用户在一个特定的IP进行远程登录,并具有所有库任何操作权限,具体操作如下: 在本机先使用root用户登录mysql: mysql -u root -p”youpassword” 进行授权操作: GRANT ALL PRIVILEGES ON *.* TO root@”172.16.16.152″ IDENTIFIED BY “youpassword” WITH GRANT OPTION; 重载授权表: FLUSH PRIVILEGES; 退出mysql数据库: exit 三、允许root用户在一个特定的IP进行远程登录,并具有所有库特定操作权限,具体操作如下: 在本机先使用root用户登录mysql: mysql -u […]

MAC OS 10.10 转发80(HTTP)端口的方法

MAC OS 本质上还是 Unix 系统, Unix 系统大多默认情况下非root用户是无法使用小于1024的常用端口的.这时候如果你开发中需要在普通用户下用到80端口, 比如 tomcat, 比如 vitualbox 下构建了一个 http 服务, 若你想直接通过 浏览器的 localhost 访问的话(比用加上莫名其妙的”:端口”的话)你就需要做一些系统端口转发的工作. MAC OS 10.10 上 pfctl 就可以做这一件事情, 详情请参见 man pfctl 或者 man pf.conf 具体操作如下: 首先在 /etc/pf.anchors/ 新建一个 http 文件内容如下: rdr pass on lo0 inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080 rdr pass […]

每天一个linux命令(10):cat 命令

cat命令的用途是连接文件或标准输入并打印。这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。 1.命令格式: cat [选项] [文件]… 2.命令功能: cat主要有三大功能: 1.一次显示整个文件:cat filename 2.从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件. 3.将几个文件合并为一个文件:cat file1 file2 > file 3.命令参数: -A, –show-all           等价于 -vET -b, –number-nonblank    对非空输出行编号 -e                       等价于 -vE -E, –show-ends          在每行结束处显示 $ -n, –number     对输出的所有行编号,由1开始对所有输出的行数编号 -s, –squeeze-blank  有连续两行以上的空白行,就代换为一行的空白行 -t                       与 -vT 等价 -T, –show-tabs          将跳格字符显示为 ^I -u                       (被忽略) -v, –show-nonprinting   使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外 4.使用实例: 实例一:把 log2012.log 的文件内容加上行号后输入 log2013.log 这个文件里 命令: cat -n log2012.log log2013.log 输出: [root@localhost test]# cat log2012.log 2012-01 2012-02 ======[root@localhost test]# cat log2013.log 2013-01 2013-02 2013-03 ======[root@localhost test]# cat -n log2012.log log2013.log 1  2012-01 2  2012-02 3 4 5  ====== 6  2013-01 7  2013-02 8 9 10  2013-03 11  ======[root@localhost test]# 说明: 实例二:把 log2012.log 和 log2013.log 的文件内容加上行号(空白行不加)之后将内容附加到 log.log 里。 命令: cat -b log2012.log log2013.log log.log 输出: [root@localhost test]# cat -b log2012.log log2013.log log.log 1  2012-01 2  2012-02 3  ====== 4  2013-01 5  2013-02 6  2013-03 […]

每天一个linux命令(9):touch 命令

linux的touch命令不常用,一般在使用make的时候可能会用到,用来修改文件时间戳,或者新建一个不存在的文件。 1.命令格式: touch [选项]… 文件… 2.命令参数: -a   或–time=atime或–time=access或–time=use  只更改存取时间。 -c   或–no-create  不建立任何文档。 -d  使用指定的日期时间,而非现在的时间。 -f  此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。 -m   或–time=mtime或–time=modify  只更改变动时间。 -r  把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。 -t  使用指定的日期时间,而非现在的时间。 3.命令功能: touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间。 4.使用范例: 实例一:创建不存在的文件 命令: touch log2012.log log2013.log 输出: [root@localhost test]# touch log2012.log log2013.log [root@localhost test]# ll -rw-r–r– 1 root root    0 10-28 16:01 log2012.log -rw-r–r– 1 root root    0 10-28 16:01 log2013.log 如果log2014.log不存在,则不创建文件 [root@localhost test]# touch -c log2014.log [root@localhost test]# ll -rw-r–r– 1 root root    0 10-28 16:01 log2012.log -rw-r–r– 1 root root    0 10-28 16:01 log2013.log 实例二:更新log.log的时间和log2012.log时间戳相同 命令: touch -r log.log log2012.log 输出: [root@localhost test]# ll -rw-r–r– 1 root root    0 10-28 16:01 log2012.log -rw-r–r– 1 root root    0 10-28 16:01 log2013.log -rw-r–r– 1 root root    0 10-28 14:48 log.log [root@localhost test]# touch -r log.log log2012.log [root@localhost test]# ll -rw-r–r– 1 root root    0 10-28 14:48 log2012.log -rw-r–r– 1 root root    0 10-28 16:01 log2013.log -rw-r–r– 1 root root    0 10-28 14:48 log.log 实例三:设定文件的时间戳 命令: touch -t 201211142234.50 log.log 输出: [root@localhost test]# ll -rw-r–r– 1 root root    0 10-28 14:48 log2012.log -rw-r–r– 1 root root    0 10-28 16:01 log2013.log -rw-r–r– 1 root root    0 10-28 14:48 log.log [root@localhost test]# touch -t 201211142234.50 log.log [root@localhost test]# ll -rw-r–r– 1 root root    0 10-28 14:48 log2012.log -rw-r–r– 1 root root    0 10-28 16:01 log2013.log -rw-r–r– 1 root root    0 2012-11-14 log.log 说明: -t  time 使用指定的时间值 time 作为指定文件相应时间戳记的新值.此处的 time规定为如下形式的十进制数: […]

apache通过user-agent和.htaccess(rewrite)判断网站跳转

首先要确实服务器是使用apache服务来提供Web服务的,并加载了mod_rewrite模块,具体加载mod_rewrite模块方法,网上有详细教程,请自行百度。 让apache服务器支持.htaccess 只要简单修改一下apache的httpd.conf配置就可以让APACHE支 持.htaccess了:AllowOverride None 修改为: AllowOverride All 启用.htaccess后,在现有普通网站基础上,再新建一个手机网站,也可以在现有网站根目录下新建子目录,如现有网站为www.baidu.com,新建手机站为m.baidu.com,或者新建子目录方式:www.baidu.com/m/ 普通站和手机站使用相同数据库,程序相同,只是显示用的模板不同。 ***在普通网站根目录下新建 .htaccess 文件: # 将 RewriteEngine 模式打开RewriteEngine OnRewriteBase /# Rewrite 规则 判断用户浏览器类型,如果是手机就跳转到手机网站RewriteCond %{HTTP_USER_AGENT} “(baidu.Transcoder|mini|android|blackberry|googlebot-mobile|iemobile|Mobile|ipad|iphone|ipod|opera mobile|palmos|webos|ucweb|Windows Phone|Symbian|hpwOS)” [NC]RewriteRule ^(.*)$ http://m.baidu.com/$1 [L,R=302] 上面的代码,自动判断手机用户然后跳转到手机网站,并带有相同的参数,如手机用户输入的网址是http://www.baidu.com/index.php?go=1那么系统跳转时会自动加上参数http://m.baidu.com/index.php?go=1。 这里需要说明下,因为RewriteRule ^(.*)$ http://m.baidu.com/$1 [L,R=302]的加入,如果手机页面中有需要访问非手机网站资源时,如其他子目录或二级网内容,就需要设置相应正则排除指定网站或文件,如: RewriteRule ^(.*?(?