欢迎光临
我们一直在努力

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

在这里插入图片描述

大家好,欢迎来到 huangjin007_ 的博客

个人主页:huangjin007_
🔥
文章收录专栏:Linux 内功修炼手册(系统篇)

总会有一些坚持能从冰封的土地里培育出十万朵怒放的蔷薇


Linux 系统篇(二) —— 基础指令详解(二)

文章目录

  • Linux 系统篇(二) —— 基础指令详解(二)
    • 一、文件与目录的移动和改名:`mv`
    • 二、查看文件内容的基础:`cat`、`more`、`less`
      • 2.1 `cat`指令
      • 2.2 `more` 指令
      • 2.3 `less`指令
    • 三、只看头尾:`head` 和 `tail`
      • 3.1 `head` —— 看开头
      • 3.2 `tail` —— 看结尾
      • 3.3 `head` 与 `tail` 搭配看中间
    • 四、文本统计与简易输出:`wc`、`echo`、`printf`
      • 4.1 `wc`指令
      • 4.2 `echo` 和 `printf` 指令
    • 五、输入输出重定向与文件描述符
      • 5.1 什么是标准文件描述符?
      • 5.2 重定向操作符
    • 六、系统时间与日历:`date` 和 `cal`
      • 6.1 `date` —— 时间的显示与设置
      • 6.2 Unix 时间戳
      • 6.3 `cal` —— 打印日历
    • 七、文件查找与命令定位:`find`、`which`、`whereis`
      • 7.1 `find` 指令
      • 7.2 `which` 指令
      • 7.3 `whereis` 指令
    • 八、进阶认知
      • 8.1 “一切皆文件”
    • 结语:

一、文件与目录的移动和改名:mv

  mv 是 move 的缩写,这个命令身兼两职:移动文件 和 重命名文件。

基本语法

mv [选项] 源文件或目录 目标文件或目录

