回顾
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