Linux之管道、环境变量与常用命令小结

管道、环境变量与常用命令小结

1.管道

概述

在Linux中,管道(Pipe)是一种用于将一个进程的输出连接到另一个进程的输入的机制。它允许将多个命令组合在一起,以便它们可以协同工作并产生更复杂的结果。

在命令行中,管道使用竖线符号(|)表示。它将一个命令的输出传递给下一个命令的输入。这样,第一个命令的输出成为第二个命令的输入,第二个命令的输出成为第三个命令的输入,依此类推。

这是一个使用管道的示例:

command1 | command2

在上面的示例中,command1的输出被传递给command2作为输入。command2可以是任何可以接受command1输出的命令。

以下是一个具体的例子,假设我们有一个包含一些文本的文件(file.txt),我们想要统计其中每个单词出现的次数:

cat file.txt | tr -s ' ' '\n' | sort | uniq -c

在上述命令中:

  • cat file.txt会将文件的内容输出到标准输出。
  • tr -s ’ ’ '\n’将空格替换为换行符,将每个单词放在一行上。
  • sort对单词进行排序。
  • uniq -c统计每个单词的出现次数。
    通过将这些命令组合在一起使用管道,我们可以从文件中获取单词出现的统计信息。

管道是Linux中强大而灵活的工具,它允许我们使用简单的命令组合来处理和转换数据流。它可以用于各种任务,例如文本处理、筛选、排序等。

常见用法

管道在Linux中可以用于各种任务。以下是一些常见的用途:

数据处理和转换:通过将多个命令组合在一起,可以对数据进行各种处理和转换。例如,使用grep来筛选出符合特定模式的行,然后使用sed或awk来对这些行进行进一步处理,最后使用sort对结果进行排序。

文本处理:通过管道可以对文本进行各种操作,如搜索、替换、排序、计数等。可以使用命令如grep、sed、awk、sort、uniq等来实现这些操作。

进程间通信:通过管道,可以将一个进程的输出连接到另一个进程的输入,实现进程间的通信。这在编写脚本或编排任务时特别有用,可以将多个命令组合在一起,以实现复杂的工作流程。

系统监控和调试:管道可以用于监控系统资源和进程。例如,使用ps命令获取进程列表,然后使用grep过滤出特定的进程,再使用awk提取进程的相关信息。

日志分析:通过管道可以方便地处理和分析日志文件。可以使用命令如grep、sed、awk、sort等来搜索、过滤、提取和统计日志中的信息。

网络操作:管道可以在网络操作中发挥作用。例如,可以使用curl或wget命令下载网页内容,并使用管道将其传递给其他命令进行处理。

这只是一些常见的用途,实际上,使用管道的可能性非常广泛,取决于你的需求和 kreativity。你可以根据具体任务的要求将不同的命令组合在一起,以实现所需的功能。

2.环境变量

概述

在Linux中,环境变量是一种存储有关系统环境和配置的动态值的机制。它们是由操作系统或用户设置的,可以在整个系统中访问和使用。环境变量在Shell会话中起作用,并且可以被进程和程序引用。

以下是一些常见的Linux环境变量:

  1. PATH:指定可执行程序的搜索路径。当在终端中输入命令时,系统会按照PATH环境变量定义的路径顺序来查找可执行文件。

  2. HOME:指定当前用户的主目录路径。

  3. USER:指定当前用户的用户名。

  4. SHELL:指定当前用户所使用的Shell程序。

  5. LANG:指定默认的语言环境。

  6. PWD:指定当前工作目录的路径。

  7. TERM:指定当前终端类型。

  8. DISPLAY:指定图形界面的显示器。

  9. LD_LIBRARY_PATH:指定动态链接库的搜索路径。

  10. JAVA_HOME:指定Java的安装路径。

这只是一小部分常见的环境变量示例。Linux系统中有许多其他环境变量可用,具体取决于安装的软件和用户定义的变量。

查看环境变量

在Linux中,可以使用以下命令来查看环境变量:

  • printenv:显示所有的环境变量。

  • echo $VARIABLE_NAME:显示特定环境变量的值,将VARIABLE_NAME替换为具体的环境变量名称。

  • export VARIABLE_NAME=value:设置新的环境变量或修改现有环境变量的值。

  • unset VARIABLE_NAME:删除环境变量。


env命令用于显示当前用户的环境变量。它会列出当前会话中所有的环境变量及其对应的值。

set命令用于显示当前Shell的变量,包括当前用户的变量和Shell内部使用的变量。它会列出所有已定义的变量以及它们的值。

export命令用于显示当前已导出为用户变量的Shell变量。导出为用户变量的变量是可以在当前Shell会话中访问并在子进程中继承的变量。

请注意,export命令本身不会显示环境变量,它只会显示已导出为用户变量的Shell变量。要查看所有环境变量,包括已导出和未导出的变量,可以使用env命令。

以下是示例用法:

env
set
export

这些命令会在终端上显示相应的环境变量、Shell变量和已导出的变量。

