Linux_awk命令详解

Linux_awk命令详解
Linux_awk命令详解

Linux awk命令详解

AWK介绍

0.awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk。

1.awk语言的最基本功能是在文件或字符串中基于指定规则来分解抽取信息,也可以基于指定的规则来输出数据。完整的awk脚本通常用来格式化文本文件中的信息。

2.三种方式调用awk

1) awk [opion] 'awk_script' input_file1 [input_file2 ...]

awk的常用选项option有;

① -F fs : 使用fs作为输入记录的字段分隔符,如果省略该选项,awk使用环境变量IFS的值

② -f filename : 从文件filename中读取awk_script

③ -v var=value : 为awk_script设置变量

2) 将awk_script放入脚本文件并以#!/bin/awk -f 作为首行,给予该脚本可执行权限,然后在shell下通过键入该脚本的脚本名调用之。

3) 将所有的awk_script插入一个单独脚本文件,然后调用: awk -f awk脚本文件input_file(s)

3. awk的运行过程

1) awk_script的组成:

①awk_script可以由一条或多条awk_cmd组成,两条awk_cmd之间一般以NEWLINE分隔

② awk_cmd由两部分组成: awk_pattern { actions }

③ awk_script可以被分成多行书写,必须确保整个awk_script被单引号括起来。

2) awk命令的一般形式:

awk ' BEGIN { actions }

awk_pattern1 { actions }

............

awk_patternN { actions }

END { actions }

' inputfile

其中BEGIN { actions } 和END { actions } 是可选的。

3) awk的运行过程:

①如果BEGIN 区块存在,awk执行它指定的actions。

②awk从输入文件中读取一行,称为一条输入记录。(如果输入文件省略,将从标准输入读取)

③ awk将读入的记录分割成字段,将第1个字段放入变量$1中,第2个字段放入$2,以此类推。$0表示整条记录。字段分隔符使用shell环境变量IFS或由参数指定。

④把当前输入记录依次与每一个awk_cmd中awk_pattern比较,看是否匹配,如果相匹配,就执行对应的actions。如果不匹配,就跳过对应的actions,直到比较完所有的awk_cmd。

⑤当一条输入记录比较了所有的awk_cmd后,awk读取输入的下一行,继续重复步骤③和④,这个过程一直持续,直到awk读取到文件尾。

⑥当awk读完所有的输入行后,如果存在END,就执行相应的actions。

4) iput_file可以是多于一个文件的文件列表,awk将按顺序处理列表中的每个文件。

5) 一条awk_cmd的awk_pattern可以省略,省略时不对输入记录进行匹配比较就执行相应的actions。一条awk_cmd的actions 也可以省略,省略时默认的动作为打印当前输入记录(print $0) 。一条awk_cmd中的awk_pattern和actions不能同时省略。

6) BEGIN区块和END区块别位于awk_script的开头和结尾。awk_script中只有END区块或者只有BEGIN区块是被允许的。如果awk_script中只有BEGIN { actions } ,awk不会读取input_file。

7) awk把输入文件的数据读入内存,然后操作内存中的输入数据副本,awk不会修改输入文件的内容。

8) awk的总是输出到标准输出,如果想让awk输出到文件,可以使用重定向。

4.awk_pattern

awk_pattern模式部分决定actions动作部分何时触发及触发actions。awk_pattern 可以是以下几种类型:

1) 正则表达式用作awk_pattern: /regexp/

① awk中正则表达式匹配操作中经常用到的字符:

\ ^ $ . [] | () * // 通用的regexp元字符

+ : 匹配其前的单个字符一次以上,是awk自有的元字符,不适用于grep或sed 等

? : 匹配其前的单个字符1次或0次,是awk自有的元字符,不适用于grep或sed 等

②举例:

awk '/ *\$0\.[0-9][0-9].*/' input_file

2) 布尔表达式用作awk_pattern,表达式成立时,触发相应的actions执行。

①表达式中可以使用变量(如字段变量$1,$2等)和/regexp/

②布尔表达式中的操作符:

关系操作符: < > <= >= == !=

匹配操作符: value ~ /regexp/ 如果value匹配/regexp/,则返回真

value !~ /regexp/ 如果value不匹配/regexp/,则返回真

举例: awk '$2 > 10 {print "ok"}' input_file

awk '$3 ~ /^d/ {print "ok"}' input_file

③&&(与) 和||(或) 可以连接两个/regexp/或者布尔表达式,构成混合表达式。!(非) 可以用于布尔表达式或者/regexp/之前。

举例: awk '($1 < 10 ) && ($2 > 10) {print "ok"}' input_file

awk '/^d/ || /x$/ {print "ok"}' input_file

④其它表达式用作awk_script,如赋值表达式等

eg: awk '(tot+=$6); END{print "total points :" tot }' input_file // 分号不能省略

awk 'tot+=$6 {print $0} END{print "total points :" tot }' input_file // 与上面等效

awk 用法例举:

变量名含义

ARGC 命令行变元个数

ARGV 命令行变元数组

FILENAME 当前输入文件名

FNR 当前文件中的记录号

FS 输入域分隔符,默认为一个空格

RS 输入记录分隔符

NF 当前记录里域个数

NR 到目前为止记录数

OFS 输出域分隔符

ORS 输出记录分隔符

1、awk '/101/' file 显示文件file中包含101的匹配行。

awk '/101/,/105/' file

awk '$1 == 5' file

awk '$1 == "CT"' file 注意必须带双引号

awk '$1 * $2 >100 ' file

awk '$2 >5 && $2<=15' file

2、awk '{print NR,NF,$1,$NF,}' file 显示文件file的当前记录号、域数和每一行的第一个和最后一个域。

