Linux运维-day9-Linux-vim排错、grep基础与文件属性(上)

一、vim排错

1、vim执行过程

16955089-0f9de2d24576ee46.png
vim执行过程.png

2、故障产生原因

1>同时打开一个文件
2>之前的文件没有正常保存退出

3、解决方法

方法一:
删除这个临时文件(推荐)
注:要删除的临时文件在提示中有,如:

E325: ATTENTION
Found a swap file by the name ".vim.log.swp"
          owned by: root   dated: Tue Apr  9 09:51:18 2019
         file name: /tmp/vim.log
# /etc/services:
# $Id: services,v 1.55 2013/04/14 ovasik Exp $
[root@linux-yunwei01 tmp]# rm -rf .vim.log.swp 

方法二:
把临时文件的内容恢复(不推荐)

[root@oldboyedu59 ~]# vim -r /tmp/oldboy.txt
oldboyedu.com
guoav.com
guoav.com
guoav.com
guoav.com
guoav.com
~ 
~ 
"/tmp/oldboy.txt" 6L, 64C written                                 
[root@oldboyedu59 ~]# 
[root@oldboyedu59 ~]# cat /tmp/oldboy.txt
oldboyedu.com
guoav.com
guoav.com
guoav.com
guoav.com
guoav.com
[root@oldboyedu59 ~]# rm -f /tmp/.oldboy.txt.swp 
[root@oldboyedu59 ~]# vim /tmp/oldboy.txt
oldboyedu.com
guoav.com
guoav.com
guoav.com
guoav.com
guoav.com
~
[root@oldboyedu59 ~]# 

二、alias:别名,给命令起小名(补充)

作用:给危险命令加上保护;省事、方便
设置格式:alias 小名=‘命令’
cp mv rm -i
cp === cp -i 覆盖之前提示
rm === rm -i 删除之前提示
例子:
输入net显示网卡的配置文件

1>临时---(重新登录之后生效)

[root@oldboyedu59 ~]# alias net='cat /etc/sysconfig/network-scripts/ifcfg-eth0'
[root@oldboyedu59 ~]# net
TYPE=Ethernet
BOOTPROTO=none
NAME=eth0
UUID=fa77146b-1e0c-4544-8ecb-5a98a6ebfc41
DEVICE=eth0
ONBOOT=yes
IPADDR=10.0.0.201
PREFIX=24
GATEWAY=10.0.0.254
DNS1=10.0.0.254
DNS2=223.5.5.5

2>永久
vim打开这个/etc/profile文件,在最后面添加alias net='cat /etc/sysconfig/network-scripts/ifcfg-eth0',保存退出后,让配置生效用命令:source /etc/profile

[root@oldboyedu59 ~]# tail -1 /etc/profile
alias net='cat /etc/sysconfig/network-scripts/ifcfg-eth0'
##让配置生效
[root@oldboyedu59 ~]# source  /etc/profile

3>检查

[root@oldboyedu59 ~]# alias net
alias net='cat /etc/sysconfig/network-scripts/ifcfg-eth0'

三、三剑客老三-grep:在文件中进行查找(过滤)

[root@oldboyedu59 ~]# alias grep 
alias grep='grep --color=auto'     #centos 7下面 默认就有 CentOS6 5需要手动配置

参数:

-n:显示行号和内容

[root@linux-yunwei01 ~]# grep -n 'ssh' /tmp/vim.log 
41:ssh             22/tcp                          # The Secure Shell (SSH) Protocol
42:ssh             22/udp                          # The Secure Shell (SSH) Protocol
547:x11-ssh-offset  6010/tcp                        # SSH X11 forwarding offset
587:ssh             22/sctp                 # SSH
1369:sshell          614/tcp                 # SSLshell
1370:sshell          614/udp                 #       SSLshell
1623:netconf-ssh     830/tcp                 # NETCONF over SSH
1624:netconf-ssh     830/udp                 # NETCONF over SSH
7208:sdo-ssh         3897/tcp                # Simple Distributed Objects over SSH
7209:sdo-ssh         3897/udp                # Simple Distributed Objects over SSH
8460:snmpssh         5161/tcp                # SNMP over SSH Transport Model
8461:snmpssh-trap    5162/tcp                # SNMP Notification over SSH Transport Model
9082:tl1-ssh         6252/tcp                # TL1 over SSH
9083:tl1-ssh         6252/udp                # TL1 over SSH
10656:ssh-mgmt        17235/tcp               # SSH Tectia Manager
10657:ssh-mgmt        17235/udp               # SSH Tectia Manager
[root@linux-yunwei01 ~]# 

