`

Linux常用命令

 
阅读更多

一、Linux进程相关命令

ps -ef | grep java

pstree -p 21239查看进程21239所有的子进程和线程。

pwdx 21239查看进程21239程序命令的目录。

 

二、grep命令

1、日志查找方法,可以用通配符查某台主机上的所有服务器

grep "关键字" /wls/applogs/custom-*/error.log

 

2、grep '关键字' error.log:在error.log中搜索'关键字'

3、grep -C10 '关键字' error.log:显示关键字前后10行记录

4、grep '关键字' error.log? -10[调整此参数,至能看到具体报错原因]

 

 

三、less命令(精简)

1、less error.log:对文件或其它输出进行分页显示

2、less error.log

        / 输入关键字,从文件头往后查,按n从前往后查找下一个关键字,按N从后往前查找下一个关键字

        ? Shift+G到文件尾,输入关键字,从文件尾往前查,按n从后往前查找下一个关键字,按N从前往后查找下一个关键字

3、less -N error.log

        在显示error.log的内容时,让其显示行号

4、less -Mp '2015-06-13' error.log

        查看某一天的日志是从哪一行开始的

5、less -Mp '00:11:41' error.log

        查看error.log从00:11:41开始的日志,同时显法读取文件的百分比、行号及总行数

 

四、Linux文件内容查看命令-less (详述)

less工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大;由于less的内容太多,下面把最常用的介绍一下。

 

1.less的语法格式

less [参数] 文件

常用参数

-c 从顶部(从上到下)刷新屏幕,并显示文件内容。而不是通过底部滚动完成刷新;

-f 强制打开文件,二进制文件显示时,不提示警告;

-i 搜索时忽略大小写;除非搜索串中包含大写字母;

-I 搜索时忽略大小写,除非搜索串中包含小写字母;

-m 显示读取文件的百分比;

-M 显法读取文件的百分比、行号及总行数;

-N 在每行前输出行号;

-p  pattern 搜索pattern;比如在/etc/profile搜索单词MAIL,就用 less -p MAIL /etc/profile

-s 把连续多个空白行作为一个空白行显示;

-Q 在终端下不响铃。

 

2.less的动作命令

        进入less后,我们得学几个动作,这样更方便 我们查阅文件内容。

回车键 向下移动一行;

y 向上移动一行;

空格键 向下滚动一屏;

b 向上滚动一屏;

d 向下滚动半屏;

h less的帮助;

u 向上洋动半屏;

w 可以指定显示哪行开始显示,是从指定数字的下一行显示;比如指定的是6,那就从第7行显示;

g 跳到第一行;

G 跳到最后一行;

p n% 跳到n%,比如 10%,也就是说比整个文件内容的10%处开始显示;

/pattern 搜索pattern ,比如 /MAIL表示在文件中搜索MAIL单词;

v 调用vi编辑器;

q 退出less

n 下一关键字

N 反向下一关键字

!command 调用SHELL,可以运行命令;比如!ls 显示当前列当前目录下的所有文件

 

五、cat 命令的用法

这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。

建议大家掌握这个常用的linux命令,在显示文件内容或结合wc命令统计文件行数时,经常用得到。

cat主要有三大功能:

1.一次显示整个文件:cat filename

2.从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件.

3.将几个文件合并为一个文件:cat file1 file2 > file

 

命令参数:

-n, --number     对输出的所有行编号,由1开始对所有输出的行数编号

 

代码示例:

1、cat log2012.log

2、cat -n log2012.log log2013.log

把 log2012.log 的文件内容加上行号后输入 log2013.log 这个文件里

3、cat -b log2012.log log2013.log log.log

把 log2012.log 和 log2013.log 的文件内容加上行号(空白行不加)之后将内容附加到 log.log 里。

4、cat -n log2012.log > log.log

把 log2012.log 的文件内容加上行号后输入 log.log 这个文件里

 

 

六、AWK 简明教程

1、起步上台:

我从netstat命令中提取了如下信息作为用例:

$ cat netstat.txt

 

下面是最简单最常用的awk示例,其输出第1列和第4例,

#其中单引号中的被大括号括着的就是awk的语句,注意,其只能被单引号包含。

#其中的$1..$n表示第几例。注:$0表示整个行。

 

$ awk '{print $1, $4}' netstat.txt

 

我们再来看看awk的格式化输出,和C语言的printf没什么两样:

$ awk '{printf "%-8s %-8s %-8s %-18s %-22s %-15s\n",$1,$2,$3,$4,$5,$6}' netstat.txt

 

 

2、脱掉外套

过滤记录

我们再来看看如何过滤记录(下面过滤条件为:第三列的值为0 && 第6列的值为LISTEN)

$ awk '$3==0 && $6=="LISTEN" ' netstat.txt

 

其中的“==”为比较运算符。其他比较运算符:!=, >, <, >=, <=

 

我们来看看各种过滤记录的方式:

$ awk ' $3>0 {print $0}' netstat.txt

 

如果我们需要表头的话,我们可以引入内建变量NR:

$ awk '$3==0 && $6=="LISTEN" || NR==1 ' netstat.txt

 

再加上格式化输出:

$ awk '$3==0 && $6=="LISTEN" || NR==1 {printf "%-20s %-20s %s\n",$4,$5,$6}' netstat.txt

 

内建变量

说到了内建变量,我们可以来看看awk的一些内建变量:

$0 当前记录(这个变量中存放着整个行的内容)

$1~$n 当前记录的第n个字段,字段间由FS分隔

FS 输入字段分隔符 默认是空格或Tab

NF 当前记录中的字段个数,就是有多少列

NR 已经读出的记录数,就是行号,从1开始,如果有多个文件话,这个值也是不断累加中。

 

怎么使用呢,比如:我们如果要输出行号:

$ awk '$3==0 && $6=="ESTABLISHED" || NR==1 {printf "%02s %s %-20s %-20s %s\n",NR, FNR, $4,$5,$6}' netstat.txt

 

指定分隔符

$  awk  'BEGIN{FS=":"} {print $1,$3,$6}' /etc/passwd

上面的命令也等价于:(-F的意思就是指定分隔符)

$ awk  -F: '{print $1,$3,$6}' /etc/passwd

注:如果你要指定多个分隔符,你可以这样来:

awk -F '[;:]'

 

再来看一个以\t作为分隔符输出的例子(下面使用了/etc/passwd文件,这个文件是以:分隔的):

$ awk  -F: '{print $1,$3,$6}' OFS="\t" /etc/passwd

 

3、脱掉衬衫

字符串匹配

我们再来看几个字符串匹配的示例:

$ awk '$6 ~ /FIN/ || NR==1 {print NR,$4,$5,$6}' OFS="\t" netstat.txt

$ awk '$6 ~ /WAIT/ || NR==1 {print NR,$4,$5,$6}' OFS="\t" netstat.txt

 

上面的第一个示例匹配FIN状态, 第二个示例匹配WAIT字样的状态。其实 ~ 表示模式开始。/ /中是模式。这就是一个正则表达式的匹配。

 

其实awk可以像grep一样的去匹配第一行,就像这样:

$ awk '/LISTEN/' netstat.txt

 

我们可以使用 “/FIN|TIME/” 来匹配 FIN 或者 TIME :

$ awk '$6 ~ /FIN|TIME/ || NR==1 {print NR,$4,$5,$6}' OFS="\t" netstat.txt

 

再来看看模式取反的例子:

$ awk '$6 !~ /WAIT/ || NR==1 {print NR,$4,$5,$6}' OFS="\t" netstat.txt

或是:

$ awk '!/WAIT/' netstat.txt

 

折分文件

awk拆分文件很简单,使用重定向就好了。下面这个例子,是按第6例分隔文件,相当的简单(其中的NR!=1表示不处理表头)。

 

$ awk 'NR!=1{print > $6}' netstat.txt

 

你也可以把指定的列输出到文件:

$ awk 'NR!=1{print $4,$5 > $6}' netstat.txt

 

统计

下面的命令计算所有的C文件,CPP文件和H文件的文件大小总和。

$ ls -l  *.cpp *.c *.h | awk '{sum+=$5} END {print sum}'

 

几个花活

最后,我们再来看几个小例子:

#从file文件中找出长度大于80的行

awk 'length>80' file

 

#按连接数查看客户端IP

netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr

 

#打印99乘法表

seq 9 | sed 'H;g' | awk -v RS='' '{for(i=1;i<=NF;i++)printf("%dx%d=%d%s", i, NR, i*NR, i==NR?"\n":"\t")}'

 

分享到:
评论

相关推荐

    最全Linux常用命令大全.pdf

    以下是一些关于Linux常用命令的详细说明: 1. **pwd**:`pwd`(Print Working Directory)命令用于显示当前工作目录,即用户当前所在的目录路径。 2. **cd**:`cd`命令用于切换目录。例如,`cd /`进入根目录,`cd ...

    linux常用命令大全.pdf

    ### Linux常用命令详解 #### 一、文件管理 1. **ls**:此命令用于列出当前目录中的文件和子目录。通过使用不同的选项,可以改变其输出格式。 - `-l`:使用长格式列表输出,包括文件权限、拥有者、组、大小等详细...

    LINUX常用命令全集

    LINUX常用命令全集 LINUX常用命令全集 LINUX常用命令全集 LINUX常用命令全集 LINUX常用命令全集 LINUX常用命令全集 LINUX常用命令全集 LINUX常用命令全集 LINUX常用命令全集 LINUX常用命令全集 LINUX常用命令全集 ...

    最全Linux常用命令大全-linux常用命令全集

    "最全Linux常用命令大全-linux常用命令全集" 本文档对 Linux 中最常用的命令进行了详细的总结和说明,涵盖了文件和目录管理、磁盘空间管理等方面的命令。 文件和目录管理命令 1. `pwd` 命令:显示当前目录 `pwd`...

    Linux常用命令详解.pdf

    ### Linux常用命令详解知识点 #### 一、命令格式与通配符 - **命令格式**: - **命令**:指定要执行的操作。 - **选项**:改变命令的行为方式,通常以`-`开头,多个选项可以用空格或直接连接的方式给出。 - **...

    linux常用命令大全.md

    linux常用命令大全 1. **ls**:列出目录内容 2. **cd**:改变当前目录 3. **pwd**:显示当前工作目录 4. **mkdir**:创建目录 5. **rmdir**:删除空目录 6. **cp**:复制文件或目录 7. **mv**:移动或重命名文件或...

Global site tag (gtag.js) - Google Analytics