05笔记---文件管理(二)

回顾

1.cp

                    -p 保持元属性

                    -v 显示拷贝的执行过程

                    -r 递归复制,通常用来复制目录

2.grep  文件过滤

                    -n 显示行号

                    -E 同时筛选多个目标

                    -A

                    -B

                    -C

                    -i 忽略大小写

                    -v 取反

                    ^ 匹配以什么开头

                    $ 匹配以什么结尾

                    . 任意单个字符

                    * 表示所有

                    .* 表示任意字符

                    ^$ 表示过滤空格

3.cat 查看文件内容

                    -A 查看特殊符号

                    -n 显示行号

                    -cat >>  test.txt<

                    test

                    EOF

4.less more

5. head 查看文件头部内容,默认前10行

                  -n 指定查看前几行

6.tail查看文件尾部

                -n 指定查看文件尾部后几行

                -f 查看尾部实时变化

----------------------------------------------------------------------

今日笔记

一、文件下载

wget 下载网络上的资源

1.centos7 系统最小化安装,所以要安装wget命令

[root@test ~]# yum install wget -y(-y是指不提示直接安装,默认下载到当前目录)

2.找到我们需要下载的资源

------->复制下载链接

3.在Linux上使用wget命令进行下载(默认下载到当前目录)

语法 [root@test ~]wget [option(选项)] [URL地址]

4.由于我下载的是文件,所以我们可以用less或者more查看该文件

5.使用wget下载资源时,指定保存的位置,并重命名

[root@test ~]# wget -O /opt/tt.png http://fj.xuliangwei.com/public/ks.jpeg

6.下载资源时,如果不想重新命名只想修改保存的路径,请带上原有的名称

[root@test ~]wget -o /opt/ks.jpeg  http://fj.xuliangwei.com/public/ks.jpeg

curl 浏览网络上资源

1.在线浏览网站资源(源代码)

[root@test ~]curl http://fj.xuliangwei.com/public/weixin.py

2.使用curl将内容保存到本地(如果没有明确指定,则表示当前目录)

[root@test ~]curl -o wei.txt http://fj.xuliangwei.com/public/weixin.py

3.将资源保存至指定的路径

curl -o/tmp/名称  [root@test ~]# curl -o /opt/weixin.py http://fj.xuliangwei.com/public/weixin.py

下载完之后一定要检查,因为下载不一定成功

#-------------------------------------------------------------

PS:通常情况下,推荐使用wget.但系统有时没有安装wget,所以会偶尔试用一下curl

#2.curl保存至本地 /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo [root@test ~]# curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

#3.最后执行一条命令检查  yum makecache

#练习: 将阿里云的仓库源 该为  清华大学的源 https://mirrors.tuna.tsinghua.edu.cn 搜狐 网

#--------------------------------------------------------------

rzsz上传下载文件

如果无法将文件直接拖拽进Linux服务器

1.要么没有安装rzsz,建议安装yum install lrzsz -y

2.你上传的是一个空文件

#rz只能上传文件,不支持上传文件夹,不支持大于4个G的上传,也不支持断点续传

#sz /path/file 只能下载文件,不支持下载文件夹

#-------------------------------------------------------------------

文件管理:文件或命令查找(which is whereis find)

搜索

1.查找命令的绝对路径

当我们想执行一个命令的绝对路径时,先使用which command 查询绝对路径

which is #查找ls命令的绝对路径

2.where is也是用来查询命令的绝对路径

whereis ls  #查找命令的路径、帮助手册等

whereis -b is #仅显示命令所在的路径

3.对于内核相关的一些命令,使用which whereis 是查询无法查询到的需要使用type命令

type -a ls 查看命令的绝对路径(包括别名)

1.sort  排序

-t#分隔符

-k#哪一区间

-n#依照数值的大小进行排序

-r#以相反的顺序来排序

-f#排序是忽略大小写

-c#查看文件是否已经按照顺序排序

#1.首先创建一个文件,写入一写无序的内容

[root@xuliangwei ~]# cat >> file.txt <

b:3

c:2

a:4

e:5

d:1

f:11

EOF

#2.使用sort下面对输出的内容进行排序

[root@xuliangwei ~]# sort file.txt

a:4

b:3

c:2

d:1

e:5

f:11

#结果并不是按照数字排序,而是按字母排序。

#可以使用-t指定分隔符, 使用-k指定需要排序的列。

[root@xuliangwei ~]# sort -t ":" -k2 file.txt

#第二行为什么是11?

不应该按照顺序排列?

c:2

b:3

a:4

e:5

#按照排序的方式, 只会看到第一个字符,11的第一个字符是1,

按照字符 来排序确实比2小。

#如果想要按照数字的方式进行排序, 需要使用 -n参数。

[root@xuliangwei ~]# sort -t ":" -n -k2 p.txt

d:1

c:2

b:3

a:4

e:5

f:11

#测试案例,下载文件 http://fj.xuliangwei.com/public/ip.txt,

