lInux 常用命令

lInux 常用命令

vi

在Linux中,vi是一种文本编辑器,广泛用于命令行环境下的编辑任务。vi具有强大的功能和灵活性,非常适合程序员和系统管理员使用。

要使用vi编辑文件,可以按照以下步骤操作:

  1. 打开终端(命令行界面)。

  2. 在终端中使用vi命令加上要编辑的文件路径来启动vi。例如,要编辑一个叫做myfile.txt的文件,可以在终端中输入vi myfile.txt

  3. vi会打开指定的文件,并显示文件的内容。这时,你可以使用以下命令来进行编辑:

    • 按i键进入插入模式,在光标所在位置插入文本。
    • 按Esc键退出插入模式,回到命令模式。
    • 在命令模式下,可以使用以下命令:
      • :w保存文件。
      • :q退出vi
      • :wq保存文件并退出vi
      • :q!强制退出vi,不保存文件。
      • /text在文件中搜索text字符串。
      • :n跳转到文件的下一个行。
      • :N跳转到文件的上一个行。
      • :set number显示行号。
      • :set nonumber隐藏行号。

    请注意,这只是一些常用的命令示例。vi具有更多的功能和命令,可以通过查看相关文档或网上教程进行深入学习。

  4. 当你完成编辑后,可以使用:wq命令保存文件并退出vi。修改后的文件将保存在磁盘上。

more

more是Linux中常用的一个命令,用于在终端逐页显示文本文件的内容。使用more命令可以方便地查看大型文本文件,以避免一次性显示过多的信息而导致屏幕滚动过快。

要使用more命令查看文件的内容:

  1. 打开终端(命令行界面)。

  2. 在终端中输入more命令,后跟要查看的文件的路径。例如,要查看一个名为myfile.txt的文件,可以输入more myfile.txt

  3. 终端将逐页显示文件的内容。你可以使用以下键盘命令来操作:

    • 空格键:显示下一页内容。
    • 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 命令界面的一些主要部分:

  1. 第一行:提供了系统级的总体信息,如运行时间、登录用户数、平均负载等。
  2. 第二行:显示 CPU 的使用情况,包括总体的 CPU 使用率以及各个 CPU 核心的使用率。
  3. 第三行:显示内存的使用情况,包括总共的内存、已使用的内存、剩余的内存以及缓存和缓冲区的使用情况。
  4. 第四行:显示交换分区(swap)的使用情况,包括总共的交换分区、已使用的交换分区以及剩余的交换分区。
  5. 进程列表:按照 CPU 使用率降序排列的进程列表,包括进程 ID、用户、CPU 使用率、内存占用等信息。
  6. 快捷键操作:在 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 归档文件。
相关推荐
free7 分钟前
netstat中sendq/recvq用于排查发送端发送数据的问题
服务器
小林熬夜学编程15 分钟前
【Linux系统编程】第四十一弹---线程深度解析:从地址空间到多线程实践
linux·c语言·开发语言·c++·算法
力姆泰克27 分钟前
看电动缸是如何提高农机的自动化水平
大数据·运维·服务器·数据库·人工智能·自动化·1024程序员节
力姆泰克27 分钟前
力姆泰克电动缸助力农业机械装备,提高农机的自动化水平
大数据·服务器·数据库·人工智能·1024程序员节
程思扬44 分钟前
为什么Uptime+Kuma本地部署与远程使用是网站监控新选择?
linux·服务器·网络·经验分享·后端·网络协议·1024程序员节
sun0077001 小时前
拷贝 cp -rdp 和 cp -a
linux·运维·服务器
wowocpp1 小时前
ubuntu 22.04 server 安装 anaconda3
linux·运维·ubuntu
乡村农夫1 小时前
cuda 环境搭建
linux
tingting01192 小时前
Linux 普通用户禁用sudo su - 命令
linux·运维·服务器
WZF-Sang2 小时前
Linux—进程学习-01
linux·服务器·数据库·学习·操作系统·vim·进程