Day07-文件处理命令重要知识讲解

Day07-文件处理命令重要知识讲解

  • 1. 文件内容相关命令:

1. 文件内容相关命令:

  1. 介绍vi和vim
    vi 相当于win记事本,默认是有的,
    vim 相当于notepad++,typora(MD),默认没有需要安装。
  2. 安装vim工具
[root@oldboy ~]# rpm -qa vim-enhanced
vim-enhanced-7.4.629-8.el7_9.x86_64
yum install vim-enhanced -y
  1. VIM模式
    ​ 普通模式
    ​ 编辑模式
    ​ 命令模式

​ 切入命令模式使用冒号的时候:
​ :
​ w 保存 write
​ u 撤销 undo 保存之前
​ q 退出 quit
​ ! 强制

Day07-文件处理命令重要知识讲解_第1张图片

  1. VIM快捷键

普通模式:

  1. 移动光标
cat /etc/passwd >oldboy.txt
G  文件结尾
gg 文件开头
$  行尾
0  行头
ngg     切换到第n行
n[回车] 移动n行

Day07-文件处理命令重要知识讲解_第2张图片
2. 搜索和替换

/ 内容 向下搜索,此时按n继续搜索,N反向继续搜索。
? 内容 向上搜索,此时按n继续搜索,N反向继续搜索。
:%s/A/B/g,把A替换成B,如果A或B中有斜线,把分割的斜线换#或@
  s为替换,g全局替换
:n1,n2s/A/B/g	n1、n2为数字,在第n1行和n2行间寻找A,用B替换
  1. 复制、粘贴 删除
yy  复制当前行
nyy 复制从当前开始的n行
p   粘贴到光标的下一行
P   粘贴到光标的上一行
dd  删除当前行
ndd 删除从当前行开始的n行
x   删除光标后字符
X   删除光标前字符
u   撤销

d1gg  d1G 删除当前行至第一行
dG	删除当前行至最后一行
d0	删除当前光标文本至行首
d$	删除当前光标文本至行尾

进入编辑模式命令

i	在当前光标所在处插入文字
A	在当前所在行的行尾最后一个字符处开始插入文字,和I相反
I	在当前所在行的行首第一个非空格符处开始插入文字,和A相反
O	在当前所在行的上一行处插入新的一行
o	在当前所在行的下一行处插入新的一行

命令模式

:set nu   显示行号
:set nonu 取消行号
G   文件结尾
gg  文件开头
$    行尾
0    行头
ngg 切换到第n行
n[回车]  移动n行

编辑文件同时定位到102行。

vim /etc/sudoers +102

cat 查看文件内容

-n 显示行号

[root@oldboy ~]# cat -n oldboy.txt
     1  root:x:0:0:root:/root:/bin/bash
     2  bin:x:1:1:bin:/bin:/sbin/nologin
     3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4  adm:x:3:4:adm:/var/adm:/sbin/nologin
     5  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
     6  sync:x:5:0:sync:/sbin:/bin/sync
     7  shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
     8  halt:x:7:0:halt:/sbin:/sbin/halt
     9  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    10  operator:x:11:0:operator:/root:/sbin/nologin
    11  games:x:12:100:games:/usr/games:/sbin/nologin
    12  ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    13  nobody:x:99:99:Nobody:/:/sbin/nologin
    14  systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
    15  dbus:x:81:81:System message bus:/:/sbin/nologin
    16  polkitd:x:999:998:User for polkitd:/:/sbin/nologin
    17  tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
    18  abrt:x:173:173::/etc/abrt:/sbin/nologin
    19  sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
    20  postfix:x:89:89::/var/spool/postfix:/sbin/nologin
    21  oldboy:x:1000:1000:oldboy:/home/oldboy:/bin/bash
    22  tcpdump:x:72:72::/:/sbin/nologin

echo 打印内容输出内容

-n 不换行

-e 支持转义字符

​ \n 换行

​ \t tab

-n实践:

[root@oldboy ~]# echo "oldboy";echo oldgirl
oldboy
oldgirl
[root@oldboy ~]# echo -n "oldboy";echo oldgirl
oldboyoldgirl

-e实践

[root@oldboy ~]# echo  "oldboy\noldgirl"
oldboy\noldgirl
[root@oldboy ~]# echo -e "oldboy\noldgirl"
oldboy
oldgirl
[root@oldboy ~]# echo -e "oldboy\toldgirl"
oldboy	oldgirl

more/less 查看文件内容(浏览)

less参数:

-N 显示行号

head 头 查看文件头部,默认头10行

-n数字 显示n行,缩写-数字

实践:

[root@oldboy ~]# head -n 5 oldboy.txt 
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

[root@oldboy ~]# head -5 oldboy.txt 
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

tail 尾 查看文件尾部,默认10行

-n数字 显示n行,缩写-数字

