文件管理:上传及下载
互联网文件的上传下载 wget 和 curl
wget
1.首先要安装wget命令
[root@Eva ~]# yum install wget -y
2.找到我们需要下载的资源
资源链接:http://mirrors.aliyun.com/repo/Centos-7.repo
3.在linux上使用命令进行下载(不写地址默认下载到当前目录)
[root@Eva ~]# get http://mirrors.aliyun.com/repo/Centos-7.repo
4.由于我们下载的事文件,可以使用cat、less、more进行查看
[root@Eva ~]# cat weixin.py
5.使用wget下载资源时,指定保存的位置,并重新命名
[root@Eva ~]# get -O /opt/tt.png http://mirrors.aliyun.com/repo/Centos-7.repo
6.如果不想改变名称,需要带上原名称
[root@Eva ~]# get -O /opt/Centos-7.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl
1.在线浏览网站资源内容(源代码)
[root@Eva ~]# curl http://fj.xuliangwei.com/public/weixin.py
2.使用curl将内容保存至本地,并重新命名(未指定明确的路径)
[root@Eva ~]# curl -o http://fj.xuliangwei.com/public/weixin.py
3.将资源保存至指定路径
[root@Eva ~]# curl -o /opt/weixin.py http://fj.xuliangwei.com/public/weixin.py
ps:通常情况下我们推荐使用wget下载,但由于系统很多时候默认没有wget,所以偶尔使用curl
本地文件上传和下载
rz和sz
1.当你直接拖拽的时候如果无法拖拽进Linux服务器
1.没有安装lrzsz。yum install lrzsz -y
2.上传的是一个空文件
注意:
rz #只能上传文件,不能上传文件夹,不支持大于4G上传,不支持断点续传
sz #只能下载文件,不支持下载文件夹
文件管理:文件或命令查找(which、whereis、find)
1.查找一个命令的绝对路径
which is #查找ls命令的绝对路径
2.whereis 也使用来查询命令的绝对路径
whereis ls #查找命令的路径、帮助手册等
whereis -b ls #仅显示命令所在的路径
3.对于一些内核命令,使用which whereis 无法查询,使用type查询
type -a ls #查看命令的绝对路径(包括别名)
文件管理:内容处理命令
sort
-r :倒叙
-n :按数字排序
-t :指定分隔符(默认空格)
-k :指定第几列,指定几列几字符(1,1 3.1,3.3)
#首先创建一个文件,写入无序的内容:
[root@Eva ~]# cat >> file.txt <<EOF
b:3
c:2
a:4
e:5
d:1
f:11
EOF
#2.使用sort下面对输出的内容进行排序
[root@Eva ~]# sort file.txt
a:4
b:3
c:2
d:1
e:5
f:1
#结果并不是按照数字排序,而是按字母排序。
#可以使用-t指定分隔符, 使用-k指定需要排序的列。
[root@Eva ~]# sort -t ":" -k2 sort.txt
d:1
f:11 #第二行为什么是11?不应该按照顺序排列?
c:2
b:3
a:4
e:5
#按照排序的方式, 只会看到第一个字符,11的第一个字符是1, 按照字符 来排序确实比2小。
#如果想要按照数字的方式进行排序, 需要使用 -n参数。
[root@Eva ~]# sort -t ":" -n -k2 p.txt
d:1
c:2
b:3
a:4
e:5
f:11
uniq
uniq [OPTION]... [INPUT [OUTPUT]]
#选项:-c 计算重复的行
#1.创建一个file.txt文件:
[root@Eva ~]# cat >>file1.txt <<EOF
abc
123
abc
123
EOF
#2.uniq需要和sort一起使用, 先使用sort排序, 让重复内容连续在一起
[root@Eva ~]# sort file.txt
123
123
abc
abc
#3.使用uniq去除相邻重复的行
[root@Eva ~]# sort file.txt | uniq 123 abc
#4.-c参数能统计出文件中每行内容重复的次数
[root@Eva ~]# sort file.txt |uniq -c
2 123
2 abc
cut
cut OPTION... [FILE]...
#选项:
-d 指定分隔符
-f 数字,取第几列
-f3,6 三列和6列
-c 按字符取(空格也算)
[root@Eva ~]# cat >>file2.txt <<EOF
Im xlw, is QQ 552408925
EOF
#实现: 筛选出文件里 xlw以及552408925
[root@Eva ~]# awk '{print $2,$5}' file2.txt | awk -F "," '{print $1,$2}'
xlw 552408925
[root@Eva ~]# cut -d " " -f 2,5 file2.txt | awk -F "," '{print $1,$2}'
xlw 552408925
习题: 分析如下日志,统计每个域名被访问的次数。.
[root@Eva ~]# cut -d " " -f 2,5 file2.txt | sed 's#,##g'
xlw 552408925
[root@Eva ~]# sed 's#,##g' file2.txt | awk '{print $2,$5}'
xlw 552408925
#PS: 实际生产使用过程中,很少使用到cut,通常都是使用awk,因为awk 是取列专业
wc
wc [OPTION]... [FILE]...
选项:
-l 显示文件行数
[root@Eva ~]# wc -l /etc/fstab #统计/etc/fstab文件有多少行
[root@Eva ~]# wc -l /etc/services #统计/etc/services 文件行号
练习题: 过滤出/etc/passwd以nologin结尾的内容,并统计有多少行
1.先筛选出目标的行
2.然后进行统计
[root@Eva ~]# grep "nologin$" /etc/passwd | wc l
18
扩展统计文件行号的方法
[root@Eva ~]# cat -n /etc/services | tail -1
[root@Eva ~]# grep -n ".*" /etc/services | tail -1