> < >>
输出重定向
输出重定向 >>追加重定向
1.如果目标文件不存在,创建之,否则直接进行访问。
2.访问 (本质都是写入)
a.输出重定向(从文件开始,覆盖式写入)
b.追加重定向(从文件结尾,追加式的写入)
![image.png](https://img-blog.csdnimg.cn/img_convert/ea31be0e083749b4c2a7019d7426bb46.png#clientId=u0d7d926b-d905-4&crop=0.0121&crop=0&crop=1&crop=1&errorMessage=unknown error&from=paste&height=395&id=u7d198e07&margin=%5Bobject%20Object%5D&name=image.png&originHeight=500&originWidth=723&originalType=binary&ratio=1&rotation=0&showTitle=false&size=259843&status=error&style=none&taskId=u78ef5888-b97e-4419-959b-0f3708b399f&title=&width=571)
输入重定向
问题:1.当你输入的时候,是从哪里输入的呢? 文件名
2.cat读取输入的时候是从哪里读取的呢? 文件(的内容)
3.打印数据又是去到哪里呢? 显示其中
![image.png](https://img-blog.csdnimg.cn/img_convert/3975bfd30004882a939c3e572d4b0d6c.png#clientId=u0d7d926b-d905-4&crop=0&crop=0&crop=1&crop=1&errorMessage=unknown error&from=paste&height=130&id=u2b9f205a&margin=%5Bobject%20Object%5D&name=image.png&originHeight=163&originWidth=442&originalType=binary&ratio=1&rotation=0&showTitle=false&size=3703&status=error&style=none&taskId=u0fdd67fb-a03c-436c-b8be-036d1bdd6da&title=&width=353.6)
输入重定向 本来应该从键盘读取的内容,变成从文件中读取
![image.png](https://img-blog.csdnimg.cn/img_convert/e66ff3f0c2f036be3e05f60236c1caef.png#clientId=u0d7d926b-d905-4&crop=0&crop=0&crop=1&crop=1&errorMessage=unknown error&from=paste&height=109&id=u13c12ab9&margin=%5Bobject%20Object%5D&name=image.png&originHeight=136&originWidth=466&originalType=binary&ratio=1&rotation=0&showTitle=false&size=6794&status=error&style=none&taskId=u0921194b-f494-4e6c-9f8e-04c32c06950&title=&width=372.8)
记住,Linxu下一切皆文件
more与less
用来逐行阅读文本
语法: more [选项][文件]
功能: more命令,功能类似 cat
常用选项:
-n 对输出的所有行编号
q 退出more
more指令是将文件的内容打印出来,并且打印满一个屏幕就不打印了
1.使用space 或者 enter 来下翻
2.使用b进行上翻
less就可允许利用上下键去看
less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极
其强大。
less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看
但若使用了 less 时,就可以使用 [pageup][pagedown] 等按键的功能来往前往后翻看文件,更容易用
来查看一个文件的内容!
除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。
语法: less [参数] 文件
功能:
less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前
不会加载整个文件。
选项:
-i 忽略搜索时的大小写
-N 显示每行的行号
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
q:quit
以后常用热键:
ctrl + c :终止异常的指令
head
head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块, head 用来显示档案的开头至标准输出中,而 tail 想当然尔就是看档案的结尾。
语法: head [参数]… [文件]…
功能:head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。
选项:-n<行数> 显示的行数
head XXX 默认是前10行
head -5 XXX 也可以选择行数(5可以改)
tail
tail 命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容.
语法: tail[必要参数][选择参数][文件]
功能: 用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
tail XXX 默认是后十行
tail -5 XXX 可以选择行数(5可以改)
两种方法提取文件中间的内容
a.利用临时文件的方法
head -1010 file.txt > tmp.txt
//获取file.txt文件中的前1010行输出重定向到tmp.txt
tail -11 tmp.txt
//就可以打印出 1000 到 1010 的内容
b.利用管道
head -1010 file.txt | tail -11 | wc -l
//wc -l的作用是显示行数
可以理解为 head -101 file.txt的结果塞到管道里面,tail -11现在从管道里面读
管道可以连接多条命令–>批量化,流水化处理数据
![image.png](https://img-blog.csdnimg.cn/img_convert/7a56726896bf81d930e01489ba5f9e91.png#clientId=u0d7d926b-d905-4&crop=0&crop=0&crop=1&crop=1&errorMessage=unknown error&from=paste&height=276&id=u014bbfd1&margin=%5Bobject%20Object%5D&name=image.png&originHeight=345&originWidth=657&originalType=binary&ratio=1&rotation=0&showTitle=false&size=126338&status=error&style=none&taskId=u946af21c-dafe-420b-b76c-947d1a97907&title=&width=525.6)
时间相关的指令
date显示
date 指定格式显示时间: date +%Y:%m:%d
date 用法: date [OPTION]… [+FORMAT]
1.在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中常用的标记列表如下
%H : 小时(00…23)
%M : 分钟(00…59)
%S : 秒(00…61)
%X : 相当于 %H:%M:%S
%d : 日 (01…31)
%m : 月份 (01…12)
%Y : 完整年份 (0000…9999)
%F : 相当于 %Y-%m-%d
![image.png](https://img-blog.csdnimg.cn/img_convert/cc754d5f8ad24fe6f118fb7e5046c744.png#clientId=u0d7d926b-d905-4&crop=0&crop=0&crop=1&crop=1&errorMessage=unknown error&from=paste&height=306&id=ue787d6d0&margin=%5Bobject%20Object%5D&name=image.png&originHeight=382&originWidth=612&originalType=binary&ratio=1&rotation=0&showTitle=false&size=213705&status=error&style=none&taskId=u2e7adef2-ba1e-4d8b-972a-fb0e6953f02&title=&width=489.6)
时间戳
时间->时间戳: date +%s
时间戳->时间: date -d@1508749502
Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒
![image.png](https://img-blog.csdnimg.cn/img_convert/8a9d73c6a5a72a3f951951809809456f.png#clientId=u0d7d926b-d905-4&crop=0&crop=0&crop=1&crop=1&errorMessage=unknown error&from=paste&height=506&id=u2441bf8e&margin=%5Bobject%20Object%5D&name=image.png&originHeight=633&originWidth=788&originalType=binary&ratio=1&rotation=0&showTitle=false&size=355499&status=error&style=none&taskId=u2f187ae2-e896-4557-93cc-767dc5a3241&title=&width=630.4)
cal日历
cal命令可以用来显示公历(阳历)日历。公历是现在国际通用的历法,又称格列历,通称阳历。“阳历”又名“太阳 历”,系以地球绕行太阳一周为一年,为西方各国所通用,故又名“西历”。
命令格式: cal [参数][月份][年份]
功能: 用于查看日历等时间信息,如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份
常用选项: -3 显示系统前一个月,当前月,下一个月的月历 -j 显示在当年中的第几天(一年日期按天算,从1 月1号算起,默认显示当前月在一年中的天数) -y 显示当前年份的日历举例:Cal –y 2018
find
Linux下find命令在目录结构中搜索文件,并执行指定的操作。 Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很 多,其中大部分选项都值得我们花时间来了解一下。 即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限。 在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系 统可能会花费很长的时间(这里是指30G字节以上的文件系统)。
语法: find pathname -options
功能: 用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)
常用选项: -name 按照文件名查找文件
find -name text.txt不给路径的话默认从当前目录开始找
find ~ -name test.txt这是从工作目录开始找
![image.png](https://img-blog.csdnimg.cn/img_convert/2f7fea3f119eca38a00b9ff263bb769e.png#clientId=u02167de3-51e8-4&crop=0&crop=0&crop=1&crop=1&errorMessage=unknown error&from=paste&height=225&id=u6fc8544a&margin=%5Bobject%20Object%5D&name=image.png&originHeight=281&originWidth=589&originalType=binary&ratio=1&rotation=0&showTitle=false&size=26059&status=error&style=none&taskId=ucae43011-725d-4ccd-8324-6ecb3229562&title=&width=471.2)
which
在系统路径中,去查找特定的指令所在的路径
![image.png](https://img-blog.csdnimg.cn/img_convert/5e4ff21b3b82d02d4578e35dcf08f437.png#clientId=u02167de3-51e8-4&crop=0&crop=0&crop=1&crop=1&errorMessage=unknown error&from=paste&height=99&id=ub3f813ac&margin=%5Bobject%20Object%5D&name=image.png&originHeight=124&originWidth=573&originalType=binary&ratio=1&rotation=0&showTitle=false&size=8121&status=error&style=none&taskId=u1a5b0570-bc56-4704-8f33-6dc8dc06c0c&title=&width=458.4)
whereis 查找文档
会在系统当中找除了指令之外(在系统路径下),只要是包括这个指令内容的所有文档,都会给你显示出来
![image.png](https://img-blog.csdnimg.cn/img_convert/8138d4745571cf6d85f611e5f2ac9ade.png#clientId=u02167de3-51e8-4&crop=0&crop=0&crop=1&crop=1&errorMessage=unknown error&from=paste&height=86&id=uee25317f&margin=%5Bobject%20Object%5D&name=image.png&originHeight=107&originWidth=521&originalType=binary&ratio=1&rotation=0&showTitle=false&size=46462&status=error&style=none&taskId=u817a0693-835a-4918-831c-44af9ff40d8&title=&width=416.8)
alias
alias是起别名,仅限本次登录有效alias qingkong='clear' //使用qingkong即可达到同样的效果
grep
grep一般配合其他命令进行使用,起到过滤的作用
grep -n 表示过滤时显示行号
grep -v XXX 表示过滤时不要带XXX的哪一行
grep -i 表示过滤时忽略大小写
![image.png](https://img-blog.csdnimg.cn/img_convert/1acad8271ebf1b1488e9ab4303e9224e.png#clientId=u02167de3-51e8-4&crop=0&crop=0&crop=1&crop=1&errorMessage=unknown error&from=paste&height=136&id=uaba0a130&margin=%5Bobject%20Object%5D&name=image.png&originHeight=170&originWidth=423&originalType=binary&ratio=1&rotation=0&showTitle=false&size=9565&status=error&style=none&taskId=uaae6d729-5557-4c0a-912a-7c4facd25a6&title=&width=338.4)
![image.png](https://img-blog.csdnimg.cn/img_convert/fdd9e3a6a02d3547a7e82cf166340a30.png#clientId=u02167de3-51e8-4&crop=0&crop=0&crop=1&crop=1&errorMessage=unknown error&from=paste&height=436&id=u9920978d&margin=%5Bobject%20Object%5D&name=image.png&originHeight=545&originWidth=865&originalType=binary&ratio=1&rotation=0&showTitle=false&size=235450&status=error&style=none&taskId=u98352ba6-0645-4032-8047-d8d6a16c935&title=&width=692)
xargs
xargs就是把一个东西当做命令行参数交给后面的指令。(将管道的输出结果,作为命令行参数,交给后面的程序)
![image.png](https://img-blog.csdnimg.cn/img_convert/23899f62579888270fb2acc001414af2.png#clientId=u02167de3-51e8-4&crop=0&crop=0&crop=1&crop=1&errorMessage=unknown error&from=paste&height=433&id=u53e4d175&margin=%5Bobject%20Object%5D&name=image.png&originHeight=541&originWidth=660&originalType=binary&ratio=1&rotation=0&showTitle=false&size=353837&status=error&style=none&taskId=u1412314f-0bb8-429f-9f40-4686d073b4c&title=&width=528)
可以看出,ls是不读的,也就是说你给我的输入我无视了,那么就可以用xargs来执行
zip/unzip
语法: zip 压缩文件.zip 目录或文件
功能: 将目录或文件压缩成zip格式
常用选项: -r 递 归处理,将指定目录下的所有文件和子目录一并处理打包和压缩,为了便于传输或者归档
当我们在下载软件的时候,下下来的是一个安装包,因为提供软件的公司发布的产品要通过网络传输,为了不丢失,减少网络的消耗情况,下载更快,所以就有了将所有的软件打包和压缩这样的技术。
市面上各种后缀的压缩包是非常多的,意味着解压工具非常多,Linux下也是如此
但是我们可以看到
只用zip的话它只会zip一个空目录,所以需要zip -r去zip所有的内容
-r表示递归
-d后面跟路径表示unzip的解压路径
![image.png](https://img-blog.csdnimg.cn/img_convert/954b0649a1acabb9fe732ebd887fc143.png#clientId=u02167de3-51e8-4&crop=0&crop=0&crop=1&crop=1&errorMessage=unknown error&from=paste&height=364&id=u2c9a77e4&margin=%5Bobject%20Object%5D&name=image.png&originHeight=455&originWidth=731&originalType=binary&ratio=1&rotation=0&showTitle=false&size=202886&status=error&style=none&taskId=u8dd2b3b5-15ef-4f4a-8d49-3fde60b5193&title=&width=584.8)![image.png](https://img-blog.csdnimg.cn/img_convert/d81de4b203a4065b06c22b785a12be59.png#clientId=u02167de3-51e8-4&crop=0&crop=0&crop=1&crop=1&errorMessage=unknown error&from=paste&height=270&id=u4dea7309&margin=%5Bobject%20Object%5D&name=image.png&originHeight=337&originWidth=635&originalType=binary&ratio=1&rotation=0&showTitle=false&size=133063&status=error&style=none&taskId=u14a856dd-177e-4d93-a98d-1d84172e088&title=&width=508)
tar
tar -czvf file.tgz file
//.tgz 是由.tar.gz构成 tar打包 gz压缩
-c 是create
-z 是zip
-v 是展示打包过程,建议不用v,文件太大了挺费时间的
-f 是文件名,f一定在最后,和压缩文件名在一起
tar -xzvf file.tgz -C 某路径//解压
![image.png](https://img-blog.csdnimg.cn/img_convert/78ffe1a541c49b017e45d10cfe66288b.png#clientId=u02167de3-51e8-4&crop=0&crop=0&crop=1&crop=1&errorMessage=unknown error&from=paste&height=237&id=udad85870&margin=%5Bobject%20Object%5D&name=image.png&originHeight=296&originWidth=748&originalType=binary&ratio=1&rotation=0&showTitle=false&size=191482&status=error&style=none&taskId=u1460cd3f-1046-4435-a6b3-557e096d714&title=&width=598.4)
bc
bc就是Linux下的计算器
![image.png](https://img-blog.csdnimg.cn/img_convert/1543df6c8488c2e5fbc99f2794c9e9d3.png#clientId=u02167de3-51e8-4&crop=0&crop=0&crop=1&crop=1&errorMessage=unknown error&from=paste&height=294&id=u4b20181a&margin=%5Bobject%20Object%5D&name=image.png&originHeight=368&originWidth=795&originalType=binary&ratio=1&rotation=0&showTitle=false&size=146942&status=error&style=none&taskId=uc8734176-2bec-4446-9d80-83ff91fde53&title=&width=636)
uname
语法:uname [选项]
功能: uname用来获取电脑和操作系统的相关信息。
补充说明:uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息。
常用选项: -a或–all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类 型,硬件平台类型,操作系统名称
uname -a 查看全部信息
uname -r 只显示内核版本
重要的几个热键
[Tab],[ctrl]-c, [ctrl]-d [Tab]按键—具有『命令补全』和『档案补齐』的功能
[Ctrl]-c按键—让当前的程序『停掉』
[Ctrl]-d按键—通常代表着:『键盘输入结束(End Of File, EOF 戒 End OfInput)』的意思;另外,他也可 以用来取代exit