对该文件进行排序

[root@xuliangwei ~]# sort -t. -k3.1,3.1nr -k4.1,4.3nr ip.tx

#------------------------------------------------------------------

uniq去重

uniq [option]  [intput [ouput]]

#选项:-c 计算重复的行

-c 统计算重复的行

1.创建一个file.txt 文件

cat  >>123.txt<

123

ABC

123

ABC

EOF

2.uniq需要和sort 一起使用,先使用sort 排序,让重复内容连续在一起

sort 123.txt

3.使用uniq去除相邻重复的行

sort  123.txt |uniq

4.-c参数能统计出文件中每行内容重复的次数

sort 123.txt |uniq -c

#-------------------------------------------------------------------

cut 截取字段

cut option .. [file]

-d #指定分隔符

-f #数字,取第几列

-f3,6 #3列和6列

-c      #按字符取(空格也算)

[root@test ~]# cat >>file2.txt <

Im xlw, is QQ 552408925

EOF

#实现: 筛选出文件里 xlw以及552408925

[root@test ~]# awk '{print $2,$5}' file2.txt | awk -F "," '{print $1,$2}'

[root@test ~]# cut -d " " -f 2,5 file2.txt | awk -F "," '{print $1,$2}'

sed这里使用的是替换属性

sed'#替换的内容#替换成什么#'或者是‘@@@’ '///'

sed '1,5d'  删除一行到五行

sed -n

[root@m01 while]# sed -n 3,4p 1.txt

3

4

[root@m01 while]# sed -n '3p;10p' 1.txt

3

10

[root@test ~]# cut -d " " -f 2,5 file2.txt  | sed 's#,##g'

[root@test ~]# sed 's#,##g' file2.txt | awk '{print $2,$5}'

-i 直接编辑文件

#PS: 实际生产使用过程中,很少使用到cut,通常都是使用awk,因为awk 是取列专业户

#-------------------------------------------------------------------------------

wc统计行号

wc[option] [file]

-l显示文件行数

wc -l /etc/fstab #统计etc目录下fstab有多少行

wc -l /etc/services 统计etc目录下services文件行

#练习题: 过滤出/etc/passwd以nologin结尾的内容,并统计有多少行

#1.先筛选出目标的行

#2.然后进行统计

[root@test ~]# grep "nologin$" /etc/passwd | wc

# 扩展统计文件行号的方法

[root@test ~]# cat -n /etc/services  | tail -1

[root@test ~]# grep -n ".*" /etc/services  | tail -1

习题 分析如下日志,统计每个域名被访问的次数

[root@student tmp]# cat >> web.log <

http://www.xuliangwei.com/index.html

http://www.xuliangwei.com/1.html

http://post.xuliangwei.com/index.html

http://mp3.xuliangwei.com/index.html

http://www.xuliangwei.com/3.html

http://post.xuliangwei.com/2.html

EOF

[root@test ~]# cut -d "/" -f 3 web.log | sort | uniq -c | sort -nr

[root@test ~]# awk -F "/" '{print $3}' web.log |sort |uniq -c |sort -nr

习题: 使用awk取出系统的IP地址,思路如下:

1.我要取的值在哪里 ifconfig ens32

2.如何缩小取值范围(行)

3.如何精确具体内容(列)

[root@student tmp]# cat >> web.log <

http://www.xuliangwei.com/index.html http://www.xuliangwei.com/1.html http://post.xuliangwei.com/index.html http://mp3.xuliangwei.com/index.html http://www.xuliangwei.com/3.html http://post.xuliangwei.com/2.html

EOF

[root@test ~]# cut -d "/" -f 3 web.log | sort | uniq -c | sort -nr

[root@test ~]# awk -F "/" '{print $3}' web.log |sort |uniq -c |sort -nr

#.先拿到结果,然后提取有关键字那一行,最后使用awk取出那一列

[root@test ~]# ifconfig ens32|grep "netmask" | awk '{print $2}' 10.0.0.200

[root@test ~]# ifconfig ens32 | awk '/netmask/' | awk '{print $2}' 10.0.0.200

[root@test ~]# ifconfig ens32 | awk '/netmask/ {print $2}' 10.0.0.200

习题:分析如下日志,请提取出访问次数É高的TOP10IP地址

[root@test ~]# awk '{print $1}'

fj.xuliangwei.com.log |sort |uniq -c|sort -nr | head

习题: 将/etc/passwd文件中的第一行中的第一列和É后一列位置进行 交换。

习题: 将/etc/sysconfig/selinux 文件中的SELINUX=enforcing替换成 SELINUX=disabled

#2 今日内容

文件相关

1.wget curl 下载互联网上的文件

2.rz sz 下载linux服务器上的文件,或上传文件至linux服务器

3.which whereis type 查找一个命令的绝对路径

4.cut awk 取列 grep 取行 wc 统计内容

cut+awk awk grep+awk grep+wc

你可能感兴趣的:(05笔记---文件管理(二))