lInux 常用命令
vi
在Linux中,vi
是一种文本编辑器,广泛用于命令行环境下的编辑任务。vi
具有强大的功能和灵活性,非常适合程序员和系统管理员使用。
要使用vi
编辑文件,可以按照以下步骤操作:
-
打开终端(命令行界面)。
-
在终端中使用
vi
命令加上要编辑的文件路径来启动vi
。例如,要编辑一个叫做myfile.txt
的文件,可以在终端中输入vi myfile.txt
。 -
vi
会打开指定的文件,并显示文件的内容。这时,你可以使用以下命令来进行编辑:- 按i键进入插入模式,在光标所在位置插入文本。
- 按Esc键退出插入模式,回到命令模式。
- 在命令模式下,可以使用以下命令:
:w
保存文件。:q
退出vi
。:wq
保存文件并退出vi
。:q!
强制退出vi
,不保存文件。/text
在文件中搜索text
字符串。:n
跳转到文件的下一个行。:N
跳转到文件的上一个行。:set number
显示行号。:set nonumber
隐藏行号。
请注意,这只是一些常用的命令示例。
vi
具有更多的功能和命令,可以通过查看相关文档或网上教程进行深入学习。 -
当你完成编辑后,可以使用
:wq
命令保存文件并退出vi
。修改后的文件将保存在磁盘上。
more
more
是Linux中常用的一个命令,用于在终端逐页显示文本文件的内容。使用more
命令可以方便地查看大型文本文件,以避免一次性显示过多的信息而导致屏幕滚动过快。
要使用more
命令查看文件的内容:
-
打开终端(命令行界面)。
-
在终端中输入
more
命令,后跟要查看的文件的路径。例如,要查看一个名为myfile.txt
的文件,可以输入more myfile.txt
。 -
终端将逐页显示文件的内容。你可以使用以下键盘命令来操作:
- 空格键:显示下一页内容。
- Enter键:显示下一行内容。
- B键:显示上一页内容。
- Q键:退出
more
,结束查看。
tail
tail
是一个 Linux 命令,用于显示文件的末尾若干行内容。它常用于查看日志文件、实时观察文件变化等操作。使用
tail
命令很简单,以下是常见的用法:tail [选项] [文件]
-
选项:
-n 数字
:指定要显示的行数。例如,tail -n 10 myfile.txt
将显示myfile.txt
文件的最后 10 行内容。-f
:实时跟踪文件的变化并显示新增的内容。常用于查看日志文件等动态变化的文件。
-
文件:要显示内容的文件路径。
示例:
tail myfile.txt
:显示myfile.txt
文件的末尾默认的 10 行内容。tail -n 20 myfile.txt
:显示myfile.txt
文件的末尾 20 行内容。tail -f logfile.txt
:实时跟踪logfile.txt
文件的变化,并连续输出新增的内容。
awk
awk
是一种文本处理工具,可以用于提取、处理和格式化文本数据。它在Linux中被广泛使用,并具有强大的功能。awk
的基本语法是根据指定的模式来处理输入的文本,并执行相应的操作。它的语法结构如下:awk 'pattern { action }' file
pattern
是一个条件模式,用于匹配输入中的某些内容。action
是对匹配到的内容执行的操作。file
是一个文件路径,指定要处理的输入文件。
示例:
假设我们有一个名为
data.txt
的文本文件,内容如下:Alice 25 Bob 30 Charlie 35
我们可以使用
awk
命令来列出文件中的行数、字段数,以及打印特定字段的值:awk '{ print NR }' data.txt
:打印每一行的行号。awk '{ print NF }' data.txt
:打印每一行的字段数。awk '{ print $1 }' data.txt
:打印每一行的第一个字段的值。
除了这些基本的操作,
awk
还支持更复杂的功能,如条件判断、循环和函数等。可以根据具体的需求编写更复杂的awk
程序。sed
sed
是一种流编辑器(stream editor),在Linux环境中用于对文本进行流式处理和转换。它可以读取文本文件中的内容,并根据指定的规则执行编辑操作,而不会改变原始文件。
sed
命令的基本语法如下:
sed [选项] '命令' [文件]
- 选项:可以指定一些参数来修改
sed
命令的行为,例如-i
用于直接修改原始文件。 - 命令:是针对文本内容的编辑操作,可以是单一命令或多个命令的组合。
- 文件:要处理的文本文件的路径。如果未指定文件,则会从标准输入读取内容。
示例:
假设我们有一个名为 data.txt
的文本文件,内容如下:
Hello, world!
Welcome to sed.
我们可以使用 sed
命令来进行各种文本处理操作:
sed 's/world/openAI/' data.txt
:执行替换操作,将每一行中的第一个匹配到的 "world" 替换为 "openAI"。sed '2d' data.txt
:删除文件中的第二行。sed '$a\Goodbye!' data.txt
:在文件的最后一行添加 "Goodbye!"。
除了这些基本操作,sed
还支持正则表达式、替换标志、条件判断等功能,可以根据需求编写更复杂的 sed
命令。
请注意,sed
命令不会直接修改原始文件,除非使用 -i
选项。在使用 -i
选项时,请务必备份原始文件以防止意外修改。
grep
grep
是一个文本搜索工具,用于在文件中查找匹配指定模式的行或文本。它在 Linux 环境中被广泛使用,并具有很强的搜索能力。
grep
的基本语法如下:
grep [选项] 模式 [文件]
- 选项:用于修改
grep
命令的行为,例如-i
用于忽略大小写,-r
用于递归搜索等。 - 模式:要搜索匹配的模式,可以是简单字符串或正则表达式。
- 文件:要搜索的文件的路径,可以指定一个或多个文件。
示例:
假设我们有一个名为 data.txt
的文本文件,内容如下:
Hello, world!
Welcome to the grep command.
我们可以使用 grep
命令来进行文本搜索操作:
grep "world" data.txt
:搜索文件中包含 "world" 的行,并将其输出。grep -i "hello" data.txt
:忽略大小写地搜索文件中包含 "hello" 的行,并将其输出。grep -r "grep" /path/to/directory
:在指定目录下递归搜索包含 "grep" 的文件,并将匹配的行输出。
除了这些基本操作,grep
还支持正则表达式、多文件搜索、逆向搜索、显示匹配行的行号等功能。可以根据具体需求使用不同的选项和参数组合。
grep
默认会将匹配到的行输出到标准输出,如果希望将输出写入到文件中或进行后续处理,可以使用重定向操作符 >
或 >>
。
top
top
是一个在 Linux 操作系统上用于查看系统资源使用情况和进程状态的命令行工具。通过 top
命令,你可以实时监控系统的 CPU 使用率、内存占用、进程信息以及其他系统统计数据。
当你在终端中运行 top
命令时,将显示一个交互式的实时监视界面。默认情况下,它会按照 CPU 使用率对进程进行排序,最耗费 CPU 的进程将显示在列表的顶部。下面是 top
命令界面的一些主要部分:
- 第一行:提供了系统级的总体信息,如运行时间、登录用户数、平均负载等。
- 第二行:显示 CPU 的使用情况,包括总体的 CPU 使用率以及各个 CPU 核心的使用率。
- 第三行:显示内存的使用情况,包括总共的内存、已使用的内存、剩余的内存以及缓存和缓冲区的使用情况。
- 第四行:显示交换分区(swap)的使用情况,包括总共的交换分区、已使用的交换分区以及剩余的交换分区。
- 进程列表:按照 CPU 使用率降序排列的进程列表,包括进程 ID、用户、CPU 使用率、内存占用等信息。
- 快捷键操作:在
top
的界面中,有很多可用的快捷键操作,用于切换显示模式、排序进程列表、杀死进程等。
top
提供了丰富的选项和命令用于定制和控制它的行为,以满足不同的需求。你可以使用 -d
选项来指定 top
的更新时间间隔,使用 -u
选项来过滤指定用户的进程,使用 -p
选项来监视指定进程 ID 的进程等。
ps
ps
(Process Status)是一个在 Linux 操作系统上用于查看当前运行进程状态的命令行工具。通过 ps
命令,你可以获取有关正在运行的进程的信息,例如进程 ID、父进程 ID、运行时间、CPU 使用率等。
ps
的基本语法如下:
ps [选项]
一般情况下,ps
命令默认只显示与当前终端会话关联的进程。下面是一些常用的 ps
命令选项:
ps aux
:显示系统上所有进程的信息,包括所有用户的进程,并显示详细的进程状态信息。ps -ef
:显示系统上所有进程的信息,显示当前用户的进程,并显示每个进程的完整命令行。ps -e --forest
:以树形结构的方式显示进程和它们的关系。ps -p <PID>
:显示指定进程 ID 的进程信息。ps -u <username>
:显示指定用户名下的进程信息。
除了以上基本用法之外,ps
命令还有很多选项可以用来过滤、排序、格式化进程信息等。例如,可以使用 -o
选项指定要显示的字段,使用 --sort
选项指定排序方式,使用 --format
选项指定输出格式等。
curl
curl
是一个功能强大的命令行工具,用于与服务器进行数据传输。它支持多种协议,包括 HTTP、HTTPS、FTP、SMTP 等,并可以执行各种网络操作,如数据下载、上传文件、发送请求等。
curl
命令的基本语法如下:
curl [选项] [URL]
- 选项:用于修改
curl
命令的行为,例如-u
用于指定用户名和密码进行身份验证,-o
用于指定下载文件保存的路径等。 - URL:要访问的 URL 地址,可以是 HTTP、HTTPS、FTP 等。
示例用法:
以下是一些 curl
命令的示例:
curl https://www.example.com
:以 GET 方法请求指定的 URL,并输出响应内容到标准输出。curl -o filename.txt https://www.example.com/file.txt
:以 GET 方法下载指定 URL 的文件,并将其保存为filename.txt
。curl -X POST -d "username=user&password=pass" https://www.example.com/login
:以 POST 方法发送表单数据到指定的 URL,模拟登录操作。curl -u username:password ftp://ftp.example.com/file.txt
:使用 FTP 协议通过提供用户名和密码进行身份验证,并下载指定的文件。
curl
还有许多其他的选项,你可以使用 -h
或 --help
参数来查看完整的选项列表和说明。
scp
scp
是一个在 Linux 和 Unix 操作系统上用于在本地主机和远程主机之间进行文件传输的命令行工具。它基于 SSH 协议,安全地在网络中传输文件。scp
可以在不同的主机之间复制文件和目录,也可以从远程主机下载文件到本地主机。
scp
命令的基本语法如下:
scp [选项] [源文件路径] [目标文件路径]
- 选项:用于修改
scp
命令的行为,例如-r
递归复制整个目录,-P
指定远程主机的 SSH 端口等。 - 源文件路径:要复制的文件或目录的路径和名称。
- 目标文件路径:目标主机上复制文件的路径和名称。
示例用法:
以下是一些 scp
命令的示例:
-
将本地文件复制到远程主机上:
scp file.txt user@remotehost:/path/to/destination
这会将名为 file.txt
的本地文件复制到远程主机 remotehost
中指定目录的文件夹。
-
从远程主机下载文件到本地主机:
scp user@remotehost:/path/to/file.txt /local/path/destination
这会将远程主机 remotehost
中指定路径的 file.txt
文件下载到本地主机中的指定目录。
-
递归复制整个目录:
scp -r /path/to/directory user@remotehost:/path/to/destination
这会递归地将本地主机上 directory
目录及其所有内容复制到远程主机的指定目录下。
ssh
ssh
是一种远程登录协议,也是一个用于在安全方式下连接到远程主机的命令行工具。通过 SSH,你可以在本地主机上通过命令行界面远程登录到另一个主机,并执行命令或操作远程文件系统。
ssh
命令的基本语法如下:
ssh [选项] [用户名@]主机地址
- 选项:用于修改
ssh
命令的行为,例如-p
指定远程主机的 SSH 端口,-i
指定身份验证使用的密钥文件等。 - 用户名:要登录到远程主机的用户名。如果未指定用户名,则默认使用当前用户。
- 主机地址:要登录的远程主机的 IP 地址或主机名。
示例用法:
以下是一些 ssh
命令的示例:
-
连接到远程主机:
ssh user@remotehost
这会使用用户名 user
登录到远程主机 remotehost
。
-
指定 SSH 端口:
ssh -p 2222 user@remotehost
这会使用用户名 user
登录到远程主机 remotehost
的 SSH 端口 2222。
-
使用身份验证密钥登录:
ssh -i ~/.ssh/private_key user@remotehost
这会使用指定的私钥文件 private_key
进行身份验证,并登录到远程主机 remotehost
。
一旦成功连接到远程主机,你可以在远程主机上执行命令或者操作远程文件系统。在远程主机上执行的命令遵循与本地机器上相同的语法。
ssh
还有许多其他的选项和功能,如转发本地端口、传输文件等。你可以使用 man ssh
命令查看完整的 ssh
命令手册页面,以获取更多关于该命令的详细信息。
其他
ls
:列出目录中的文件和子目录。cd
:切换当前工作目录。pwd
:显示当前工作目录的路径。mkdir
:创建新目录。rm
:删除文件或目录。cp
:复制文件或目录。mv
:移动文件或目录,或者重命名文件。cat
:显示文件的内容。grep
:在文件中搜索指定的模式。chmod
:修改文件或目录的权限。chown
:修改文件或目录的所有者。chgrp
:修改文件或目录的所属组。top
:显示正在运行的进程的实时信息。ps
:显示当前运行的进程。kill
:终止正在运行的进程。df
:显示文件系统的磁盘空间使用情况。free
:显示系统内存的使用情况。ifconfig
:显示和配置网络接口信息。ping
:向指定的主机发送网络测试数据包。traceroute
:显示数据包从本机到目标主机的路由信息。wget
:从指定 URL 下载文件。tar
:创建或解压缩 tar 归档文件。