Linux中的常见指令

01. ls指令


  • ls -a 列出目录下的所有文件
  • ls -d 这个指令会将目录像文件一样显示,只会展示目录本身,不加就是显示目录文件的内部信息
  • ls -R 递归列出子目录下面的文件

02. pwd指令


  • 显示用户当前所在的目录

03. cd指令


首先先介绍一下文件本身

  1. 文件本身:要明确即使是一个空文件也是会在磁盘上占用空间的,这是因为一份文件的构成是文件的内容和文件的属性
    • 即 文件 = 文件内容 + 文件数据
  2. 文件之间 (普通文件 VS 目录)

讲解一下指令


  • 改变工作目录,将当前工作目录改变到指定目录之下
  • 需要强调的是
. #称之为当前目录 所以当要执行文件时常见的是./a.out
.. # 称之为上一级目录
cd .. : 返回上级目录
cd /home/litao/linux/ : 绝对路径  # /这个是回退的最终目录
cd ../day02/ : 相对路径
cd ~:进入用户家目       # home/zhongyuan
cd -:返回最近访问目录

04. touch指令


  • 可以用来创建文件,当touch一个已经存在的文件的时候,会修改文档的存取时间和更改时间
    1. 当我们使用stat命令来查看文件的时候会得到一份文件的详细信息
Access: (0664/-rw-rw-r--)  Uid: ( 1001/zhongyuan)   Gid: ( 1001/zhongyuan)
Access: 2025-09-10 11:07:10.111683043 +0800 # 最后一次读取该文件的时间(比如用 cat、less 查看内容)
Modify: 2025-09-10 11:07:10.108682933 +0800 # 最后一次修改文件内容的时间(比如编辑文件内容),修改文件内容一般也会修改change时间
Change: 2025-09-10 11:07:10.108682933 +0800 # 最后一次修改文件元数据的时间(比如更改权限、所有者等)
# touch修改的就是这样的文件时间
# 其中需要注意的是为了防止Acces也就是读取文件时间频繁的进行变换,Linux也是启用了挂载选项

05. mkdir指令


  • mkdir test创建一个名称为test的文件夹
  • mkdir -p 递归创建文件夹,可以同时创建多个目录

06. rmdir && rm指令


  1. rmdir
    • 删除空目录 注意只能是删除空目录
    • -p选项 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除
  2. rm
    • 可以同时删除文件或者目录
    • -f (force)对于文件属性为只读的文件,也进行强制删除
    • -i 删除前直接进行确认
    • -r 删除目录以及所有文件,递归删除

07. man指令


man [选项] [章节号] 命令名
  1. 常用选项的说明
    • -k 按关键字搜索手册页(类似 apropos)
    • -f 显示命令的简要说明(类似 whatis)
    • -a 显示所有匹配的手册页
    • -w 显示手册页的路径而不打开内容
  2. 章节号说明(其实还有很多但是在这里我只列出了最重要的一部分)
    • 1 用户命令(如 ls, cd)
    • 2 系统调用(如 open, read)
    • 3 库函数(如 printf, malloc)

08. cp指令


cp [选项] 源文件或者是目录 目标文件或者是目录

09. mv指令


mv [选项] 源文件或者是目录 目标文件或者是目录
  1. 当在同一个目录下,mv在相同类型下会完成重命名
  2. 选项
    • -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
    • -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!

集中查看文件指令对比

  1. cat 正序查看目标文件的内容(不适合去查看大型文本)
    • -b 对非空的行进行编号
    • -n 对输出的所有行进行编号
    • -s 不输出空行
  2. tac 逆序打印出文件之中的内容
  3. more 可以慢慢查看文件的内容一次只显示一部分
    • -n 对行进行编号
  4. less指令
  • 📄 查看大文件 不会一次性加载整个文件,节省资源
  • 🔍 搜索关键字 支持正向(向下搜索) /pattern 和反向(向上搜索) ?pattern 搜索
  • 📜 分页浏览 支持上下翻页、跳转到指定行或百分比位置
  • 📈 实时监控文件变化 使用 less +F 类似 tail -f,适合查看日志更新
  • 📂 管道接收命令输出 如 dmesg less,查看大量系统信息
  • 📁 查看多个文件 less file1 file2,可在多个文件间切换
  • 🧭 标记兴趣点 使用 m[a-z] 添加标记,'[a-z] 跳转回标

