本期博客的主题依旧是 "基础指令" ;
上一期的基础指令链接: 【Linux基础指令】第一期-CSDN博客 ,话不多说,正文开始:
一、Linux的指令
1.cp
- 拷贝功能:
- cp [stc] [dest] # 将 src文件 拷贝到dest目录中
- cp -r [stc] [dest] # 将 src目录 拷贝到dest目录中
- 可同时拷贝多个文件(包括目录)
2.mv
- 1)剪切功能:
- mv [stc] [dest] # 将 src文件 移动到dest目录中
- mv -r [stc] [dest] # 将 src目录 移动到dest目录中
- 可同时移动多个文件(包括目录)
- 2)重命名功能:
- mv [stc] [filename] # 将 src文件 重命名为 filename
3.echo / printf
- 功能:输出字符串
- echo 'xxxx' # 将后序内容作为字符串输出到终端上
- printf '%s\n' "xxx" # 格式化 打印到终端上
4.cat / tac
- 功能:查看目标文件内容功能
- cat filename # 将文件的内容正着打印到终端上
- tac filename # 将文件内容倒着打印到终端上
- 常用选项:(cat 与 tac 选项一样)
- -b 对⾮空输出⾏编号
- -n 对输出的所有⾏编号
- -s 不输出多行空行
5.more
- 功能:查看目标文件
- more filename # 逐页显示文件内容。
- 操作流程:
- 空格:向下翻页
- b:向上翻页
- / 字符串:向下查找字符串
- ?字符串:向上查找字符串
- q:退出
6.less
- 功能:查看目标文件功能(较more更强)
- 命令格式:less [选项] filename
- 常用选项:
-N
:在显示的每一行行首添加行号。-s
:将多个连续的空行合并为一行显示。-m
:当文件内容超过一屏时,在屏幕底部显示状态行,包括当前显示的百分比、行数等信息。
- 操作流程:
- 空格:向下翻页
- b:向上翻页
- 箭头键:使用(上、下、左、右)可以逐行或逐列滚动查看文件内容。
- / 字符串:向下查找字符串
- ?字符串:向上查找字符串
- n:重复前⼀个搜索(与 / 或 ? 有关)
- N:反向重复前⼀个搜索(与 / 或 ? 有关)
- q:退出
7.head / tail
- 功能:它们用于查看文件的开头和结尾部分的内容
- 命令格式:head filename # 默认打印开头10行;
- 命令格式:tail filename # 默认打印结尾10行。
- 常用选项:
- -n <指定行号> # 打印开头或结尾指定行。
- tail -f # tail还支持 -f 选项循环读取。
8.date
- 功能:用于显示或设置系统的日期和时间。
- date:默认格式显示当前时间。
- 通过占位符格式化显示当前时间:date +"XXX"
- %Y:年
- %m:月
- %d:日
- %H:时
- %M:分
- %S:秒
- %s:时间戳
- %F:相当于 %Y-%m-%d
- %X:相当于 %H:%M:%S
- 修改时间需要root权限,其操作可自行百度了解。
- 时间戳:是从1970年1⽉1⽇(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。
- 时间->时间戳:date +%s。
- 时间戳转时间:date -d@1508749502。
9.cal
- 功能:⽤于查看⽇历等时间信息,如只有⼀个参数,则表⽰年份(1-9999),如有两个参数,则表⽰⽉份和年份,,三个参数,则表示日,月,年。
- 命令格式:cal [options] [[[day] month] year]
- 常⽤选项:
- -3 显⽰系统前⼀个⽉,当前⽉,下⼀个⽉的⽉历
- -j 显⽰在当年中的第⼏天
- -y 显⽰当前年份的⽇历
10.grep
- 功能:在文件中搜索字符串,将找到的行打印出来
- 命令格式:grep [选项] "要搜索的字符串" filename
- 常用选项:
- -i:搜索时,忽略大小写
- -n:打印行号
- -v:反向选择,亦即显⽰出没有 '搜寻字符串' 内容的那⼀⾏。
11.find
- 功能:用于在指定路径中根进行查找文件
- 根据文件名进行查找:find [pathname] -name filename
12.uname
- 功能:uname可显⽰linux主机所⽤的操作系统的版本、硬件的名称等基本信息。
- 常用选项:
- uname -r:内核版本号。
- uname -a:详细输出所有信息。
- 常用选项:
二、Linux基础知识讲解
1.Linux下一切皆文件
a.文件类型
- '-' :普通文件(Linux下最常见的文件类型,包括可执行程序)
- 'd':目录文件
- 'c':字符(文件)设备(比如用的显示器,键盘)
- 'b':块(文件)设备(比如硬盘)
- 'l':链接文件
- 's':套接字文件
- 'p':管道文件
b.所有的文件都需要先打开,再使用
- 我们在windos上学习C语言文件操作的时候,会学到fopen:打开文件;fclose:关闭文件;
- 我们可以get到,我们先要读取或写入数据到一个file.txt文件中,需要先fopen打开文件,fclose关闭文件。
- 我们也初次接触到流的概念,以及站在内存角度的理解了输入、输出流。针对不同的流,我们操作方法都是一致的:打开流,读取或写入数据,关闭流。
- 总结上面两个理解,以及Linux下一切接文件,我们可以得出此结论。
c.默认打开的三个文件(流)
- 标准输入文件:(stdin)
- 标准输出文件:(stdout)
- 标准错误文件:(stderr)
d.用windows简单验证一下自己的桌面其实也是一个文件
- Linux下的“一切皆文件”理念不仅简化了系统架构,还提高了灵活性和可扩展性。
- 你们可以通过AI帮助,做一个试验,验证一下自己使用的终端也是一个文件(字符文件)。
2.重定向
a.输出重定向( > )
- [指令] > filename : 将指令的标准输出(通常是显示在终端上的内容)重定向到一个文件中.
- 1. 若filename文件不存在,则新建之;
- 2. 清空filename文件;
- 3. 改变 > 前面指令的输出路径,输出到指定filename中.
- 如echo 默认输出字符串到终端中,配合输出重定向,可输出到文件中test.txt;
- 再如ls 默认打印目录的文件信息到终端中,配合输出重定向,也可输出到文件中test.txt.
b.追加重定向( >> )
- 与输出重定向的唯一区别是,对已有的filename文件,不会清空。
c.输入重定向( < )
- 先看一下cat指令的例子
- 我们发现cat < file1与catfile1都能打印file1的内容并打印到终端中,但意义是不同的。
- cat filename # 直接查看filename内容并打印到终端显示器上。
- cat < filename # 使用输入重定向( < )将文件内容作为标准输入传递给 cat 命令。