【Linux 系统篇(二)】入门基础指令详解(二)

发布时间:2026/7/18 19:46:15
【Linux 系统篇(二)】入门基础指令详解(二) 大家好欢迎来到 huangjin007_ 的博客⭐个人主页huangjin007_文章收录专栏Linux 内功修炼手册(系统篇)总会有一些坚持能从冰封的土地里培育出十万朵怒放的蔷薇Linux 系统篇(二) —— 基础指令详解(二)文章目录Linux 系统篇(二) —— 基础指令详解(二)一、文件与目录的移动和改名mv二、查看文件内容的基础cat、more、less2.1 cat指令2.2 more 指令2.3 less指令三、只看头尾head 和 tail3.1 head —— 看开头3.2 tail —— 看结尾3.3 head 与 tail 搭配看中间四、文本统计与简易输出wc、echo、printf4.1 wc指令4.2 echo 和 printf 指令五、输入输出重定向与文件描述符5.1 什么是标准文件描述符5.2 重定向操作符六、系统时间与日历date 和 cal6.1 date —— 时间的显示与设置6.2 Unix 时间戳6.3 cal —— 打印日历七、文件查找与命令定位find、which、whereis7.1 find 指令7.2 which 指令7.3 whereis 指令八、进阶认知8.1 “一切皆文件”结语一、文件与目录的移动和改名mvmv是 move 的缩写这个命令身兼两职移动文件和重命名文件。基本语法mv[选项]源文件或目录 目标文件或目录功能详解mv如何工作完全取决于第二个参数目标是什么如果目标是一个已存在的目录mv会把所有源文件可以多个都搬进这个目录里。如果目标不是一个已存在的目录或者是一个文件名mv会执行重命名操作。此时源文件只能有一个mv会将这个源文件的名字改成目标的名字。这里有一个容易误解的点如果你想把一个文件移动到不存在的目录中mv并不会自动创建这个目录而是会认为你想把源文件“重命名”成那个目录名。所以移动文件前请确保目标目录已经存在常用选项-fforce强制执行。如果目标文件已经存在mv会不询问直接覆盖。-iinteractive交互模式。如果目标文件已经存在mv会弹出询问是否覆盖。二、查看文件内容的基础cat、more、less经常需要快速看一眼文件里写了什么又不想打开编辑器此时就要用到文本查看命令。2.1cat指令cat是 concatenate连接的缩写它最常用的功能是显示文件的全部内容。当你把多个文件名作为参数时cat会把它们的内容按顺序拼接后一起输出。基本语法cat[选项][文件...]常用选项-n给输出的每一行都加上行号包括空行。-b只给非空行加行号空行跳过不编号。这对阅读带许多空行的代码或配置文件非常友好。-s压缩连续的空行。如果文件中出现多个连续的空行-s会将其压缩为一行让输出更紧凑。偷偷告诉你cat newfile.txt可以把接下来你在终端输入的内容保存到文件中按CtrlD结束输入。这个小技巧在快速新建小文件时非常顺手。tac命令cat 的反写可以倒序输出文件内容即最后一行先显示偶尔有奇效。cat虽好但如果文件有几千行内容一下子刷屏过去前面的根本来不及看。这时候就要请出分页工具了。2.2more指令more命令会让你一页一页地阅读文件每次只显示一屏内容。基本语法more[选项][文件]常用操作翻页按空格键向下翻一页按回车键向下滚动一行。-n选项指定每屏显示的行数。比如more -10 file.txt表示每屏只显示 10 行。退出按q键退出more。搜索按/后输入字符串可以向下搜索但more的搜索功能很弱。more最大的局限是只能向下翻页不能往回看。当你翻过一页之后就没法再看到上一页的内容了。这种“有去无回”的体验确实不太友好于是就有了它的升级版 ——less。2.3less指令基本语法less[参数]文件为什么它叫less其实它最早是从more的改进版发展而来的意指“你需要的比more更少一些限制”。less在打开文件时不会一次性加载全部内容而是按需读取所以打开大文件比如几百 MB 的日志也比编辑器快得多而且不占用大量内存。核心操作上下滚动j/k或方向键上下逐行滚动。PageDown/PageUp或CtrlF/CtrlB向下 / 向上翻一整屏。g跳到文件开头。G跳到文件末尾。搜索功能/字符串向下搜索这个字符串。按n跳到下一个匹配项N跳到上一个匹配项。?字符串向上搜索这个字符串。同样n和N分别表示“继续同方向”和“反向查找”。显示行号启动时加-N选项less -N file.txt每行前会显示行号方便定位。退出按q。三、只看头尾head和tail有时候你只关心文件的开头几行或最后几行比如查看日志的最新记录、检查配置文件的头几行注释这时候用cat就太“重”了。3.1head—— 看开头head默认显示文件的前 10 行。语法head[参数]...[文件]...选项-n 行数显示指定的行数。比如head -n 20 file.txt显示前 20 行。也可以简写为-20效果等同于-n 20。3.2tail—— 看结尾tail默认显示文件的末尾 10 行。语法tail[必要参数][文件]选项-n 行数同head指定显示末尾多少行。3.3head与tail搭配看中间先来认识一个符号管道符|把前一个命令的标准输出直接当作后一个命令的标准输入。四、文本统计与简易输出wc、echo、printf4.1wc指令wc是 word count 的缩写用来统计文件中的行数、单词数和字符数。常用选项-l只统计行数lines。-w只统计单词数words。单词是以空白字符空格、制表符等分隔的连续字符。-c只统计字符数bytes严格说是字节数。不带任何选项时会依次输出行数、单词数、字符数、文件名。wc通常结合管道使用例如ls | wc -l统计当前目录下有多少个文件夹。4.2echo和printf指令这两个命令用来在终端输出文本。echo 内容原样输出字符串末尾自动加换行。printf 格式 参数...类似 C 语言的printf支持格式化输出默认不换行需要自己加\n。五、输入输出重定向与文件描述符5.1 什么是标准文件描述符Linux 中每个进程正在运行的程序在启动时操作系统都会为它打开三个默认的“数据流”并给它们分配固定的编号编号名称含义默认指向0标准输入程序的输入数据来源键盘1标准输出程序正常输出的目的地终端屏幕2标准错误程序错误信息的输出地终端屏幕也就是说当你在程序里printf打印内容时这些内容其实是写入了文件描述符 1报错信息则写入文件描述符 2。而“重定向”就是改变这些数据流的方向让输出不显示在屏幕上而是存到文件里。5.2 重定向操作符覆盖重定向标准输出把echo命令本来要打印到屏幕的“hello”写入文件1.txt。如果1.txt原本有内容会先清空再写入覆盖。追加重定向标准输出同样写入1.txt但不覆盖原内容而是追加到文件末尾。六、系统时间与日历date和cal6.1date—— 时间的显示与设置date既可以看时间也能以指定的格式输出时间甚至修改系统时间需要 root 权限。显示时间直接输入date会给出当前日期和时间格式为系统默认。如果希望自定义格式就用后接格式符号常用格式符号速查表符号含义%Y完整年份0000-9999%m月份01-12%d日期01-31%H小时00-23%M分钟00-59%S秒00-59%F相当于%Y-%m-%d%X相当于%H:%M:%S6.2 Unix 时间戳Unix 世界用从 1970 年 1 月 1 日 00:00:00 UTC 起经过的总秒数来记录时间这叫 Unix 时间戳timestamp。它和人类可读的日期之间可以互相转换日期 - 时间戳时间戳 - 日期注意-d参数后面跟数字表示该数字是一个时间戳。6.3cal—— 打印日历cal命令可以显示简单的日历帮你快速查日期。默认显示当前月的日历-y显示整年的日历。-3同时显示上个月、本月、下个月。-j显示这一天是当年中的第几天1 月 1 日为 1。参数可以指定年份和月份。七、文件查找与命令定位find、which、whereis7.1find指令find是一个极其强大的文件搜索工具可以在目录树中根据文件名、大小、权限、修改时间等各种条件查找文件。本篇我们先介绍最常用的一个。基本语法find搜索路径[选项][操作]如果不指定搜索路径默认是当前目录.。按文件名查找-namefind/home-name*.txt# 在 /home 下查找所有以 .txt 结尾的文件find/etc-namepasswd# 精确查找名为 passwd 的文件7.2which指令当你输入ls时Shell 是怎么知道要运行/bin/ls的呢which能告诉你某个命令对应的可执行文件路径。7.3whereis指令whereis比which更全面它不光查找二进制可执行文件还会一并找到相关的源代码和手册页man page的位置。八、进阶认知8.1 “一切皆文件”在 Linux 中几乎所有的资源都被抽象成了“文件”你可以用统一的接口去操作它们open,read,write,close。用ls -l可以看到文件类型标识符标识文件类型举例-普通文件文本、图片、可执行程序d目录文件夹l软链接符号链接类似 Windows 快捷方式b块设备文件硬盘、USB 存储器c字符设备文件键盘、鼠标、串口p管道文件用于进程间通信结语今天的内容到这里就结束了希望你能有所收获~干货整理到手抖觉得有用的话赏个三连回回血__(:ᗤ」ㄥ)_ _