tail & cut 命令

最基本的是cat、more和less。
1. 如果你只想看文件的前5行,可以使用head命令,如:

head -5 /etc/passwd
2. 如果你想查看文件的后10行,可以使用tail命令,如:
tail -2 /etc/passwd 或 tail -n 2 /etc/passwd
tail -f /var/log/messages
参数-f使tail不停地去读最新的内容,这样有实时监视的效果 用Ctrl+c来终止!
3. 查看文件中间一段,你可以使用sed命令,如:
sed -n '5,10p' /etc/passwd
这样你就可以只查看文件的第5行到第10行。

1. 如果你只想看文件的前5行,能使用head命令,如:
head -5 /etc/passwd
2. 如果你想查看文件的后10行,能使用tail命令,如:
tail -10 /etc/passwd
tail -f /var/log/messages
参数-f使tail不停地去读最新的内容,这样有实时监视的效果

tail语法格式:
    tail [ -f ] [ -c Number | -n Number | -m Number | -b Number | -k Number ] [ File ]
    或者
    tail [ -r ] [ -n Number ] [ File ]
使用说明:
    tail 命令从指定点开始将 File 参数指定的文件写到标准输出。如果没有指定文件,则会使用标准输入。 Number 变量<br />指定将多少单元写入标准输出。 Number 变量的值可以是正的或负的整数。如果值的前面有 +(加号),从文件开头<br />指定的单元数开始将文件写到标准输出。如果值的前面有 -(减号),则从文件末尾指定的单元数开始将文件写到<br />标准输出。如果值前面没有 +(加号)或 -(减号),那么从文件末尾指定的单元号开始读取文件。
主要参数:
-b Number 从 Number 变量表示的 512 字节块位置开始读取指定文件。 
-c Number 从 Number 变量表示的字节位置开始读取指定文件。 
-f 如果输入文件是常规文件或如果 File 参数指定 FIFO(先进先出),
那么 tail 命令不会在复制了输入文件的最后的指定单元后终止,而是继续
从输入文件读取和复制额外的单元(当这些单元可用时)。如果没有指定 File 参数,
并且标准输入是管道,则会忽略 -f 标志。tail -f 命令可用于监视另一个进程正在
写入的文件的增长。 
-k Number 从 Number 变量表示的 1KB 块位置开始读取指定文件。 
-m Number 从 Number 变量表示的多字节字符位置开始读取指定文件。使用该标志提供在
单字节和双字节字符代码集环境中的一致结果。 
-n Number 从首行或末行位置来读取指定文件,位置由 Number 变量的符号(+ 或 - 或无)
表示,并通过行号 Number 进行位移。 
-r 从文件末尾以逆序方式显示输出。-r 标志的缺省值是以逆序方式显示整个文件。
如果文件大于 20,480 字节,那么-r标志只显示最后的 20,480 字节。 -r 标志只有
与 -n 标志一起时才有效。否则,就会将其忽略。

input
tail -b +1 file
tail -c +1 file
tail -n +1 file//从开始数第一行的位置


linux Kill多个进程的妙招

我是一个工作在Red Hat 7.0下的数据库管理员(DBA)。工作中经常需要Kill多个进程,如果这些进程有共同的特点,就可以用一条命令Kill掉它们。比如清除Oracle数据库的所有远程连接进程:
ps -efww|grep LOCAL=NO|grep -v grep|cut -9-15|xargs kill -9

管道符“|”用来隔开两个命令,管道符左边命令的输出会作为管道符右边命令的输入。下面说说用管道符联接起来的几个命令:

“ps -efww”是Red Hat 7.0里查看所有进程的命令。这时检索出的进程将作为下一条命令“grep LOCAL=NO”的输入。

“grep LOCAL=NO”的输出结果是,所有含有关键字“LOCAL=NO”的进程,这是Oracle数据库中远程连接进程的共同特点。

“grep -v grep”是在列出的进程中去除含有关键字“grep”的进程。

“cut -c 9-15”是截取输入行的第9个字符到第15个字符,而这正好是进程号PID。

“xargs kill -9”中的xargs命令是用来把前面命令的输出结果(PID)作为“kill -9”命令的参数,并执行该命令。kill -9”会强行杀掉指定进程,这样就成功清除了oracle的所有远程连接进程。其它类似的任务,只需要修改“grep LOCAL=NO”中的关键字部分就可以了。

                                       cut命令

主要用来提取各种各样的数据。
cut -cchars file
如:
-c5 提取第5个字符
-c5- 提取第5个字符以后的字符
-c1,5,12 提取多个字符,中间用“,”符号隔开
-c5-14 提取第5个字符到第14个字符间的字符

 
linux中cut命令的用法

