linux命令记录

linux三剑客:grep,awk,sed。

1. grep命令

2. awk命令

linux中的awk命令是一种处理文本的工具。AWK命名来源于三位创始人的家族名称首字母。可以分行对文本进行处理。

其命令格式如下:

awk [选项参数] 'script' var=value file(s)
或
awk [选项参数] -f scriptfile var=value file(s)

命令可以分为有三个主要要素:

  1.  script,脚本。可以通过单引号括起来,也可以放置在文件中通过-f参数指明文件。
  2. var。
  3. file(s),表示作用的对象文件。

2.1 测试举例:

Dec 23 15:10:01.591144 leaf-229 WARNING logrotate: message repeated 4 times: [ nss_tacplus: no tacacs server in config for nss_tacplus]
Dec 23 15:10:01.661657 leaf-229 INFO liblogging-stdlog:  [origin software="rsyslogd" swVersion="8.24.0" x-pid="1249" x-info="http://www.rsyslog.com"] rsyslogd was 
Dec 23 07:10:58.237137 leaf-229 ERR snmp#snmp-subagent message repeated 13 times: [ [ax_interface] ERROR: MIBUpdater.start() caught an unexpected exception during update_data()#012Traceback (most recent call last):#012  File "/usr/local/lib/python3.6/dist-packages/ax_interface/mib.py", line 43, in start#012    self.update_data()#012  File "/usr/local/lib/python3.6/dist-packages/sonic_ax_impl/mibs/ietf/rfc4363.py", line 73, in update_data#012    bridge_port_id = ent[b"SAI_FDB_ENTRY_ATTR_BRIDGE_PORT_ID"][6:]#012KeyError: b'SAI_FDB_ENTRY_ATTR_BRIDGE_PORT_ID']
Dec 23 15:11:00.806932 leaf-229 WARNING snmp#snmp-subagent [sonic_ax_impl] WARNING: Invalid mgmt IP 10.250.0.226,2000::6
Dec 23 15:11:00.807179 leaf-229 WARNING snmp#snmp-subagent [sonic_ax_impl] WARNING: Invalid management IP 10.250.0.226,2000::6
Dec 23 15:11:00.811136 leaf-229 WARNING snmp#snmp-subagent [sonic_ax_impl] WARNING: Invalid mgmt IP 10.250.0.226,2000::6
Dec 23 15:11:00.811340 leaf-229 WARNING snmp#snmp-subagent [sonic_ax_impl] WARNING: Invalid management IP 10.250.0.226,2000::6
Dec 23 15:11:00.812690 leaf-229 WARNING snmp#snmp-subagent [sonic_ax_impl] WARNING: Invalid mgmt IP 10.250.0.226,2000::6
Dec 23 15:11:00.812890 leaf-229 WARNING snmp#snmp-subagent [sonic_ax_impl] WARNING: Invalid management IP 10.250.0.226,2000::6
Dec 23 15:11:04.241797 leaf-229 ERR snmp#snmp-subagent [ax_interface] ERROR: MIBUpdater.start() caught an unexpected exception during update_data()#012Traceback (most recent call last):#012  File "/usr/local/lib/python3.6/dist-packages/ax_interface/mib.py", line 43, in start#012    self.update_data()#012  File "/usr/local/lib/python3.6/dist-packages/sonic_ax_impl/mibs/ietf/rfc4363.py", line 73, in update_data#012    bridge_port_id = ent[b"SAI_FDB_ENTRY_ATTR_BRIDGE_PORT_ID"][6:]#012KeyError: b'SAI_FDB_ENTRY_ATTR_BRIDGE_PORT_ID'
Dec 23 07:29:37.399508 leaf-229 ERR snmp#snmp-subagent message repeated 3 times: [ [ax_interface] ERROR: MIBUpdater.start() caught an unexpected exception during update_data()#012Traceback (most recent call last):#012  File "/usr/local/lib/python3.6/dist-packages/ax_interface/mib.py", line 43, in start#012    self.update_data()#012  File "/usr/local/lib/python3.6/dist-packages/sonic_ax_impl/mibs/ietf/rfc4363.py", line 73, in update_data#012    bridge_port_id = ent[b"SAI_FDB_ENTRY_ATTR_BRIDGE_PORT_ID"][6:]#012KeyError: b'SAI_FDB_ENTRY_ATTR_BRIDGE_PORT_ID']
  1. 获取每行的日期信息:
    dean@dean-OptiPlex-7050:pcap$ awk '{print $3}' syslog 
    15:10:01.591144
    15:10:01.661657
    07:10:58.237137
    15:11:00.806932
    15:11:00.807179
    15:11:00.811136
    15:11:00.811340
    15:11:00.812690
    15:11:00.812890
    15:11:04.241797
    07:29:37.399508

     

  2. 过滤15点10分之后的日志,输出这个日志的行号和日志的完整内容
    dean@dean-OptiPlex-7050:pcap$ awk -F "[: ]" '$3>10&&$4>10 {print}' syslog 
    Dec 23 15:11:00.806932 leaf-229 WARNING snmp#snmp-subagent [sonic_ax_impl] WARNING: Invalid mgmt IP 10.250.0.226,2000::6
    Dec 23 15:11:00.807179 leaf-229 WARNING snmp#snmp-subagent [sonic_ax_impl] WARNING: Invalid management IP 10.250.0.226,2000::6
    Dec 23 15:11:00.811136 leaf-229 WARNING snmp#snmp-subagent [sonic_ax_impl] WARNING: Invalid mgmt IP 10.250.0.226,2000::6
    Dec 23 15:11:00.811340 leaf-229 WARNING snmp#snmp-subagent [sonic_ax_impl] WARNING: Invalid management IP 10.250.0.226,2000::6
    Dec 23 15:11:00.812690 leaf-229 WARNING snmp#snmp-subagent [sonic_ax_impl] WARNING: Invalid mgmt IP 10.250.0.226,2000::6
    Dec 23 15:11:00.812890 leaf-229 WARNING snmp#snmp-subagent [sonic_ax_impl] WARNING: Invalid management IP 10.250.0.226,2000::6
    Dec 23 15:11:04.241797 leaf-229 ERR snmp#snmp-subagent [ax_interface] ERROR: MIBUpdater.start() caught an unexpected exception during update_data()#012Traceback (most recent call last):#012  File "/usr/local/lib/python3.6/dist-packages/ax_interface/mib.py", line 43, in start#012    self.update_data()#012  File "/usr/local/lib/python3.6/dist-packages/sonic_ax_impl/mibs/ietf/rfc4363.py", line 73, in update_data#012    bridge_port_id = ent[b"SAI_FDB_ENTRY_ATTR_BRIDGE_PORT_ID"][6:]#012KeyError: b'SAI_FDB_ENTRY_ATTR_BRIDGE_PORT_ID'

    1. 首先,使用了两个分隔符冒号(":")和空格(" ")。也就是说遇到冒号或者空格都会分割。
    2. 单引号内的内容先是进行判断,然后后面的双括号表示执行的操作。进行了判断,当第三个字段大于10,且第四个字段大于10。进行了逻辑与。
    3. 在awk中$0表示整行。$1...分别表示第n个字符。当判断成功的时候则输出。
    4. 注意,在比较的时候注意字符串这些的区别,当比较字符串的时候需要用双引号括起来。比如说$8=="still" 双引号不能丢。

  3. 匹配里面含有IP的行(不区分大小写)。

    dean@dean-OptiPlex-7050:pcap$ awk 'BEGIN{IGNORECASE=1} $0 ~/ip/ {print}' syslog 
    Dec 23 15:11:00.806932 leaf-229 WARNING snmp#snmp-subagent [sonic_ax_impl] WARNING: Invalid mgmt IP 10.250.0.226,2000::6
    Dec 23 15:11:00.807179 leaf-229 WARNING snmp#snmp-subagent [sonic_ax_impl] WARNING: Invalid management IP 10.250.0.226,2000::6
    Dec 23 15:11:00.811136 leaf-229 WARNING snmp#snmp-subagent [sonic_ax_impl] WARNING: Invalid mgmt IP 10.250.0.226,2000::6
    Dec 23 15:11:00.811340 leaf-229 WARNING snmp#snmp-subagent [sonic_ax_impl] WARNING: Invalid management IP 10.250.0.226,2000::6
    Dec 23 15:11:00.812690 leaf-229 WARNING snmp#snmp-subagent [sonic_ax_impl] WARNING: Invalid mgmt IP 10.250.0.226,2000::6
    Dec 23 15:11:00.812890 leaf-229 WARNING snmp#snmp-subagent [sonic_ax_impl] WARNING: Invalid management IP 10.250.0.226,2000::6

    1. 在awk中可以使用正则表达式来匹配。匹配操作符为~,正则表达式至于两个斜杠之间。
    2. 之前有一个BEGIN表示在每行操作之前进行的操作,将IGNORECASE这个字段置位为1,表示不区分大小写。

  4.  

  5.  

3. sed命令

 

 

4. 其余命令:

  1. last 可以用于查看最近登录情况。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值