当前位置:   article > 正文

Linux文件管理之(高级)、⽂件查找、上传与下载、输出与重定向、字符处理命令、打包压缩解压缩、文件系统_悉linux操作系统文件编辑、日志查看、文件上传/下载

悉linux操作系统文件编辑、日志查看、文件上传/下载


一、 文本处理三剑客命令初探

1.1 sed

流式编辑器,主要擅长对文件的编辑操作,我们可以事先定制好编辑文件的指令,然后让sed自动完成对文件的整体编辑

# 用法
sed 选项 '定位+命令' 文件路径
​
# 选项
-n 取消默认输出
-r 支持扩展正则元字符(由于尚未学习正则,所以此处暂作了解)
-i 立即编辑文件
​
# 定位
行定位:
    1定位到第一行
    1,3代表从第1行到第3行
    不写定位代表定位所有行
正则表达式定位:
    /egon/ 包含egon的行
    /^egon/ 以egon开头的行 
    /egon$/以egon结尾的行
数字+正则表达式定位
    "1,8p"代表打印1到8行,
    "1,/egon/p"则代表取从第1行到首次匹配到/egon/的行
    
# 命令
d
p
s///g
命令可以用;号连接多多条,如1d;3d;5d代表删除1,3,5行
​
​
# =========================》用法示例:p与d
[root@localhost ~]# sed '' a.txt 
egon1111
22222egon
3333egon33333
4444xxx44444
5555xxx55555xxxx555xxx
6666egon6666egon666egon
[root@localhost ~]# sed -n '' a.txt 
[root@localhost ~]# 
[root@localhost ~]# sed -n '1,/xxx/p' a.txt 
egon1111
22222egon
3333egon33333
4444xxx44444
[root@localhost ~]# sed '1,/xxx/d' a.txt 
5555xxx55555xxxx555xxx
6666egon6666egon666egon
[root@localhost ~]# sed '1d;3d;5d' a.txt 
22222egon
4444xxx44444
6666egon6666egon666egon
​
# =========================》用法示例: s///g
[root@localhost ~]# cat a.txt 
egon1111
22222egon
3333egon33333
4444xxx44444
5555xxx55555xxxx555xxx
6666egon6666egon666egon
[root@localhost ~]# sed 's/egon/BIGEGON/g' a.txt  # 把所有行的所有的egon都换成BIGEGON
BIGEGON1111
22222BIGEGON
3333BIGEGON33333
4444xxx44444
5555xxx55555xxxx555xxx
6666BIGEGON6666BIGEGON666BIGEGON
[root@localhost ~]# 
[root@localhost ~]# sed '/^egon/s/egon/GAGAGA/g' a.txt  # 以egon开头的行中的egon换成GAGAGA
GAGAGA1111
22222egon
3333egon33333
4444xxx44444
5555xxx55555xxxx555xxx
6666egon6666egon666egon
[root@localhost ~]# sed '6s/egon/BIGEGON/' a.txt  # 只把第6行的egon换成BIGEGON,加上g代表???
egon1111
22222egon
3333egon33333
4444xxx44444
5555xxx55555xxxx555xxx
6666BIGEGON6666egon666egon
[root@localhost ~]# 
[root@localhost ~]# sed '1,3s/egon/BIGEGON/g' a.txt # 把1到3行的egon换成BIGEGON
BIGEGON1111
22222BIGEGON
3333BIGEGON33333
4444xxx44444
5555xxx55555xxxx555xxx
6666egon6666egon666egon
​
[root@localhost ~]# cat a.txt | sed '1,5d'  # sed也支持管道
6666egon6666egon666egon
# 加上-i选项,直接修改文件,通常会在调试完毕确保没有问题后再加-i选项
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93

1.2 awk

awk主要用于处理有格式的文本,例如/etc/passwd这种