-w:按照单词进行过滤

[root@linux-yunwei01 ~]# grep -w 'ssh' /tmp/vim.log 
ssh             22/tcp                          # The Secure Shell (SSH) Protocol
ssh             22/udp                          # The Secure Shell (SSH) Protocol
x11-ssh-offset  6010/tcp                        # SSH X11 forwarding offset
ssh             22/sctp                 # SSH
netconf-ssh     830/tcp                 # NETCONF over SSH
netconf-ssh     830/udp                 # NETCONF over SSH
sdo-ssh         3897/tcp                # Simple Distributed Objects over SSH
sdo-ssh         3897/udp                # Simple Distributed Objects over SSH
tl1-ssh         6252/tcp                # TL1 over SSH
tl1-ssh         6252/udp                # TL1 over SSH
ssh-mgmt        17235/tcp               # SSH Tectia Manager
ssh-mgmt        17235/udp               # SSH Tectia Manager

-i(ignore-case):过滤的时候忽略大小写

[root@linux-yunwei01 ~]# grep -i 'ipaddr' /tmp/vim.log 
IPADDR=10.0.0.200
[root@linux-yunwei01 ~]# 

-v:找出不包含xxx的行(排除、取反)

[root@linux-yunwei01 ~]# grep -v '#' /tmp/vim.log 

echo            7/tcp
echo            7/udp
discard         9/tcp           sink null
discard         9/udp           sink null
systat          11/tcp          users
systat          11/udp          users

grep命令练习题:

过滤出文件中包含oldboy的行及行号:
过滤出文件中包含oldboy(不区分大小写)的行及行号
过滤出不包含oldboy(不区分大小写)的行
按单词过滤出oldboy(不区分大小写)

#准备环境:
cat >/tmp/oldboy.txt<<EOF
oldboy
alex
oldboyoldboy
alexoldboy
Oldboy oLdboy 
OLDBOY
EOF
#1.过滤出文件中包含oldboy的行及行号
[root@oldboyedu59 ~]# 
[root@oldboyedu59 ~]# grep -n 'oldboy' /tmp/oldboy.txt
1:oldboy
3:oldboyoldboy
4:alexoldboy
#2.过滤出文件中包含oldboy(不区分大小写)的行及行号
[root@oldboyedu59 ~]# grep -in 'oldboy' /tmp/oldboy.txt
1:oldboy
3:oldboyoldboy
4:alexoldboy
5:Oldboy oLdboy 
6:OLDBOY
#3.过滤出不包含oldboy(不区分大小写)的行
[root@oldboyedu59 ~]# grep -iv 'oldboy' /tmp/oldboy.txt
alex
[root@oldboyedu59 ~]# cat /tmp/oldboy.txt
oldboy
alex
oldboyoldboy
alexoldboy
Oldboy oLdboy 
OLDBOY
#4.按单词过滤出oldboy(不区分大小写)
[root@oldboyedu59 ~]# grep -i 'oldboy' /tmp/oldboy.txt
oldboy
oldboyoldboy
alexoldboy
Oldboy oLdboy 
OLDBOY
[root@oldboyedu59 ~]# grep -iw 'oldboy' /tmp/oldboy.txt
oldboy
Oldboy oLdboy 
OLDBOY

四、tr:替换(1对1替换)

注:< 输入重定向符号
tr与<连用

[root@linux-yunwei01 ~]# tr 'a-z' 'A-Z'< /tmp/oldboy.txt 
OLDBOY
ALEX
OLDBOYOLDBOY
ALEXOLDBOY
OLDBOY OLDBOY 
OLDBOY
[root@linux-yunwei01 ~]#

五、Linux文件属性

16955089-66d193944e007b90.png
Linux文件属性.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值