文章目录
man指令
cp指令
mv指令
echo指令
cat指令
wc指令
more指令
less指令
head和tail指令
date指令
cal指令
sort指令
find which whereis指令
alias指令
grep指令
top指令
zip和unzip指令
man指令
语法: man [选项] 命令
功能:man 指令可以查阅 Linux 的联机手册
root下安装 man 指令:
yum intall -y man-pages
通过 sudo 来为普通用户安装(普通用户使用sudo):
sudo yum intall -y man-pages
![](https://img-blog.csdnimg.cn/img_convert/a250e2d8152bb5baa7b2d2c456f81616.png)
cp指令
语法:cp [选项] 源文件或目录 目标文件或目录
功能: cp —— copy,顾名思义就是拷贝,复制文件或目录
![](https://img-blog.csdnimg.cn/img_convert/c43c36db47da626ebd3868a2aaee475c.png)
mv 指令
mv —— move,可以 剪切文件/目录 或者 重命名文件/目录。
语法: mv [选项] 源文件或目录 目标文件或目录
功能:
当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它
将所给的源文件或目录重命名为给定的目标文件名。
当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至
目标目录中。
剪切:mv 文件名 路径:剪切文件到指定路径
![](https://img-blog.csdnimg.cn/img_convert/ba0af1212e2d47789e54a4f2212741a8.png)
4.重命名:
mv 可以重命名文件或目录
mv 文件名 新的文件名:文件重命名。如果当前面目录并没有这个名字,且不是一个存在的目录,shell会判定它是一个新的文件名
![](https://img-blog.csdnimg.cn/img_convert/ccbf337cf915d02324e9fcb5f2ee9f63.png)
总结:
mv 文件名 不存在文件名:重命名
mv 文件名 路径:剪切
mv 文件名 目录 + 不存在文件名:剪切并重命名文件
mv 目录名 目录 + 不存在目录名:剪切并重命名目录
echo 指令(含输出重定向)
echo "字符串":可以把字符串打印到屏幕上
![](https://img-blog.csdnimg.cn/img_convert/01fb93c57a030c79c527f3d8a20700cd.png)
echo "字符串" > 文件名:将字符串写入文件中,若文件不存在会创建文件,为输出重定向
![](https://img-blog.csdnimg.cn/img_convert/210f667c2e6746b9c5089f52c003c121.png)
每次重定向后,文件中的内容为最后一次重定向的结果。覆盖式写入
![](https://img-blog.csdnimg.cn/img_convert/a1a5770b6ee162b6ecfe99a452091250.png)
输出重定向到底是什么意思?
这里的 >为 输出重定向,echo 默认是打印到屏幕上的。
如果 > 对应的 目标文件不存在 ,则会 自动创建 ,并把本来应该显示到显示器上面的文本,写入到 文件 中,这一过程,就叫 输出重定向 。输出重定向就是把原本写入到 显示器文件 的内容写入到文件中!
echo "字符串" >> 文件名:将字符串内容追加到文件中,为 追加重定向
![](https://img-blog.csdnimg.cn/img_convert/7c01831ef143f9d879d8d1ab29bbd4c1.png)
追加自带换行,不断向目标文件中新增内容
cat 指令(含输入重定向)
语法:cat [选项] [文件]
功能: 查看目标文件的内容
cat 打印文件的内容到屏幕上,其实就是查看文件内容。
cat -s 文件名:省略多余空行 查看文件内容,说白了就是指令之间最多输出一个空行
cat -sn 文件名:-n 是对输出行编号,-sn组合使用就是省略空行输出编号并打印内容
![](https://img-blog.csdnimg.cn/img_convert/e4b25b5e51b72e224f9dc3582653a161.png)
cat < 文件名:输入重定向,将文件中内容读取到 cat 中,并打印
![](https://img-blog.csdnimg.cn/img_convert/60f74a9f526c5126992a80ae4a5d86b9.png)
如果 cat 后不跟任何内容,那么就会 默认从键盘中读数据:
![](https://img-blog.csdnimg.cn/img_convert/1a54627b500fadffb3b4e457e43bbaa6.png)
输入重定向就是改变原先从键盘上读取数据的方式,改为从其他文件中读取数据
其实这里使用 cat mylog.txt 和 cat < mylog.txt 的效果是一样的,但是还是有些区别:第一个是通过命令行参数获得文件名,第二个是通过重定向获得文件名。
wc 指令
语法:wc [-lwm]
功能:统计文件的行数、单词数、字符数
wc -l 文件名:显示文本文件有多少行和文件名
![](https://img-blog.csdnimg.cn/img_convert/02e09e72a9a8ba6a9b4b7e9a6395e69f.png)
wc -l < 文件名:输入重定向,显示文本文件行数不显示文件名
![](https://img-blog.csdnimg.cn/img_convert/e37617f59342896175724e1b056cb7b2.png)
more 指令
语法:more [选项] [文件]
功能:more命令,功能类似 cat
测试 more 指令前,我们先写一个命令行脚本:
cnt=0; while [ $cnt -le 1000 ]; do echo "hello $cnt"; let cnt++; done > mylog.txt
意思是往 mylog.txt 中写入 hello 1 ~ hello 1000。
使用 cat 查看一下:
![](https://img-blog.csdnimg.cn/img_convert/359388d1fe47b7f92cf2b0f1dea03b47.png)
长文本可以使用 more 指令观看:
more 文件名:从头部查看文本内容,按回车逐行翻阅。
![](https://img-blog.csdnimg.cn/img_convert/d2dce176937f77b7f5014d084567528f.png)
less 指令
语法: less [参数] 文件
功能:
less与more类似,但使用less可以 随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件。
补充:
less 工具是对文件或其它输出进行分页显示的工具,应该说是linux查看文件内容的工具,功能强大。
less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看。
使用 less,就可以使用 [pageup] [pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容。
less 拥有更多的搜索功能,不止可以向下搜,也可以向上搜。
less 文件名:查看文件内容支持上下翻阅
↑ 向上翻阅,↓ 向下翻阅,q 退出
less 支持查阅功能,方法为 / + 查阅内容,在一次查阅后,无法查阅到上次查阅内容前面的内容:
样例:
先查阅带9的内容,然后查阅带1的内容。上次查阅结果为带9的内容,9前面的内容无法被查阅。查阅带1的内容是从10开始查阅的。
head 和 tail 指令(含管道用法)
head
语法: head [参数]… [文件]…
功能:
head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10 行。
-n<行数> 显示的行数
head -n5 文件名:显示前五行,写成 head -5
![](https://img-blog.csdnimg.cn/img_convert/ba0f22134eb11bb0c012952a0846de30.png)
tail
语法: tail[必要参数] [选择参数] [文件]
功能: 用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
tail 默认打印尾部十行内容。
tail -n5 文件名:显示文件尾部五行内容
![](https://img-blog.csdnimg.cn/img_convert/44a1c88065981069d87ae541781ff4e5.png)
学习了 head 和 tail,我们能否获取 mylog.txt 中间部分的 第500 - 520 行?
法1:借助中间文件 + 重定向
step 1:head -520 mylog.txt > tmp.txt —— 将前520内容重定向到 tmp.txt 中
![](https://img-blog.csdnimg.cn/img_convert/40942ba399a1f123bda8ba2cc141e9ba.png)
step2:tail -20 tmp.txt —— tail 截取 tmp.txt 的后20行
![](https://img-blog.csdnimg.cn/img_convert/743be0f2ba0845b152676bde5c02de7f.png)
法2:管道
首先,介绍一下管道。我们生活中,管道是用来传输资源的,对于Linux中的管道也是。
| 就是管道的标志。计算机中最重要的资源是数据,| 就会被 shell 解释为链接两条指令用来传输数据的指令。我们可以把管道也当做一种文件。
例子:
我们原本 统计行 需要用 wc -l mylog.txt,并且会打印文件名:
![](https://img-blog.csdnimg.cn/img_convert/02e09e72a9a8ba6a9b4b7e9a6395e69f.png)
我们可以使用 cat mylog.txt | wc -l ,把 cat 的数据写到管道里,之后用 wc-l 到管道中读取,这样也不显示文件名。
![](https://img-blog.csdnimg.cn/img_convert/58a429bb02ea82b1c69b36fde672bc76.png)
回到正题:
cat mylog.txt 将内容放到管道中,head -520 截取文件中前520行,再把这些放入管道中,tail -20 截取这些的后20行
指令为:cat mylog.txt | head -520 | tail -20
![](https://img-blog.csdnimg.cn/img_convert/5b27fcc55509acb218d10700e5be7024.png)
管道意义:集联多条指令,做数据的不断加工。
date 指令
date 指定格式显示时间: date +%Y:%m:%d
date 用法:date [OPTION]… [+FORMAT]
时间戳:
时间->时间戳:date +%s
时间戳->时间:date -d@1508749502
Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。
date +%Y-%m:%d/%H:%M:%S:特殊格式显示时间
![](https://img-blog.csdnimg.cn/img_convert/d84e736016c355b2228d182ecd311dab.png)
date +%s:显示时间戳时间
![](https://img-blog.csdnimg.cn/img_convert/c36a48090d20d38c3ee05dba1754201d.png)
cal指令
语法: cal [参数] [月份] [年份]
功能: 用于查看日历等时间信息,如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份
cal :默认查看本月日历
![](https://img-blog.csdnimg.cn/img_convert/9f0f5b06c5ee9664a938d84fe5680e87.png)
cal 年份:查看一年的日历
![](https://img-blog.csdnimg.cn/img_convert/cb65fae4992e429e5e955bccd6cacaec.png)
cal -3 :显示系统前一个月,当前月,下一个月的月历
![](https://img-blog.csdnimg.cn/img_convert/9669e471fbb9906a1de29c200594f0ac.png)
sort 指令
对文本内容进行排序,排序后的顺序类似于类似于strcmp的比较,按照 ascii码值 排序,排序默认升序,-r 选项降序。
sort 文件名:按 ascii 码值排序文件内容并打印,不会影响到文件本身
![](https://img-blog.csdnimg.cn/img_convert/edb187e7b44cbcf45e56235eb4f40511.png)
sort -r 文件名:倒序排序
![](https://img-blog.csdnimg.cn/img_convert/0f817fc94ad0f86879295cb5169f5e72.png)
sort 文件名 | uniq:uniq 是对相邻文本内容进行去重,将 sort 文件名的内容放到 管道 中,使用 uniq 进行去重。
find 和 which 和 whereis 指令
find
语法: find pathname -options
功能: 用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)
find 路径 -name 查找名称:把从这个路径开始的所有 带有查找名称 的文件查找出来
![](https://img-blog.csdnimg.cn/img_convert/412598203dd930d1d7034772b86ff412.png)
which
which 指令: 可以查看指令路径
比如查看 clear 的路径:
![](https://img-blog.csdnimg.cn/img_convert/e6579384f910405c20c87ad5f3f71c23.png)
我们常用的指令都在 /usr/bin 位置:
![](https://img-blog.csdnimg.cn/img_convert/94b81b1f0ad3b26bb7cd03b955bea43e.png)
whereis
whereis 搜索指定名称的文件/程序/归档文件
![](https://img-blog.csdnimg.cn/img_convert/3a22aa6bf6084b121faba6565363f890.png)
alias 指令
当一条指令过于复杂时,可以使用alias 为文件起别名。
`alias 别名=‘指令’:为指令起别名,起别名后,使用别名就相当于这条指令
例如给 ls -a -l -i -n 起别名:
![](https://img-blog.csdnimg.cn/img_convert/72553483bbb9e78e935c3ed3417a8228.png)
unalias 别名:取消别名
![](https://img-blog.csdnimg.cn/img_convert/5257720c381fbdf79d8f27a543f631e2.png)
grep 指令
语法: grep [选项] 搜寻字符串 文件
功能: 在文件中搜索字符串,将找到的行打印出来
grep 为文本行过滤,说白了就是将指定文本内容,按照特定关键字,按行筛选。
grep ‘字符串’ 文件:筛选出 含有该字符串 的内容
![](https://img-blog.csdnimg.cn/img_convert/f59955992013a857c0d9ed21e313f151.png)
grep -v ‘字符串’ 文件:筛选出 不含有该字符串 的内容
![](https://img-blog.csdnimg.cn/img_convert/736737fa3a5bc97e5a325987a51405e4.png)
grep -i ‘字符串’ 文件:忽略大小写 正向匹配
grep -ivn '字符串' 文件 :忽略大小写反向匹配并给上行号
cat test.txt | grep 'aaa': 通过管道来匹配 aaa
![](https://img-blog.csdnimg.cn/img_convert/3c2317da7051fb50524caf044597905f.png)
top 指令
top:相当于 windows 中的任务管理器
![](https://img-blog.csdnimg.cn/img_convert/575f8dc5296c61daa02c1e1557c376c2.png)
zip 和 unzip 指令
语法: zip 压缩文件.zip 目录或文件
功能: 将目录或文件压缩成zip格式
zip -r 压缩文件.zip 目录或文件名:压缩一个文件
![](https://img-blog.csdnimg.cn/img_convert/b08b78d56cff25ff28bf54c573323574.png)
unzip 压缩文件:解包到当前路径
![](https://img-blog.csdnimg.cn/img_convert/7ad48e5e974ffe93ac4581e0403ac2ae.png)
打包压缩的意义:防止数据丢失并节省空间。
谢谢浏览。