1. 基础导航命令

1.1 pwd - 显示当前所在目录

语法: pwd
功能:显示用户当前所在的绝对路径

示例:

[user@host ~]$ pwd
/home/user

1.2 cd - 切换工作目录

语法: cd [目录路径]
功能:改变当前工作目录到指定目录
常用用法:

  • cd               进入当前用户的家目录
  • cd ~            同上,进入家目录
  • cd /             进入根目录
  • cd ..            进入上级目录
  • cd -             返回上一次所在的目录

示例:

[user@host ~]$ cd /etc        # 切换到/etc目录
[user@host etc]$ pwd
/etc
[user@host etc]$ cd ..        # 返回上级目录
[user@host /]$ pwd
/

1.3 ls - 列出目录内容

语法: ls [选项] [目录或文件]
功能:列出目录内容或文件信息
常用选项:

  •   -a   列出所有文件(包括以 . 开头的隐藏文件)
  •   -l    列出详细信息(权限、所有者、大小、时间等)
  •   -h   以易读方式显示文件大小(配合-l使用)
  •   -d   将目录像文件一样显示(不显示目录内容)
  •   -t    按时间排序
  •   -r    反向排序
  •   -R   递归列出子目录内容

示例:

[user@host ~]$ ls           # 列出当前目录内容
[user@host ~]$ ls -la       # 列出所有文件的详细信息
[user@host ~]$ ls -lh /etc  # 列出/etc目录内容,文件大小易读
[user@host ~]$ ls -d */     # 只列出目录

2. 文件操作命令

2.1 touch - 创建空文件或更新时间戳

语法: touch [选项] 文件...
功能:创建空文件或更新文件时间戳
常用选项:
-a  仅更改访问时间
-m  仅更改修改时间

示例:

[user@host ~]$ touch file.txt        # 创建空文件
[user@host ~]$ touch -m file.txt     # 更新文件的修改时间

2.2 mkdir - 创建目录

语法: mkdir [选项] 目录名...
功能:创建新目录
常用选项:
-p  递归创建多层目录

示例:

[user@host ~]$ mkdir newdir           # 创建单个目录
[user@host ~]$ mkdir -p a/b/c/d       # 递归创建多层目录

2.3 rmdir - 删除空目录

语法: rmdir [选项] 目录名
功能:删除空目录
常用选项:
-p  删除目录后,如果父目录为空也一并删除

示例:

[user@host ~]$ rmdir emptydir         # 删除空目录,emptydir是目录名,不是指令
[user@host ~]$ rmdir -p a/b/c         # 删除目录路径

2.4 rm - 删除文件或目录

语法: rm [选项] 文件或目录
功能:删除文件或目录
常用选项:
-f  强制删除,不提示
-i  删除前逐一询问确认
-r  递归删除目录及其内容

示例:

[user@host ~]$ rm file.txt            # 删除文件
[user@host ~]$ rm -r directory/       # 递归删除目录
[user@host ~]$ rm -rf directory/      # 强制递归删除目录(危险!)

                                                所以刚刚学的mkdir就是纯多余?

       其实是因为 rmdir 只删除空目录,如果目录里有文件,它会报错并停止。这可以防止你意外删除整个目录树,安全性比rm高很多。

                         毕竟目录可不是单个文件,操作不慎可是boom一下全没啦!

2.5 cp - 复制文件或目录

语法: cp [选项] 源文件 目标文件
功能:复制文件或目录
常用选项:
-r  递归复制目录
-f  强制复制,覆盖不提示
-i  覆盖前询问
-p  保留文件属性

示例:

[user@host ~]$ cp file1.txt file2.txt    # 复制文件
[user@host ~]$ cp -r dir1/ dir2/         # 递归复制目录
[user@host ~]$ cp -i file1.txt file2.txt # 覆盖前询问

2.6 mv - 移动或重命名文件

语法: mv [选项] 源文件 目标文件
功能:移动文件或重命名
常用选项:
-f  强制移动,覆盖不提示
-i  覆盖前询问

示例:

[user@host ~]$ mv old.txt new.txt    # 重命名文件
[user@host ~]$ mv file.txt dir/      # 移动文件到目录
[user@host ~]$ mv dir1/ dir2/        # 移动或重命名目录

2.7 cat - 查看文件内容

语法: cat [选项] [文件]
功能:查看文件内容
常用选项:
-n  显示行号
-b  对非空行编号
-s  压缩连续空行

示例:

[user@host ~]$ cat file.txt          # 查看文件内容
[user@host ~]$ cat -n file.txt       # 显示行号查看

2.8 head - 查看文件开头部分

语法: head [选项] [文件]
功能:显示文件开头部分(默认10行)
常用选项:
-n  指定显示行数

示例:

[user@host ~]$ head file.txt         # 显示前10行
[user@host ~]$ head -20 file.txt     # 显示前20行

2.9 tail - 查看文件末尾部分

语法: tail [选项] [文件]
功能:显示文件末尾部分(默认10行)
常用选项:
-n  指定显示行数
-f  实时追踪文件变化(常用于查看日志)
示例:

[user@host ~]$ tail file.txt         # 显示后10行
[user@host ~]$ tail -50 file.txt     # 显示后50行
[user@host ~]$ tail -f logfile       # 实时查看日志

                    不是前几行就是后几行……那我要是想看中间某一部分怎么办?

2.10 | - 管道

语法:命令1 | 命令2 | 命令3 ...

原理:

  • 命令1 的标准输出(stdout)会被传递给 命令2 的标准输入(stdin)。

  • 可以无限链接下去,形成一个处理流水线。

为什么要用管道?

  • 避免中间文件:不需要临时保存数据,节省磁盘空间和时间。

  • 模块化:每个命令只做一件事,组合起来完成复杂任务。

  • 实时处理:数据在内存中流动,效率高。

示例:

# 假设有一个包含 100 行的文件 data.txt
# 先取前 20 行,再取这 20 行中的最后 10 行 → 得到 11~20 行
head -20 data.txt | tail -10

2.11 less - 分页查看文件

语法:less [参数] 文件

功能:在 Linux 终端中分页查看文件内容,它允许你一页一页地浏览文件,特别适合查看大文件(比如日志文件、长配置文件等),因为它不会一次性把整个文件加载到内存中。

选项:

  • -i 忽略搜索时的大小写
  • -N 显示每行的行号
  • / 字符串:向下搜索“字符串”的功能
  • ? 字符串:向上搜索“字符串”的功能
  • n:重复前⼀个搜索(与 / 或 ? 有关)
  • N:反向重复前⼀个搜索(与 / 或 ? 有关)
  • q:quit

示例:

less -N -i /etc/passwd
  • -N:打开文件时显示每行的行号。

  • -i:在搜索时忽略大小写(例如 /bash 会同时匹配 bashBashBASH 等)。

具体操作步骤(在 less 界面内)

  1. 查看行号:启动时已带 -N 选项,每行前面会显示行号。

  2. 忽略大小写搜索:输入 /bash 并回车,搜索 "bash"(因为 -i 选项,同时会匹配 "Bash"、"BASH" 等)。

  3. 继续向下查找:按 n 键,光标移到下一个匹配行。

  4. 反向查找:按 N 键,回到上一个匹配行。

  5. 向上搜索:输入 ?nologin 并回车,向上搜索 "nologin"。

  6. 重复搜索:按 n 继续向上找下一个,按 N 反向(即向下)找。

  7. 退出:按 q 键退出 less,返回 bash 提示符。

2.12 find - 查找文件

语法: find [路径] [选项] [表达式]
功能:在目录树中查找文件
常用用法:

  • find / -name filename      # 按文件名查找(“/”表示在根目录下查询,查询范围为全部文件)
  • find . -type f             # 查找普通文件
  • find . -type d             # 查找目录
  • find . -size +10M          # 查找大于10M的文件
  • find . -mtime -7           # 查找7天内修改的文件

示例:

[user@host ~]$ find /home -name "*.txt"   # 查找.txt文件
[user@host ~]$ find . -type f -size +100k # 查找大于100k的文件

2.13 grep - 文本搜索

语法: grep [选项] 模式 [文件]
功能:在文件中搜索指定模式
常用选项:

  • -i  忽略大小写
  • -n  显示行号
  • -r  递归搜索目录
  • -v  反向选择(显示不包含模式的行)

示例:

[user@host ~]$ grep "error" logfile        # 搜索包含error的行
[user@host ~]$ grep -r "TODO" .            # 递归搜索当前目录
[user@host ~]$ grep -n "warning" file.txt  # 显示行号搜索

3.系统信息命令

3.1 date - 显示日期时间

语法: date [选项] [+格式]
功能:显示或设置系统时间
常用格式:

  • %Y-%m-%d  年-月-日
  • %H:%M:%S  时:分:秒
  • %s        时间戳

示例:

[user@host ~]$ date                     # 显示当前时间
[user@host ~]$ date "+%Y-%m-%d %H:%M"   # 自定义格式
[user@host ~]$ date +%s                 # 显示时间戳

3.2 cal - 显示日历

语法: cal [选项] [月份] [年份]
功能:显示日历
常用选项:

  • -3  显示上个月、当前月、下个月
  • -y  显示全年日历

示例:

[user@host ~]$ cal          # 显示当月日历
[user@host ~]$ cal 2024     # 显示2024年日历
[user@host ~]$ cal -3       # 显示三个月日历

3.3 which - 查找可执行文件位置

语法:which [文件]   

功能:查找可执行文件位置

示例:

[user@host ~]$ which ls      # 查找ls命令位置

4.其他实用命令

4.1 man - 查看命令手册

Linux的命令有很多参数,我们不可能全记住,可以通过查看练级手册(man函数)获取帮助。

语法:man[选项] 命令

常用选项:

  • 1 是普通的命令
  • 2 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)
  • 3 是库函数,如printf,fread4是特殊文件,也就是/dev下的各种设备⽂件
  • 4 略
  • 5 是指文件的格式,比如passwd,就会说明这个文件中各个字段的含义
  • 6 是给游戏留的,由各个游戏自己定义
  • 7 是附件还有⼀些变量,比如像environ这种全局变量在这里就有说明
  • 8是系统管理用的命令,这些命令只能由root使用,如ifconfig
  • 9 略
[whb@bite-alicloud test]$ man printf # 查看printf指令(没错,printf也是⼀个指令) 
[whb@bite-alicloud test]$ man fork # 查看系统调⽤,默认没有这个指令,man就⾃动去2号⼿册查找 
[whb@bite-alicloud test]$ man 2 frok # 查看系统调⽤ 
[whb@bite-alicloud test]$ man 3 printf # 查看C库函数 
[whb@bite-alicloud test]$ man 7 signal # 查看变量 
[whb@bite-alicloud test]$ man 7 environ
[whb@bite-alicloud test]$ man man # 查看man⼿册⾃⼰ 

4.2 tar - 打包压缩

语法: tar [选项] 文件
功能:打包/解包文件
常用选项:

  • -c  创建归档
  • -x  解压归档
  • -z  使用gzip压缩/解压
  • -j  使用bzip2压缩/解压
  • -v  显示过程
  • -f  指定文件名
  • -C  解压到指定目录

示例:

将 mydocs 目录打包成一个 .tar 文件(打包,不压缩):

tar -cvf mydocs.tar mydocs/

通常我们会用 gzip 压缩,生成 .tar.gz 文件(打包并压缩):

tar -czvf mydocs.tar.gz mydocs/

查看包内内容(不解包)

tar -tvf mydocs.tar

 解包(解压 .tar 文件)

tar -xvf mydocs.tar

解压到指定目录

tar -xzvf mydocs.tar.gz -C /tmp/restore

4.3 zip/unzip - 压缩解压

大多数 Linux 发行版默认可能未安装,需手动安装:

# CentOS / RHEL
yum install -y zip unzip

4.3.1 zip - 压缩

语法:zip [选项] 压缩包名.zip 要压缩的文件或目录...

功能:压缩/解压

常用选项:

  • -r    递归处理目录(压缩文件夹时必须加)
  • -e    加密压缩,会提示输入密码
  • -q    静默模式,不输出信息
  • -m    压缩后删除原文件(移动文件到压缩包)
  • -u    更新压缩包:只添加新增或修改过的文件
  • -d    从压缩包中删除指定文件
  • -l    显示版权信息(不常用)

压缩单个文件

zip myfile.zip file1.txt

压缩目录(必须加 -r

zip -r mydocs.zip mydocs/

4.3.2 zip - 解压

语法:unzip [选项] 压缩包名.zip [-d 解压目录]

功能:解压

常用选项:

  • -d 目录    解压到指定目录(默认当前目录)
  • -l    列出压缩包内容(不解压)
  • -v    更详细地列出内容(包括压缩比等)
  • -o    覆盖已存在的文件而不提示
  • -n    不覆盖已存在的文件
  • -q    静默解压
  • -P 密码    使用密码解压加密 ZIP

示例:

解压到当前目录

unzip mydocs.zip

解压到指定目录(目录不存在会自动创建)

unzip mydocs.zip -d /tmp/restore

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

unzip -l mydocs.zip

        学会了就给博主点个赞呗?(✪ω✪)

———(如有问题,欢迎评论区提问)———

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