管道符、重定向与环境变量

个人博客站---运维鹿: http://www.kervin24.top

CSDN博客---做个超努力的小奚: https://blog.csdn.net/qq_52914969?type=blog

一、重定向

将命令和文件结合

标准输入重定向(STDIN,文件描述符为0):默认从键盘输入,也可从其他文件或命令中输入。

标准输出重定向(STDOUT,文件描述符为1):默认输出到屏幕。

错误输出重定向(STDERR,文件描述符为2):默认输出到屏幕。


输入重定向

命令 < 文件 将文件作为命令的标准输入
命令 << 分界符 从标准输入中读入,直到遇见分界符才停止
命令 < 文件1 > 文件2 将文件1作为命令的标准输入并将标准输出到文件2

输出重定向

符号 作用
命令 > 文件 将标准输出重定向到一个文件中(清空原有文件的数据)
命令 2> 文件 将错误输出重定向到一个文件中(清空原有文件的数据)
命令 >> 文件 将标准输出重定向到一个文件中(追加到原有内容的后面)
命令 2>> 文件 将错误输出重定向到一个文件中(追加到原有内容的后面)
命令 >> 文件 2>&1 或 命令 &>> 文件 将标准输出与错误输出共同写入到文件中(追加到原有内容的后面)

二、管道符

执行格式为"命令A | 命令B"

例:ps -ef |grep "tongweb"

三、命令行的通配符

通配符 含义
* 任意字符
? 单个任意字符
[a-z] 单个小写字母
[A-Z] 单个大写字母
[a-Z] 单个字母
[0-9] 单个数字
[[:alpha:]] 任意字母
[[:upper:]] 任意大写字母
[[:lower:]] 任意小写字母
[[:digit:]] 所有数字
[[:alnum:]] 任意字母加数字
[[:punct:]] 标点符号

四、常见的转义字符

反斜杠(\):使反斜杠后面的一个变量变为单纯的字符。

单引号(' '):转义其中所有的变量为单纯的字符串。

双引号(" "):保留其中的变量属性,不进行转义处理。

反引号(``):把其中的命令执行后返回结果。

复制代码
[root@localhost kervin24]# echo $(ls -l |wc -l)
9
[root@localhost kervin24]# echo `ls -l |wc -l`
9

五、环境变量

5.1、查看环境变量

  1. 查看所有变量

    复制代码
    printenv   # 显示所有环境变量
    env        # 类似printenv,但可同时执行命令(如 env MY_VAR=value command)
  2. 查看特定变量

    复制代码
    echo $PATH      # 输出PATH变量的值
    printenv USER   # 显示当前用户

5.2、设置环境变量

  1. 临时设置(仅在当前会话有效)

    复制代码
    export MY_VAR="value"    # 设置变量并导出为环境变量
    MY_VAR="value"           # 仅设置为Shell变量(不导出到子进程)
  2. 永久设置(需写入配置文件)

    • 用户级配置

      • ~/.bashrc:针对当前用户的Bash Shell(交互式非登录Shell)。

      • ~/.bash_profile~/.profile:针对登录Shell(如SSH登录)。

        示例:在~/.bashrc中添加

        export JAVA_HOME="/usr/lib/jvm/java-11-openjdk"
        export PATH="JAVA_HOME/bin:PATH"

    • 系统级配置

      • /etc/environment:系统范围的环境变量(仅接受VAR=value格式)。
      • /etc/profile/etc/bash.bashrc:全局配置,对所有用户生效。
  3. 配置文件加载顺序

    • 登录Shell :加载/etc/profile~/.bash_profile~/.bashrc(如果被显式调用)。
    • 非登录Shell :仅加载~/.bashrc
  • 执行source ~/.bashrc重新加载配置。

  • 使用which command检查命令路径优先级。

5.3、常见环境变量

变量名称 作用
HOME 用户的主目录(即家目录)
SHELL 用户在使用的Shell解释器名称
HISTSIZE 输出的历史命令记录条数
HISTFILESIZE 保存的历史命令记录条数
MAIL 邮件保存路径
LANG 系统语言、语系名称
RANDOM 生成一个随机数字
PS1 Bash解释器的提示符
PATH 定义解释器搜索用户执行命令的路径
EDITOR 用户默认的文本编辑器
相关推荐
Kaede67 分钟前
服务器硬件防火墙和软件防火墙的区别
运维·服务器
qinyia14 分钟前
通过本地构建解决Cartographer编译中absl依赖缺失问题
linux·运维·服务器·mysql·ubuntu
郝亚军14 分钟前
ubuntu启一个udp server,由一个client访问
linux·ubuntu·udp
苦逼IT运维24 分钟前
从 0 到 1 理解 Kubernetes:一次“破坏式”学习实践(一)
linux·学习·docker·容器·kubernetes
小草cys38 分钟前
鲲鹏920服务器安装openEuler后无法联网,但物理网线已连接
运维·服务器·openeuler
野犬寒鸦1 小时前
从零起步学习并发编程 || 第五章:悲观锁与乐观锁的思想与实现及实战应用与问题
java·服务器·数据库·学习·语言模型
李小白202002021 小时前
EMMC写入/烧录逻辑
linux·运维·服务器
yixvxi1 小时前
RFC 8659:DNS CAA资源记录
服务器·https·ssl
予枫的编程笔记1 小时前
【Linux入门篇】Linux入门不踩坑:内核、发行版解析+环境搭建全流程
linux·ubuntu·centos·vmware·xshell·linux入门·linux环境搭建
去码头整点薯条981 小时前
python第五次作业
linux·前端·python