名称:cut

使用权限:所有使用者

用法:cut -cnum1-num2 filename

说明:显示每行从开头算起 num1 到 num2 的文字。

范例:

shell>> cat example
test2
this is test1
shell>> cut -c1-6 example ## print 开头算起前 6 个字元
test2
this i

-c m-n 表示显示每一行的第m个字元到第n个字元。例如:

---------file-----------
liubi 23 14000
---------file-----------
# cut -c 1-5,10-14 file
liubi 14000

-f m-n 表示显示第m栏到第n栏(使用tab分隔)。例如:
---------file-----------
liubi 23 14000
---------file-----------
# cut -f 1,3 file
liubi 14000

-c 和 -f 参数可以跟以下子参数:
m 第m个字符或字段
m- 从第m个字符或字段到文件结束
m-n 从第m个到第n个字符或字段
-n 从第1个到第n个字符或字段

我们经常会遇到需要取出分字段的文件的某些特定字段,例如 /etc/password就是通过":"分隔各个字段的。可以通过cut命令来实现。例如,我们希望将系统账号名保存到特定的文件,就可以:
cut -d: -f 1 /etc/passwd > /tmp/users
-d用来定义分隔符,默认为tab键,-f表示需要取得哪个字段
如:
使用|分隔
cut -d'|' -f2 1.test>2.test
使用:分隔
cut -d':' -f2 1.test>2.test
这里使用单引号或双引号皆可。

 

                cut命令可以从一个文本文件或者文本流中提取文本列
 命令用法:
       cut -b list [-n] [file ...]
       cut -c list [file ...]
       cut -f list [-d delim][-s][file ...]
 
 
l      上面的-b、-c、-f分别表示字节、字符、字段(即byte、character、field)
l      list表示-b、-c、-f操作范围,-n常常表示具体数字;
l      file表示的自然是要操作的文本文件的名称;
l      delim(英文全写:delimiter)表示分隔符,默认情况下为TAB;
l      -s表示不包括那些不含分隔符的行(这样有利于去掉注释和标题)
上面三种方式中,表示从指定的范围中提取字节(-b)、或字符(-c)、或字段(-f)。
范围的表示方法:
N
 只有第N项
N-
 从第N项一直到行尾
N-M
 从第N项到第M项(包括M)
-M
 从一行的开始到第M项(包括M)
-
 从一行的开始到结束的所有项

一般用netstat -na 来显示所有连接的端口并用数字表示.
  netstat命令的功能是显示网络连接、路由表和网络接口信息,可以让用户得知目前都有哪些网络连接正在运作。
  该命令(linux下)的一般格式为 :
  netstat [选项]
  命令中各选项的含义如下:
  -a 显示所有socket,包括正在监听的。
  -c 每隔1秒就重新显示一遍,直到用户中断它。
  -i 显示所有网络接口的信息,格式同“ipconfig -e”。
  -n 以网络IP地址代替名称,显示出网络连接情形。
  -r 显示核心路由表,格式同“route -e”。
  -t 显示TCP协议的连接情况。
  -u 显示UDP协议的连接情况。
  -v 显示正在进行的工作。
  -A 显示任何关联的协议控制块的地址。主要用于调试
  -a 显示所有套接字的状态。在一般情况下不显示与服务器进程相关联的套接字
  -i 显示自动配置接口的状态。那些在系统初始引导后配置的接口状态不在输出之列
  -m 打印网络存储器的使用情况
  -n 打印实际地址,而不是对地址的解释或者显示主机,网络名之类的符号
  -r 打印路由选择表
  -f address -family对于给出名字的地址簇打印统计数字和控制块信息。到目前为止,唯一支持的地址簇是inet
  -I interface 只打印给出名字的接口状态
  -p protocol-name 只打印给出名字的协议的统计数字和协议控制块信息
  -s 打印每个协议的统计数字
  -t 在输出显示中用时间信息代替队列长度信息。
  netstat命令的列标题
  Name 接口的名字
  Mtu 接口的最大传输单位
  Net/Dest 接口所在的网络
  Address 接口的IP地址
  Ipkts 接收到的数据包数目
  Ierrs 接收到时已损坏的数据包数目
  Opkts 发送的数据包数目
  Oeers 发送时已损坏的数据包数目
  Collisions 由这个接口所记录的网络冲突数目
 
posted @ 2012-01-03 20:39  saintaxl  阅读(1047)  评论(0编辑  收藏  举报