目录
前言
1. which
2. alias
3. cat
3.1 echo指令
3.2 输出重定向
3.3 cat指令
3.4 * cat其他用法
4. more指令
5. less指令
6.head指令
7. tail 指令
8. 时间相关的指令
9. cal指令
总结
前言
Linux环境下的指令本质是一组可执行的命令,它们被编写成可执行文件的形式,可以在终端中直接输入并执行 。这些指令可以执行各种操作,它们是Linux操作系统的核心组成部分,使得用户可以通过命令行界面来控制和管理系统,所以学习Linux基础指令是非常有必要的,今天我们将继续学习一写Linux基础指令。
1. which
语法:which 【命令】
功能: 查看指定命令,在系统中所在的路径
知识补充:
由此可见,我们要学的所有基本指令都是usr/bin/目录下的可执行程序,通过这个特性,我们也可以根据自己的需求自己定义命令,把我们自己写的命令拷贝到usr/bin/目录下(系统可识别可执行程序的路径下),也就是安装,我们也可以进行卸载,使用rm指令删除添加的可执行文件即可。
2. alias
语法:alias 【自定义命名】='原命令'
功能: 给指定命令起别名
此时我们输入指定命令q,q就等价于ls -l,当然l自定义命名后 ls -l 也是可以使用的。关闭Xshell后,自定义命名就会被删除,所以也不必担心。
3. cat
语法:cat 【文件名】
功能: 展示文件内容
在此之前,我们做一些额外知识补充。
3.1 echo指令
echo指令,它的作用类似于C语言中的printf
echo +双引号内容,执行后就会自动在终端输出(默认向显示器文件进行写入)。
要写一个文件时,我们可以使用nano或者vi/vim打开文件进行写入,当我们想要写一些内容使用文本存储时,使用上述的方法太麻烦,还要创建文件,然后打开文件进行修改,echo指令可以轻松解决这个问题。
echo +写入内容 + ' > ' +要创建的文件名,例如上图,file.txt不存在,执行命令后就会自动创建file.txt文件,并将内容写入到文件中。我们可以使用cat 【文件名】 展示文件内容。
3.2 输出重定向
>的作用就是输出重定向,在没有指定文件时,默认向显示器文件进行写入,加上>后就可以进行输出重定向,可以写入到文件当中,如果重定向的文件不存在,就会新建文件。
除此之外>还可以用于创建文件:
重定向的文件不存在,就会新建文件,示例中的>符号右边文件不存在,左边没有内容(内容为空),也可以理解为新建一个文件,内容什么都不写(功能与touch创建文件相同)。
注意:每次使用echo和>对文件进行写入数据时,都会把原来的内容清除,然后再写入。
如果想要不清空原文件内容,就只需将>改为>>即可(追加重定向):
总结:
>最常使用的功能:
- 新建文件
- 清空文件
知识补充
我们这里提及的输入、输出是相对的,以程序为基本对象,例如我们通过键盘将数据输入到程序当中,程序将输出结果输出到对应的位置(文件、终端)。大部分的硬件设备,都可以看作有读写方法,只不过有些方法为空,也就是说在Linux下一切皆文件(减少Linux系统的编码维护成本)。
3.3 cat指令
常用选项:
- -n 对输出的所有行编号
- -b 对非空输出行编号
- -s 不输出多行空行
如果出现多行重复的空行就只输出一行空行。
3.4 * cat其他用法
- cat单独使用
键盘输入什么cat就打印什么,cat默认是从键盘文件读取。
- cat倒置使用
把cat倒过来tac,输出时就是从文件最后一行开始输出到第一行。
拓展
在前边我们提到了输出重定向,追加重定向,还有一个叫做输入重定向(<),cat默认是从键盘读取,我们可以通过使用输入重定向来改变读取数据文件。
这里输入重定向和cat配合使用的效果和 “cat +文件名” 效果相同,但它们的原理不相同,这里不再进行深入了解。
4. more指令
语法:more [选项][文件]
功能:more命令,功能类似 cat
常用选项:
- -n 对输出的所有行编号
- q 退出more
more命令可以不添加选项,功能和cat类似(打印文件内容),more打印与cat不同:
more命令只会打印满一屏内容,可以通过 “回车” 来向下逐行查看(没法使用上下键控制)。
5. less指令
语法: less [参数] 文件
功能:less与more类似,但使用less可以随意浏览文件(可以上下键控制),而more仅能向前移动,却不能向后移 动,而且less在查看之前不会加载整个文件
除此之外, less 还拥有搜索功能,不止可以向下搜,也可以向上搜。比如:
执行less命令,然后点击 “ 回车 ” 输入要搜索内容的关键字,执行即可定位要查看的位置。
6.head指令
语法: head [参数]... [文件]...
功能:head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。
选项:
- -n<行数> 显示的行数
比如: 自动打印前20行内容
7. tail 指令
语法: tail[必要参数][选择参数][文件]
功能: 用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件,默认tail命令打印其相应文件的末尾10行。
选项:
- -f 循环读取
- -n<行数> 显示行数
提取行数的使用与head使用相同。
当我们想查阅文件中间的内容要怎么办?比如:我上述文件有1000行,我想要查看它的500~510行。
两种方法:
- 使用输出重定向,将前510行内容输入到一个新文件中,然后再使用tail读取文件后10行内容。
- 使用管道
将 “ | ” 前边部分的输出作为后边部分的输入。这样就直接提取到了它500~510行内容。
这种连接两个指令的 “ | ” 被称为命令行管道。
8. 时间相关的指令
date显示
date 指定格式显示时间: date +%Y:%m:%d
date 用法:date [选项]... [+格式]
- date单独使用
- date 自定义格式
直接显示时间
在显示时,使用者可以设定显示的格式,格式设定为一个加号后接数个标记,其中常用的标记列表如下:
- %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
- 查看时间戳
时间->时间戳:date +%s
时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数。
9. cal指令
命令格式: cal [参数][月份][年份]
功能: 用于查看日历等时间信息,如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份
常用选项:
- -3 显示系统前一个月,当前月,下一个月的月历
- -j 显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)
- -y 显示当前年份的日历
比如:
Cal –y 2022
总结
在上述介绍的指令中我又添加了许多额外的知识作为补充,这些知识在日常使用时也比较常用,以上便是本期全部内容,希望对你有所帮助,最后,感谢阅读!