功能详解   mv 如何工作,完全取决于第二个参数(目标)是什么:

  • 如果目标是一个已存在的目录    mv 会把所有源文件(可以多个)都搬进这个目录里。 在这里插入图片描述

  • 如果目标不是一个已存在的目录(或者是一个文件名)    mv 会执行重命名操作。此时源文件只能有一个,mv 会将这个源文件的名字改成目标的名字。 在这里插入图片描述

  •   这里有一个容易误解的点:如果你想把一个文件移动到不存在的目录中,mv 并不会自动创建这个目录,而是会认为你想把源文件“重命名”成那个目录名。所以,移动文件前请确保目标目录已经存在!

    常用选项

    • -f(force):强制执行。如果目标文件已经存在,mv 会不询问直接覆盖。 在这里插入图片描述

    • -i(interactive):交互模式。如果目标文件已经存在,mv 会弹出询问是否覆盖。


    二、查看文件内容的基础:cat、more、less

      经常需要快速看一眼文件里写了什么,又不想打开编辑器,此时就要用到文本查看命令。

    2.1 cat指令

      cat 是 concatenate(连接)的缩写,它最常用的功能是显示文件的全部内容。当你把多个文件名作为参数时,cat 会把它们的内容按顺序拼接后一起输出。

    基本语法

    cat [选项] [文件...]

    常用选项

    • -n:给输出的每一行都加上行号(包括空行)。
    • -b:只给非空行加行号,空行跳过不编号。这对阅读带许多空行的代码或配置文件非常友好。
    • -s:压缩连续的空行。如果文件中出现多个连续的空行,-s 会将其压缩为一行,让输出更紧凑。 在这里插入图片描述

    偷偷告诉你

    • cat > newfile.txt 可以把接下来你在终端输入的内容保存到文件中(按 Ctrl+D 结束输入)。这个小技巧在快速新建小文件时非常顺手。 在这里插入图片描述

    • tac 命令(cat 的反写)可以倒序输出文件内容,即最后一行先显示,偶尔有奇效。 在这里插入图片描述

      cat 虽好,但如果文件有几千行,内容一下子刷屏过去,前面的根本来不及看。这时候就要请出分页工具了。

    2.2 more 指令

      more 命令会让你一页一页地阅读文件,每次只显示一屏内容。

    基本语法

    more [选项] [文件]

    常用操作

    • 翻页:按空格键向下翻一页,按回车键向下滚动一行。
    • -n 选项:指定每屏显示的行数。比如 more -10 file.txt 表示每屏只显示 10 行。
    • 退出:按 q 键退出 more。
    • 搜索:按 / 后输入字符串可以向下搜索,但 more 的搜索功能很弱。

      more 最大的局限是:只能向下翻页,不能往回看。当你翻过一页之后,就没法再看到上一页的内容了。这种“有去无回”的体验确实不太友好,于是就有了它的升级版 —— less。

    2.3 less指令

    基本语法

    less [参数] 文件

    为什么它叫 less?

      其实它最早是从 more 的改进版发展而来的,意指“你需要的比 more 更少一些限制”。less 在打开文件时不会一次性加载全部内容,而是按需读取,所以打开大文件(比如几百 MB 的日志)也比编辑器快得多,而且不占用大量内存。

    核心操作

    • 上下滚动:
      • j / k 或 方向键上下:逐行滚动。
      • PageDown / PageUp 或 Ctrl+F / Ctrl+B:向下 / 向上翻一整屏。
      • g:跳到文件开头。G:跳到文件末尾。
    • 搜索功能:
      • /字符串:向下搜索这个字符串。按 n 跳到下一个匹配项,N 跳到上一个匹配项。
      • ?字符串:向上搜索这个字符串。同样 n 和 N 分别表示“继续同方向”和“反向查找”。
    • 显示行号:
      • 启动时加 -N 选项:less -N file.txt,每行前会显示行号,方便定位。
    • 退出:按 q。

    三、只看头尾:head 和 tail

      有时候你只关心文件的开头几行或最后几行,比如查看日志的最新记录、检查配置文件的头几行注释,这时候用 cat 就太“重”了。

    3.1 head —— 看开头

    head 默认显示文件的前 10 行。

    语法

    head [参数]... [文件]...

    选项

    • -n <行数>:显示指定的行数。比如 head -n 20 file.txt 显示前 20 行。
    • 也可以简写为 -20,效果等同于 -n 20。

    在这里插入图片描述

    3.2 tail —— 看结尾

    tail 默认显示文件的末尾 10 行。

    语法

    tail [必要参数] [文件]

    选项

    • -n <行数>:同 head,指定显示末尾多少行。

    在这里插入图片描述

    3.3 head 与 tail 搭配看中间

    先来认识一个符号:

    管道符 |:把前一个命令的标准输出,直接当作后一个命令的标准输入。

    在这里插入图片描述 在这里插入图片描述


    四、文本统计与简易输出:wc、echo、printf

    4.1 wc指令

    wc 是 word count 的缩写,用来统计文件中的行数、单词数和字符数。

    常用选项

    • -l:只统计行数(lines)。
    • -w:只统计单词数(words)。单词是以空白字符(空格、制表符等)分隔的连续字符。
    • -c:只统计字符数(bytes,严格说是字节数)。
    • 不带任何选项时,会依次输出:行数、单词数、字符数、文件名。

    在这里插入图片描述

      wc 通常结合管道使用,例如 ls | wc -l 统计当前目录下有多少个文件(夹)。

    4.2 echo 和 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 和 cal

    6.1 date —— 时间的显示与设置

      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:%S

    在这里插入图片描述

    6.2 Unix 时间戳

      Unix 世界用从 1970 年 1 月 1 日 00:00:00 UTC 起经过的总秒数来记录时间,这叫 Unix 时间戳(timestamp)。它和人类可读的日期之间可以互相转换:

    • 日期 -> 时间戳: 在这里插入图片描述
    • 时间戳 -> 日期: 在这里插入图片描述
    • 注意 -d 参数后面跟 @数字 表示该数字是一个时间戳。

    6.3 cal —— 打印日历

    cal 命令可以显示简单的日历,帮你快速查日期。

    • 默认:显示当前月的日历
    • -y:显示整年的日历。
    • -3:同时显示上个月、本月、下个月。 在这里插入图片描述
    • -j:显示这一天是当年中的第几天(1 月 1 日为 1)。 在这里插入图片描述
    • 参数可以指定年份和月份。

    七、文件查找与命令定位:find、which、whereis

    7.1 find 指令

      find 是一个极其强大的文件搜索工具,可以在目录树中根据文件名、大小、权限、修改时间等各种条件查找文件。本篇我们先介绍最常用的一个。

    基本语法

    find 搜索路径 [选项] [操作]

    如果不指定搜索路径,默认是当前目录 .。

    按文件名查找(-name)

    find /home -name "*.txt" # 在 /home 下查找所有以 .txt 结尾的文件
    find /etc -name "passwd" # 精确查找名为 passwd 的文件

    在这里插入图片描述

    7.2 which 指令

      当你输入 ls 时,Shell 是怎么知道要运行 /bin/ls 的呢?which 能告诉你某个命令对应的可执行文件路径。 在这里插入图片描述

    7.3 whereis 指令

      whereis 比 which 更全面,它不光查找二进制可执行文件,还会一并找到相关的源代码和手册页(man page) 的位置。

    在这里插入图片描述


    八、进阶认知

    8.1 “一切皆文件”

      在 Linux 中,几乎所有的资源都被抽象成了“文件”,你可以用统一的接口去操作它们(open, read, write, close)。用 ls -l 可以看到文件类型标识符:

    标识文件类型举例
    普通文件 文本、图片、可执行程序
    d 目录 文件夹
    l 软链接(符号链接) 类似 Windows 快捷方式
    b 块设备文件 硬盘、USB 存储器
    c 字符设备文件 键盘、鼠标、串口
    p 管道文件 用于进程间通信

    结语:

      今天的内容到这里就结束了,希望你能有所收获~

    干货整理到手抖,觉得有用的话,赏个三连回回血?__(:ᗤ」ㄥ)_ _

    赞(0)
    未经允许不得转载:171主机测评 » 【Linux 系统篇(二)】入门基础指令详解(二)
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址