用户可以通过编辑Shell的配置文件(如~/.bashrc~/.bash_profile/etc/profile)来设置和修改环境变量,使其在每个Shell会话中起作用。可以在这些文件中使用export命令来定义新的环境变量或修改已有环境变量的值。

注意,设置的环境变量在当前Shell会话中生效,如果需要永久性地设置环境变量,可以将其添加到Shell配置文件中,并在重新启动或打开新的终端会话后生效。

3.Linux常用命令,可配合管道使出组合技

Linux提供了许多常用的命令,用于管理文件系统、处理文本、管理进程、网络通信等。以下是一些常用的Linux命令示例:

当使用这些命令时,可以根据需要添加不同的选项和参数来实现更具体的功能。以下是每个命令的常见用法和选项的示例:

ls:列出目录内容

  • 列出当前目录的内容:

    ls
    
  • 列出指定目录的内容:

    ls /path/to/directory
    
  • 列出详细信息,包括文件权限、所有者和大小等:

    ls -l
    
  • 列出所有文件,包括隐藏文件:

    ls -a
    

cd:切换当前工作目录。

  • 切换到指定目录:

    cd /path/to/directory
    
  • 切换到上一级目录:

    cd ..
    
  • 切换到用户的主目录:

    cd ~
    

pwd:显示当前工作目录的路径。

  • 显示当前工作目录的路径:
    pwd
    

mkdir:创建新目录。

  • 创建一个新目录:

    mkdir directory_name
    
  • 创建多个目录(递归创建):

    mkdir -p /path/to/directory
    

rm:删除文件或目录。

  • 删除文件:

    rm file_name
    
  • 删除目录(空目录):

    rm -r directory_name
    
  • 强制删除目录及其内容:

    rm -rf directory_name
    

cp:复制文件或目录。

  • 复制文件到目标位置:

    cp source_file destination_file
    
  • 复制目录及其内容到目标位置:

    cp -r source_directory destination_directory
    

mv:移动文件或目录。

  • 移动文件到目标位置:

    mv source_file destination_file
    
  • 移动目录及其内容到目标位置:

    mv source_directory destination_directory
    

cat:显示文件内容。

  • 显示文件的内容:

    cat file_name
    
  • 显示多个文件的内容:

    cat file1 file2
    

