一. 文件下载
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也不支持文件夹的下载,任意单个文件都可以下载,包括压缩包。
四.文件或命令查找
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
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结尾的然后统计有多少行)