Linux操作(持续补充)

来源:互联网 发布:java oracle 读表 编辑:程序博客网 时间:2024/05/29 06:54

查看网络端口占用情况

命令: netstat -tupln 或者 netstat -pln

 

参数解释:

  1. -t : 指明显示TCP端口
  2. -u : 指明显示UDP端口
  3. -p : 显示进程ID(PID)和程序名称,每一个套接字/端口都属于一个程序.
  4. -l  : 仅显示监听套接字 -- 所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的程序
  5. -n : 不进行DNS轮询(可以加速操作)
AWK
只是显示/etc/passwd的账户
cat /etc/passwd |awk  -F ':'  '{print $1}'  
root
daemon
bin
sys
这种是awk+action的示例,每行都会执行action{print $1}。
-F指定域分隔符为':'。

只是显示/etc/passwd的账户和账户对应的shell,而账户与shell之间以tab键分割


#cat /etc/passwd |awk  -F ':'  '{print $1"\t"$7}'
root    /bin/bash
daemon  /bin/sh
bin     /bin/sh
sys     /bin/sh
 


如果只是显示/etc/passwd的账户和账户对应的shell,而账户与shell之间以逗号分割,而且在所有行添加列名name,shell,在最后一行添加"blue,/bin/nosh"。


 
cat /etc/passwd |awk  -F ':'  'BEGIN {print "name,shell"}  {print $1","$7} END {print "blue,/bin/nosh"}'
name,shell
root,/bin/bash
daemon,/bin/sh
bin,/bin/sh
sys,/bin/sh
....
blue,/bin/nosh
 
awk工作流程是这样的:先执行BEGING,然后读取文件,读入有/n换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域,$0则表示所有域,$1表示第一个域,$n表示第n个域,随后开始执行模式所对应的动作action。接着开始读入第二条记录······直到所有的记录都读完,最后执行END操作。

搜索/etc/passwd有root关键字的所有行


#awk -F: '/root/' /etc/passwd
root:x:0:0:root:/root:/bin/bash
这种是pattern的使用示例,匹配了pattern(这里是root)的行才会执行action(没有指定action,默认输出每行的内容)。


搜索支持正则,例如找root开头的: awk -F: '/^root/' /etc/passwd


 


搜索/etc/passwd有root关键字的所有行,并显示对应的shell


# awk -F: '/root/{print $7}' /etc/passwd             
/bin/bash
 这里指定了action{print $7}


SED

删除:d命令
*
$ sed '2d' example-----删除example文件的第二行。
*
$ sed '2,$d' example-----删除example文件的第二行到末尾所有行。
*
$ sed '$d' example-----删除example文件的最后一行。
*
$ sed '/test/'d example-----删除example文件所有包含test的行。
替换:s命令
*
$ sed 's/test/mytest/g' example-----在整行范围内把test替换为mytest。如果没有g标记,则只有每行第一个匹配的test被替换成mytest。
*
$ sed -n 's/^test/mytest/p' example-----(-n)选项和p标志一起使用表示只打印那些发生替换的行。也就是说,如果某一行开头的test被替换成mytest,就打印它。

tail -n 20 filename
说明:显示filename最后20行。
tail -n +20 filename
说明:显示filename前面20行。
印文本第二行第一列                :sed -n "2, 1p" filename | awk 'print $1'

原创粉丝点击