前言
无论你使用 Ubuntu、CentOS 9 Stream、银河麒麟还是 openEuler,基础命令都是 Linux 系统管理和开发的通用语言。熟练掌握这些核心命令,能让你在任何 Linux 发行版上高效完成文件操作、系统管理和日常任务。本文将详细讲解最常用的 12 个 Linux 基础命令,包括它们的基本用途、常用参数和实用示例。
一、目录导航命令
1. cd - 切换工作目录
命令意义:Change Directory 的缩写,用于在文件系统中切换当前工作目录。
cd [目录路径]常用用法:
cd或cd ~:切换到当前用户的主目录cd -:切换到上一个工作目录cd .:保持在当前目录(通常用于脚本中)cd ..:切换到上级目录cd ../..:切换到上两级目录cd /:切换到根目录cd /etc/sysconfig:切换到绝对路径指定的目录cd Documents:切换到当前目录下的 Documents 子目录
2. pwd - 显示当前工作目录
命令意义:Print Working Directory 的缩写,用于打印当前所在的绝对路径。
pwd [选项]常用参数:
-P:显示物理路径,不跟随符号链接(默认跟随符号链接)
# 显示当前目录pwd
# 显示物理路径(当当前目录是符号链接时)pwd -P二、文件和目录创建命令
3. mkdir - 创建目录
命令意义:Make Directory 的缩写,用于创建新的目录。
mkdir [选项] 目录名常用参数:
-p:递归创建多级目录(如果父目录不存在,会自动创建)-m 权限:创建目录时直接设置权限(如-m 755)
# 创建单个目录mkdir test
# 同时创建多个目录mkdir dir1 dir2 dir3
# 递归创建多级目录(最常用)mkdir -p a/b/c/d
# 创建目录并设置权限为755mkdir -m 755 public4. touch - 创建空文件或修改文件时间戳
命令意义:主要用于创建空文件,也可以修改文件的访问时间和修改时间。
touch [选项] 文件名常用参数:
-a:只修改文件的访问时间-m:只修改文件的修改时间-d "时间字符串":指定文件的时间戳
# 创建单个空文件touch file.txt
# 同时创建多个空文件touch file1.txt file2.txt file3.txt
# 修改文件的修改时间为当前时间touch -m file.txt
# 将文件时间设置为指定时间touch -d "2024-05-20 10:30:00" file.txt三、文件和目录查看命令
5. ls - 列出目录内容
命令意义:List 的缩写,用于列出指定目录下的文件和子目录。
ls [选项] [目录路径]常用参数:
-l:以长格式显示详细信息(权限、所有者、大小、时间等)-a:显示所有文件,包括隐藏文件(以.开头的文件)-h:以人类可读的格式显示文件大小(KB、MB、GB等)-t:按文件修改时间排序(最新的在前)-r:反向排序-R:递归列出所有子目录的内容-i:显示文件的 inode 号
# 列出当前目录内容ls
# 列出/etc目录的详细信息ls -l /etc
# 列出所有文件(包括隐藏文件)ls -la
# 按时间倒序显示文件(最旧的在前)ls -lhtr
# 递归列出当前目录下所有内容ls -Rls -l 输出字段解释:
drwxr-xr-x 2 root root 4096 May 10 10:00 test| 权限 |链接数|所有者|组|大小| 修改时间 |文件名|四、文件和目录操作命令
6. mv - 移动或重命名文件/目录
命令意义:Move 的缩写,用于移动文件或目录,也可以用于重命名。
mv [选项] 源文件/目录 目标文件/目录常用参数:
-i:交互式模式,覆盖前提示确认-f:强制模式,不提示直接覆盖-n:不覆盖已存在的文件-v:显示详细信息
# 重命名文件mv oldname.txt newname.txt
# 移动文件到指定目录mv file.txt /tmp/
# 移动多个文件到指定目录mv file1.txt file2.txt /tmp/
# 移动目录mv dir1 /tmp/
# 交互式移动(覆盖前提示)mv -i file.txt /tmp/7. cp - 复制文件/目录
命令意义:Copy 的缩写,用于复制文件或目录。
cp [选项] 源文件/目录 目标文件/目录常用参数:
-r或-R:递归复制目录及其所有内容-i:交互式模式,覆盖前提示确认-f:强制模式,不提示直接覆盖-n:不覆盖已存在的文件-v:显示详细信息-p:保留文件的属性(权限、所有者、时间戳等)-a:归档模式,相当于-drp,递归复制并保留所有属性
# 复制文件cp file.txt file_copy.txt
# 复制文件到指定目录cp file.txt /tmp/
# 复制多个文件到指定目录cp file1.txt file2.txt /tmp/
# 递归复制目录(最常用)cp -r dir1 dir2
# 复制目录并保留所有属性cp -a dir1 /tmp/
# 交互式复制cp -i file.txt /tmp/8. rm - 删除文件/目录
命令意义:Remove 的缩写,用于删除文件或目录。
CAUTION极度危险:数据粉碎机
rm -rf命令非常危险,一旦执行,文件将被永久删除且无法恢复。- 绝对不要执行
:spoiler[rm -rf /]或:spoiler[rm -rf /*],这会删除系统根目录下的所有文件,导致系统瞬间崩溃。 ::
rm [选项] 文件/目录常用参数:
-r或-R:递归删除目录及其所有内容-f:强制删除,不提示任何信息-i:交互式模式,删除前提示确认-v:显示详细信息
# 删除单个文件rm file.txt
# 交互式删除文件rm -i file.txt
# 删除多个文件rm file1.txt file2.txt
# 删除空目录rmdir empty_dir # 只能删除空目录rm -d empty_dir # 与rmdir相同
# 递归删除目录及其所有内容(最常用)rm -r dir1
# 强制删除目录(不提示)rm -rf dir1五、文本处理命令
9. echo - 输出文本或变量内容
命令意义:用于在终端输出指定的文本或变量的值,也可以用于向文件中写入内容。
echo [选项] [文本/变量]常用参数:
-n:不输出末尾的换行符-e:启用转义字符解析(如\n换行、\t制表符)
# 输出文本echo "Hello World"
# 输出变量内容name="Linux"echo "Hello $name"
# 不输出换行符echo -n "Hello "echo "World" # 输出:Hello World
# 启用转义字符echo -e "Line 1\nLine 2\nLine 3"echo -e "Name\tAge\tCity"
# 向文件中写入内容(覆盖原有内容)echo "Hello World" > file.txt
# 向文件中追加内容echo "New line" >> file.txt10. cat - 查看文件内容
命令意义:Concatenate 的缩写,主要用于查看文件内容,也可以用于合并文件和创建文件。
cat [选项] 文件名常用参数:
-n:显示所有行的行号-b:只显示非空行的行号-s:将连续的空行压缩成一行
# 查看文件内容cat file.txt
# 查看文件内容并显示行号cat -n file.txt
# 合并多个文件cat file1.txt file2.txt > combined.txt
# 创建新文件并写入内容(按Ctrl+D结束输入)cat > newfile.txt
# 向文件中追加内容cat >> newfile.txt
# 这里文档(Here Document)方式写入多行内容cat > script.sh << EOF#!/bin/bashecho "Hello World"EOF六、压缩和解压命令(虽然不是基础命令,但地位和基础命令一样重要)
11. tar - 归档和压缩文件
命令意义:Tape Archive 的缩写,是 Linux 中最常用的归档和压缩工具,可以将多个文件或目录打包成一个归档文件,并支持多种压缩算法。
tar [选项] 归档文件名 [文件/目录...]常用参数:
-c:创建新的归档文件-x:从归档文件中提取文件-z:使用 gzip 压缩/解压(.tar.gz 格式)-j:使用 bzip2 压缩/解压(.tar.bz2 格式)-J:使用 xz 压缩/解压(.tar.xz 格式)-v:显示详细过程-f 文件名:指定归档文件名(必须放在所有参数的最后)-C 目录:指定解压到的目录-t:列出归档文件中的内容
# 将当前目录下的所有文件打包成archive.tartar -cvf archive.tar *
# 将dir1目录打包并使用gzip压缩tar -zcvf dir1.tar.gz dir1/
# 解压到当前目录tar -zxvf dir1.tar.gz
# 解压到指定目录tar -zxvf dir1.tar.gz -C /tmp/
# 列出归档文件中的内容tar -tf dir1.tar.gz
# 创建xz压缩的归档文件(压缩率最高)tar -Jcvf dir1.tar.xz dir1/12. zip/unzip - 压缩和解压 zip 文件
命令意义:用于创建和解压 zip 格式的压缩文件,是跨平台最常用的压缩格式之一。
# zip 命令zip [选项] 压缩文件名 源文件/目录...
# unzip 命令unzip [选项] 压缩文件名常用参数:
- zip:
-r递归压缩,-q安静模式,-d删除指定文件,-u更新文件 - unzip:
-d 目录指定路径,-q安静模式,-o覆盖不提示,-l列出内容
# 压缩单个文件zip file.zip file.txt
# 递归压缩目录zip -r dir.zip dir/
# 同时压缩多个文件和目录zip -r archive.zip file1.txt file2.txt dir1/
# 解压到当前目录unzip archive.zip
# 解压到指定目录unzip archive.zip -d /tmp/
# 列出压缩包中的内容unzip -l archive.zip
# 覆盖已存在的文件unzip -o archive.zip七、常用命令速查表
| 命令 | 用途 | 最常用组合 |
|---|---|---|
cd | 切换目录 | cd ~, cd .., cd / |
pwd | 显示当前目录 | pwd |
mkdir | 创建目录 | mkdir -p a/b/c |
touch | 创建空文件 | touch file.txt |
ls | 列出目录内容 | ls -lhtr, ls -la |
mv | 移动/重命名 | mv old new, mv file /tmp/ |
cp | 复制文件/目录 | cp -r dir1 dir2, cp file /tmp/ |
rm | 删除文件/目录 | rm -rf dir, rm file.txt |
echo | 输出文本 | echo "text" > file.txt |
cat | 查看文件内容 | cat file.txt, cat -n file.txt |
tar | 归档压缩 | tar -zcvf file.tar.gz dir, tar -zxvf file.tar.gz |
zip/unzip | zip压缩解压 | zip -r dir.zip dir, unzip file.zip |
结语
以上 12 个命令是 Linux 系统中最基础、最常用的核心命令,几乎覆盖了日常文件操作的所有需求。熟练掌握这些命令,能让你在 Linux 系统中如鱼得水,大大提高工作效率。
TIP进阶学习建议
建议大家尽可能在实际的终端环境中多动手操作,利用肌肉记忆加深对这些核心命令的理解。当你能脱稿熟练运用这些基础命令后,再去系统级学习 Shell 脚本、管道符及更高级的管理配置,将会变得水到渠成、事半功倍! ::