Linux 常用命令(推荐开发兼服务器简单维护的童鞋们看看)

做为一名程序员,势必或多或少的要和服务器打交道,不求像那些搞运维的人一样,Linux出神入化,但也要会一些基本的命令。它会使你的程序之路,更加开阔。

以下是本人工作中总结的一些组合命令,太简单的就不介绍了。

一  查看文件属性,要求显示完整的时间

1 ls -full-time  -- 显示当前文件夹的下的所有文件

2 ls --full-time  文件或文件路径 -- 显示某个文件夹下或某个文件的文件

二 、查看文件内容

  虽然查看文件的命令有很多,像cat,more,head,tail,sed,vi 但是,我们还是应该根据

自己的需求进行选择使用,选择好了事半功倍。

1.搜索查看文件内容。

 less register/index2.jsp  -- less 文件路径或者文件名

使用less有个好处,你可以在查看的过程中进行搜索。执行完"less 文件路径或者文件名"

命令后,按键盘的"/" 键,然后在Linux终端输入你要查找的字符串,按Enter,就可以查到

你刚才输入的关键字,继续按Enter,会一直往下搜索。

2 . 搜索查看并做修改。

 vi register/index2.jsp  -- vi 文件路径或者文件名

vi 查看的模式和less相似,也是执行完命令后,可以输入要查找的字符串,但是,它区分向上查找、向下查找

/pattern<Enter> :向下查找pattern匹配字符串

?pattern<Enter>:向上查找pattern匹配字符串

使用了查找命令之后,使用如下两个键快速查找:

n:按照同一方向继续查找

N:按照反方向查找

pattern是需要匹配的字符串,例如:

1:  /abc<Enter>      -- 查找abc2: 
2: abc <Enter>      -- 查找abc单词(注意前后的空格)

除此之外,pattern还可以使用一些特殊字符,包括(/、^、$、*、.),其中前三个这两个是vi与vim通用的,“/”为转义字符。

1:  /^abc<Enter>    -- 查找以abc开始的行

2:  /abc$<Enter>    --查找以abc结束的行

3:  //^abc<Enter>   --查找^tabc字符串

3. sed 显示指定行范围的内容

--查看文件的第10到第20行

sed -n '10,20p' action.log

随便提一句,sed 还可以删除指定行范围的内容

-- 删除第4到第6行

   sed '4,6d' fileName

-- 删除包含"haha"的行到包含"hehe"的行之间的行

   sed '/haha/,/hehe/d' fileName

-- 删除包含"haha"的行到第十行的内容

   sed '/haha/,10d' datafile

退出sed命令,按0

4.tail 经常被用来动态查看日志,调试程序。相信有过服务器维护经验的小伙伴们,都深有体会。

你在浏览器点击相应的功能,Linux终端会将你刚才点击功能的日志动态的显示在屏幕上。

eg:动态查看 mylog.out 倒数200行日志。

tail -200n mylog.out

5 more 和 cat 就是纯查看。

 more mylog.out  more 可以进行翻页查看。

 cat mylog.out  可以查看多个文件,如何加上 -n 参数的话,会第一个开始开始往下编号。

我个人觉的cat 比较适合jsp找错,我们根据日志记录,去查看Jsp对应的java文件,根据行号找到对应的报错行,进行修改。

6 head 查看前n行

head -n 400 ./logs/catalina_20141120.out |tail -n 100

三 查找包含某个字符串的文件

1 find

find ./ -type f -name '*.out' |xargs grep "hehe"  -- 查找当前目录下包含hehe 字符串的文件

find命令相信大家应该很熟悉了,我稍微介绍下xargs命令,它是一个给命令传递参数的过滤器,也可以说是一个工具。

例如上面的命令,可以解析为它把find的查询结果,传递给grep,即grep是在find的查询结果中查找包含hehe字符串的文件。

以下举几个Xargs使用的例子,方便大家参考。

