linux文件管理二Day.5

一. 文件下载

1.Centos7 系统最小化安装默认没有wget命令,需要进行安装

    yun  install  wget  -y

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

复制资源的连接地址

3.在linux上使用wget命令进行下载

wget命令语法:wget  加资源的连接地址  (默认下在到当前所在位置)

例如:wget    http://fj.xuliangwei.com/public/ip.txt

4. 把文件下载到指定的目录下

wget  -O  目标位置  加资源的连接地址      (-O参数表示的是把这个文件写入那个目录中)

例如:wget  -O  /etc/yum.repos.d/CentOS-Base.repo  http://mirrors.aliyun.com/repo/Centos-7.repo

二. 在线浏览网络资源的源代码  (-o参数表示将命令的输出写到一个文件里)

1.curl命令使用语法:curl  加资源的连接地址

2.curl  -o  目标位置  要修改的名字  加资源的连接地址 (将内容保存至本地指定目录,并重新命名)

例如:curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

PS:通常情况下建议使用wget

三.上传下载文件

1.Centos7 系统最小化安装默认没有wget命令,需要进行安装

yum  install  lrzsz  -y

2.如果无法将文件直接拖拽进linux:

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

  要么文件是空的

    rz命令使用方法:输入rz 选择文件直接传。(默认上传到当前所在目录)

    sz命令使用方法:输入sz  加文件名    选择下载位置

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

sz也不支持文件夹的下载,任意单个文件都可以下载,包括压缩包。

点这个可以上传超过4G的文件。

四.文件或命令查找

1.which命令语法:which  加命令 (查找命令的绝对路径)

2.whereis命令语法:wuhereis  加命令  (查找命令的路径,帮助手册等)

3.wuhereis  -b  命令    (仅显示命令所在的路径)

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

比如:for

使用方法: type  for    (查看命令的绝对路径,包括别名)

五.文件内容处理命令

1. sort 在有些情况下需要对应一个无序的文件进行排序的时候就需要用sort来排序。

    参数(-t 指定分隔符(-t后要加“分隔符”  -n以阿拉伯数字排序  -k数字 表示第几行)

  例如:[root@localhost ~]# cat lianxi.txt

192.168.3.1 00:0F:AF:81:19:1F

192.168.3.2 00:0F:AF:85:6C:25

192.168.3.3 00:0F:AF:85:70:42

192.168.2.20 00:0F:AF:85:55:DE

192.168.2.21 00:0F:AF:85:6C:09

192.168.2.22 00:0F:AF:85:5C:41

192.168.0.151 00:0F:AF:85:6C:F6

192.168.0.152 00:0F:AF:83:1F:65

192.168.0.153 00:0F:AF:85:70:03

192.168.1.10 00:30:15:A2:3B:B6

192.168.1.11 00:30:15:A3:23:B7

192.168.1.12 00:30:15:A2:3A:A1

192.168.1.1 00:0F:AF:81:19:1F

192.168.2.2 00:0F:AF:85:6C:25

192.168.3.3 00:0F:AF:85:70:42

192.168.2.20 00:0F:AF:85:55:DE

192.168.1.21 00:0F:AF:85:6C:09

192.168.2.22 00:0F:AF:85:5C:41

192.168.0.151 00:0F:AF:85:6C:F6

192.168.1.152 00:0F:AF:83:1F:65

192.168.0.153 00:0F:AF:85:70:03

192.168.3.10 00:30:15:A2:3B:B6

192.168.1.11 00:30:15:A3:23:B7

192.168.3.12 00:30:15:A2:3A:A1

[root@localhost ~]# sort -t "." -k3.1,3.1 -k4.1,4.3 -n lianxi.txt

192.168.0.151 00:0F:AF:85:6C:F6

192.168.0.151 00:0F:AF:85:6C:F6

192.168.0.152 00:0F:AF:83:1F:65

192.168.0.153 00:0F:AF:85:70:03

192.168.0.153 00:0F:AF:85:70:03

192.168.1.1 00:0F:AF:81:19:1F

192.168.1.10 00:30:15:A2:3B:B6

192.168.1.11 00:30:15:A3:23:B7

192.168.1.11 00:30:15:A3:23:B7

192.168.1.12 00:30:15:A2:3A:A1

192.168.1.21 00:0F:AF:85:6C:09

192.168.1.152 00:0F:AF:83:1F:65

192.168.2.2 00:0F:AF:85:6C:25

192.168.2.20 00:0F:AF:85:55:DE

192.168.2.20 00:0F:AF:85:55:DE

192.168.2.21 00:0F:AF:85:6C:09

192.168.2.22 00:0F:AF:85:5C:41

192.168.2.22 00:0F:AF:85:5C:41

192.168.3.1 00:0F:AF:81:19:1F

192.168.3.2 00:0F:AF:85:6C:25

192.168.3.3 00:0F:AF:85:70:42

192.168.3.3 00:0F:AF:85:70:42

192.168.3.10 00:30:15:A2:3B:B6

192.168.3.12 00:30:15:A2:3A:A1

(sort -t "." -k3.1,3.1 -k4.1,4.3 -n lianxi.txt )表示以“.”为分隔符将lianxi.txt文件中的内容的第3列的第一个字符到第3列的第1个字符和第4列的第1个字符到第4列的第3个字符以阿拉伯数字重新排序)