awk '/101/ {print $1,$2 + 10}' file 显示文件file的匹配行的第二个域加10。

awk '/101/ {print $1$2}' file

awk '/101/ {print $1 $2}' file 显示文件file的匹配行的第一、二个域,但显示时域中间没有分隔符。

3、df | awk '$4>1000000 ' 通过管道符获得输入,如:显示第4个域满足条件的行。

4、awk -F "|" '{print $1}' file 按照新的分隔符“|”进行操作。

awk 'BEGIN { FS="[: \t|]" }

{print $1,$2,$3}' file 通过设置输入分隔符(FS="[: \t|]")修改输入分隔符。

Sep="|"

awk -F $Sep '{print $1}' file 按照环境变量Sep的值做为分隔符。

awk -F '[ :\t|]' '{print $1}' file 按照正则表达式的值做为分隔符,这里代表空格、:、TAB、|同时做为分隔符。

awk -F '[][]' '{print $1}' file 按照正则表达式的值做为分隔符,这里代表[、]

5、awk -f awkfile file 通过文件awkfile的内容依次进行控制。

cat awkfile

/101/{print "\047 Hello! \047"} --遇到匹配行以后打印' Hello! '.\047代表单引号。{print $1,$2} --因为没有模式控制,打印每一行的前两个域。

6、awk '$1 ~ /101/ {print $1}' file 显示文件中第一个域匹配101的行(记录)。

7、awk 'BEGIN { OFS="%"}

{print $1,$2}' file 通过设置输出分隔符(OFS="%")修改输出格式。

8、awk 'BEGIN { max=100 ;print "max=" max} BEGIN 表示在处理任意行之前进行的操作。

{max=($1 >max ?$1:max); print $1,"Now max is "max}' file 取得文件第一个域的最大值。

(表达式1?表达式2:表达式3 相当于:

if (表达式1)

表达式2

else

表达式3

awk '{print ($1>4 ? "high "$1: "low "$1)}' file

9、awk '$1 * $2 >100 {print $1}' file 显示文件中第一个域匹配101的行(记录)。

10、awk '{$1 == 'Chi' {$3 = 'China'; print}' file 找到匹配行后先将第3个域替换后再显示该行(记录)。

awk '{$7 %= 3; print $7}' file 将第7域被3除,并将余数赋给第7域再打印。

11、awk '/tom/ {wage=$2+$3; printf wage}' file 找到匹配行后为变量wage赋值并打印该变量。

12、awk '/tom/ {count++;}

END {print "tom was found "count" times"}' file END表示在所有输入行处理完后进行处理。

13、awk 'gsub(/\$/,"");gsub(/,/,""); cost+=$4;

END {print "The total is $" cost>"filename"}' file gsub函数用空串替换$和,再将结果输出到filename中。

1 2 3 $1,200.00

1 2 3 $2,300.00

1 2 3 $4,000.00

awk '{gsub(/\$/,"");gsub(/,/,"");

if ($4>1000&&$4<2000) c1+=$4;

else if ($4>2000&&$4<3000) c2+=$4;

else if ($4>3000&&$4<4000) c3+=$4;

else c4+=$4; }

END {printf "c1=[%d];c2=[%d];c3=[%d];c4=[%d]\n",c1,c2,c3,c4}"' file

通过if和else if完成条件语句

awk '{gsub(/\$/,"");gsub(/,/,"");

if ($4>3000&&$4<4000) exit;

else c4+=$4; }

END {printf "c1=[%d];c2=[%d];c3=[%d];c4=[%d]\n",c1,c2,c3,c4}"' file

通过exit在某条件时退出,但是仍执行END操作。

awk '{gsub(/\$/,"");gsub(/,/,"");

if ($4>3000) next;

else c4+=$4; }

END {printf "c4=[%d]\n",c4}"' file

通过next在某条件时跳过该行,对下一行执行操作。

14、awk '{ print FILENAME,$0 }' file1 file2 file3>fileall 把file1、file2、file3的文件内容全部写到fileall中,格式为

打印文件并前置文件名。

15、awk ' $1!=previous { close(previous); previous=$1 }

{print substr($0,index($0," ") +1)>$1}' fileall 把合并后的文件重新分拆为3个文件。并与原文件一致。

16、awk 'BEGIN {"date"|getline d; print d}' 通过管道把date的执行结果送给

getline,并赋给变量d,然后打印。

17、awk 'BEGIN {system("echo "Input your name:\\c""); getline d;print "\nYour name is",d,"\b!\n"}'

通过getline命令交互输入name,并显示出来。

awk 'BEGIN {FS=":"; while(getline< "/etc/passwd" >0) { if($1~"050[0-9]_") print $1}}'

打印/etc/passwd文件中用户名包含050x_的用户名。

18、awk '{ i=1;while(i

type file|awk -F "/" '

{ for(i=1;i

{ if(i==NF-1) { printf "%s",$i }

else { printf "%s/",$i } }}' 显示一个文件的全路径。

用for和if显示日期

awk 'BEGIN {

for(j=1;j<=12;j++)

{ flag=0;

printf "\n%d月份\n",j;

for(i=1;i<=31;i++)

{

if (j==2&&i>28) flag=1;

if ((j==4||j==6||j==9||j==11)&&i>30) flag=1;

if (flag==0) {printf "%02d%02d ",j,i}

}

}

}'

19、在awk中调用系统变量必须用单引号,如果是双引号,则表示字符串

Flag=abcd

awk '{print '$Flag'}' 结果为abcd

awk '{print "$Flag"}' 结果为$Flag

Linux常用命令

