Linux常用命令学习指南:基础教程与实战应用
一、Linux系统概述
(一)Linux的起源与发展
Linux的起源可以追溯到1991年,当时芬兰赫尔辛基大学的学生林纳斯·托瓦兹(Linus Torvalds)为了替代Minix操作系统,开发了一个简单的类Unix内核,并将其命名为Linux。他将这个内核发布到互联网上,吸引了众多开发者的关注和参与。随着越来越多的开发者加入到Linux的开发中,Linux逐渐发展成为一个功能强大、稳定可靠的操作系统。 1992年,Linux与GNU计划结合,采用了GPL(通用公共许可证)协议,使得Linux成为一个自由、开源的操作系统。此后,Linux在服务器领域、嵌入式系统、超级计算机等领域得到了广泛的应用。如今,Linux已经成为全球最流行的操作系统之一,拥有众多的发行版,如Ubuntu、Debian、Red Hat、CentOS等。
(二)Linux的特点与优势
1.开源免费:Linux是开源软件,其源代码可以自由获取和修改,用户可以根据自己的需求进行定制。同时,大多数Linux发行版都是免费的,用户无需支付高昂的授权费用。
2.高度可定制:Linux系统可以根据用户的需求进行高度定制,用户可以选择自己喜欢的桌面环境、安装需要的软件包,甚至可以对内核进行定制。
3.多用户多任务:Linux是一个多用户多任务的操作系统,多个用户可以同时登录系统,执行不同的任务,互不干扰。
4.稳定性强:Linux系统具有高度的稳定性,能够长时间运行而不出现故障。许多服务器和超级计算机都采用Linux作为操作系统。
5.安全性高:Linux系统的安全性较高,其设计理念注重安全,提供了丰富的安全机制,如用户权限管理、防火墙、SELinux等。
6.强大的命令行工具:Linux提供了丰富的命令行工具,用户可以通过命令行完成各种任务,如文件管理、系统配置、网络管理等。命令行工具的灵活性和高效性是Linux的一大优势。
(三)Linux的应用领域
1.服务器领域:Linux在服务器领域占据主导地位,全球大部分网站和企业服务器都运行在Linux系统上。常见的Linux服务器应用包括Web服务器(如Apache、Nginx)、数据库服务器(如MySQL、PostgreSQL)、邮件服务器(如Sendmail、Postfix)等。
2.嵌入式系统:Linux在嵌入式系统中也有广泛的应用,如智能手机、平板电脑、智能电视、智能家居设备等。Android操作系统就是基于Linux内核开发的。
3.超级计算机:世界上大部分超级计算机都运行在Linux系统上,Linux的高性能和稳定性使其成为超级计算机的首选操作系统。
4.开发环境:Linux是软件开发人员的首选平台,许多开发工具和编程语言都原生支持Linux系统。开发人员可以在Linux系统上进行软件开发、测试和调试。
5.教育领域:Linux作为开源软件,具有良好的教育价值。许多学校和培训机构将Linux作为计算机课程的教学内容,培养学生的计算机技能和开源精神。
二、Linux命令行基础
(一)命令行界面(CLI)与图形界面(GUI)
Linux系统提供了两种用户界面:命令行界面(Command Line Interface, CLI)和图形界面(Graphical User Interface, GUI)。
1.命令行界面(CLI):命令行界面是通过键盘输入命令来操作计算机的界面。在命令行界面中,用户可以通过输入各种命令来完成文件管理、系统配置、网络管理等任务。命令行界面的优点是高效、灵活,可以精确控制计算机的各种功能;缺点是学习曲线较陡,需要记忆大量的命令和参数。
2.图形界面(GUI):图形界面是通过鼠标点击和拖动等操作来控制计算机的界面。在图形界面中,用户可以通过图标、菜单、窗口等元素来完成各种任务。图形界面的优点是直观、易用,不需要记忆大量的命令;缺点是效率较低,对于一些复杂的任务,操作起来可能不如命令行界面方便。 对于Linux系统的初学者来说,建议先学习命令行界面的基本操作,因为命令行界面是Linux系统的核心,许多高级操作和系统管理任务都需要通过命令行来完成。掌握了命令行界面的基本操作后,再学习图形界面的使用会更加容易。
(二)终端与shell
1.终端(Terminal):终端是用户与计算机进行交互的界面,它提供了一个文本输入输出环境,用户可以在终端中输入命令,并查看命令的执行结果。在Linux系统中,常见的终端程序有GNOME Terminal、Konsole、XTerm等。
2.shell:shell是一个命令解释器,它负责接收用户在终端中输入的命令,并将其解释为计算机可以执行的指令。在Linux系统中,常见的shell有Bash(Bourne Again SHell)、Zsh、Ksh、Csh等。其中,Bash是Linux系统默认的shell,它兼容Bourne shell的语法,并提供了许多增强功能。 用户可以通过以下命令查看当前使用的shell: bash echo
S
H
E
L
L
(三)基本命令格式
L
i
n
u
x
命令的基本格式如下:
b
a
s
h
c
o
m
m
a
n
d
[
o
p
t
i
o
n
s
]
[
a
r
g
u
m
e
n
t
s
]
其中:
c
o
m
m
a
n
d
:是要执行的命令名称,如
l
s
、
c
d
、
m
k
d
i
r
等。
[
o
p
t
i
o
n
s
]
:是命令的选项,用于指定命令的执行方式。选项通常以短横线(
−
)或双短横线(
−
−
)开头,例如
−
l
、
−
−
h
e
l
p
等。有些选项可以省略参数,有些选项需要指定参数。
[
a
r
g
u
m
e
n
t
s
]
:是命令的参数,用于指定命令的操作对象。例如,
l
s
命令的参数可以是文件名或目录名。选项和参数都是可选的,有些命令可能不需要选项和参数,有些命令可能需要多个选项和参数。例如:
b
a
s
h
l
s
−
l
/
h
o
m
e
/
u
s
e
r
这个命令中,
l
s
是命令名称,
−
l
是选项,用于显示详细信息,
/
h
o
m
e
/
u
s
e
r
是参数,指定要显示的目录。(四)获取命令帮助在
L
i
n
u
x
系统中,有多种方式可以获取命令的帮助信息:
1.
使用
−
−
h
e
l
p
选项:大多数命令都支持
−
−
h
e
l
p
选项,使用该选项可以显示命令的简要帮助信息。例如:
b
a
s
h
l
s
−
−
h
e
l
p
2.
使用
m
a
n
命令:
m
a
n
(
m
a
n
u
a
l
)命令是
L
i
n
u
x
系统中最常用的获取帮助信息的工具,它可以显示命令的详细手册页。例如:
b
a
s
h
m
a
n
l
s
使用
m
a
n
命令查看帮助信息时,可以使用以下快捷键进行导航:空格键:向下翻一页
b
:向上翻一页
q
:退出帮助
3.
使用
i
n
f
o
命令:
i
n
f
o
命令是
G
N
U
项目提供的帮助系统,它提供了比
m
a
n
命令更详细的帮助信息。例如:
b
a
s
h
i
n
f
o
l
s
4.
使用
w
h
a
t
i
s
命令:
w
h
a
t
i
s
命令可以显示命令的简短描述。例如:
b
a
s
h
w
h
a
t
i
s
l
s
5.
使用
a
p
r
o
p
o
s
命令:
a
p
r
o
p
o
s
命令可以根据关键字搜索相关的命令和帮助信息。例如:
b
a
s
h
a
p
r
o
p
o
s
f
i
l
e
三、文件与目录管理命令(一)目录导航命令
1.
p
w
d
命令:显示当前工作目录的路径。
b
a
s
h
p
w
d
2.
c
d
命令:切换当前工作目录。
b
a
s
h
切换到指定目录
c
d
/
h
o
m
e
/
u
s
e
r
/
D
o
c
u
m
e
n
t
s
切换到用户主目录
c
d
切换到上一级目录
c
d
.
.
切换到前一个工作目录
c
d
3.
l
s
命令:列出目录内容。
b
a
s
h
列出当前目录下的文件和目录
l
s
列出指定目录下的文件和目录
l
s
/
h
o
m
e
/
u
s
e
r
以长格式显示详细信息
l
s
−
l
显示所有文件(包括隐藏文件)
l
s
−
a
递归显示子目录内容
l
s
−
R
按文件大小排序(从大到小)
l
s
−
l
S
按修改时间排序(最新的文件在前)
l
s
−
l
t
(二)文件与目录操作命令
1.
m
k
d
i
r
命令:创建目录。
b
a
s
h
创建单个目录
m
k
d
i
r
n
e
w
d
i
r
e
c
t
o
r
y
创建多级目录
m
k
d
i
r
−
p
p
a
r
e
n
t
d
i
r
e
c
t
o
r
y
/
c
h
i
l
d
d
i
r
e
c
t
o
r
y
2.
r
m
d
i
r
命令:删除空目录。
b
a
s
h
r
m
d
i
r
e
m
p
t
y
d
i
r
e
c
t
o
r
y
3.
r
m
命令:删除文件或目录。
b
a
s
h
删除文件
r
m
f
i
l
e
.
t
x
t
强制删除文件(不提示确认)
r
m
−
f
f
i
l
e
.
t
x
t
递归删除目录及其内容
r
m
−
r
d
i
r
e
c
t
o
r
y
强制递归删除目录及其内容
r
m
−
r
f
d
i
r
e
c
t
o
r
y
4.
t
o
u
c
h
命令:创建空文件或更新文件时间戳。
b
a
s
h
创建空文件
t
o
u
c
h
n
e
w
f
i
l
e
.
t
x
t
更新文件的访问和修改时间
t
o
u
c
h
e
x
i
s
t
i
n
g
f
i
l
e
.
t
x
t
5.
c
p
命令:复制文件或目录。
b
a
s
h
复制文件
c
p
s
o
u
r
c
e
.
t
x
t
d
e
s
t
i
n
a
t
i
o
n
.
t
x
t
复制目录及其内容
c
p
−
r
s
o
u
r
c
e
d
i
r
e
c
t
o
r
y
d
e
s
t
i
n
a
t
i
o
n
d
i
r
e
c
t
o
r
y
强制覆盖已存在的目标文件
c
p
−
f
s
o
u
r
c
e
.
t
x
t
d
e
s
t
i
n
a
t
i
o
n
.
t
x
t
6.
m
v
命令:移动文件或目录,也可用于重命名文件或目录。
b
a
s
h
移动文件
m
v
f
i
l
e
.
t
x
t
/
h
o
m
e
/
u
s
e
r
/
D
o
c
u
m
e
n
t
s
重命名文件
m
v
o
l
d
n
a
m
e
.
t
x
t
n
e
w
n
a
m
e
.
t
x
t
移动目录
m
v
d
i
r
e
c
t
o
r
y
/
n
e
w
l
o
c
a
t
i
o
n
(三)文件查看与编辑命令
1.
c
a
t
命令:查看文件内容。
b
a
s
h
查看文件内容
c
a
t
f
i
l
e
.
t
x
t
显示行号
c
a
t
−
n
f
i
l
e
.
t
x
t
2.
m
o
r
e
命令:分页查看文件内容。
b
a
s
h
m
o
r
e
l
a
r
g
e
f
i
l
e
.
t
x
t
在
m
o
r
e
命令的查看界面中,可以使用以下快捷键:空格键:向下翻一页
E
n
t
e
r
:向下翻一行
q
:退出查看
3.
l
e
s
s
命令:分页查看文件内容,比
m
o
r
e
命令功能更强大。
b
a
s
h
l
e
s
s
l
a
r
g
e
f
i
l
e
.
t
x
t
在
l
e
s
s
命令的查看界面中,可以使用以下快捷键:空格键:向下翻一页
b
:向上翻一页
j
:向下移动一行
k
:向上移动一行
/
p
a
t
t
e
r
n
:向前搜索指定模式
?
p
a
t
t
e
r
n
:向后搜索指定模式
n
:重复上一次搜索
N
:反向重复上一次搜索
q
:退出查看
4.
h
e
a
d
命令:查看文件的前几行。
b
a
s
h
查看文件的前
10
行
h
e
a
d
f
i
l
e
.
t
x
t
查看文件的前
5
行
h
e
a
d
−
n
5
f
i
l
e
.
t
x
t
5.
t
a
i
l
命令:查看文件的后几行。
b
a
s
h
查看文件的后
10
行
t
a
i
l
f
i
l
e
.
t
x
t
查看文件的后
5
行
t
a
i
l
−
n
5
f
i
l
e
.
t
x
t
实时监控文件追加的内容(常用于日志文件)
t
a
i
l
−
f
l
o
g
.
t
x
t
6.
n
a
n
o
命令:简单的文本编辑器。
b
a
s
h
n
a
n
o
f
i
l
e
.
t
x
t
在
n
a
n
o
编辑器中,可以使用以下快捷键:
C
t
r
l
+
O
:保存文件
C
t
r
l
+
X
:退出编辑器
C
t
r
l
+
W
:搜索文本
C
t
r
l
+
K
:剪切当前行
C
t
r
l
+
U
:粘贴已剪切的内容
7.
v
i
m
命令:功能强大的文本编辑器。
b
a
s
h
v
i
m
f
i
l
e
.
t
x
t
v
i
m
编辑器有三种模式:命令模式、插入模式和底行模式。命令模式:默认模式,可以使用各种命令进行导航、复制、粘贴等操作。插入模式:可以输入和编辑文本。进入插入模式的常用命令有:
i
(在当前光标前插入)、
a
(在当前光标后插入)、
o
(在当前行下一行插入新行)。底行模式:可以执行保存、退出等命令。进入底行模式的命令是
:
。在命令模式下,可以使用以下常用命令:
h
、
j
、
k
、
l
:分别向左、下、上、右移动光标
g
g
:移动到文件开头
G
:移动到文件末尾
y
y
:复制当前行
p
:粘贴复制的内容
d
d
:删除当前行
/
p
a
t
t
e
r
n
:向前搜索指定模式
?
p
a
t
t
e
r
n
:向后搜索指定模式
n
:重复上一次搜索
N
:反向重复上一次搜索在底行模式下,可以使用以下常用命令:
:
w
:保存文件
:
q
:退出编辑器
:
w
q
:保存并退出
:
q
!
:不保存强制退出四、文件搜索与查找命令(一)
g
r
e
p
命令
g
r
e
p
(
G
l
o
b
a
l
R
e
g
u
l
a
r
E
x
p
r
e
s
s
i
o
n
P
r
i
n
t
)命令用于在文件中搜索指定的文本模式,并将匹配的行打印出来。
b
a
s
h
在文件中搜索包含指定字符串的行
g
r
e
p
"
p
a
t
t
e
r
n
"
f
i
l
e
.
t
x
t
递归搜索目录中的所有文件
g
r
e
p
−
r
"
p
a
t
t
e
r
n
"
d
i
r
e
c
t
o
r
y
/
忽略大小写进行搜索
g
r
e
p
−
i
"
p
a
t
t
e
r
n
"
f
i
l
e
.
t
x
t
显示匹配行的行号
g
r
e
p
−
n
"
p
a
t
t
e
r
n
"
f
i
l
e
.
t
x
t
只显示匹配的文本,而不是整行
g
r
e
p
−
o
"
p
a
t
t
e
r
n
"
f
i
l
e
.
t
x
t
显示不匹配的行(取反)
g
r
e
p
−
v
"
p
a
t
t
e
r
n
"
f
i
l
e
.
t
x
t
搜索多个文件
g
r
e
p
"
p
a
t
t
e
r
n
"
f
i
l
e
1.
t
x
t
f
i
l
e
2.
t
x
t
使用正则表达式进行搜索
g
r
e
p
−
E
"
[
0
−
9
]
+
"
f
i
l
e
.
t
x
t
(二)
f
i
n
d
命令
f
i
n
d
命令用于在文件系统中搜索文件和目录。
b
a
s
h
在当前目录及其子目录中搜索指定名称的文件
f
i
n
d
.
−
n
a
m
e
"
f
i
l
e
n
a
m
e
.
t
x
t
"
搜索指定目录中的文件
f
i
n
d
/
h
o
m
e
/
u
s
e
r
−
n
a
m
e
"
∗
.
p
d
f
"
忽略大小写进行搜索
f
i
n
d
.
−
i
n
a
m
e
"
f
i
l
e
n
a
m
e
.
t
x
t
"
按文件类型搜索(
d
表示目录,
f
表示文件)
f
i
n
d
.
−
t
y
p
e
d
−
n
a
m
e
"
d
i
r
e
c
t
o
r
y
"
f
i
n
d
.
−
t
y
p
e
f
−
n
a
m
e
"
∗
.
t
x
t
"
按文件大小搜索(
+
表示大于,
−
表示小于)
f
i
n
d
.
−
s
i
z
e
+
10
M
大于
10
M
B
的文件
f
i
n
d
.
−
s
i
z
e
−
100
k
小于
100
K
B
的文件按修改时间搜索(
−
m
t
i
m
e
表示按天,
−
m
m
i
n
表示按分钟)
f
i
n
d
.
−
m
t
i
m
e
−
7
最近
7
天内修改的文件
f
i
n
d
.
−
m
m
i
n
+
60
超过
1
小时前修改的文件按权限搜索
f
i
n
d
.
−
p
e
r
m
755
权限为
755
的文件或目录删除搜索到的文件
f
i
n
d
.
−
n
a
m
e
"
t
e
m
p
∗
.
t
x
t
"
−
d
e
l
e
t
e
对搜索到的文件执行其他命令
f
i
n
d
.
−
n
a
m
e
"
∗
.
t
x
t
"
−
e
x
e
c
c
a
t
(三)
l
o
c
a
t
e
命令
l
o
c
a
t
e
命令用于快速查找文件,它通过搜索系统预建的文件索引数据库来查找文件,因此比
f
i
n
d
命令更快。但索引数据库不是实时更新的,需要定期使用
u
p
d
a
t
e
d
b
命令更新。
b
a
s
h
查找包含指定字符串的文件
l
o
c
a
t
e
f
i
l
e
n
a
m
e
查找指定扩展名的文件
l
o
c
a
t
e
∗
.
p
d
f
更新索引数据库
s
u
d
o
u
p
d
a
t
e
d
b
(四)
w
h
i
c
h
命令
w
h
i
c
h
命令用于查找可执行文件的位置。
b
a
s
h
w
h
i
c
h
l
s
w
h
i
c
h
p
y
t
h
o
n
3
(五)
w
h
e
r
e
i
s
命令
w
h
e
r
e
i
s
命令用于查找文件的二进制文件、源代码和帮助文档的位置。
b
a
s
h
w
h
e
r
e
i
s
g
c
c
五、文件权限与用户管理命令(一)文件权限概述在
L
i
n
u
x
系统中,每个文件和目录都有三组权限:所有者(
u
s
e
r
)、所属组(
g
r
o
u
p
)和其他用户(
o
t
h
e
r
s
)。每组权限包括读(
r
)、写(
w
)和执行(
x
)三种权限。读权限(
r
):允许查看文件内容或列出目录内容。写权限(
w
):允许修改文件内容或在目录中创建、删除文件。执行权限(
x
):允许执行文件或进入目录。文件权限可以用数字表示:
r
:
4
w
:
2
x
:
1
−
:
0
例如,权限
r
w
x
r
−
x
r
−
−
可以表示为
754
。(二)
c
h
m
o
d
命令
c
h
m
o
d
命令用于修改文件或目录的权限。
b
a
s
h
使用数字方式修改权限
c
h
m
o
d
755
f
i
l
e
.
t
x
t
所有者具有
r
w
x
权限,所属组和其他用户具有
r
x
权限
c
h
m
o
d
644
d
i
r
e
c
t
o
r
y
所有者具有
r
w
权限,所属组和其他用户具有
r
权限使用符号方式修改权限
c
h
m
o
d
u
+
x
f
i
l
e
.
t
x
t
给所有者添加执行权限
c
h
m
o
d
g
−
w
f
i
l
e
.
t
x
t
移除所属组的写权限
c
h
m
o
d
o
+
r
f
i
l
e
.
t
x
t
给其他用户添加读权限
c
h
m
o
d
a
+
x
f
i
l
e
.
t
x
t
给所有用户添加执行权限
c
h
m
o
d
u
=
r
w
x
,
g
=
r
x
,
o
=
r
f
i
l
e
.
t
x
t
设置具体的权限(三)
c
h
o
w
n
命令
c
h
o
w
n
命令用于修改文件或目录的所有者和所属组。
b
a
s
h
修改文件的所有者
c
h
o
w
n
n
e
w
o
w
n
e
r
f
i
l
e
.
t
x
t
修改文件的所有者和所属组
c
h
o
w
n
n
e
w
o
w
n
e
r
:
n
e
w
g
r
o
u
p
f
i
l
e
.
t
x
t
递归修改目录及其内容的所有者
c
h
o
w
n
−
R
n
e
w
o
w
n
e
r
d
i
r
e
c
t
o
r
y
/
只修改所属组
c
h
g
r
p
n
e
w
g
r
o
u
p
f
i
l
e
.
t
x
t
(四)用户与组管理命令
1.
u
s
e
r
a
d
d
命令:创建新用户。
b
a
s
h
s
u
d
o
u
s
e
r
a
d
d
n
e
w
u
s
e
r
2.
p
a
s
s
w
d
命令:设置或修改用户密码。
b
a
s
h
s
u
d
o
p
a
s
s
w
d
n
e
w
u
s
e
r
3.
u
s
e
r
d
e
l
命令:删除用户。
b
a
s
h
s
u
d
o
u
s
e
r
d
e
l
n
e
w
u
s
e
r
4.
g
r
o
u
p
a
d
d
命令:创建新组。
b
a
s
h
s
u
d
o
g
r
o
u
p
a
d
d
n
e
w
g
r
o
u
p
5.
g
r
o
u
p
d
e
l
命令:删除组。
b
a
s
h
s
u
d
o
g
r
o
u
p
d
e
l
n
e
w
g
r
o
u
p
6.
u
s
e
r
m
o
d
命令:修改用户属性。
b
a
s
h
将用户添加到一个或多个组
s
u
d
o
u
s
e
r
m
o
d
−
a
G
g
r
o
u
p
1
,
g
r
o
u
p
2
u
s
e
r
7.
i
d
命令:显示用户的身份信息。
b
a
s
h
i
d
u
s
e
r
8.
w
h
o
a
m
i
命令:显示当前用户的用户名。
b
a
s
h
w
h
o
a
m
i
9.
s
u
命令:切换用户。
b
a
s
h
切换到
r
o
o
t
用户
s
u
切换到其他用户
s
u
o
t
h
e
r
u
s
e
r
10.
s
u
d
o
命令:以超级用户权限执行命令。
b
a
s
h
s
u
d
o
a
p
t
u
p
d
a
t
e
五、系统信息与监控命令(一)系统信息查看命令
1.
u
n
a
m
e
命令:显示系统信息。
b
a
s
h
显示内核名称
u
n
a
m
e
显示详细的系统信息
u
n
a
m
e
−
a
2.
h
o
s
t
n
a
m
e
命令:显示或设置主机名。
b
a
s
h
显示主机名
h
o
s
t
n
a
m
e
设置主机名(需要
r
o
o
t
权限)
s
u
d
o
h
o
s
t
n
a
m
e
n
e
w
h
o
s
t
n
a
m
e
3.
d
a
t
e
命令:显示或设置系统日期和时间。
b
a
s
h
显示当前日期和时间
d
a
t
e
设置系统日期和时间(需要
r
o
o
t
权限)
s
u
d
o
d
a
t
e
−
s
"
2023
−
01
−
0112
:
00
:
00
"
4.
u
p
t
i
m
e
命令:显示系统运行时间和负载信息。
b
a
s
h
u
p
t
i
m
e
5.
d
f
命令:显示磁盘空间使用情况。
b
a
s
h
以人类可读的格式显示
d
f
−
h
只显示文件系统类型
d
f
−
T
6.
d
u
命令:显示目录或文件的磁盘使用情况。
b
a
s
h
显示当前目录下每个子目录的大小
d
u
−
s
h
∗
递归显示目录及其子目录的大小
d
u
−
h
d
i
r
e
c
t
o
r
y
/
7.
f
r
e
e
命令:显示内存使用情况。
b
a
s
h
以人类可读的格式显示
f
r
e
e
−
h
8.
c
a
t
/
p
r
o
c
/
c
p
u
i
n
f
o
命令:显示
C
P
U
信息。
b
a
s
h
c
a
t
/
p
r
o
c
/
c
p
u
i
n
f
o
9.
c
a
t
/
p
r
o
c
/
m
e
m
i
n
f
o
命令:显示内存详细信息。
b
a
s
h
c
a
t
/
p
r
o
c
/
m
e
m
i
n
f
o
(二)进程管理命令
1.
p
s
命令:显示当前进程的状态。
b
a
s
h
显示当前用户的进程
p
s
显示所有进程
p
s
a
u
x
显示树形结构的进程关系
p
s
−
e
f
−
−
f
o
r
e
s
t
2.
t
o
p
命令:实时监控系统进程和资源使用情况。
b
a
s
h
t
o
p
在
t
o
p
命令的界面中,可以使用以下快捷键:
q
:退出
h
:显示帮助信息
M
:按内存使用排序
P
:按
C
P
U
使用排序
1
:显示所有
C
P
U
核心的使用情况
3.
h
t
o
p
命令:功能更强大的实时进程监控工具(需要先安装)。
b
a
s
h
h
t
o
p
4.
p
k
i
l
l
命令:根据进程名终止进程。
b
a
s
h
p
k
i
l
l
p
r
o
c
e
s
s
n
a
m
e
5.
k
i
l
l
命令:根据进程
I
D
终止进程。
b
a
s
h
终止指定进程
k
i
l
l
P
I
D
强制终止进程
k
i
l
l
−
9
P
I
D
6.
n
i
c
e
命令:以指定优先级运行程序。
b
a
s
h
n
i
c
e
−
n
10
p
r
o
g
r
a
m
7.
r
e
n
i
c
e
命令:修改已运行进程的优先级。
b
a
s
h
r
e
n
i
c
e
−
n
10
P
I
D
(三)网络信息与监控命令
1.
i
f
c
o
n
f
i
g
命令:显示或配置网络接口信息。
b
a
s
h
显示所有网络接口信息
i
f
c
o
n
f
i
g
显示指定网络接口信息
i
f
c
o
n
f
i
g
e
t
h
02.
i
p
命令:显示或配置网络接口信息(
i
f
c
o
n
f
i
g
的替代命令)。
b
a
s
h
显示所有网络接口信息
i
p
a
d
d
r
显示网络路由表
i
p
r
o
u
t
e
3.
p
i
n
g
命令:测试网络连接。
b
a
s
h
p
i
n
g
g
o
o
g
l
e
.
c
o
m
4.
t
r
a
c
e
r
o
u
t
e
命令:跟踪数据包的路由路径。
b
a
s
h
t
r
a
c
e
r
o
u
t
e
g
o
o
g
l
e
.
c
o
m
5.
n
e
t
s
t
a
t
命令:显示网络连接、路由表和网络接口信息。
b
a
s
h
显示所有网络连接
n
e
t
s
t
a
t
−
a
显示活动的
T
C
P
连接
n
e
t
s
t
a
t
−
t
显示监听的端口
n
e
t
s
t
a
t
−
l
显示
U
D
P
连接
n
e
t
s
t
a
t
−
u
显示进程
I
D
和名称
n
e
t
s
t
a
t
−
p
持续显示网络连接信息
n
e
t
s
t
a
t
−
c
6.
s
s
命令:显示网络套接字信息(
n
e
t
s
t
a
t
的替代命令)。
b
a
s
h
显示所有网络连接
s
s
−
a
显示监听的套接字
s
s
−
l
显示
T
C
P
连接
s
s
−
t
显示
U
D
P
连接
s
s
−
u
7.
c
u
r
l
命令:发送
H
T
T
P
请求,获取网页内容或传输文件。
b
a
s
h
获取网页内容
c
u
r
l
h
t
t
p
s
:
/
/
w
w
w
.
e
x
a
m
p
l
e
.
c
o
m
下载文件
c
u
r
l
−
O
h
t
t
p
s
:
/
/
w
w
w
.
e
x
a
m
p
l
e
.
c
o
m
/
f
i
l
e
.
z
i
p
显示详细的请求信息
c
u
r
l
−
v
h
t
t
p
s
:
/
/
w
w
w
.
e
x
a
m
p
l
e
.
c
o
m
8.
w
g
e
t
命令:下载文件。
b
a
s
h
下载文件
w
g
e
t
h
t
t
p
s
:
/
/
w
w
w
.
e
x
a
m
p
l
e
.
c
o
m
/
f
i
l
e
.
z
i
p
断点续传
w
g
e
t
−
c
h
t
t
p
s
:
/
/
w
w
w
.
e
x
a
m
p
l
e
.
c
o
m
/
l
a
r
g
e
f
i
l
e
.
z
i
p
六、软件包管理命令(一)
D
e
b
i
a
n
/
U
b
u
n
t
u
系统的软件包管理
1.
a
p
t
命令:高级包工具,用于管理
D
e
b
i
a
n
和
U
b
u
n
t
u
系统的软件包。
b
a
s
h
更新可用软件包列表
s
u
d
o
a
p
t
u
p
d
a
t
e
升级已安装的软件包
s
u
d
o
a
p
t
u
p
g
r
a
d
e
安装软件包
s
u
d
o
a
p
t
i
n
s
t
a
l
l
p
a
c
k
a
g
e
n
a
m
e
移除软件包
s
u
d
o
a
p
t
r
e
m
o
v
e
p
a
c
k
a
g
e
n
a
m
e
完全移除软件包(包括配置文件)
s
u
d
o
a
p
t
p
u
r
g
e
p
a
c
k
a
g
e
n
a
m
e
自动移除不再需要的依赖包
s
u
d
o
a
p
t
a
u
t
o
r
e
m
o
v
e
清理
A
P
T
缓存
s
u
d
o
a
p
t
c
l
e
a
n
搜索软件包
a
p
t
s
e
a
r
c
h
p
a
c
k
a
g
e
n
a
m
e
显示软件包信息
a
p
t
s
h
o
w
p
a
c
k
a
g
e
n
a
m
e
2.
d
p
k
g
命令:直接管理
.
d
e
b
格式的软件包。
b
a
s
h
安装
.
d
e
b
软件包
s
u
d
o
d
p
k
g
−
i
p
a
c
k
a
g
e
.
d
e
b
卸载软件包
s
u
d
o
d
p
k
g
−
r
p
a
c
k
a
g
e
n
a
m
e
完全卸载软件包(包括配置文件)
s
u
d
o
d
p
k
g
−
P
p
a
c
k
a
g
e
n
a
m
e
显示软件包信息
d
p
k
g
−
l
p
a
c
k
a
g
e
n
a
m
e
检查软件包是否已安装
d
p
k
g
−
s
p
a
c
k
a
g
e
n
a
m
e
(二)
R
e
d
H
a
t
/
C
e
n
t
O
S
系统的软件包管理
1.
y
u
m
命令:
Y
e
l
l
o
w
d
o
g
U
p
d
a
t
e
r
,
M
o
d
i
f
i
e
d
,用于管理
R
e
d
H
a
t
和
C
e
n
t
O
S
系统的软件包。
b
a
s
h
更新可用软件包列表
s
u
d
o
y
u
m
u
p
d
a
t
e
安装软件包
s
u
d
o
y
u
m
i
n
s
t
a
l
l
p
a
c
k
a
g
e
n
a
m
e
移除软件包
s
u
d
o
y
u
m
r
e
m
o
v
e
p
a
c
k
a
g
e
n
a
m
e
搜索软件包
y
u
m
s
e
a
r
c
h
p
a
c
k
a
g
e
n
a
m
e
显示软件包信息
y
u
m
i
n
f
o
p
a
c
k
a
g
e
n
a
m
e
列出已安装的软件包
y
u
m
l
i
s
t
i
n
s
t
a
l
l
e
d
2.
r
p
m
命令:直接管理
.
r
p
m
格式的软件包。
b
a
s
h
安装
.
r
p
m
软件包
s
u
d
o
r
p
m
−
i
p
a
c
k
a
g
e
.
r
p
m
升级软件包
s
u
d
o
r
p
m
−
U
p
a
c
k
a
g
e
.
r
p
m
卸载软件包
s
u
d
o
r
p
m
−
e
p
a
c
k
a
g
e
n
a
m
e
验证软件包
r
p
m
−
V
p
a
c
k
a
g
e
n
a
m
e
列出软件包文件
r
p
m
−
q
l
p
a
c
k
a
g
e
n
a
m
e
七、实战应用案例(一)文件批量处理假设需要将当前目录下所有的
.
j
p
g
文件重命名为以日期为前缀的形式,并将它们移动到一个名为
p
h
o
t
o
s
的子目录中。可以使用以下命令实现:
b
a
s
h
创建
p
h
o
t
o
s
目录
m
k
d
i
r
p
h
o
t
o
s
获取当前日期
d
a
t
e
=
SHELL (三)基本命令格式 Linux命令的基本格式如下: bash command [options] [arguments] 其中: command:是要执行的命令名称,如ls、cd、mkdir等。 [options]:是命令的选项,用于指定命令的执行方式。 选项通常以短横线(-)或双短横线(--)开头,例如-l、--help等。有些选项可以省略参数,有些选项需要指定参数。 [arguments]:是命令的参数,用于指定命令的操作对象。例如,ls命令的参数可以是文件名或目录名。 选项和参数都是可选的,有些命令可能不需要选项和参数,有些命令可能需要多个选项和参数。例如: bash ls -l /home/user 这个命令中,ls是命令名称,-l是选项,用于显示详细信息,/home/user是参数,指定要显示的目录。 (四)获取命令帮助 在Linux系统中,有多种方式可以获取命令的帮助信息: 1.使用--help选项:大多数命令都支持--help选项,使用该选项可以显示命令的简要帮助信息。例如: bash ls --help 2.使用man命令:man(manual)命令是Linux系统中最常用的获取帮助信息的工具,它可以显示命令的详细手册页。例如: bash man ls 使用man命令查看帮助信息时,可以使用以下快捷键进行导航: 空格键:向下翻一页 b:向上翻一页 q:退出帮助 3.使用info命令:info命令是GNU项目提供的帮助系统,它提供了比man命令更详细的帮助信息。例如: bash info ls 4.使用whatis命令:whatis命令可以显示命令的简短描述。例如: bash whatis ls 5.使用apropos命令:apropos命令可以根据关键字搜索相关的命令和帮助信息。例如: bash apropos file 三、文件与目录管理命令 (一)目录导航命令 1. pwd命令:显示当前工作目录的路径。 bash pwd 2. cd命令:切换当前工作目录。 bash 切换到指定目录 cd /home/user/Documents 切换到用户主目录 cd ~ 切换到上一级目录 cd .. 切换到前一个工作目录 cd 3. ls命令:列出目录内容。 bash 列出当前目录下的文件和目录 ls 列出指定目录下的文件和目录 ls /home/user 以长格式显示详细信息 ls -l 显示所有文件(包括隐藏文件) ls -a 递归显示子目录内容 ls -R 按文件大小排序(从大到小) ls -lS 按修改时间排序(最新的文件在前) ls -lt (二)文件与目录操作命令 1. mkdir命令:创建目录。 bash 创建单个目录 mkdir new_directory 创建多级目录 mkdir -p parent_directory/child_directory 2. rmdir命令:删除空目录。 bash rmdir empty_directory 3. rm命令:删除文件或目录。 bash 删除文件 rm file.txt 强制删除文件(不提示确认) rm -f file.txt 递归删除目录及其内容 rm -r directory 强制递归删除目录及其内容 rm -rf directory 4. touch命令:创建空文件或更新文件时间戳。 bash 创建空文件 touch new_file.txt 更新文件的访问和修改时间 touch existing_file.txt 5. cp命令:复制文件或目录。 bash 复制文件 cp source.txt destination.txt 复制目录及其内容 cp -r source_directory destination_directory 强制覆盖已存在的目标文件 cp -f source.txt destination.txt 6. mv命令:移动文件或目录,也可用于重命名文件或目录。 bash 移动文件 mv file.txt /home/user/Documents 重命名文件 mv old_name.txt new_name.txt 移动目录 mv directory /new_location (三)文件查看与编辑命令 1. cat命令:查看文件内容。 bash 查看文件内容 cat file.txt 显示行号 cat -n file.txt 2. more命令:分页查看文件内容。 bash more large_file.txt 在more命令的查看界面中,可以使用以下快捷键: 空格键:向下翻一页 Enter:向下翻一行 q:退出查看 3. less命令:分页查看文件内容,比more命令功能更强大。 bash less large_file.txt 在less命令的查看界面中,可以使用以下快捷键: 空格键:向下翻一页 b:向上翻一页 j:向下移动一行 k:向上移动一行 /pattern:向前搜索指定模式 ?pattern:向后搜索指定模式 n:重复上一次搜索 N:反向重复上一次搜索 q:退出查看 4. head命令:查看文件的前几行。 bash 查看文件的前10行 head file.txt 查看文件的前5行 head -n 5 file.txt 5. tail命令:查看文件的后几行。 bash 查看文件的后10行 tail file.txt 查看文件的后5行 tail -n 5 file.txt 实时监控文件追加的内容(常用于日志文件) tail -f log.txt 6. nano命令:简单的文本编辑器。 bash nano file.txt 在nano编辑器中,可以使用以下快捷键: Ctrl+O:保存文件 Ctrl+X:退出编辑器 Ctrl+W:搜索文本 Ctrl+K:剪切当前行 Ctrl+U:粘贴已剪切的内容 7. vim命令:功能强大的文本编辑器。 bash vim file.txt vim编辑器有三种模式:命令模式、插入模式和底行模式。 命令模式:默认模式,可以使用各种命令进行导航、复制、粘贴等操作。 插入模式:可以输入和编辑文本。进入插入模式的常用命令有:i(在当前光标前插入)、a(在当前光标后插入)、o(在当前行下一行插入新行)。 底行模式:可以执行保存、退出等命令。进入底行模式的命令是:。 在命令模式下,可以使用以下常用命令: h、j、k、l:分别向左、下、上、右移动光标 gg:移动到文件开头 G:移动到文件末尾 yy:复制当前行 p:粘贴复制的内容 dd:删除当前行 /pattern:向前搜索指定模式 ?pattern:向后搜索指定模式 n:重复上一次搜索 N:反向重复上一次搜索 在底行模式下,可以使用以下常用命令: :w:保存文件 :q:退出编辑器 :wq:保存并退出 :q!:不保存强制退出 四、文件搜索与查找命令 (一)grep命令 grep(Global Regular Expression Print)命令用于在文件中搜索指定的文本模式,并将匹配的行打印出来。 bash 在文件中搜索包含指定字符串的行 grep "pattern" file.txt 递归搜索目录中的所有文件 grep -r "pattern" directory/ 忽略大小写进行搜索 grep -i "pattern" file.txt 显示匹配行的行号 grep -n "pattern" file.txt 只显示匹配的文本,而不是整行 grep -o "pattern" file.txt 显示不匹配的行(取反) grep -v "pattern" file.txt 搜索多个文件 grep "pattern" file1.txt file2.txt 使用正则表达式进行搜索 grep -E "[0-9]+" file.txt (二)find命令 find命令用于在文件系统中搜索文件和目录。 bash 在当前目录及其子目录中搜索指定名称的文件 find . -name "filename.txt" 搜索指定目录中的文件 find /home/user -name "*.pdf" 忽略大小写进行搜索 find . -iname "filename.txt" 按文件类型搜索(d表示目录,f表示文件) find . -type d -name "directory" find . -type f -name "*.txt" 按文件大小搜索(+表示大于,-表示小于) find . -size +10M 大于10MB的文件 find . -size -100k 小于100KB的文件 按修改时间搜索(-mtime表示按天,-mmin表示按分钟) find . -mtime -7 最近7天内修改的文件 find . -mmin +60 超过1小时前修改的文件 按权限搜索 find . -perm 755 权限为755的文件或目录 删除搜索到的文件 find . -name "temp*.txt" -delete 对搜索到的文件执行其他命令 find . -name "*.txt" -exec cat {} \; (三)locate命令 locate命令用于快速查找文件,它通过搜索系统预建的文件索引数据库来查找文件,因此比find命令更快。但索引数据库不是实时更新的,需要定期使用updatedb命令更新。 bash 查找包含指定字符串的文件 locate filename 查找指定扩展名的文件 locate *.pdf 更新索引数据库 sudo updatedb (四)which命令 which命令用于查找可执行文件的位置。 bash which ls which python3 (五)whereis命令 whereis命令用于查找文件的二进制文件、源代码和帮助文档的位置。 bash whereis gcc 五、文件权限与用户管理命令 (一)文件权限概述 在Linux系统中,每个文件和目录都有三组权限:所有者(user)、所属组(group)和其他用户(others)。每组权限包括读(r)、写(w)和执行(x)三种权限。 读权限(r):允许查看文件内容或列出目录内容。 写权限(w):允许修改文件内容或在目录中创建、删除文件。 执行权限(x):允许执行文件或进入目录。 文件权限可以用数字表示: r:4 w:2 x:1 -:0 例如,权限rwxr-xr--可以表示为754。 (二)chmod命令 chmod命令用于修改文件或目录的权限。 bash 使用数字方式修改权限 chmod 755 file.txt 所有者具有rwx权限,所属组和其他用户具有rx权限 chmod 644 directory 所有者具有rw权限,所属组和其他用户具有r权限 使用符号方式修改权限 chmod u+x file.txt 给所有者添加执行权限 chmod g-w file.txt 移除所属组的写权限 chmod o+r file.txt 给其他用户添加读权限 chmod a+x file.txt 给所有用户添加执行权限 chmod u=rwx,g=rx,o=r file.txt 设置具体的权限 (三)chown命令 chown命令用于修改文件或目录的所有者和所属组。 bash 修改文件的所有者 chown new_owner file.txt 修改文件的所有者和所属组 chown new_owner:new_group file.txt 递归修改目录及其内容的所有者 chown -R new_owner directory/ 只修改所属组 chgrp new_group file.txt (四)用户与组管理命令 1. useradd命令:创建新用户。 bash sudo useradd new_user 2. passwd命令:设置或修改用户密码。 bash sudo passwd new_user 3. userdel命令:删除用户。 bash sudo userdel new_user 4. groupadd命令:创建新组。 bash sudo groupadd new_group 5. groupdel命令:删除组。 bash sudo groupdel new_group 6. usermod命令:修改用户属性。 bash 将用户添加到一个或多个组 sudo usermod -aG group1,group2 user 7. id命令:显示用户的身份信息。 bash id user 8. whoami命令:显示当前用户的用户名。 bash whoami 9. su命令:切换用户。 bash 切换到root用户 su 切换到其他用户 su other_user 10. sudo命令:以超级用户权限执行命令。 bash sudo apt update 五、系统信息与监控命令 ( 一)系统信息查看命令 1. uname命令:显示系统信息。 bash 显示内核名称 uname 显示详细的系统信息 uname -a 2. hostname命令:显示或设置主机名。 bash 显示主机名 hostname 设置主机名(需要root权限) sudo hostname new_hostname 3. date命令:显示或设置系统日期和时间。 bash 显示当前日期和时间 date 设置系统日期和时间(需要root权限) sudo date -s "2023-01-01 12:00:00" 4. uptime命令:显示系统运行时间和负载信息。 bash uptime 5. df命令:显示磁盘空间使用情况。 bash 以人类可读的格式显示 df -h 只显示文件系统类型 df -T 6. du命令:显示目录或文件的磁盘使用情况。 bash 显示当前目录下每个子目录的大小 du -sh * 递归显示目录及其子目录的大小 du -h directory/ 7. free命令:显示内存使用情况。 bash 以人类可读的格式显示 free -h 8. cat /proc/cpuinfo命令:显示CPU信息。 bash cat /proc/cpuinfo 9. cat /proc/meminfo命令:显示内存详细信息。 bash cat /proc/meminfo (二)进程管理命令 1. ps命令:显示当前进程的状态。 bash 显示当前用户的进程 ps 显示所有进程 ps aux 显示树形结构的进程关系 ps -ef --forest 2. top命令:实时监控系统进程和资源使用情况。 bash top 在top命令的界面中,可以使用以下快捷键: q:退出 h:显示帮助信息 M:按内存使用排序 P:按CPU使用排序 1:显示所有CPU核心的使用情况 3. htop命令:功能更强大的实时进程监控工具(需要先安装)。 bash htop 4. pkill命令:根据进程名终止进程。 bash pkill process_name 5. kill命令:根据进程ID终止进程。 bash 终止指定进程 kill PID 强制终止进程 kill -9 PID 6. nice命令:以指定优先级运行程序。 bash nice -n 10 program 7. renice命令:修改已运行进程的优先级。 bash renice -n 10 PID (三)网络信息与监控命令 1. ifconfig命令:显示或配置网络接口信息。 bash 显示所有网络接口信息 ifconfig 显示指定网络接口信息 ifconfig eth0 2. ip命令:显示或配置网络接口信息(ifconfig的替代命令)。 bash 显示所有网络接口信息 ip addr 显示网络路由表 ip route 3. ping命令:测试网络连接。 bash ping google.com 4. traceroute命令:跟踪数据包的路由路径。 bash traceroute google.com 5. netstat命令:显示网络连接、路由表和网络接口信息。 bash 显示所有网络连接 netstat -a 显示活动的TCP连接 netstat -t 显示监听的端口 netstat -l 显示UDP连接 netstat -u 显示进程ID和名称 netstat -p 持续显示网络连接信息 netstat -c 6. ss命令:显示网络套接字信息(netstat的替代命令)。 bash 显示所有网络连接 ss -a 显示监听的套接字 ss -l 显示TCP连接 ss -t 显示UDP连接 ss -u 7. curl命令:发送HTTP请求,获取网页内容或传输文件。 bash 获取网页内容 curl https://www.example.com 下载文件 curl -O https://www.example.com/file.zip 显示详细的请求信息 curl -v https://www.example.com 8. wget命令:下载文件。 bash 下载文件 wget https://www.example.com/file.zip 断点续传 wget -c https://www.example.com/large_file.zip 六、软件包管理命令 (一)Debian/Ubuntu系统的软件包管理 1. apt命令:高级包工具,用于管理Debian和Ubuntu系统的软件包。 bash 更新可用软件包列表 sudo apt update 升级已安装的软件包 sudo apt upgrade 安装软件包 sudo apt install package_name 移除软件包 sudo apt remove package_name 完全移除软件包(包括配置文件) sudo apt purge package_name 自动移除不再需要的依赖包 sudo apt autoremove 清理APT缓存 sudo apt clean 搜索软件包 apt search package_name 显示软件包信息 apt show package_name 2. dpkg命令:直接管理.deb格式的软件包。 bash 安装.deb软件包 sudo dpkg -i package.deb 卸载软件包 sudo dpkg -r package_name 完全卸载软件包(包括配置文件) sudo dpkg -P package_name 显示软件包信息 dpkg -l package_name 检查软件包是否已安装 dpkg -s package_name (二)Red Hat/CentOS系统的软件包管理 1. yum命令:Yellowdog Updater, Modified,用于管理Red Hat和CentOS系统的软件包。 bash 更新可用软件包列表 sudo yum update 安装软件包 sudo yum install package_name 移除软件包 sudo yum remove package_name 搜索软件包 yum search package_name 显示软件包信息 yum info package_name 列出已安装的软件包 yum list installed 2. rpm命令:直接管理.rpm格式的软件包。 bash 安装.rpm软件包 sudo rpm -i package.rpm 升级软件包 sudo rpm -U package.rpm 卸载软件包 sudo rpm -e package_name 验证软件包 rpm -V package_name 列出软件包文件 rpm -ql package_name 七、实战应用案例 (一)文件批量处理 假设需要将当前目录下所有的.jpg文件重命名为以日期为前缀的形式,并将它们移动到一个名为photos的子目录中。可以使用以下命令实现: bash 创建photos目录 mkdir photos 获取当前日期 date=
SHELL(三)基本命令格式Linux命令的基本格式如下:bashcommand[options][arguments]其中:command:是要执行的命令名称,如ls、cd、mkdir等。[options]:是命令的选项,用于指定命令的执行方式。选项通常以短横线(−)或双短横线(−−)开头,例如−l、−−help等。有些选项可以省略参数,有些选项需要指定参数。[arguments]:是命令的参数,用于指定命令的操作对象。例如,ls命令的参数可以是文件名或目录名。选项和参数都是可选的,有些命令可能不需要选项和参数,有些命令可能需要多个选项和参数。例如:bashls−l/home/user这个命令中,ls是命令名称,−l是选项,用于显示详细信息,/home/user是参数,指定要显示的目录。(四)获取命令帮助在Linux系统中,有多种方式可以获取命令的帮助信息:1.使用−−help选项:大多数命令都支持−−help选项,使用该选项可以显示命令的简要帮助信息。例如:bashls−−help2.使用man命令:man(manual)命令是Linux系统中最常用的获取帮助信息的工具,它可以显示命令的详细手册页。例如:bashmanls使用man命令查看帮助信息时,可以使用以下快捷键进行导航:空格键:向下翻一页b:向上翻一页q:退出帮助3.使用info命令:info命令是GNU项目提供的帮助系统,它提供了比man命令更详细的帮助信息。例如:bashinfols4.使用whatis命令:whatis命令可以显示命令的简短描述。例如:bashwhatisls5.使用apropos命令:apropos命令可以根据关键字搜索相关的命令和帮助信息。例如:bashaproposfile三、文件与目录管理命令(一)目录导航命令1.pwd命令:显示当前工作目录的路径。bashpwd2.cd命令:切换当前工作目录。bash切换到指定目录cd/home/user/Documents切换到用户主目录cd 切换到上一级目录cd..切换到前一个工作目录cd3.ls命令:列出目录内容。bash列出当前目录下的文件和目录ls列出指定目录下的文件和目录ls/home/user以长格式显示详细信息ls−l显示所有文件(包括隐藏文件)ls−a递归显示子目录内容ls−R按文件大小排序(从大到小)ls−lS按修改时间排序(最新的文件在前)ls−lt(二)文件与目录操作命令1.mkdir命令:创建目录。bash创建单个目录mkdirnewdirectory创建多级目录mkdir−pparentdirectory/childdirectory2.rmdir命令:删除空目录。bashrmdiremptydirectory3.rm命令:删除文件或目录。bash删除文件rmfile.txt强制删除文件(不提示确认)rm−ffile.txt递归删除目录及其内容rm−rdirectory强制递归删除目录及其内容rm−rfdirectory4.touch命令:创建空文件或更新文件时间戳。bash创建空文件touchnewfile.txt更新文件的访问和修改时间touchexistingfile.txt5.cp命令:复制文件或目录。bash复制文件cpsource.txtdestination.txt复制目录及其内容cp−rsourcedirectorydestinationdirectory强制覆盖已存在的目标文件cp−fsource.txtdestination.txt6.mv命令:移动文件或目录,也可用于重命名文件或目录。bash移动文件mvfile.txt/home/user/Documents重命名文件mvoldname.txtnewname.txt移动目录mvdirectory/newlocation(三)文件查看与编辑命令1.cat命令:查看文件内容。bash查看文件内容catfile.txt显示行号cat−nfile.txt2.more命令:分页查看文件内容。bashmorelargefile.txt在more命令的查看界面中,可以使用以下快捷键:空格键:向下翻一页Enter:向下翻一行q:退出查看3.less命令:分页查看文件内容,比more命令功能更强大。bashlesslargefile.txt在less命令的查看界面中,可以使用以下快捷键:空格键:向下翻一页b:向上翻一页j:向下移动一行k:向上移动一行/pattern:向前搜索指定模式?pattern:向后搜索指定模式n:重复上一次搜索N:反向重复上一次搜索q:退出查看4.head命令:查看文件的前几行。bash查看文件的前10行headfile.txt查看文件的前5行head−n5file.txt5.tail命令:查看文件的后几行。bash查看文件的后10行tailfile.txt查看文件的后5行tail−n5file.txt实时监控文件追加的内容(常用于日志文件)tail−flog.txt6.nano命令:简单的文本编辑器。bashnanofile.txt在nano编辑器中,可以使用以下快捷键:Ctrl+O:保存文件Ctrl+X:退出编辑器Ctrl+W:搜索文本Ctrl+K:剪切当前行Ctrl+U:粘贴已剪切的内容7.vim命令:功能强大的文本编辑器。bashvimfile.txtvim编辑器有三种模式:命令模式、插入模式和底行模式。命令模式:默认模式,可以使用各种命令进行导航、复制、粘贴等操作。插入模式:可以输入和编辑文本。进入插入模式的常用命令有:i(在当前光标前插入)、a(在当前光标后插入)、o(在当前行下一行插入新行)。底行模式:可以执行保存、退出等命令。进入底行模式的命令是:。在命令模式下,可以使用以下常用命令:h、j、k、l:分别向左、下、上、右移动光标gg:移动到文件开头G:移动到文件末尾yy:复制当前行p:粘贴复制的内容dd:删除当前行/pattern:向前搜索指定模式?pattern:向后搜索指定模式n:重复上一次搜索N:反向重复上一次搜索在底行模式下,可以使用以下常用命令::w:保存文件:q:退出编辑器:wq:保存并退出:q!:不保存强制退出四、文件搜索与查找命令(一)grep命令grep(GlobalRegularExpressionPrint)命令用于在文件中搜索指定的文本模式,并将匹配的行打印出来。bash在文件中搜索包含指定字符串的行grep"pattern"file.txt递归搜索目录中的所有文件grep−r"pattern"directory/忽略大小写进行搜索grep−i"pattern"file.txt显示匹配行的行号grep−n"pattern"file.txt只显示匹配的文本,而不是整行grep−o"pattern"file.txt显示不匹配的行(取反)grep−v"pattern"file.txt搜索多个文件grep"pattern"file1.txtfile2.txt使用正则表达式进行搜索grep−E"[0−9]+"file.txt(二)find命令find命令用于在文件系统中搜索文件和目录。bash在当前目录及其子目录中搜索指定名称的文件find.−name"filename.txt"搜索指定目录中的文件find/home/user−name"∗.pdf"忽略大小写进行搜索find.−iname"filename.txt"按文件类型搜索(d表示目录,f表示文件)find.−typed−name"directory"find.−typef−name"∗.txt"按文件大小搜索(+表示大于,−表示小于)find.−size+10M大于10MB的文件find.−size−100k小于100KB的文件按修改时间搜索(−mtime表示按天,−mmin表示按分钟)find.−mtime−7最近7天内修改的文件find.−mmin+60超过1小时前修改的文件按权限搜索find.−perm755权限为755的文件或目录删除搜索到的文件find.−name"temp∗.txt"−delete对搜索到的文件执行其他命令find.−name"∗.txt"−execcat(三)locate命令locate命令用于快速查找文件,它通过搜索系统预建的文件索引数据库来查找文件,因此比find命令更快。但索引数据库不是实时更新的,需要定期使用updatedb命令更新。bash查找包含指定字符串的文件locatefilename查找指定扩展名的文件locate∗.pdf更新索引数据库sudoupdatedb(四)which命令which命令用于查找可执行文件的位置。bashwhichlswhichpython3(五)whereis命令whereis命令用于查找文件的二进制文件、源代码和帮助文档的位置。bashwhereisgcc五、文件权限与用户管理命令(一)文件权限概述在Linux系统中,每个文件和目录都有三组权限:所有者(user)、所属组(group)和其他用户(others)。每组权限包括读(r)、写(w)和执行(x)三种权限。读权限(r):允许查看文件内容或列出目录内容。写权限(w):允许修改文件内容或在目录中创建、删除文件。执行权限(x):允许执行文件或进入目录。文件权限可以用数字表示:r:4w:2x:1−:0例如,权限rwxr−xr−−可以表示为754。(二)chmod命令chmod命令用于修改文件或目录的权限。bash使用数字方式修改权限chmod755file.txt所有者具有rwx权限,所属组和其他用户具有rx权限chmod644directory所有者具有rw权限,所属组和其他用户具有r权限使用符号方式修改权限chmodu+xfile.txt给所有者添加执行权限chmodg−wfile.txt移除所属组的写权限chmodo+rfile.txt给其他用户添加读权限chmoda+xfile.txt给所有用户添加执行权限chmodu=rwx,g=rx,o=rfile.txt设置具体的权限(三)chown命令chown命令用于修改文件或目录的所有者和所属组。bash修改文件的所有者chownnewownerfile.txt修改文件的所有者和所属组chownnewowner:newgroupfile.txt递归修改目录及其内容的所有者chown−Rnewownerdirectory/只修改所属组chgrpnewgroupfile.txt(四)用户与组管理命令1.useradd命令:创建新用户。bashsudouseraddnewuser2.passwd命令:设置或修改用户密码。bashsudopasswdnewuser3.userdel命令:删除用户。bashsudouserdelnewuser4.groupadd命令:创建新组。bashsudogroupaddnewgroup5.groupdel命令:删除组。bashsudogroupdelnewgroup6.usermod命令:修改用户属性。bash将用户添加到一个或多个组sudousermod−aGgroup1,group2user7.id命令:显示用户的身份信息。bashiduser8.whoami命令:显示当前用户的用户名。bashwhoami9.su命令:切换用户。bash切换到root用户su切换到其他用户suotheruser10.sudo命令:以超级用户权限执行命令。bashsudoaptupdate五、系统信息与监控命令(一)系统信息查看命令1.uname命令:显示系统信息。bash显示内核名称uname显示详细的系统信息uname−a2.hostname命令:显示或设置主机名。bash显示主机名hostname设置主机名(需要root权限)sudohostnamenewhostname3.date命令:显示或设置系统日期和时间。bash显示当前日期和时间date设置系统日期和时间(需要root权限)sudodate−s"2023−01−0112:00:00"4.uptime命令:显示系统运行时间和负载信息。bashuptime5.df命令:显示磁盘空间使用情况。bash以人类可读的格式显示df−h只显示文件系统类型df−T6.du命令:显示目录或文件的磁盘使用情况。bash显示当前目录下每个子目录的大小du−sh∗递归显示目录及其子目录的大小du−hdirectory/7.free命令:显示内存使用情况。bash以人类可读的格式显示free−h8.cat/proc/cpuinfo命令:显示CPU信息。bashcat/proc/cpuinfo9.cat/proc/meminfo命令:显示内存详细信息。bashcat/proc/meminfo(二)进程管理命令1.ps命令:显示当前进程的状态。bash显示当前用户的进程ps显示所有进程psaux显示树形结构的进程关系ps−ef−−forest2.top命令:实时监控系统进程和资源使用情况。bashtop在top命令的界面中,可以使用以下快捷键:q:退出h:显示帮助信息M:按内存使用排序P:按CPU使用排序1:显示所有CPU核心的使用情况3.htop命令:功能更强大的实时进程监控工具(需要先安装)。bashhtop4.pkill命令:根据进程名终止进程。bashpkillprocessname5.kill命令:根据进程ID终止进程。bash终止指定进程killPID强制终止进程kill−9PID6.nice命令:以指定优先级运行程序。bashnice−n10program7.renice命令:修改已运行进程的优先级。bashrenice−n10PID(三)网络信息与监控命令1.ifconfig命令:显示或配置网络接口信息。bash显示所有网络接口信息ifconfig显示指定网络接口信息ifconfigeth02.ip命令:显示或配置网络接口信息(ifconfig的替代命令)。bash显示所有网络接口信息ipaddr显示网络路由表iproute3.ping命令:测试网络连接。bashpinggoogle.com4.traceroute命令:跟踪数据包的路由路径。bashtraceroutegoogle.com5.netstat命令:显示网络连接、路由表和网络接口信息。bash显示所有网络连接netstat−a显示活动的TCP连接netstat−t显示监听的端口netstat−l显示UDP连接netstat−u显示进程ID和名称netstat−p持续显示网络连接信息netstat−c6.ss命令:显示网络套接字信息(netstat的替代命令)。bash显示所有网络连接ss−a显示监听的套接字ss−l显示TCP连接ss−t显示UDP连接ss−u7.curl命令:发送HTTP请求,获取网页内容或传输文件。bash获取网页内容curlhttps://www.example.com下载文件curl−Ohttps://www.example.com/file.zip显示详细的请求信息curl−vhttps://www.example.com8.wget命令:下载文件。bash下载文件wgethttps://www.example.com/file.zip断点续传wget−chttps://www.example.com/largefile.zip六、软件包管理命令(一)Debian/Ubuntu系统的软件包管理1.apt命令:高级包工具,用于管理Debian和Ubuntu系统的软件包。bash更新可用软件包列表sudoaptupdate升级已安装的软件包sudoaptupgrade安装软件包sudoaptinstallpackagename移除软件包sudoaptremovepackagename完全移除软件包(包括配置文件)sudoaptpurgepackagename自动移除不再需要的依赖包sudoaptautoremove清理APT缓存sudoaptclean搜索软件包aptsearchpackagename显示软件包信息aptshowpackagename2.dpkg命令:直接管理.deb格式的软件包。bash安装.deb软件包sudodpkg−ipackage.deb卸载软件包sudodpkg−rpackagename完全卸载软件包(包括配置文件)sudodpkg−Ppackagename显示软件包信息dpkg−lpackagename检查软件包是否已安装dpkg−spackagename(二)RedHat/CentOS系统的软件包管理1.yum命令:YellowdogUpdater,Modified,用于管理RedHat和CentOS系统的软件包。bash更新可用软件包列表sudoyumupdate安装软件包sudoyuminstallpackagename移除软件包sudoyumremovepackagename搜索软件包yumsearchpackagename显示软件包信息yuminfopackagename列出已安装的软件包yumlistinstalled2.rpm命令:直接管理.rpm格式的软件包。bash安装.rpm软件包sudorpm−ipackage.rpm升级软件包sudorpm−Upackage.rpm卸载软件包sudorpm−epackagename验证软件包rpm−Vpackagename列出软件包文件rpm−qlpackagename七、实战应用案例(一)文件批量处理假设需要将当前目录下所有的.jpg文件重命名为以日期为前缀的形式,并将它们移动到一个名为photos的子目录中。可以使用以下命令实现:bash创建photos目录mkdirphotos获取当前日期date=(date +%Y%m%d) 批量重命名并移动文件 for file in *.jpg; do new_name=“KaTeX parse error: Expected group after '_' at position 7: {date}_̲{file}” mv “
f
i
l
e
"
"
p
h
o
t
o
s
/
file" "photos/
file""photos/new_name” echo “已将 $file 重命名为
n
e
w
n
a
m
e
并移动到
p
h
o
t
o
s
目录
"
d
o
n
e
(二)系统监控脚本编写一个简单的系统监控脚本,定期检查系统的
C
P
U
、内存和磁盘使用情况,并将结果保存到日志文件中。
b
a
s
h
!
/
b
i
n
/
b
a
s
h
系统监控脚本
L
O
G
F
I
L
E
=
"
/
v
a
r
/
l
o
g
/
s
y
s
t
e
m
m
o
n
i
t
o
r
.
l
o
g
"
I
N
T
E
R
V
A
L
=
300
检查间隔(秒)
w
h
i
l
e
t
r
u
e
;
d
o
获取当前时间
t
i
m
e
s
t
a
m
p
=
new_name 并移动到 photos 目录" done (二)系统监控脚本 编写一个简单的系统监控脚本,定期检查系统的CPU、内存和磁盘使用情况,并将结果保存到日志文件中。 bash !/bin/bash 系统监控脚本 LOG_FILE="/var/log/system_monitor.log" INTERVAL=300 检查间隔(秒) while true; do 获取当前时间 timestamp=
newname并移动到photos目录"done(二)系统监控脚本编写一个简单的系统监控脚本,定期检查系统的CPU、内存和磁盘使用情况,并将结果保存到日志文件中。bash!/bin/bash系统监控脚本LOGFILE="/var/log/systemmonitor.log"INTERVAL=300检查间隔(秒)whiletrue;do获取当前时间timestamp=(date +”%Y-%m-%d %H:%M:%S") 获取系统信息 cpu_usage=$(top -bn1 | grep “Cpu(s)” | awk '{print $2 + KaTeX parse error: Expected 'EOF', got '}' at position 2: 4}̲') mem_usage=(free | grep Mem | awk '{print $3/KaTeX parse error: Expected 'EOF', got '}' at position 10: 2 * 100.0}̲') disk_usage=(df -h / | awk 'NR==2 {print KaTeX parse error: Expected 'EOF', got '}' at position 2: 5}̲') 记录到日志文件 ech…timestamp CPU: ${cpu_usage}%, Memory: ${mem_usage}%, Disk: ${disk_usage}" >> $LOG_FILE 等待指定的间隔时间 sleep
I
N
T
E
R
V
A
L
d
o
n
e
(三)远程服务器备份使用
r
s
y
n
c
命令定期备份远程服务器上的重要数据到本地。
b
a
s
h
!
/
b
i
n
/
b
a
s
h
远程服务器备份脚本
R
E
M
O
T
E
U
S
E
R
=
"
u
s
e
r
"
R
E
M
O
T
E
H
O
S
T
=
"
s
e
r
v
e
r
.
e
x
a
m
p
l
e
.
c
o
m
"
R
E
M
O
T
E
D
I
R
=
"
/
p
a
t
h
/
t
o
/
b
a
c
k
u
p
"
L
O
C
A
L
D
I
R
=
"
/
p
a
t
h
/
t
o
/
l
o
c
a
l
/
b
a
c
k
u
p
"
L
O
G
F
I
L
E
=
"
/
v
a
r
/
l
o
g
/
b
a
c
k
u
p
.
l
o
g
"
记录开始时间
e
c
h
o
"
INTERVAL done (三)远程服务器备份 使用rsync命令定期备份远程服务器上的重要数据到本地。 bash !/bin/bash 远程服务器备份脚本 REMOTE_USER="user" REMOTE_HOST="server.example.com" REMOTE_DIR="/path/to/backup" LOCAL_DIR="/path/to/local/backup" LOG_FILE="/var/log/backup.log" 记录开始时间 echo "
INTERVALdone(三)远程服务器备份使用rsync命令定期备份远程服务器上的重要数据到本地。bash!/bin/bash远程服务器备份脚本REMOTEUSER="user"REMOTEHOST="server.example.com"REMOTEDIR="/path/to/backup"LOCALDIR="/path/to/local/backup"LOGFILE="/var/log/backup.log"记录开始时间echo"(date +“%Y-%m-%d %H:%M:%S”) 开始备份…" >> $LOG_FILE 使用rsync进行备份 rsync -avz --delete --progress
R
E
M
O
T
E
U
S
E
R
@
{REMOTE_USER}@
REMOTEUSER@{REMOTE_HOST}😒{REMOTE_DIR}/ ${LOCAL_DIR}/ >> $LOG_FILE 2>&1 检查备份是否成功 if [
?
−
e
q
0
]
;
t
h
e
n
e
c
h
o
"
? -eq 0 ]; then echo "
?−eq0];thenecho"(date +“%Y-%m-%d %H:%M:%S”) 备份完成" >>
L
O
G
F
I
L
E
e
l
s
e
e
c
h
o
"
LOG_FILE else echo "
LOGFILEelseecho"(date +“%Y-%m-%d %H:%M:%S”) 备份失败" >> $LOG_FILE fi (
四)Web服务器日志分析 分析Apache或Nginx服务器的访问日志,统计访问量最高的页面和IP地址。 bash !/bin/bash Web服务器日志分析脚本 LOG_FILE=“/var/log/apache2/access.log” OUTPUT_DIR=“/var/www/html/analytics” 创建输出目录 mkdir -p $OUTPUT_DIR 统计访问量最高的10个页面 echo “访问量最高的10个页面:” > $OUTPUT_DIR/pages.txt cat $LOG_FILE | awk ‘{print $7}’ | sort | uniq -c | sort -nr | head -n 10 >> $OUTPUT_DIR/pages.txt 统计访问量最高的10个IP地址 echo “访问量最高的10个IP地址:” > $OUTPUT_DIR/ips.txt cat $LOG_FILE | awk ‘{print $1}’ | sort | uniq -c | sort -nr | head -n 10 >> $OUTPUT_DIR/ips.txt 统计每天的访问量 echo “每天的访问量:” > $OUTPUT_DIR/daily.txt cat $LOG_FILE | awk ‘{print $4}’ | cut -d: -f1 | tr -d ‘[’ | sort | uniq -c | sort -n >> $OUTPUT_DIR/daily.txt
八、学习资源推荐
(一)书籍推荐 1. 《鸟哥的Linux私房菜》:适合Linux初学者,内容全面,讲解详细。 2. 《Linux命令行与shell脚本编程大全》:深入介绍Linux命令行和shell脚本编程。 3. 《Advanced Programming in the UNIX Environment》:经典的UNIX/Linux编程书籍,适合有一定基础的开发者。
(二)在线教程 1. 菜鸟教程:提供Linux基础教程和命令大全。 2. Linux Documentation Project:提供丰富的Linux文档和教程。 3. IBM Developer:提供Linux系统管理和编程教程。
(三)社区与论坛 1. Stack Overflow:程序员问答社区,有大量关于Linux的问题和解答。 2. Reddit的Linux板块:讨论Linux相关话题的社区。 3. Linux中国:国内的Linux技术社区,提供Linux新闻、教程和资源。
(四)实践平台 1. Codecademy:提供交互式的命令行学习环境。 2. Linux Journey:提供Linux基础知识和实践练习。 3. Katacoda:提供基于浏览器的Linux实践环境,无需安装。
九、总结
Linux命令是Linux系统的核心,掌握常用的Linux命令对于Linux系统的使用和管理至关重要。本教程介绍了Linux系统的基础知识、命令行基础、文件与目录管理、文件搜索与查找、文件权限与用户管理、系统信息与监控、软件包管理等方面的内容,并提供了实战应用案例和学习资源推荐。 通过学习本教程,你应该能够掌握Linux系统的基本操作和常用命令,能够独立完成文件管理、系统配置、网络管理等任务。要进一步提高Linux技能,建议多进行实践操作,尝试解决实际问题,并阅读相关的书籍和文档。Linux系统的学习是一个长期的过程,需要不断积累和实践。
Linux常用命令学习指南: 基础教程与实战应用
最新推荐文章于 2025-05-27 20:33:37 发布