10. head指令


  1. head -n [文件] 显示文件的前n行

11. tail指令


  1. tail -n [文件] 显示文件的后n行
  • 插入管道的概念
    1. 在 Linux 中,管道(pipe)是一种非常核心的机制,用于将一个命令的输出直接传递给另一个命令作为输入。它是命令行中实现数据流式处理的利器,既高效又优雅。
    2. 它连接两个或多个命令,使得前一个命令的输出直接成为后一个命令的输入,本质上是一种进程间通信(IPC)机制,在内核中通过缓冲区实现数据传递
# 举个例子
# ps aux:列出所有进程
# grep nginx:从中筛选包含 nginx 的行
# 管道 | 把 ps aux 的结果直接传给 grep,无需中间文件
ps aux | grep nginx
head -n1000 test.txt | tail -n50 # 这里表明的就是取出了950行到1000行

12. date指令


  1. 命令 date +%s 在 Linux 中的作用是:输出当前时间的 Unix 时间戳,也叫做 Epoch 时间。它是从 1970 年 1 月 1 日 00:00:00 UTC 到现在所经过的秒数。
[zhongyuan@VM-8-11-centos 进度条]$ date +%s
1757492926
  1. 如果要将时间戳转化成正常时间
date -d@1757492926
Wed Sep 10 16:28:46 CST 2025

13. find指令(会去访问磁盘外设,但是效率会比较低)


  1. which命令: 只搜索命令
  2. whereis:在指定路径下做搜索,一种近似查找的方案
[root@VM-8-11-centos ~]# which ls
alias ls='ls --color=auto'
	/usr/bin/ls
# 其中我想介绍一下alias指令
# 是用于为复杂或常用的命令创建简短的“别名”
# 例如
alias ll='ls -l --color=auto'
# 此时只需要输入ll就可以执行

14. greb指令


🧪 使用示例
✅ 查找文件中包含 “error” 的行:

grep "error" logfile.txt

✅ 忽略大小写查找:

grep -i "error" logfile.txt

✅ 显示匹配行号:

grep -n "error" logfile.txt

✅ 查找多个文件中的匹配行:

grep "error" *.log

✅ 递归查找目录下所有文件:

grep -r "error" /var/log/

✅ 只显示匹配的文件名:

grep -l "error" *.log

15. tar指令


📦 打包文件或目录(不压缩)

tar -cvf archive.tar folder/
  • -c:创建归档
  • -v:显示过程(可选)
  • -f:指定文件名
  • folder/:你要打包的目录或文件

🗜 打包并压缩为 .tar.gz

tar -czvf archive.tar.gz folder/
  • -z:使用 gzip 压缩
  • 生成的文件更小,适合传输或备份

🗜 打包并压缩为 .tar.bz2(更高压缩率)

tar -cjvf archive.tar.bz2 folder/
  • -j:使用 bzip2 压缩
  • 压缩率高但速度稍慢

📂 解压 .tar 文件

tar -xvf archive.tar
  • -x:解包
  • -v:显示过程
  • -f:指定文件名

📂 解压 .tar.gz 文件

tar -xzvf archive.tar.gz
  • -z:使用 gzip 解压

📂 解压 .tar.bz2 文件

tar -xjvf archive.tar.bz2
  • -j:使用 bzip2 解压

🔍 查看压缩包内容(不解压)

tar -tvf archive.tar.gz
  • -t:列出内容
  • -v:显示详细信息

🧠 小技巧:

  • 如果你只想解压到指定目录:

    tar -xzvf archive.tar.gz -C /path/to/destination/
    
  • 如果你只想打包多个文件:

    tar -cvf files.tar file1.txt file2.c file3.jpg
    

Logo

葡萄城是专业的软件开发技术和低代码平台提供商,聚焦软件开发技术,以“赋能开发者”为使命,致力于通过表格控件、低代码和BI等各类软件开发工具和服务

更多推荐