查询相关 find 按规则查找某个文件或文件夹,包括子目录 ?find . -name '*.sh' -- 以.sh结尾的文件 ?find . -name '*channel*' -- 包含channel字符的文件 ?find . -name 'build*' -- 以build开头的文件 ?find . -name 'abc??' -- abc后面有两个字符的文件 grep 查找内容包含指定的范本样式的文件,Global Regular Expression Print ?grep -n pattern files -- 规则-n表示显示行号 ?grep -n 'PostsActivity' AndroidManifest.xml ?grep -n '\d' AndroidManifest.xml ?grep 'aapt' build-channel.xml -- 文件中包含字符串的所有地方 ?grep -n 'aapt' build-channel.xml -- 文件中包含字符串的所有地方,并显示行号 ?ps -e | grep java -- 所有java进程 ?ps -e | grep -i qq --所有qq进程,不区分大小写 ?find . -name '*channel.xml' | xargs grep -n 'aapt' -- 在以channel.xml 结尾的文件中查找包含‘aapt’关键字的地方 ?ls | grep 'channel' -- 包含channel关键字的文件 which 在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果?which zip ?which grep 查看命令 tail tail [-f] [-c Number | -n Number | -m Number | -b Number | -k Number] [File] 从指定点开始将文件写到标准输出。使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不断刷新,使你看到最新的文件内容。 ?tail -f test.log,循环查看文件内容,Ctrl+c来终止 ?tail -n 5 test.log,显示文件最后5行内容

wc详解

wc命令参数及用法详解 wc命令的功能为统计指定文件中的字节数、字数、行数,并将统计结果显示输出。 语法:wc [选项] 文件... 说明:该命令统计指定文件中的字节数、字数、行数。如果没有给出文件名,则从标准输入读取。wc同时也给出所指定文件的总统计数。下面让我们来简单的看一下其支持的参数及其代表的含义。 参数及含义 举例 demo.txt Welcome to https://www.360docs.net/doc/598764389.html, 欢迎来到这里 wc -cwl demo.txt #2 4 39 demo.txt 顺序依次是l w c 强调 这里面大家要注意一点。m和c参数是不能共存的,只有一个可以起作用,看哪个参数在后面。例如: wc -c demo.txt #39 demo.txt wc -m demo.txt #33 demo.txt wc -cml demo.txt #2 33 demo.txt wc -cm demo.txt #33 demo.txt 结果为m的值哦

举一反三 需要把一个文件的行数存在另一个文件里。可是这个wc还会同时输出文件名。咋办?简单,用管道处理一下OK啦 wc -l demo.txt | awk 'BEGIN{FS=" "}{print $1}' 这样,我们就把想要的文件行数给取到了,至于存在另一个文件里,我们可以把awk的print结果重定向到文件。 重要提示 用wc处理文件的时候,一定要在文件末尾存在换行符,否则统计的行数是不正确的。当然多几个换行符是没有问题的。 echo "UNIX" | wc -l # 1 echo -n "UNIX" | wc -l # 0 echo "UNIX\n\n\n" | wc -l # 1 今天看到的命令是:ls -l | wc -l 用来统计当前目录下的文件数

Linux top 命令详解

Linux top 命令详解 top命令经常用来监控linux的系统状况,比如cpu、内存的使用,程序员基本都知道这个命令,但比较奇怪的是能用好它的人却很少,例如top监控视图中内存数值的含义就有不少的曲解。 本文通过一个运行中的WEB服务器的top监控截图,讲述top视图中的各种数据的含义,还包括视图中各进程(任务)的字段的排序。 top进入视图 top视图01 【top视图01】是刚进入top的基本视图,我们来结合这个视图讲解各个数据的含义。 第一行: 10:01:23 —当前系统时间 126 days, 14:29 —系统已经运行了126天14小时29分钟(在这期间没有重启过) 2 users —当前有2个用户登录系统 load average: 1.15, 1.42, 1.44 — load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。 load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。 第二行: Tasks —任务(进程),系统现在共有183个进程,其中处于运行中的有1个,182个在休眠(sleep),stoped 状态的有0个,zombie状态(僵尸)的有0个。

第三行:cpu状态 6.7% us —用户空间占用CPU的百分比。 0.4% sy —内核空间占用CPU的百分比。 0.0% ni —改变过优先级的进程占用CPU的百分比 92.9% id —空闲CPU百分比 0.0% wa — IO等待占用CPU的百分比 0.0% hi —硬中断(Hardware IRQ)占用CPU的百分比 0.0% si —软中断(Software Interrupts)占用CPU的百分比 在这里CPU的使用比率和windows概念不同,如果你不理解用户空间和内核空间,需要充充电了。 第四行:内存状态 8306544k total —物理内存总量(8GB) 7775876k used —使用中的内存总量(7.7GB) 530668k free —空闲内存总量(530M) 79236k buffers —缓存的内存量(79M) 第五行:swap交换分区 2031608k total —交换区总量(2GB) 2556k used —使用的交换区总量(2.5M) 2029052k free —空闲交换区总量(2GB) 4231276k cached —缓冲的交换区总量(4GB) 这里要说明的是不能用windows的内存概念理解这些数据,如果按windows的方式此台服务器“危矣”:8G的内存总量只剩下530M的可用内存。Linux的内存管理有其特殊性,复杂点需要一本书来说明,这里只是简单说点和我们传统概念(windows)的不同。 第四行中使用中的内存总量(used)指的是现在系统内核控制的内存数,空闲内存总量(free)是内核还未纳入其管控范围的数量。纳入内核管理的内存不见得都在使用中,还包括过去使用过的现在可以被重复利用的内存,内核并不把这些可被重新使用的内存交还到free中去,因此在linux上free内存会越来越少,但不用为此担心。 如果出于习惯去计算可用内存数,这里有个近似的计算公式:第四行的free + 第四行的buffers + 第五行的cached,按这个公式此台服务器的可用内存:530668+79236+4231276 = 4.7GB。 对于内存监控,在top里我们要时刻监控第五行swap交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用了。 第六行是空行 第七行以下:各进程(任务)的状态监控 PID —进程id USER —进程所有者 PR —进程优先级 NI — nice值。负值表示高优先级,正值表示低优先级 VIRT —进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES RES —进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA SHR —共享内存大小,单位kb

