Linux基础命令
约 3202 字大约 11 分钟
2026-01-07
目录结构
Linux 目录结构是一个树形结构,根目录为 /,所有其他目录都挂载在根目录下。

路径描述方式: /user/local/test.txt
路劲
相对路径和绝对路径
- 相对路径:相对于当前工作目录的路径。
- 绝对路径:从根目录开始的完整路径。
例如:通过 pwd 命令查看当前工作目录的路径为 /home/用户,则: 现在想要通过 cd 命令,切换到 Desktop 目录:
cd /home/用户/Desktop
cd Desktop
特殊路径
.:表示当前目录。..:表示上一级目录。~:表示用户的 HOME 目录。
Linux 命令
命令通用格式:
command [options] [arguments]command:要执行的命令名称。options:可选参数,用于修改命令的行为。arguments:可选参数,用于指定命令的操作对象。
ls 命令
ls 命令用于列出目录中的文件和子目录。
ls [-a -l -h] [directory]-a:显示所有文件,包括隐藏文件。

-l:以长格式显示文件信息,包括权限、所有者、大小、修改时间等。

-h:以人类可读的格式显示文件大小,例如 1K、2M、3G 等。directory:可选参数,用于指定要列出的目录。如果不指定目录,默认列出当前目录。
当不使用选项和参数时,ls 命令表示:以平铺方式列出当前目录中的文件和子目录。

当启动 Linux 系统时,默认会加载当前登录用户的 HOME 目录作为当前的工作目录,所以 ls 命令列出的是 HOME 目录中的文件和子目录。 HOME 目录是每个 Linux 用户的个人目录,用于存储用户的个人配置文件、脚本、程序等。路径在:/home/用户名
可以试一下查看根目录中的文件和子目录:
ls /
命令选项的组合使用:
ls -l -a
ls -la
ls -al
ls -al /
ls -alh /

