2.Linux基本指令(下)
指令1:
cat 显示文件里面的内容
选项:
-n 给行号正向打印文件内容
cat /var/log/messages 查看日志
tac 文件名 反向打印文件内容
more 文件名
向下翻页:space(空格)
向上翻页:b
查找:/
退出:q
less 文件名 用来查看日志
向上向下翻页:page up/down,即上下箭头。
退出:q
tail 文件名 看尾部内容
head 文件名 看开头内容
echo 把后续内容当成字符串定向到显示器打印
mv [选项] 源文件或目录 目标文件或目录
作用:重命名和剪切
知识点1:
在Linux下,一切皆文件!
知识点2:重定向操作
echo "hello linux" > hello.txt
将"hello linux"重定向到hello.txt中,若存在hello.txt,清空内容,再写入内容,若不存在,创建hello.txt,然后将内容写入到hello.txt。
>表示重定向
>重定向
a.后续文件不存在,新建一个。b.存在,每次进行重定向时,先清空,再写入。
因此可以直接使用 echo > 文件名来创建一个空的文件(普通文件)。
若文件名存在,则清空内容。
>>追加重定向
和>几乎一样,只不过对于已存在的文件>>是换行追加内容。
重定向操作:
打开多个终端
由于Linux一切皆文件,显示器也是文件,ll /dev/pts查看显示器所在目录,使用左终端即1号,将"hello world"重定向到右终端2号。
终端的本质在Linux系统就是一个文件:/dev/pts/xxx
写一段C语言代码,重定向到另一个终端打印:
#include <stdio.h> const char *dev="/dev/pts/2"; int main() { int cnt = 10; FILE *fp = fopen(dev, "w"); if(fp == NULL){ printf("open %s error!\n", dev); return 1; } while(cnt--) { fprintf(fp, "hello bit, hello %d\n", cnt); sleep(1); } fclose(fp); return 0; }
文件的分类:
-:普通文件
d:目录文件
c:字符文件(键盘、显示器、终端)(输入的数据具有顺序性)
b:块设备文件(磁盘)
l:连接文件
p:管道文件
s:socket文件
常用指令2:
cnt=1; while [ $cnt -le 1000 ]; do echo "hello $cnt"; let cnt++; done > log.txt
生成一个从1到1000的hello i的log.txt。
head -510 log.txt | tail -10
将log.txt的第501行到510行展示出来。
用到了命令的组合,|表示管道文件,可理解为临时文件。
cat log.txt | head -510 | tail -10 | tac(反向输出) | wc -l(计数行数)
date日期
时间->时间戳:date +%s
时间戳->时间:date -d@1742478363![]()
date+%s 时间戳
Unix时间戳(格林威治),是从1970年1月1日 00:00开始经过的描述,不考虑闰秒。
电脑已经关机了,为什么关机之后,时间还是准的?
主板上纽扣电池记录时间戳。
有什么用?
1.转换成时间
2.用户->日志->时间戳
date + %Y-%m-%d_%H:%M:%S -d @0 (将时间戳0转换成时间)
可以看到时间不是00:00,是因为00:00是格林威治时间,北京是东八区,有8小时时差。
cal 年数 查看日历
cal 月数 年数 查看当前月
whereis ⽤于找到程序的源、⼆进制⽂件或⼿册
find pathname -options
-name 查找指定名称
用于在文件树中查找文件,并作出相应的处理(可能访问磁盘)