Linux终端下使用ifconfig命令出错:ifconfig command not found解决方法

Linux终端下使用ifconfig命令出错“bash ifconfig command not found “解决方法 ?平台信息:FAQ适用于linux环境。 ?适用对象:爱数技术人员/客户/代理商技术人员。 ?文档类型:FAQ。 问题描述 打开linux终端,输入ifconfig,显示ifconfig:command not found ,su root,还是不可以。如下图所示: 分析问题 主要是一些用在系统管理上的命令,例如ifconfig, route等等,他们位于/sbin, 或/usr/sbin/下。其实这些命令本身就没有任何问题,软件包早已安装完毕,路径设置也没有丝毫问题。而出现Command not found的原因在于:在终端使用su变成超级用户的时候没有将root的路径(环境)一起切换过来,从而导致身份虽然已经是root,但是工作的环境和路径依旧是普通用户的。 解决方案 方案一:最直接的办法是使用su - ,root的路径会一起跟着变过来,就可以运用ifconfig进行网络配置等操作。如下图所示:

方案二:在root用户下按照下面的操作进行修改文件,重新启动或者注销系统,再输入ifconfig就可以直接配置网络了。操作如下: [oracle@rhel4ora10g ~]$ su [root@rhel4ora10g oracle]# vi /etc/profile 把下面if语句注释掉: #path Manipulation if [`id -u` = 0]; then pathmunge /sbin pathmunge /usr/sbin pathmunge /usr/local/sbin fi 修改为: #path Manipulation #if [`id -u` = 0]; then pathmunge /sbin pathmunge /usr/sbin pathmunge /usr/local/sbin #fi

awk命令

什么是awk? 你可能对UNIX比较熟悉,但你可能对awk很陌生,这一点也不奇怪,的确,与其优秀的功能相比,awk还远没达到它应有的知名度。awk是什么?与其它大多数UNIX命令不同的是,从名字上看,我们不可能知道awk的功能:它既不是具有独立意义的英文单词,也不是几个相关单词的缩写。事实上,awk是三个人名的缩写,他们是:Aho、(Peter)Weinberg 和(Brain)Kernighan。正是这三个人创造了awk---一个优秀的样式扫描与处理工具。 AWK的功能是什么?与sed和grep很相似,awk是一种样式扫描与处理工具。但其功能却大大强于sed和grep。awk提供了极其强大的功能:它几乎可以完成grep和sed所能完成的全部工作,同时,它还可以可以进行样式装入、流控制、数学运算符、进程控制语句甚至于内置的变量和函数。它具备了一个完整的语言所应具有的几乎所有精美特性。实际上,awk 的确拥有自己的语言:awk程序设计语言,awk的三位创建者已将它正式定义为:样式扫描和处理语言。 为什么使用awk? 即使如此,你也许仍然会问,我为什么要使用awk? 使用awk的第一个理由是基于文本的样式扫描和处理是我们经常做的工作,awk所做的工作有些象数据库,但与数据库不同的是,它处理的是文本文件,这些文件没有专门的存储格式,普通的人们就能编辑、阅读、理解和处理它们。而数据库文件往往具有特殊的存储格式,这使得它们必须用数据库处理程序来处理它们。既然这种类似于数据库的处理工作我们经常会遇到,我们就应当找到处理它们的简便易行的方法,UNIX有很多这方面的工具,例如sed 、grep、sort以及find等等,awk是其中十分优秀的一种。 使用awk的第二个理由是awk是一个简单的工具,当然这是相对于其强大的功能来说的。的确,UNIX有许多优秀的工具,例如UNIX天然的开发工具C语言及其延续C++就非常的优秀。但相对于它们来说,awk完成同样的功能要方便和简捷得多。这首先是因为awk提供了适应多种需要的解决方案:从解决简单问题的awk命令行到复杂而精巧的awk程序设计语言,这样做的好处是,你可以不必用复杂的方法去解决本来很简单的问题。例如,你可以用一个命令行解决简单的问题,而C不行,即使一个再简单的程序,C语言也必须经过编写、编译的全过程。其次,awk本身是解释执行的,这就使得awk程序不必经过编译的过程,同时,这也使得它与shell script程序能够很好的契合。最后,awk本身较C语言简单,虽然awk吸收了C语言很多优秀的成分,熟悉C语言会对学习awk有很大的帮助,但awk 本身不须要会使用C语言——一种功能强大但需要大量时间学习才能掌握其技巧的开发工具。 使用awk的第三个理由是awk是一个容易获得的工具。与C和C++语言不同,awk只有一个文件(/bin/awk),而且几乎每个版本的UNIX都提供各自版本的awk,你完全不必费心去想如何获得awk。但C语言却不是这样,虽然C语言是UNIX天然的开发工具,但这个开发工具却是单独发行的,换言之,你必须为你的UNIX版本的C语言开发工具单独付费(当然使用D版者除外),获得并安装它,然后你才可以使用它。

Linux主要shell命令详解