grep:在文件中搜索匹配的文本。

  • 在文件中搜索匹配的文本:

    grep pattern file_name
    
  • 忽略大小写搜索:

    grep -i pattern file_name
    
  • 递归搜索目录中的文件:

    grep pattern /path/to/directory/*
    

sed:对文本进行替换、删除、插入等操作。

  • 替换文本:

    sed 's/old_text/new_text/' file_name
    
  • 删除指定行:

    sed 'n1,n2d' file_name
    
  • 在指定行后插入新行:

    sed 'n a new_line' file_name
    

awk:处理和分析文本数据。

  • 显示指定列的内容:

    awk '{print $column_number}' file_name
    
  • 根据指定条件过滤行:

    awk '$condition' file_name
    
  • 计算指定列的总和:

    awk '{sum += $column_number} END {print sum}' file_name
    

sort:对文本进行排序。

  • 按字母顺序排序:

    sort file_name
    
  • 按数字顺序排序:

    sort -n file_name
    
  • 逆序排序:

    sort -r file_name
    

`chmod`命令用于更改文件或目录的权限。权限包括读取(r)、写入(w)和执行(x)权限,可以应用于文件所有者、所属组和其他用户。

以下是chmod命令的一些示例用法:

  1. 更改文件权限:

    chmod permissions file_name
    ```
    
    - `permissions`是用数字表示的权限代码,例如`777`表示所有者、所属组和其他用户都具有读取、写入和执行权限。
    
    - 可以使用不同的数字组合设置不同的权限。例如,`755`表示文件所有者具有读取、写入和执行权限,而所属组和其他用户只有读取和执行权限。
    
    - `file_name`是要更改权限的文件名。
    
    
  2. 更改目录权限:

    chmod permissions directory_name
    ```
    
    - 与更改文件权限相似,可以使用相同的数字权限代码来更改目录的权限。
    
    - 更改目录权限将影响对目录中文件的访问权限。
    
    
  3. 递归更改权限:

    chmod -R permissions directory_name
    ```
    
    - 使用`-R`选项可以递归地更改目录及其所有子目录和文件的权限。
    
    - 注意在使用递归选项时要小心,确保您了解要更改权限的目录及其内容。
    
    

以符号方式更改权限:

chmod [ugoa]+[-+=]+[rwx] file_name
```

- 使用符号方式更改权限允许您增加(+)、移除(-)或设置(=)权限。

- `u`表示所有者,`g`表示所属组,`o`表示其他用户,`a`表示所有用户。

- `r`表示读取权限,`w`表示写入权限,`x`表示执行权限。

- 例如,要将文件所有者的写入权限移除,可以使用以下命令:
  ```shell
  chmod u-w file_name
  ```

这些示例提供了chmod命令的一些常见用法。您可以根据实际情况和需要进行调整。请记住,在更改权限时要谨慎,确保只授予必要的权限以确保安全性。

分类的一些命令

文件和目录操作:

  1. ls:列出目录内容。
  • cd:切换当前工作目录。
  • pwd:显示当前工作目录的路径。
  • mkdir:创建新目录。
  • rm:删除文件或目录。
  • cp:复制文件或目录。
  • mv:移动文件或目录。

文本处理:

  1. cat:显示文件内容。
  • grep:在文件中搜索匹配的文本。
  • sed:对文本进行替换、删除、插入等操作。
  • awk:处理和分析文本数据。
  • sort:对文本进行排序。
  • uniq:去除重复行。

文件查看和编辑:

  1. head:显示文件开头部分。
  • tail:显示文件结尾部分。
  • less:逐页查看文件内容。
  • vivim:文本编辑器。

系统管理:

  1. ps:显示当前进程状态。
  • top:实时显示系统资源使用情况。
  • kill:终止指定进程。
  • shutdown:关机或重启系统。
  • ifconfig:显示和配置网络接口信息。

网络通信:

  1. ping:测试与远程主机的连通性。
  • wget:从网络下载文件。
  • curl:发送HTTP请求并显示响应。
  • ssh:远程登录到其他主机。
  • scp:在本地主机和远程主机之间复制文件。

文件搜索和查找:

  1. find:根据条件搜索文件和目录。
  • locate:通过数据库快速定位文件路径。
  • which:查找命令的可执行路径。
  • whereis:查找二进制、源代码和帮助文档的位置。

文件权限和所有权:

  1. chmod:修改文件或目录的权限。
  • chown:修改文件或目录的所有者。
  • chgrp:修改文件或目录的所属组。

磁盘和文件系统管理:

  1. df:显示文件系统的磁盘使用情况。
  • du:估算文件或目录的磁盘空间使用情况。
  • mount:挂载文件系统到指定目录。
  • umount:卸载已挂载的文件系统。

压缩和解压缩:

  1. tar:创建和提取 tar 归档文件。
  • gzipgunzip:压缩和解压缩文件。
  • zipunzip:创建和提取 zip 压缩文件。

脚本和自动化:

  1. bash:执行 Bash 脚本。
  • chmod:设置脚本文件的执行权限。
  • crontab:创建和管理定时任务。
  • nohup:在后台运行命令或脚本。

进程管理:

  1. ps:显示当前进程状态。
  • top:实时显示系统资源使用情况。
  • kill:终止指定进程。
  • pgrep:根据进程名称查找进程ID。
  • pkill:根据进程名称终止进程。

网络相关:

  1. ifconfig:显示和配置网络接口信息。
  • netstat:显示网络连接、路由表等信息。
  • ping:测试与远程主机的连通性。
  • traceroute:显示数据包到达目标主机的路径。
  • ssh:远程登录到其他主机。
  • scp:在本地主机和远程主机之间复制文件。

系统日志:

  1. dmesg:显示内核环缓冲区的内容,包含启动信息和硬件错误。
  • journalctl:查看系统日志。
  • tail:显示日志文件的尾部内容。

系统维护:

  1. reboot:重启系统。
  • shutdown:关机或重启系统。
  • halt:停止系统。
  • cron:定时执行命令或脚本。
  • systemctl:管理Systemd服务和单元。

硬件信息:

  1. lspci:显示PCI设备信息。
  • lsusb:显示USB设备信息。
  • hwinfo:显示硬件信息摘要。

网络配置和管理:

  1. ifconfig:显示和配置网络接口信息。
  • ip:显示和配置网络接口、路由表等信息。
  • route:显示和配置网络路由表。
  • iptables:配置和管理防火墙规则。

用户和权限管理:

  1. useradd:创建新用户。
  • usermod:修改用户属性。
  • passwd:修改用户密码。
  • chpasswd:批量修改用户密码。
  • chage:设置用户密码过期策略。
  • sudo:以超级用户权限执行命令。

系统信息和性能监测:

  1. uname:显示系统信息。
  • lsb_release:显示Linux发行版信息。
  • uptime:显示系统运行时间和负载。
  • free:显示系统内存使用情况。
  • vmstat:显示系统虚拟内存统计信息。
  • iostat:显示系统磁盘IO统计信息。

软件包管理:

  1. apt:Debian和Ubuntu系统上的软件包管理工具。
  • yum:CentOS和Fedora系统上的软件包管理工具。
  • dnf:Fedora 22及以后版本的软件包管理工具。
  • zypper:OpenSUSE系统上的软件包管理工具。
  • pacman:Arch Linux系统上的软件包管理工具。

这些是更多常用的Linux命令示例,用于网络配置、用户管理、系统信息、日志管理、系统维护和软件包管理等方面。Linux系统提供了丰富的命令和工具,用于满足各种需求和任务。对于每个命令,可以使用命令的--help选项查看简要帮助信息,或者使用man命令查看完整的命令手册页。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Pigwantofly

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值