2.uniq 如果文件中有多行完全相同的内容,当前是希望删除重复的行,同时还可以统计出完全相同的行出现的次数,那么就可以使用uniq命令解决这个问题但是需要配合sort来使用。(-c 计算重复的行)

例如:[root@localhost ~]# uniq  -c  file1.txt

      1 abc

      1 123

      1 abc

      1 123

uniq并显示重复的次数使用方法:uniq  -c  加文件名

排序和去重一起使用的时候需要用 | 来连接。

例如:[root@localhost ~]# sort file1.txt | uniq -c

      2 123

      2 abc

表示先将file1.txt排序之后再进行去重,并显示重复次数。

六.截取字段

1.cut参数 -d(指定分隔符) -f (数字,取第几列 例如:-f3,6 表示第3列和第6列) -c (按字符取(空格也算))

cut使用方法:cut  -d  “分隔符”  -f第几列  加文件名字

例如:[root@localhost ~]# cut -d  " " -f2,5 file2.txt

xlw, 552408925  (空格为分隔符)

2.awk(取列命令)(默认空格为分隔符)(参数-F 表示指定分隔符)

awk使用方法:awk  ‘{print  $列数,$列数}’  加文件名字

例如:[root@localhost ~]# awk '{print $2,$5}' file2.txt

xlw, 552408925(表示截取file2.txt文件内容中以空格为分隔符的第2列和第5列)

再将xlw,中的逗号去除掉

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

xlw  552408925(表示先截取file2.txt文件内容中以空格为分隔符的第2列和第5列,然后再截取以逗号为分隔符的第一列和第二列)

awk '{print $2,$5}' file2.txt | sed ‘s#,##’(表示先截取file2.txt文件内容中以空格为分隔符的第2列和第5列,然后再用sed ‘###’命令将逗号替换成什么都没)

例题:将ifconfig  ens32 中的10.0.0.200 截取出来

[root@localhost ~]# ifconfig ens32

ens32: flags=4163  mtu 1500

        inet 10.0.0.200  netmask 255.255.255.0  broadcast 10.0.0.255

        inet6 fe80::1005:4e27:83c7:cd51  prefixlen 64  scopeid 0x20

        ether 00:0c:29:35:0b:2e  txqueuelen 1000  (Ethernet)

        RX packets 4643  bytes 419926 (410.0 KiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 8694  bytes 12029870 (11.4 MiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@localhost ~]# ifconfig ens32 | grep "broadcast" | awk '{print $2}'

10.0.0.200

(先将 ifconfig ens32中有10.0.0.200的行找出来,再把有10.0.0.200的列找出来。筛选其他行里没有的broadcast,然后截取出以空格为分隔符的第二列)

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

1.要取的值在哪里

2.如何缩小范围(先找行,grep)

3.如何精确具体内容(再找列,awk)

拓展:sed  ‘s#要替换的字符#替换成什么字符#’(cut也可以使用)

PS:实际生产过程中很少使用到cut,通常都是使用的是awk。

七.统计行号  (wc -l  只是使用一个参数统计行号)

1.wc 使用方法:wc  -l  加路径

例如:[root@localhost ~]# wc -l /etc/passwd

23 /etc/passwd

如何过滤出/etc/passwd中以nologin结尾的内容,并统计有多少行:

grep "nologin$" /etc/passwd | wc -l

(先过滤出以nologin结尾的然后统计有多少行)

你可能感兴趣的:(linux文件管理二Day.5)