shell是用户和Linux操作系统之间的接口。Linux中有多种shell,其中缺省使用的是Bash。本章讲述了shell的工作原理,shell的种类,shell的一般操作及Bash的特性。 什么是shell Linux系统的shell作为操作系统的外壳,为用户提供使用操作系统的接口。它是命令语言、命令解释程序及程序设计语言的统称。 shell是用户和Linux内核之间的接口程序,如果把Linux内核想象成一个球体的中心,shell 就是围绕内核的外层。当从shell或其他程序向Linux传递命令时,内核会做出相应的反应。 shell是一个命令语言解释器,它拥有自己内建的shell命令集,shell也能被系统中其他应用程序所调用。用户在提示符下输入的命令都由shell先解释然后传给Linux核心。 有一些命令,比如改变工作目录命令cd,是包含在shell内部的。还有一些命令,例如拷贝命令cp和移动命令rm,是存在于文件系统中某个目录下的单独的程序。对用户而言,不必关心一个命令是建立在shell内部还是一个单独的程序。 shell首先检查命令是否是内部命令,若不是再检查是否是一个应用程序(这里的应用程序可以是Linux本身的实用程序,如ls和rm,也可以是购买的商业程序,如xv,或者是自由软件,如emacs)。然后shell在搜索路径里寻找这些应用程序(搜索路径就是一个能找到可执行程序的目录列表)。如果键入的命令不是一个内部命令并且在路径里没有找到这个可执行文件,将会显示一条错误信息。如果能够成功找到命令,该内部命令或应用程序将被分解为系统调用并传给Linux内核。 shell的另一个重要特性是它自身就是一个解释型的程序设计语言,shell程序设计语言支持绝大多数在高级语言中能见到的程序元素,如函数、变量、数组和程序控制结构。shell编程语言简单易学,任何在提示符中能键入的命令都能放到一个可执行的shell程序中。 当普通用户成功登录,系统将执行一个称为shell的程序。正是shell进程提供了命令行提示符。作为默认值(TurboLinux系统默认的shell是BASH),对普通用户用―$‖作提示符,对超级用户(root)用―#‖作提示符。 一旦出现了shell提示符,就可以键入命令名称及命令所需要的参数。shell将执行这些命令。如果一条命令花费了很长的时间来运行,或者在屏幕上产生了大量的输出,可以从键盘上按ctrl+c发出中断信号来中断它(在正常结束之前,中止它的执行)。

ifconfig网卡内容详解