# 用法
awk 选项 'pattern{action}' 文件路径
​
# 选项
-F 指定行分隔符
​
# 工作流程
awk -F: '{print $1,$3}' /etc/passwd
​
1、awk会读取文件的一行内容然后赋值给$0
2、然后awk会以-F指定的分隔符将该行切分成n段,最多可以达到100段,第一段给$1,第二段给$2,依次次类推
3、print输出该行的第一段和第三段,逗号代表输出分隔符,默认与-F保持一致
4、重复步骤1,2,3直到文件内容读完
​
# 内置变量
$0 一整行内容
NR 记录号,等同于行号
NF 以-F分隔符分隔的段数
​
# pattern可以是
/正则/
    /正则/       # 该行内容匹配成功正则
    $1 ~ /正则/  # 第一段内容匹配成功正则
    $1 !~ /正则/  # 第一段内容没有匹配成功正则
比较运算:
    NR >= 3 && NR <=5  # 3到5行
    $1 == "root"      # 第一段内容等于root# action可以是
print $1,$3
​
​
# 用法示例
[root@localhost ~]# cat a.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@localhost ~]# awk -F: '/^root/{print $1,$3}' a.txt 
root 0
[root@localhost ~]# awk -F: '$1 ~ /^d/{print $1,$3}' a.txt 
daemon 2
[root@localhost ~]# awk -F: '$1 !~ /^d/{print $1,$3}' a.txt 
root 0
bin 1
adm 3
lp 4
[root@localhost ~]# awk -F: 'NR>3{print $1}' a.txt 
adm
lp
[root@localhost ~]# awk -F: '$1 == "lp"{print $0}' a.txt 
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[root@localhost ~]# [root@localhost ~]# cat a.txt | awk -F: '{print $1}' # awk也支持管道
root
bin
daemon
adm
lp
[root@localhost ~]# 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62

事实上awk是一门编程语言,可以独立完成很强大的操作,我们将在shell编程中详细介绍

1.3 grep

grep擅长过滤内容

# 用法
grep 选项 '正则' 文件路径
​
# 选项
-n, --line-number           在过滤出的每一行前面加上它在文件中的相对行号
-i, --ignore-case           忽略大小写
--color                     颜色
-l, --files-with-matches    如果匹配成功,则只将文件名打印出来,失败则不打印
                            通常-rl一起用,grep -rl 'root' /etc 
-R, -r, --recursive         递归
​
# 示例
[root@localhost ~]# grep '^root' /etc/passwd
root:x:0:0:root:/root:/bin/bash
                        
[root@localhost ~]# grep -n 'bash$' /etc/passwd
1:root:x:0:0:root:/root:/bin/bash
44:egon:x:1000:1000:egon:/home/egon:/bin/bash
                            
[root@localhost ~]# grep -rl 'root' /etc    # grep也支持管道,我们可以发现三剑客命令都支持管道
[root@localhost ~]# ps aux |grep ssh
root        968  0.0  0.2 112908  4312 ?        Ss   14:05   0:00 /usr/sbin/sshd -D
root       1305  0.0  0.3 163604  6096 ?        Ss   14:05   0:00 sshd: root@pts/0
root       1406  0.0  0.3 163600  6240 ?        Ss   14:05   0:00 sshd: root@pts/1
root       2308  0.0  0.0 112724   984 pts/1    R+   15:30   0:00 grep --color=auto ssh
[root@localhost ~]# ps aux |grep [s]sh
root        968  0.0  0.2 112908  4312 ?        Ss   14:05   0:00 /usr/sbin/sshd -D
root       1305  0.0  0.3 163604  6096 ?        Ss   14:05   0:00 sshd: root@pts/0
root       1406  0.0  0.3 163600  6240 ?        Ss   14:05   0:00 sshd: root@pts/1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

二、 文件管理之:文件查找

一、查看命令所属文件

[root@localhost ~]# which ip
/usr/sbin/ip
​
# ps: 一些命令的路径都被配置到了环境变量PATH里
    echo $PATH
  • 1
  • 2
  • 3
  • 4
  • 5

二、查找文件


                
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/321014
推荐阅读
相关标签
  

闽ICP备14008679号