删除tomcat目录下所有的日志文件

find /tomcat/  -type f -name '*.log' -print0 |xargs -0 rm  -f  -- -print0 和0 的含义是去掉空格。

查找包含A错,但不含B错的日志文件,并打包。

find ./tomcat/logs -type f -name 'catalina_201412*.out' |grep -rni "ExceptionA" |grep -v "ExceptionB" |xargs tar -zcvf  ExcetpionA.tar.gz

2 grep

grep 和find的区别,主要是grep主要是用来查找包含的符串的文件。

grep "ExcetpionA"  *.out 在当前目录中查找,包含字符串“ExcetpionA” ,且以out为后缀的文件。

以下是4个grep常用的参数
-c:只输出匹配行的计数。

-I:不区分大小写(只适用于单字符)

-h:查询多文件时不显示文件名。

-l:查询多文件时只输出包含匹配字符的文件名。

-n:显示匹配行及行号。

-s:不显示不存在或无匹配文本的错误信息。

-v:显示不包含匹配文本的所有行。

grep -e "正则表达式"  文件名 

eg: grep -e "nn*" *.out  -- 查找文件中包含连个以上n字符串的文件

grep -c "字符串" 文件名

eg: grep -c "Exception"  catalina_201412*.out

[myHost@jing logs] catalina_20141201.out:27
[myHost@jing logs]  catalina_20141202.out:8

grep –v "字符串" 文件名  -- 查找不包含字符串的文件

grep -i "字符串" 文件名  --查找包含字符串的文件,且文件不区分大小写。

举 2 个用grep进行查找的综合的例子。

查看包含A错,但不包含B错的日志文件

  cat ./catalina_20141120.out|grep -rni  "Exception" |grep -v "ScormException"
  -i 要查找的字符串不区分大小
  -r 在当前目录或子目录中查找
  -n 显示行号

四 统计文件的数量

ls -lR|grep doc|wc -l

ls
-- l 以长清单模式,显示文件的权限,大小,拥有权等。
-- R 递归显示子目录
-- a 即 all 显示所有目录或文件
-- t 用文件或目录的更改时间排序

grep doc 超找doc文件

wc -l  统计行数

-c 统计下字节数
-w 统计字数

五 打包或解压命令

打包       目的路径               要打包的文件
tar -zcvf /home/xahot.tar.gz      /xahot
tar  -zxvf  xxx.tar.gz

六 复制文件

scp -r ./send_email.jsp thjnpx@114.112.69.156:/jing/send_mail.jsp

-r  -- 拷贝文件夹

rsync


最后介绍一下,将长命令简化的方法。

有时候,我需要写很长的命令来执行任务。长期多次的输入,会显得很繁琐,

那么我们有两种方法解决。

1 写一个shell脚本, 以后执行的时候,我们只要运行我们的shell脚本就行了。

比如 :/home/jyzdy/rsync.sh/rsync_all.sh 192.168.100.200

相信负责服务器的小伙伴们,很熟悉这个命令,就是同步。如果线上有10台服务器,那你每台服务器

都得执行这个命令,更新频繁的话,太累人了。

我们写一个shell脚本。

vi myrsync

内容:
#!/bin/bash
/home/jyzdy/rsync.sh/rsync_all.sh 192.168.148.49

wq 保存

mv myrsync myrsync.sh -- 重命名

chmod 700 myrsync.sh  -- 赋值权限

把该文件移动到bin文件中。

将bin的路径放到系统环境变量中

export PATH=$PATH:/myproject/bin/

哦啦!

以后执行同步,直接myrsync.sh 就OK了,而且Linux 按tab键还自动补全,太方便了。

2 给长命令起别名

alias  myrsync.sh ="/home/jyzdy/rsync.sh/rsync_all.sh 192.168.148.49"

注意:在定义别名时,等号两边不能有空格,否则 shell脚本搞不清楚,你要干啥。

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值