oldboy:x:1000:1000:oldboy:/home/oldboy:/bin/bash
tcpdump:x:72:72::/:/sbin/nologin
[root@oldboy ~]# tail -2 oldboy.txt 
oldboy:x:1000:1000:oldboy:/home/oldboy:/bin/bash
tcpdump:x:72:72::/:/sbin/nologin

-f 动态跟踪文件尾部的变化,查看日志文件结尾。

测试脚本:

for n in `seq 1000`;do echo "$n I am oldboy.I am 30">>~/oldboy.txt;sleep 2;done

另外打开一个窗口

[root@oldboy ~]# tail -f oldboy.txt 
2 I am oldboy.I am 30
3 I am oldboy.I am 30
4 I am oldboy.I am 30
5 I am oldboy.I am 30
6 I am oldboy.I am 30
7 I am oldboy.I am 30
8 I am oldboy.I am 30
......

grep 过滤内容,筛选内容 三剑客之一,老三

按行输出

grep [选项] 内容 文件

–color-auto 过滤的内容显示颜色

1)过滤出含有root字符串的行

[root@oldboy ~]# grep root oldboy.txt 
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

2)过滤出【不】含有root字符串的行

-v 取反

[root@oldboy ~]# grep -v root oldboy.txt 
bin:x:1:1:bin:/bin:/sbin/nologin

3)过滤出含有root字符串(含大写)的行

-i 不区分大小写

[root@oldboy ~]# grep -i root oldboy.txt 
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
ROOT
491 I ROOT  am oldboy.I am 30

4)同时过滤含有oldboy和root的行。

-E 同时过滤多个字符串

[root@oldboy ~]# grep -E "oldboy|root" oldboy.txt 
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

grep -E = egrep

扩展的grep,egrep

[root@oldboy ~]# egrep "oldboy|root" oldboy.txt 
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
oldboy:x:1000:1000:oldboy:/home/oldboy:/bin/bash

了解参数
-o 只输出匹配的内容

[root@oldboy ~]# grep -o root oldboy.txt 
root
root
root

-n 过滤出的内容,在文件中的行号

[root@oldboy ~]# grep -n root oldboy.txt 
1:root:x:0:0:root:/root:/bin/bash
10:operator:x:11:0:operator:/root:/sbin/nologin

[root@oldboy ~]# grep -n ".*" oldboy.txt ==cat -n oldboy.txt   #特殊注意:此处过滤的点代表任意一个字符。
1:root:x:0:0:root:/root:/bin/bash
2:bin:x:1:1:bin:/bin:/sbin/nologin
3:daemon:x:2:2:daemon:/sbin:/sbin/nologin

-w 按单词过滤

oldboy和oldboy123不是一个东西了,oldboy123不会被过滤出来。

[root@oldboy ~]# grep -w oldboy oldboy.txt 
oldboy:x:1000:1000:oldboy:/home/oldboy:/bin/bash
489 I am oldboy.I am 30
490 I am oldboy.I am 30

touch 创建文件

touch file1
touche file1 file2 file3
touch  file{1..100}

{1…100} 一个序列

[root@oldboy ~]# echo {1..10}
1 2 3 4 5 6 7 8 9 10
[root@oldboy ~]# echo {a..z}
a b c d e f g h i j k l m n o p q r s t u v w x y z
[root@oldboy ~]# echo {A..Z}
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

seq 输出数字序列

输出1-5

[root@oldboy ~]# seq 5
1
2
3
4
5

输出2-5

[root@oldboy ~]# seq 2 5
2
3
4
5

步长2,从2到10

[root@oldboy ~]# seq 2 2 10
2
4
6
8
10

-s 指定空格为分隔符

[root@oldboy ~]# seq -s " " 5
1 2 3 4 5
[root@oldboy ~]# echo {1..5}
1 2 3 4 5

-w 补齐位数

[root@oldboy ~]# seq -w -s " " 10
01 02 03 04 05 06 07 08 09 10

[root@oldboy ~]# seq -w -s " " 9
1 2 3 4 5 6 7 8 9

[root@oldboy ~]# seq -w -s " " 200
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031 032 033 034 035 036 037 038 039 040 041 042 043 044 045 046 047 048 049 050 051 052 053 054 055 056 057 058 059 060 061 062 063 064 065 066 067 068 069 070 071 072 073 074 075 076 077 078 079 080 081 082 083...

考题1:在/data目录下创建oldboy.txt,并增加"I am studying linux."一行内容。
该题有多种解题方法。
考题2:请用一条命令完成创建目录/oldboy/test,即创建/oldboy目录及/oldboy/test目录。

今日作业:
下节内容:
1.alias/unalias
2.cp直接覆盖知识
3.tr
4.重定向
5.第8章 linux文件类型,查找与打包命令
视频预习: 13 14
链接: https://ke.qq.com/course/2806831?taid=9996020988171311

尖刀组;
1.yum
2.rpm
3.wget
4.curl
5.vim快捷键,命令行快捷键 整理出思维导图。

你可能感兴趣的:(linux云计算运维笔记,运维,linux,服务器)