mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),经常用来备份文件或者目录~
语法:
mv [选项] 源文件或目录(src) 目标文件或目录(dst)功能:







常用选项:
-f:force强制的意思,如果目标文件已经存在,不会询问而直接覆盖-i:若目标文件 (destination) 已经存在时,就会询问是否覆盖!
在对这个命令进行讲解前,我们先来回顾一下cat命令~
cat可以用来输出普通文件内容
-b 对非空输出行编号【空行不进行编号】-n 对输出的所有行编号【空行也有内容('\n')】-s 不输出多行空行【相邻空行压缩为一行】使用示例:


tac 功能:直接行反向输出文件内容(先输出最后一行)~

常用选项(与cat有区别)
选项说明示例无选项默认反向输出文件内容tac file.txt-b 或 --before在分隔符前插入内容(默认行为,实际使用较少)tac -b -s "分隔符" file.txt-r 或 --regex将分隔符解释为正则表达式tac -r -s "正则表达式" file.txt-s 或 --separator指定行分隔符(默认是换行符 \n)tac -s "," file.csv
使用得不是很多,大家了解一下就可以了~
我们知道cat命令可以输出我们的普通文件内容,我们一般使用cat进行小文件和配置文件内容的输出,但是如果是比较大的文件(比如程序日志)呢?如果使用cat命令输出文件内容,就会显得比较繁琐,所以也就有了我们接下来需要学习的命令~
程序日志是程序运行时自动记录的“运行日记”,像飞机的黑匣子一样,实时记录程序的操作、状态和事件。它告诉开发者程序做了什么(如用户点击按钮)、遇到了什么问题(如网络超时、数据错误),甚至能追踪黑客攻击。通过日志,可以快速定位崩溃原因、监控服务是否正常运行(比如网站是否卡顿),还能统计用户行为(如每天多少人访问)。日志会分等级(错误、警告、调试信息等),重要问题用醒目标记。合理管理日志(如定期清理、集中存储分析)能避免服务器存储爆满,同时让问题排查更高效。
语法:
more [选项]功能:more命令功能类似cat,分批显示文件内容
常用选项:
-n 指定输出行数q 退出more我们以/var/log/messages (root账户可以查看)(Linux 系统中记录系统级常规日志的核心文件)的为例:


按回车就可以向下更新

输入q就可以退出~
当然我们也可以指定行数显示

我们可以看到虽然可以向下更新内容,但是不能往前面翻阅,这样翻过了就比较麻烦~我们也就有了接下来的命令~
less工具也是对文件或其它输出进行分页显示的工具,是linux正统查看文件内容的工具,功能极其强大,less的用法比起more更加的有弹性,在more的时候,我们并没有办法向前面翻,只能往后面看向下更新,但若使用了less时,就可以使用[pageup] [pagedown]等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容,除此之外,在less里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。
语法:
less [参数] 文件功能:less与more类似,但使用less可以随意浏览文件,而more仅能向下移动,却不能向上移动,less分页显示文件内容,可以前后翻,而且less在查看之前不会加载整个文件~
选项:
-i 忽略搜索时的大小写-N 显示每行的行号/字符串:向下搜索“字符串”的功能?字符串:向上搜索“字符串”的功能n:重复前一个搜索(与 / 或 ? 有关),找到下一个搜索到的字符串位置N:反向重复前一个搜索(与 / 或 ? 有关)q:quit为了效果更加明显,我们自己创建一个大文件:
命令行输入: count=1; while [ count -le 10000 ]; do echo " 命令解释: 用bash实现循环写入日志:初始化计数器count为1,当count小于等于10000时,将count值和"hello xiaodu!"追加到mylog.txt文件,然后count自增1。循环直至count大于10000结束,实现向文件写入10000行日志的功能。
使用cat就可以输出文件内容,可以发现这个文件还是很大的,有10000行,十分难翻~

使用less mylog.txt

显示一屏满就不再显示,使用[pageup] [pagedown]等按键的功能来往前往后翻看文件~还可以使用/xiaodu进行搜索,xiaodu就会高亮显示