一、命令:ifconfig eth6 Link encap:EthernetHWaddr 00:E0:ED:29:91:02 inet addr:192.168.53.206 Bcast:192.168.53.207 Mask:255.255.255.252 inet6addr: fe80::2e0:edff:fe29:9102/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:730143989490 errors:0 dropped:0 overruns:53397868 frame:0 TX packets:738432898210 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:78921752346272 (71.7 TiB) TX bytes:275903597565877 (250.9 TiB) Memory:df8a0000-df8c0000 Link encap 接口的概要描述。 HWaddr 网卡的硬件MCA地址。 inetaddr 网卡的IP地址。 Bcast 广播地址。 Mask 网络掩码。 UP 表示“接口已启用”。 BROADCAST 表示“主机支持广播”。 RUNNING 表示“接口在工作中”。 MULTICAST 表示“主机支持多播”。 MTU 见上上表。 Metric 见上上表。(同“Met”) RX packets 接收时,正确的数据包数。 RX errors 接收时,产生错误的数据包数。 RX dropped 接收时,丢弃的数据包数。 RX overruns 接收时,由于过速而丢失的数据包数。 RX frame 接收时,发生frame错误而丢失的数据包数。 (以太网是一种共享媒体(shared medium),所以必须要有机制来决定由谁来使用传输媒体,在以太网中所采用的是CSMA/CD(Carrier Sense Multiple Access with Collision Detection)方式,步骤如下: 1 将要传输的数据切割成Frame,作为传输单位。 2 要传输时先侦测电缆上是否有设备送Frame(Carrier Sense)。 3 若沒有设备使用,才准备发送Frame,并侦测是否有另外的设备发送Frame(Collision

ls -l命令详解

有几个字段老是记不住,就记载这里吧 ls -l 列表信息详解 我们平时用ls -l 命令查看一个目录下的文件和子目录的详悉信息时,会得到一个详细的文件和目录名列表.这个列表包含了文件的属性,所属用户,所属组,创建时间,文件大小等等信息.这些信息到底是什么意思呢?有很多初学者对这些不太了解,因此想详悉讲解一下用ls -l命令得到的文件列表每一个字段的意思 以笔者电脑的/root目录为例: [root@gucuiwen root]# ll 总用量 4055 -rw-r--r-- 1 root root 1581 11月 24 18:14 anaconda-ks.cfg drwxr-xr-x 2 root root 208 12月 1 13:50 babylinux -rw-r--r-- 1 root root 1474560 11月 25 15:02 babylinux.img -rw-r--r-- 1 root root 26829 11月 25 15:10 babylinux.png lrwxrwxrwx 1 root root 9 1月 4 11:06 disk1.link.png -> disk1.png -rw-r--r-- 1 root root 3209 11月 26 12:07 disk1.png -rw-r--r-- 1 root root 692 11月 26 13:16 disk2.png -rw-r--r-- 1 root root 718 11月 26 13:30 disk3.png drwx------ 8 root root 392 1月 4 08:40 evolution -rwxr-xr-x 1 root root 13695 11月 30 16:51 fangkuai.sh drwxr-xr-x 2 root root 208 12月 28 12:06 FreeBSD -rw-r--r-- 1 root root 2315 11月 25 17:19 getMBR.png brw-r----- 1 root root 3, 1 1月 4 11:06 hda1 drwxr-xr-x 2 root root 296 12月 31 11:53 htmls -rw-r--r-- 1 root root 21369 11月 24 18:12 install.log -rw-r--r-- 1 root root 3024 11月 24 18:12 install.log.syslog -rw-r--r-- 1 root root 293 1月 4 10:51 ls.txt -rw-r--r-- 1 root root 2237702 11月 25 15:09 magick.miff -rw-r--r-- 1 root root 13493 11月 25 17:31 mbr1.png -rw-r--r-- 1 root root 8123 11月 25 17:42 mbr2.png -rw-r--r-- 1 root root 512 11月 30 16:10 mbr.dat -rw-r--r-- 1 root root 64512 11月 26 15:33 partition.doc -rw-r--r-- 1 root root 49887 11月 26 15:32 partition.sxw -rw-r--r-- 1 root root 1541 12月 18 13:14 passwd -rw-r--r-- 1 root root 46320 11月 25 17:28 Screenshot-1.png -rw-r--r-- 1 root root 44145 11月 25 17:32 Screenshot-2.png -rw-r--r-- 1 root root 43732 11月 25 17:13 Screenshot.png drwxr-xr-x 3 root root 72 1月 4 10:49 test -rw-r--r-- 1 root root 0 12月 18 10:44 tset crw-r----- 1 root root 4, 65 1月 4 11:08 ttyS1

linux常用的60个命令

Linux必学的60个命令 Linux必学的60个命令 Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。所以,在Linux系统上工作离不开使用系统提供的命令。要想真正理解Linux系统,就必须从Linux命令学起,通过基础的命令学习可以进一步理解Linux系统。不同Linux发行版的命令数量不一样,但Linux发行版本最少的命令也有200多个。这里笔者把比较重要和使用频率最多的命令,按照它们在系统中的作用分成下面六个部分一一介绍。 ◆安装和登录命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last; ◆文件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln; ◆系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab; ◆网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、nslookup; ◆系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who; ◆其它命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。 本文以Mandrake Linux 9.1(Kenrel 2.4.21)为例,介绍Linux下的安装和登录命令。immortality按:请用ctrl+f在本页中查找某一部分的内容或某一命令的用法。

基本网络配置命令

即用即查L i n u x命令行实例参考手册代码 第13章基本网络配置命令 配置或显示网络设备——ifconfig ifconfig命令语法: ifconfig [网络设备] [IP地址] [参数] 实例1:显示安装在本地主机的第一块以太网卡eth0的状态,执行命令: [root@localhost ~]# ifconfig eth0 实例2:配置本地主机回送接口。执行命令: 实例3:显示本地主机上所有网络接口的信息,包括激活和非激活的,执行命令: [root@localhost ~]# ifconfig 在设置eth0网络接口之前,首先显示本地主机上所有网络接口的信息。执行命令: [root@localhost ~]# ifconfig 实例5:启动/关闭eth0网络接口。 在eth0网络接口禁用之前,首先显示本地主机上所有网络接口的信息。执行命令: [root@localhost ~]# ifconfig 然后执行禁用eth0网络接口命令: [root@localhost ~]# ifconfig eth0 down [root@localhost ~]# ifconfig 再次显示本地主机上所有网络接口的信息,以便比较分析禁用eth0网络接口命令的作用。 为了进一步深入了解,可以测试ping该网络接口。执行命令: 命令重新启动该网络接口。 [root@localhost ~]# ifconfig eth0 up 实例6:为eth0网络接口添加一个IPv6地址fe80::20c::29ff:fe5f:ba3f/64。 在为eth0网络接口添加IPv6地址之前,首先显示本地主机上所有网络接口的信息。执行命令:[root@localhost ~]# ifconfig 然后执行ping6命令检测未添加IPv6地址fe80::20c::29ff:fe5f:ba3f/64之前eth0网络接口的状况:[root@localhost ~]# ping6 –I eth0 –c 4 fe80::20c::29ff:fe5f:ba3f 接下来为eth0网络接口添加一个IPv6地址fe80::20c::29ff:fe5f:ba3f/64,执行命令: [root@localhost ~]# ifconfig eth0 add fe80::20c:29ff:fe5f:ba3f 再次执行ping6命令检测IPv6地址fe80::20c::29ff:fe5f:ba3f : [root@localhost ~]# ping6 –I eth0 –c 4 fe80::20c:29ff:fe5f:ba3f 再次显示本地主机上所有网络接口的信息,以便比较分析eth0网络接口添加IPv6地址前后发生的变化。 [root@localhost ~]# ifconfig 查看或设置网络接口——ifup、ifdown ifup、ifdown命令语法: ifup [网络设备] ifdown [网络设备] 实例1:关闭eth0网络接口。

Ifconfig

Ifconfig ⑴基础知识 ifconfig 命令被用来: ①为一个网卡分配一个IP地址 ②设置本地环路界面 ③分配一个子网掩码(可选) 这个命令在系统启动的时候通过/sbin/init.d/net脚本自动执行的。也可以在任何时候以命令行的方式执行。 Usage: ifconfig interface addr_family [address] [ parameters] Options: interface 一个最大四位的字符串,最后一个字符是数字,例如lan0。这个字符串代表网卡。数字表示网卡的instance。对有的系统来说,网卡的instance是自动分配的。首先配置的网卡是lan0。而lo0指明这是本地回路。 add_family 对DARPA Internet协议来说,唯一支持的是inet(默认的)。 address 数字形式的IP地址 parameters 最重要的参数是up,down,arp,-arp,和netmask。 up 激活这个网卡 down 关闭这个网卡 [-] arp 在OSI模型的第二层和第三层(链路层和网络层)之间禁用/使用地址解析协议netmask subnet 子网位掩盖网络部分。并指明了在将网络分割为子网的时候所保留地址的数量,一般也用数字形式。 -a 详细显示所有接口 -u 显示目前使用中的装置 ⑵实例 ①检查网络接口 例如: *检查所有网络接口的状态: # ifconfig –a lo0: flags=849; mtu 8232 inet 127.0.0.1 netmask ff000000 le0: flags=863;mtu 1500 inet 128.50.1.2 netmask ffff0000 broadcast 128.50.255.255 ether 8:0:20:75:6e:6f *检查一个接口的状态: # ifconfig le0 le0: flags=863;mtu 1500 inet 128.50.1.2 netmask ffff0000 broadcast 128.50.255.255 ether 8:0:20:75:6e:6f 各字段含义: lo0,le0——网络接口的设备名

Linux常用命令详解(配合示例说明,清晰易懂)

Linux常用命令详解 (常用、详细) BISTU 自动化学院 刷碗小工(frisen.imtm) 2010年11月 开源社区,造福大家,版权所有,翻录不究(初次接触Linux命令可能对以下说明有不少疑问,可待看完一遍后再回头细看) (配合Ctrl + F可快速查找你想了解的命令)

索引:(待完善) 文件说明:Linux命令很多,但最常用的80个左右 文档内容充实,用示例说明命令如何使用笔者力求语言简洁,清晰易懂 由于忙于其他事情,改进排版的工作只能搁置了 最后,望此文档能为大家Linux学习之路献微薄之力 一、路径: 执行命令前必须要考虑的一步是命令的路径,若是路径错误或是没有正确的指定,可能导致错误的执行或是找不到该命令。要知道设置的路径,可执行以下命令: 一般而言,本书的命令位于/bin、usr/bin、/sbin、/usr/sbin之中。若读者执行了命令却出现“command not find”或是“命令不存在”的字样,就必须要确定该命令的位置是否在命令的路径中,或是系统上根本没有安装该套件。 二、命令顺序: 若在shell内置的命令/bin以及/usr/bin之下都出现了命令pwd,那当我们执行该命令时,会执行哪一个?答案是第一优先执行shell内置的命令,再执行路径中的设置;因此若有相同名称的命令时,必须要注意顺序设置,或是直接输入完整路径。 三、参数(或称选项)顺序: 一般除了特殊情况,参数是没有顺序的。举例而言,输入“–a –v”与输入“–v –a”以及“–av”的执行效果是相同的。但若该参数后指定了要接的文件或特殊对象,如“–a cmd1 –v cmd2”,则不能任意改变选项顺序。 四、常用参数: 下面所列的是常见的参数(选项)意义: --help,-h 显示帮助信息 --version,-V 显示版本信息 -v 繁琐模式(显示命令完整的执行过程) -i 交谈模式(指定界面) -l 长列表输出格式 -q,-s 安静模式(不显示任何输出或错误信息) -R 递归模式(连同目录下所有文件和子目录一起处理) -z 压缩 五、命令的结合与定向: 命令中除了一般命令外,还有管道(或称途径)(|)与定向(>或>>)。 管道(途径)的用法: “命令一[选项]”| “命令二[选项]”,也就是将“命令一[选项]”的输出结果传到“命令二[选项]”,通过命令二的处理之后才输出到标准输出(屏幕)上。比如“ls /etc”会列出etc下的所有文件,若加上“| less”,也就是“ls /etc | less”,则会将“ls /etc”的结果通过less分页输出。 定向的用法: 将结果定向到命令的输出设备,一般不加文件名意为将结果输出到屏幕,若是在定向后加上文件名,则会将命令的执行结果输出到定向的文件,例如“ls > temp.txt”,就会将ls 的结果输出到文件temp.txt中。“>”与“>>”的差异在于前者是覆盖,而后者是附加。 六、命令中的命令: 许多命令在执行后,会进入该命令的操作模式,如fdisk、pine、top等,进入后我们必须要使用该命令中的命令,才能正确执行;而一般要退出该命令,可以输入exit、q、quit或是按【Ctrl+C】组合

基本网络配置命令

即用即查Linux命令行实例参考手册代码 第13章基本网络配置命令 配置或显示网络设备——ifconfig ifconfig命令语法: ifconfig [网络设备] [IP地址] [参数] 实例1:显示安装在本地主机的第一块以太网卡eth0的状态,执行命令: [root@localhost ~]# ifconfig eth0 实例2:配置本地主机回送接口。执行命令: [root@localhost ~]# ifconfig lo inet 127.0.0.1 up 实例3:显示本地主机上所有网络接口的信息,包括激活和非激活的,执行命令: [root@localhost ~]# ifconfig 实例4:配置eth0网络接口的IP为192.168.1.108。 在设置eth0网络接口之前,首先显示本地主机上所有网络接口的信息。执行命令:[root@localhost ~]# ifconfig 然后设置eth0网络接口,ip为192.168.1.108,netmask为255.255.255.0,broadcast为192.168.1.255。执行命令: [root@localhost ~]# ifconfig eth0 192.168.1.108 netmask 255.255.255.0 broadcast 192.168.1.255 实例5:启动/关闭eth0网络接口。 在eth0网络接口禁用之前,首先显示本地主机上所有网络接口的信息。执行命令:[root@localhost ~]# ifconfig 然后执行禁用eth0网络接口命令: [root@localhost ~]# ifconfig eth0 down [root@localhost ~]# ifconfig 再次显示本地主机上所有网络接口的信息,以便比较分析禁用eth0网络接口命令的作用。 为了进一步深入了解,可以测试ping该网络接口。执行命令: [root@localhost ~]# ping 192.168.1.108 此时应该ping不通主机192.168.1.108。接下来可以执行如下命令重新启动该网络接口。 [root@localhost ~]# ifconfig eth0 up 实例6:为eth0网络接口添加一个IPv6地址fe80::20c::29ff:fe5f:ba3f/64。 在为eth0网络接口添加IPv6地址之前,首先显示本地主机上所有网络接口的信息。执行命令: [root@localhost ~]# ifconfig 然后执行ping6命令检测未添加IPv6地址fe80::20c::29ff:fe5f:ba3f/64之前eth0网络接口的状况: [root@localhost ~]# ping6 –I eth0 –c 4 fe80::20c::29ff:fe5f:ba3f 接下来为eth0网络接口添加一个IPv6地址fe80::20c::29ff:fe5f:ba3f/64,执行命令:[root@localhost ~]# ifconfig eth0 add fe80::20c:29ff:fe5f:ba3f

Linux awk命令详解

Linux awk命令详解 AWK介绍 0.awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk。 1.awk语言的最基本功能是在文件或字符串中基于指定规则来分解抽取信息,也可以基于指定的规则来输出数据。完整的awk脚本通常用来格式化文本文件中的信息。 2.三种方式调用awk 1) awk [opion] 'awk_script' input_file1 [input_file2 ...] awk的常用选项option有; ① -F fs : 使用fs作为输入记录的字段分隔符,如果省略该选项,awk使用环境变量IFS的值 ② -f filename : 从文件filename中读取awk_script ③ -v var=value : 为awk_script设置变量 2) 将awk_script放入脚本文件并以#!/bin/awk -f 作为首行,给予该脚本可执行权限,然后在shell下通过键入该脚本的脚本名调用之。 3) 将所有的awk_script插入一个单独脚本文件,然后调用: awk -f awk脚本文件input_file(s) 3. awk的运行过程 1) awk_script的组成: ① awk_script可以由一条或多条awk_cmd组成,两条awk_cmd之间一般以NEWLINE分隔 ② awk_cmd由两部分组成: awk_pattern { actions } ③ awk_script可以被分成多行书写,必须确保整个awk_script被单引号括起来。 2) awk命令的一般形式: awk ' BEGIN { actions } awk_pattern1 { actions } ............ awk_patternN { actions } END { actions } ' inputfile 其中BEGIN { actions } 和END { actions } 是可选的。 3) awk的运行过程: ①如果BEGIN 区块存在,awk执行它指定的actions。 ② awk从输入文件中读取一行,称为一条输入记录。(如果输入文件省略,将从标准输入读取) ③awk将读入的记录分割成字段,将第1个字段放入变量$1中,第2个字段放入$2,以此类推。$0表示整条记录。字段分隔符使用shell环境变量IFS或由参数指定。 ④把当前输入记录依次与每一个awk_cmd中awk_pattern比较,看是否匹配,如果相匹配,就执行对应的actions。如果不匹配,就跳过对应的actions,直到比较完所有的awk_cmd。 ⑤当一条输入记录比较了所有的awk_cmd后,awk读取输入的下一行,继续重复步骤③和④,这个过程一