cd 命令
cd 命令用于切换当前工作目录。
cd [directory]directory:可选参数,用于指定要切换到的目录。如果不指定目录,默认切换到用户的 HOME 目录。
# 切换到用户的 HOME 目录
cd
# 切换到根目录
cd /
pwd 命令
pwd 命令用于显示当前工作目录的路径。
pwd
mkdir 命令
mkdir 命令用于创建新目录。
mkdir [-p] directory-p:递归创建目录,即如果父目录不存在,也会一并创建。directory:要创建的目录名称。
# 创建一个名为 test 的目录
mkdir test
# 递归创建目录 test/1/2/3,会将整个链条都创建完成
mkdir -p test/1/2/3
touch 命令
touch 命令用于创建新文件或更新文件的访问时间和修改时间。
touch [file]file:要创建或更新的文件名。
# 创建一个名为 test.txt 的文件
touch test.txt
cat 命令
cat 命令用于查看文件内容。
cat [file]file:要查看的文件名。
# 查看 test.txt 文件的内容
cat test.txt
more 命令
more 命令用于分页查看文件内容。
more [file]file:要查看的文件名。- q:退出 more 命令。
- 空格:向下滚动一页。
- Enter:向下滚动一行。
#查看 test.txt 文件的内容
more test.txt
cp 命令
cp 命令用于复制文件或目录。
cp [-r] source destination-r:递归复制目录,即如果复制的是目录,会将目录下的所有文件和子目录都复制到目标位置。source:要复制的源文件或目录。destination:要复制到的目标位置。
# 复制文件
cp test.txt test1.txt
# 复制目录
cp -r test test1
mv 命令
mv 命令用于移动文件或目录,也可以用于重命名文件或目录。
mv source destinationsource:要移动或重命名的源文件或目录。destination:要移动到或重命名为的目标位置。
# 目标不存在,则进行改名
mv test.txt test1.txt
# 移动目录
mv test test1
# 移动文件到目录
mv test1.txt test
rm 命令
rm 命令用于删除文件或目录。
rm [-r, -f] file|directory-r:递归删除目录,即如果删除的是目录,会将目录下的所有文件和子目录都删除。-f:强制删除,不提示确认。file|directory:要删除的文件或目录。
# 删除文件
rm test.txt
# 删除目录
rm -r test
rm 命令支持通配符*,用来做模糊匹配
# 删除所有以 test 开头的文件
rm test*
# 删除所有以 .txt 结尾的文件
rm *.txt
# 删除所有文件
rm *
# 删除所有包含 test 字符串的文件
rm *test*
注意:rm 是一个危险的命令,使用时要谨慎,避免删除重要文件。特别是rm -rf /、rm -rf /*,效果等同于格式化。
which 命令
which 命令用于查找可执行文件的路径。
which [command]command:要查找的可执行文件名。
# 查找 cd 命令的路径
which cd
find 命令
find 命令用于在目录树中查找文件或目录。
find [path] [expression]path:可选参数,用于指定要查找的起始目录。如果不指定目录,默认从当前目录开始查找。expression:可选参数,用于指定查找的条件。可以使用文件名、目录名、文件类型、文件大小、文件权限等作为条件。-name "pattern":根据文件名进行匹配,pattern可以包含通配符。-type:根据文件类型进行匹配,常用的类型有:f:普通文件d:目录l:符号链接
-size:查找文件大小。可以使用+表示大于指定大小,-表示小于指定大小,不使用符号表示等于指定大小。b:块(512 字节)c:字节k:表示 kbM:表示 MBG:表示 GB
# 查找当前目录下所有的 .txt 文件
find . -name "*.txt"
# 查找当前目录下所有的目录
find . -type d
# 查找当前目录下所有大小超过 5k 的文件
find . -size +5k
grep 命令
grep 命令用于在文件中搜索指定的字符串或正则表达式。
grep [options] pattern [file]options:可选参数,用于修改 grep 命令的行为。-i:忽略大小写。-v:反向匹配,显示不包含指定模式的行。-n:显示匹配行的行号。-r:递归搜索目录下的所有文件。
pattern:要搜索的字符串或正则表达式。file:可选参数,用于指定要搜索的文件名。如果不指定文件,默认从标准输入读取。
# 搜索小说.txt 文件中包含 "萧炎"
grep "萧炎" 小说.txt
# 搜索小说.txt 文件中包含 "薰儿" 的行
grep -n "薰儿" 小说.txt
wc 命令
wc 命令用于统计文件中的行数、单词数和字符数。
wc [options] [file]options:可选参数,用于修改 wc 命令的行为。-l:仅统计行数。-w:仅统计单词数。-m:仅统计字符数。-c:统计字节数。
file:可选参数,用于指定要统计的文件名。如果不指定文件,默认从标准输入读取。
# 统计小说.txt 文件中的行数、单词数和字符数
wc 小说.txt
# 仅统计小说.txt 文件中的行数
wc -l 小说.txt
管道符 |
管道符 | 用于将一个命令的输出作为另一个命令的输入。
command1 | command2command1:第一个命令,将生成一些输出。command2:第二个命令,将接收command1的输出作为输入。
# 统计小说.txt 文件中包含 "萧炎" 的行数
cat 小说.txt | grep 萧炎 | wc -w
echo 命令
echo 命令用于在终端输出指定的字符串或变量值。
echo [options] [string]options:可选参数,用于修改 echo 命令的行为。-n:不输出换行符。
string:要输出的字符串或变量值。$variable:要输出的变量值。`:用于执行命令并将其输出作为字符串。>:用于输出重定向,将命令的输出保存到文件中。>>:用于追加输出重定向,将命令的输出追加到文件中。
# 输出字符串 "hello world"
echo "hello world"
# 输出变量值
name="张三"
echo "我的姓名是 $name"
# 输出当前工作目录
echo `pwd`
# 将 "hello world" 输出到 b.txt 文件中
echo "hello world" > b.txt
# 将 "我是追加的内容" 追加到 b.txt 文件中
echo "我是追加的内容" >> b.txt
tail 命令
tail 命令用于查看文件的末尾内容。
tail [options] [file]options:可选参数,用于修改 tail 命令的行为。-n:指定要显示的行数,默认显示最后 10 行。-f:实时监控文件内容,当文件内容发生变化时,会自动更新显示。
file:要查看的文件名。
# 查看 小说.txt 文件的末尾内容
tail 小说.txt
# 查看 小说.txt 文件的末尾 5 行内容
tail -5 小说.txt
# 实时监控 小说.txt 文件的内容变化
tail -f 小说.txt
vi/vim 编辑器
vi/vim 编辑器是 Linux 系统中常用的文本编辑器,用于创建、编辑和查看文本文件。
vim 是 vi 的加强版,兼容 vi 所有命令,不仅能编辑文本,而且还具有 shell 程序编辑的能力,可以不同颜色的字体显示不同的内容,例如:关键字、注释、字符串等。
工作模式
- 命令模式:默认模式,用于输入命令。
- 插入模式:用于在文件中输入文本。
- 底线命令模式:用于输入底线命令,例如保存文件、退出编辑器等。
命令模式
vi [文件路径]
vim [文件路径]如果文件存在,会打开文件;如果文件不存在,会创建文件。
vi 小说.txt
vim 小说.txt- 使用
vim 小说.txt打开小说.txt 文件; - 在命令模式内,按
i进入插入模式,即可开始编辑文件; - 编辑完成后,按
Esc键退出插入模式; - 在命令模式内,输入
:wq保存文件并退出编辑器; - 如果只想退出编辑器而不保存文件,输入
:q!即可。
在命令模式下的一些常见快捷键:
表格展示:
| 快捷键 | 功能 |
|---|---|
i | 进入插入模式 |
a | 在当前光标位置后面插入文本 |
I | 在当前行的开头 |
A | 在当前行的末尾 |
o | 在当前行的下一行插入新行 |
O | 在当前行的上一行插入新行 |
esc | 退出插入模式 |
k | 向上移动光标 |
j | 向下移动光标 |
h | 向左移动光标 |
l | 向右移动光标 |
0 | 移动到当前行的开头 |
$ | 移动到当前行的末尾 |
PageUp | 向上滚动一页 |
PageDown | 向下滚动一页 |
/ | 向下搜索指定字符串 |
n | 向下继续搜索 |
N | 向上继续搜索 |
dd | 删除当前行 |
ndd | 删除当前行以下的 n 行 |
yy | 复制当前行 |
nyy | 复制当前行以下的 n 行 |
p | 粘贴复制的内容 |
u | 撤销上一次操作 |
ctrl+r | 重做上一次撤销操作 |
gg | 移动到文件的开头 |
G | 移动到文件的末尾 |
dG | 删除当前行以下的所有行 |
dgg | 删除当前行以上的所有行 |
d$ | 删除到当前行的末尾 |
d0 | 删除到当前行的开头 |
底线命令模式
| 命令 | 功能 |
|---|---|
:w | 保存文件 |
:wq | 保存文件并退出编辑器 |
:q! | 不保存文件并退出编辑器 |
:set number | 显示行号 |
:set nonumber | 隐藏行号 |
:set paste | 开启粘贴模式 |
最后
Linux 命令,它的选项非常多,我们可以这样了解它:
command --help
man command
大多数手册都是英文,如果阅读吃力,可以通过重定向符:man ls > ls-man.txt 来将手册保存到 ls-man.txt 文件中,然后再通过翻译软件进行翻译。