按q就可以进行退出~
head与tail就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head用来显示档案的开头至标准输出中,而tail想当然尔就是看档案的结尾。
语法:head [参数]... [文件]...
功能:head用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行
选项:
-n<行数> 显示的行数 (n可以省略)


tail命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不断刷新,使你看到最新的文件内容.
语法:
tail [必要参数] [文件]功能:用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。 常用查看日志文件~
选项:
-f 循环读取-n<行数> 显示行数(n可以省略)


通过前面的学习,我们已经可以输出文件全部内容,头尾部分内容?那么如果我想输出任意区间行的内容应该怎么办呢?
我们需要使用管道符|,【管道符 | 】用于将前一个命令的输出作为后一个命令的输入~(后面会详细讲解)
我们来看看使用:

同时管道符可以连接任意数量的命令,形成复杂的命令序列~ 例: 命令行输入: head -5525 mylog.txt | tail -26 | tac | wc -l 命令解释: 该命令由head、tail、tac和wc四个Linux命令组成。先用head -5525从mylog.txt中提取前5525行,再用tail -26从这些行中选取最后26行。接着,tac命令将这些行顺序反转。最后,wc -l统计反转后的行数,由于tac只是改变行的顺序,不增减行数,所以结果恒为26。此命令组合可用于查看日志文件开头部分中的最后几行,并以相反顺序展示,有助于特定场景下的日志分析和调试。

指定年月日格式显示时间:date +%Y-%m-%d

用法:date [OPTION]... [+FORMAT] 说明:+号不可以省略

显示年月日+时分秒(空格需要转义,确保命令行参数被正确解析)








我们知道世界上不同地方是有时差的,我们处于东八区,我们会加上八个小时~
图片中的内容是关于Linux中的cal指令的说明:
cal命令可以用来显示公历(阳历)日历。公历是现在国际通用的历法,又称格列历,通称阳历。“阳历”又名“太阳历”,系以地球绕行太阳一周为一年,为西方各国所通用,故又名“西历”。
用法:
cal [参数] [年份]功能:用于查看日历等时间信息,使用
cal [年份]的格式,查看年份,同时cal命令只支持1到9999之间的年份;使用cal [月份] [年份]的格式,查看年月~常用选项:
-3:显示系统前一个月,当前月,下一个月的月历-j:显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)-y:显示当前年份的日历查看指定年:

查看指定年月:

显示系统前一个月,当前月,下一个月的月历:

显示系统当前年:

显示系统当前月:

功能: which命令可以用来查询某一个命令在哪一个路径下~

语法:
find pathname -options功能:用于在文件树中查找文件,并作出相应的处理(可能访问磁盘)
常用选项


-type [类型]——按文件类型过滤:f【普通文件】,d【目录】
功能:用于找到程序的源、二进制文件或手册

功能:设置命令的别名
在上一篇博客,我们就介绍到了这个命令,我们来温故知新一下:


关于别名的删除: 第一种方法:直接关闭Xshell 第二种方法:alias 别名=‘ ’ 【把别名设置为空】
语法:
grep [选项] 搜寻字符串 文件功能:在文件中搜索字符串,将找到的行打印出来
常用选项:
-i:忽略大小写的不同,所以大小写视为相同-n:输出对应行号-v:反向选择,即显示出没有 '搜寻字符串' 内容的那一行 在正式讲解之前,我们先了解一个小工具nano,nano 是 Linux 和类 Unix 系统中的一款简单易用的文本编辑器,可以快速编辑文件~当然我们首先要安装这个小工具~
nano安装(root账户下安装) Centos:yum install -y nano Ubuntu:apt install -y nano
小编使用的是Ctenos版本:


安装成功,接下来就可以使用nano这个简单易用的文本编辑器了~
首先把mylog.txt的内容复制一份:

nano的使用: nano filename # 打开或新建文件 常用快捷键: 快捷键功能
Ctrl+O保存文件(确认文件名后按Enter)Ctrl+X退出编辑器(若有未保存内容会提示保存)Ctrl+K剪切当前行Ctrl+U粘贴剪切的行Ctrl+W搜索字符串Ctrl+C显示当前光标位置Ctrl+_跳转到指定行号Ctrl+R从另一个文件插入内容
实验:




ps ajx 和 top 是两个用于查看系统进程的命令,它们在功能和输出格式上有一些区别。
ps ajxps 命令用于报告当前系统的进程状态。选项 ajx 组合提供了详细的进程信息~ ps ajx 会输出一个静态的进程列表,包括进程ID (PID)、终端 (TTY)、累积CPU时间 (TIME)、命令名 (CMD) 等。这个命令提供了一次性的快照信息,适合用于脚本或需要保存输出的情况~a 选项显示终端上所有用户的进程。j 选项使用任务格式输出,包含更多详细信息。x 选项显示没有控制终端的进程。toptop 是一个动态实时视图工具,显示系统中各个进程的运行状态,它会定期更新显示,让用户实时监控系统的性能和资源使用情况~
top 提供一个交互式界面,默认每隔几秒钟自动刷新一次(默认不退出,按q退出) 它显示的信息包括:
top 允许用户在运行时进行交互,比如排序进程、过滤特定进程、改变更新间隔、杀死进程等。
ps ajx: 适合需要获取一次性进程信息的情况,比如脚本中需要记录某一时刻的进程状态,或者需要详细分析某个特定进程的状态。
top: 适合实时监控系统性能,尤其是在需要观察系统资源动态变化、识别高资源消耗进程时非常有用。
命令行输入: ps ajx | grep 'sshd'

命令解释:
首先,ps ajx 命令以详细格式列出系统中所有正在运行的进程,包括那些没有控制终端的进程,提供了全面的进程状态信息。随后,通过管道【 | 】将 ps ajx 的输出传递给 grep 'sshd',grep 命令会在这些进程中搜索并仅显示包含 "sshd" 字符串的行。帮助我们快速定位与 SSH 服务相关的进程,如 SSH 守护进程,从而进行监控、调试或确保 SSH 服务正常运行。
补充:sshd 是 OpenSSH 守护进程的名称,通常用于提供 SSH 服务~通过这个命令可以查看所有与 sshd 相关的进程信息~
打包压缩是把文件数据进行归档,形成一个文件的过程。简单来说,就是将多个文件或文件夹整合成一个单独的文件,这个文件通常具有更小的体积,方便存储和传输。

没有找到命令,我们首先就需要进行安装
安装工具(root账户):zip/unzip Centos:yum install -y zip unzip Ubuntu: apt install -y zip unzip


安装成功~
接下来我们就可以进行使用了~
zip语法: zip 压缩文件.zip 目录或文件 【 zip 压缩的文件dst 需要压缩的文件src 】
功能: 将目录或文件压缩成zip格式
常用选项 -r选项——递归处理,将指定目录下的所有文件和子目录一并打包压缩处理~
打包压缩大文件:

打包目录+文件:
首先我们把原来创建的目录和文件移动到一个新建目录下


需要加-r选项——递归处理,将指定目录下的所有文件和子目录一并打包压缩处理~

默认解压到当前路径下,我们也可以指定解压的位置:

rzsz是Linux下基于ZMODEM协议的文件传输工具,包含 rz(接收文件)和 sz(发送文件)两个命令,支持通过终端(如Xshell)与本地(如Windows)交互文件~
安装工具(root账户):rzsz Centos:yum install -y lrzsz Ubuntu: apt install -y lrzsz

当然也可以进行直接拖拽~
这些也就体现了打包压缩在不同操作系统间的应用
tar tar命令可以将多个文件或目录打包成一个单独的归档文件(.tar),并支持结合压缩算法(如 gzip、bzip2 等)进一步减小文件体积~功能也就是打包和解包~
核心功能:
.tar 文件~.tar 文件中提取内容gzip、bzip2、xz 等压缩工具结合,生成 .tar.gz、.tar.bz2、.tar.xz常用选项
选项 | 含义 |
|---|---|
-c | 创建新归档(Create) |
-x | 解压归档(eXtract) |
-t | 列出归档内容(Table) |
-v | 显示操作过程(Verbose) |
-f | 指定归档文件名(File,必须紧接文件名) |
-z | 使用 gzip 压缩/解压(生成 .tar.gz) |
-j | 使用 bzip2 压缩/解压(生成 .tar.bz2) |
-J | 使用 xz 压缩/解压(生成 .tar.xz) |
-C | 解压到指定目录(Change directory) |
--exclude | 排除特定文件/目录 |
常用命令模板
tar -czvf 压缩包名.tar.gz 目标文件/目录
(-z 对应 gzip,-j 替换为 bzip2,-J 替换为 xz)
tar -xzvf 压缩包名.tar.gz
(默认解压到当前目录,加 -C /目标路径 指定目录)