Linux awk命令使用详解

Linux awk命令使用详解 简单介绍一下,awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大,这是我们玩linux的必备基本功,若要对其身世有更详尽的了解,自行搜索即可。对于工具的知识,笔者尽量将每个知识点的简要说明,并给出实例。 简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。 用法: awk [options] 'scripts' file1,file2... awk [options] 'pattern {action}' file1,file2... options是awk的支持的选项,譬如-F -v等; scripts是其处理脚本,包含模式pattern和动作action(模式和动作的关系一般为,模式负责确定有效字段,动作负责对其处理) 一、print的简单使用

创建一个简单的测试文件如下: [root@mos download]# cat demo.txt Welcome to mos blog. This is a test file. 例:打印整行: $0 [root@mos download]# awk '{print $0}' demo.txt Welcome to mos blog. This is a test file. 例:打印每行的最后一个字段: $NF [root@mos download]# awk '{print $NF}' demo.txt blog. file. 例:打印第二个字段: $2 [root@mos download]# awk '{print $2}' demo.txt to is 例:打印每行的倒数第二个字段,并在其后打印OK

Linux系统命令及其使用详解

Linux 系统命令及其使用详解(大全) cat cd chmod chown cp cut 名称:cat 使用权限:所有使用者 使用方式:cat [-AbeEnstTuv] [--help] [--version] fileName 说明:把档案串连接后传到基本输出(萤幕或加> fileName 到另一个档案) 参数: -n 或--number 由 1 开始对所有输出的行数编号 -b 或--number-nonblank 和-n 相似,只不过对于空白行不编号 -s 或--squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行 -v 或--show-nonprinting 范例: cat -n textfile1 > textfile2 把textfile1 的档案内容加上行号后输入textfile2 这个档案里cat -b textfile1 textfile2 >> textfile3 把textfile1 和textfile2 的档案内容加上行号(空白行不加)之后将内容附加到textfile3 名称:cd 使用权限:所有使用者 使用方式:cd [dirName] 说明:变换工作目录至dirName。其中dirName 表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的home directory (也就是刚login 时所在的目录).另外,"~" 也表示为home directory 的意思,"." 则是表示目前所在的目录,".." 则表示目前目录位置的上一层目录。 范例:跳到/usr/bin/: cd /usr/bin 跳到自己的home directory: cd ~ 跳到目前目录的上上两层: cd ../.. 指令名称:chmod 使用权限:所有使用者 使用方式:chmod [-cfvR] [--help] [--version] mode file... 说明:Linux/Unix 的档案存取权限分为三级:档案拥有者,群组,其他。利用chmod 可以藉以控制档案如何被他人所存取。 把计: mode:权限设定字串,格式如下:[ugoa...][[+-=][rwxX]...][,...],其中u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者

相关文档
最新文档