Linux 基础-2

写入

输出重定向 >

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RkBTK8B7-1658234937699)(https://s2.loli.net/2022/07/19/mMIuSFj3gZYz2Xo.png)]

cat查看该文件,此时里面为空。

$ echo "I come" >test.txt 指令,其中 ’ > '将字符串输出从屏幕,重定向到test.txt

再查看文本文件,此时已成功输出

image-20220719141456005

此时改变文本内容,再重定向输出一次

image-20220719141848510

这说明, >覆盖式重定向

追加重定向 >>

往文本写入一些字,

[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 退出。

常用选项

  • -数字 读取到第几行

image-20220719145702124

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

image-20220719154600359

时间相关指令

date

显示当前时间:

image-20220719155143926

格式化显示:+%y/%m/%d-%H:%M:%S

​ 年:月:日 - 时:分:秒

image-20220719155312912

其中分隔符可以自己更改

时间戳

date %s 获取1970年1/1 到今天的时间戳

date -d @时间戳 可以将时间戳转为,常见的时间格式。

image-20220719160137345

date +%Y -d @时间戳 把时间戳,按指定格式显示

image-20220719160259830

cal

命令格式: cal [参数] [月份] [年份]

功能: 用于查看日历等时间信息,如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份

常用选项:

  • -1 显示当月
  • -3 显示系统前一个月,当前月,下一个月的月历
  • -j 显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)
  • -y 显示当前年份的日历

查找相关指令

find

查找前缀名为test的文件

image-20220719161608806

常用选项:

  • -name 按照文件名查找文件。

which

查找某个命令的路径

which ls

image-20220719163014939

我们调用ls的时候,就相当于使用 /usr/bin/ls ,只不过我用了类似快捷方式的方法,找到了ls的路径,而省去了书写的过程

image-20220719163126181

alias

给指令起别名

语法:alias [name]='指令'

这里将ll 起个别名为 "“查看”

$ alias 查看='ll'

可以看到 ”查看“ 跟 “ll” 的效果是一样的,同时中文也是能行的

image-20220719163958263

grep

文本内容按行搜索的命令

语法: grep [选项] 搜寻字符串 文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WLqDKEB0-1658234937710)(https://s2.loli.net/2022/07/19/aUDqdbFcgA18plz.png)]

常用选项:

  • -i :忽略大小写的不同,所以大小写视为相同

  • -n :顺便输出行号

  • -v :反向选择,亦即显示出没有 ‘搜寻字符串’ 内容的那一行

    image-20220719184410382

    读取result.txt 又经grep反选掉了包含 ‘0’ 的一行,并输出,可以看到,少掉了带0的第二行。

xargs

把字符串,作为若干个参数,传给后面的命令

​ 下面分别是,使用 ls 指令;通过echo,管道 | ,把字符串直接给ls。结果都是一样的。

image-20220719185703238

image-20220719185655556

​ 这里用xargs 方式再传一次,相当于 直接使用 ls -lai

image-20220719190057090

打包与压缩

​ 打包就好比把所有东西放在一个容器里,便于携带;压缩就是字面上的意思,用更小的空间容纳更大的量。

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 递归调用,所以该目录下的子目录的文件是不会被打包的。

压缩很快就完成了,查看一下当前目录,多了一个压缩文件

image-20220719191741045

选项

  • -r 递归处理,将指定目录下的所有文件和子目录一并处理

  • -d 选择指定路径

    $ unzip Dir2.zip -d /home/yicu233/newDir 
      解压	名字	 选项 路径
    

    解压后查看,多了一个Dir2目录

    image-20220719193151568

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文件

image-20220719200649103

这里取名上,后缀取 tar.gz , 表示打包.压缩,简写为 tgz

然后将-c create改成 -x 就能解压tgz文件

$ tar -xvzf Dir2.tgz

image-20220719200949380

解压成功。

-C 解压到指定路径

$ tar -xzf Dir2.tgz -C newFolder2

将Dir2.tgz 解压到 newFolder2里

其他指令

bc

bc命令可以很方便的进行浮点运算

image-20220719202303465

使用quit 退出

uname

语法:uname [选项]

功能: uname用来获取电脑和操作系统的相关信息。

常用选项:

  • -a或–all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称。

快捷键

这里列出几个Linux常用到的快捷键

  • Tab 命令自动补全
  • Ctrl+C 终止当前程序
  • Ctrl-d『键盘输入结束(End Of File, EOF 戒 End OfInput)』的意思;另外,他也可以用来取代exit

今天的Linux学习到此为止了,感谢你的阅读,我们 下节再见。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值