tar -tvf 压缩包名.tar.gz
关键提示:
-f 必须紧跟文件名(如 tar -czvf file.tar.gz dir)xz > bzip2 > gzip,但速度反之 bc是Linux里的终端计算器,能算加减乘除、平方根,还能处理小数(比如设置保留几位小数)。支持循环、条件判断,甚至进制转换(如十进制转十六进制)。用-l选项能调用高级数学函数,-q可以安静启动不显示提示。适合快速算数或写脚本时做复杂计算。

联合使用:

命令解释:
echo "1+2*2-3" | bc
使用echo输出数学表达式1+2*2-3,通过管道符|将其传递给bc命令行计算器,bc计算表达式结果,遵循运算优先级,先乘法后加减,最终得出结果2并显示在终端~
语法:uname [选项]
功能:uname用来获取电脑和操作系统的相关信息(硬件方面)~ uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息
常用选项: -a或--all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称

补充:lsb_release -a,可以在 Linux 系统中用于查询操作系统版本的命令(软件方面)

Linux热键是键盘上的快捷组合键,能快速操作系统~
》[Tab]按键——具有『命令补全』和『档案补齐』的功能【一次不行就多次】

》[Ctrl]+c按键——让当前的程序『停掉』,也就是强制停止当前程序
》[Ctrl]+d按键——通常代表着:『键盘输入结束(End Of File, EOF 戒 End OfInput)』的意思;另外它可以用来取代exit~
》[Ctrl]+r按键——Ctrl+r是终端反向搜索热键,按下后输入关键词可快速检索历史命令(按时间倒序匹配),支持多次按Ctrl+R切换结果,找到目标命令后回车执行或编辑~

》!+命令字符——执行最近以命令字符开头的历史命令

我们可以看到历史命令可以被检索,说明我们的历史命令是被记录下来的,我们可以命令行输入【history】得到最近的历史命令——一般记录1000条最近历史命令

语法:shutdown [选项]
常见选项:
reboot
reboot并执行,系统会立即开始重启过程~该命令通常需要root权限,普通用户使用时可能需要通过sudo提升权限,如sudo reboot。到这里,Linux基础指令博客部分就结束了,当然Linux指令肯定不止于此,后面在使用过程中,我们可以学习到更多的命令~
通过前面的使用,我们来仔细看看命令行:

命令的本质其实就是Linux系统中指定目录下的可执行文件~
狭义上的操作系统就是内核,而广义上的操作系统=内核+外壳程序(也包括系统上默认安装的某些软件)
画图理解:

shell外壳程序也就是命令行解释器,命令行解释器(command Interpreter)作用主要包含: ● 将使用者的命令翻译给核心(kernel)处理~ ● 同时,将核心的处理结果翻译给使用者~
那么为什么要多一层外壳程序呢?
外壳程序的作用: 1. 保护操作系统! 2. 方便用户操作,减少用户使用操作系统的使用成本~
外壳程序怎么工作?【简述:外壳程序一般会创建子进程去解释执行命令】
cd、echo等),Shell会直接执行这些命令。ls、gcc等),Shell会在系统的PATH环境变量指定的目录中查找该程序,并启动一个新的进程来执行它。>、<)和管道(|),将一个命令的输出作为另一个命令的输入,实现复杂的数据流处理。
很多专业术语在后面我们会学习到,这里简单了解一下就可以了~
计算机操作系统层次结构示意图:

从上到下分为四个主要层次:用户、操作系统、驱动程序和底层硬件。
》什么是操作系统? 操作系统是一款进行软硬件资源管理的软件! 》为什么有操作系统? 通过对下做好软硬件的管理工作(手段),操作系统对上给用户提供一个良好【稳定 高效 安全】的运行环境(目的)