写入
输出重定向 >
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RkBTK8B7-1658234937699)(https://s2.loli.net/2022/07/19/mMIuSFj3gZYz2Xo.png)]
cat查看该文件,此时里面为空。
用 $ echo "I come" >test.txt
指令,其中 ’ > '将字符串输出从屏幕,重定向到test.txt
再查看文本文件,此时已成功输出
此时改变文本内容,再重定向输出一次
这说明, >
是覆盖式重定向。
追加重定向 >>
往文本写入一些字,
[yicu233@VM-8-16-centos newFolder2]$ echo Splatoon3 >>file.txt
[yicu233@VM-8-16-centos newFolder2]$ cat file.txt
Splatoon3
然后再输入一次,
[yicu233@VM-8-16-centos newFolder2]$ echo '9.9'>>file.txt
[yicu233@VM-8-16-centos newFolder2]$ cat file.txt
Splatoon3
9.9
会看到,9.9不是覆盖的写入,而是追加在原文本之后,这就是追加重定向。
输入重定向
这里与前面的输出重定向结合起来使用,
先从文件读取 [输入] 到cat,再改变cat的输出方向到备份文件bat中
cat < file.txt > bat.txt
像上面这样,能从键盘中读取,改为文件中读取;输出到显示器,又能改为输出到文件,就像C/C++的文件流。Linux中,有一种理念——“一切皆文件”既把键盘,显示器,都当成文件。
因为硬件是不同而多的,为了能简单地解决不同的问题,Linux采用统一的方式去解决。把键盘,显示器,文件都封装成统一的结构体File,上层只需要使用File就可以了。
指令
文件浏览相关指令
more
当文本文件为大文本时,直接用cat将会影响阅读效率。而用more,则能实现,按行阅读。
按下 enter
按行读取,按q
退出。
常用选项
- -数字 读取到第几行
less
比起more
多了上下方向翻页的功能。
head
默认提取前10行文本
常用选项:
- -数字 前[数字]行
tail
默认提取后10行文本
常用选项:
- -数字 后 [数字]行
管道
假设一个文本有2000行,现在需要截取区间 [950-1000]
。
一开始能想到的方法:
从head读取1000行,保存到临时文件tmp.txt,再从tmp.txt尾部读取倒数50行,就能拿到950到1000。
而沿着这种思路,有了更简化的方法,利用 管道文件 。此时 |
相当于tmp.txt,但不同的是,它存在内存中。
从前面读取到数据,再输出到紧随其后的文件,完成截取。
head -1000 test.txt | tail -50
结果看到,从0-2000,截取950,到1000

时间相关指令
date
显示当前时间:
格式化显示:+%y/%m/%d-%H:%M:%S
年:月:日 - 时:分:秒
其中分隔符可以自己更改
时间戳
date %s
获取1970年1/1 到今天的时间戳
date -d @时间戳
可以将时间戳转为,常见的时间格式。
date +%Y -d @时间戳
把时间戳,按指定格式显示
cal
命令格式: cal [参数] [月份] [年份]
功能: 用于查看日历等时间信息,如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份
常用选项:
- -1 显示当月
- -3 显示系统前一个月,当前月,下一个月的月历
- -j 显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)
- -y 显示当前年份的日历
查找相关指令
find
查找前缀名为test的文件
常用选项:
- -name 按照文件名查找文件。
which
查找某个命令的路径
which ls
我们调用ls的时候,就相当于使用 /usr/bin/ls
,只不过我用了类似快捷方式的方法,找到了ls的路径,而省去了书写的过程
alias
给指令起别名
语法:alias [name]='指令'
这里将ll 起个别名为 "“查看”
$ alias 查看='ll'
可以看到 ”查看“ 跟 “ll” 的效果是一样的,同时中文也是能行的
grep
文本内容按行搜索的命令
语法: grep [选项] 搜寻字符串 文件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WLqDKEB0-1658234937710)(https://s2.loli.net/2022/07/19/aUDqdbFcgA18plz.png)]
常用选项:
-
-i :忽略大小写的不同,所以大小写视为相同
-
-n :顺便输出行号
-
-v :反向选择,亦即显示出没有 ‘搜寻字符串’ 内容的那一行
读取result.txt 又经grep反选掉了包含 ‘0’ 的一行,并输出,可以看到,少掉了带0的第二行。
xargs
把字符串,作为若干个参数,传给后面的命令
下面分别是,使用 ls
指令;通过echo,管道 |
,把字符串直接给ls。结果都是一样的。
这里用xargs
方式再传一次,相当于 直接使用 ls -lai
打包与压缩
打包就好比把所有东西放在一个容器里,便于携带;压缩就是字面上的意思,用更小的空间容纳更大的量。
zip
语法:zip 压缩文件.zip 目录或文件
Linux下使用zip
来打包
$ ll
total 4
drwxrwxr-x 4 yicu233 yicu233 4096 Jul 19 19:13 Dir2
$ zip Dir2.zip Dir2/*
这里选择将 Dir2
目录下的所有文件*
打包。但要注意,因为没用-r
递归调用,所以该目录下的子目录的文件是不会被打包的。
压缩很快就完成了,查看一下当前目录,多了一个压缩文件
选项
-
-r 递归处理,将指定目录下的所有文件和子目录一并处理
-
-d 选择指定路径
$ unzip Dir2.zip -d /home/yicu233/newDir 解压 名字 选项 路径
解压后查看,多了一个Dir2目录
tar
语法:tar [-cxtzjvf] 文件与目录 .... 参数
选项:
-
-c :建立一个压缩文件的参数指令(create 的意思);
-
-x :解开一个压缩文件的参数指令!
-
-t :查看 tarfile 里面的文件!
-
-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
-t
能查看只打包未压缩的文件,即.tar
文件 -
-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
-
-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
-
-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
-
-C : 解压到指定目录
案例:
$ tar -czvf Dir2.tgz Dir2
命令 创建/压缩/看过程/起名字 名字 源文件
可以看到多了tgz文件
这里取名上,后缀取 tar.gz
, 表示打包.压缩
,简写为 tgz
。
然后将-c create
改成 -x
就能解压tgz文件
$ tar -xvzf Dir2.tgz
解压成功。
-C
解压到指定路径
$ tar -xzf Dir2.tgz -C newFolder2
将Dir2.tgz 解压到 newFolder2里
其他指令
bc
bc命令可以很方便的进行浮点运算
使用quit
退出
uname
语法:uname [选项]
功能: uname用来获取电脑和操作系统的相关信息。
常用选项:
- -a或–all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称。
快捷键
这里列出几个Linux常用到的快捷键
Tab
命令自动补全Ctrl+C
终止当前程序Ctrl-d
『键盘输入结束(End Of File, EOF 戒 End OfInput)』的意思;另外,他也可以用来取代exit
今天的Linux学习到此为止了,感谢你的阅读,我们 下节再见。