首页 > 系统相关 >Linux shell 环境变量 All In One

Linux shell 环境变量 All In One

时间:2023-09-08 11:55:35浏览次数:44  
标签:bin shell mm Linux usr xgqfrms 环境变量

Linux shell 环境变量 All In One

  1. 全局环境变量,system wide environment 系统级环境变量
  2. 局部环境变量,local wide environment 用户自定义环境变量

shell 的 3 种启动方式

  1. 登录默认的交互式 shell
  2. 非登录交互式 shell
  3. 运行脚本非交互式 shell

shell 的常见类型

  • sh
  • bash
  • csh
  • zsh
# 查看 shell 路径
$ which sh
/bin/sh

$ which bash
/bin/bash

$ which csh
/bin/csh

$ which zsh
/bin/zsh

全局环境变量

# 查看全局环境变量
$ env
# OR
$ printenv
__CFBundleIdentifier=com.apple.Terminal
TMPDIR=/var/folders/by/24_sdryj5sv4qvxcyjfnn64c0000gn/T/
XPC_FLAGS=0x0
TERM=xterm-256color
SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.NNA6aLv9vF/Listeners
SECURITYSESSIONID=186a6
XPC_SERVICE_NAME=0
TERM_PROGRAM=Apple_Terminal
TERM_PROGRAM_VERSION=447
SHELL=/bin/zsh
HOME=/Users/xgqfrms-mm
LOGNAME=xgqfrms-mm
USER=xgqfrms-mm
PATH=/bin:/usr/bin:/usr/local/bin:/Users/xgqfrms-mm/.nvm/versions/node/v18.12.0/bin:/usr/local/opt/[email protected]/bin:/Users/xgqfrms-mm/.nvm/versions/node/v18.12.0/bin:/bin:/usr/bin:/usr/local/bin:/Users/xgqfrms-mm/.nvm/versions/node/v18.12.0/bin:/Library/Frameworks/Python.framework/Versions/3.11/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/usr/local/mysql/bin/
SHLVL=1
PWD=/Users/xgqfrms-mm
OLDPWD=/Users/xgqfrms-mm
ZSH=/Users/xgqfrms-mm/.oh-my-zsh
PAGER=less
LESS=-R
LSCOLORS=Gxfxcxdxbxegedabagacad
NVM_DIR=/Users/xgqfrms-mm/.nvm
NVM_CD_FLAGS=-q
NVM_BIN=/Users/xgqfrms-mm/.nvm/versions/node/v18.12.0/bin
LC_CTYPE=UTF-8
_=/usr/bin/env

设置系统环境变量的方式

  1. 通过命令行
  2. 通过 shell script 脚本文件
  3. 通过 shell 启动配置文件,如 /etc/profile
# 设置系统环境变量, 全大写字母
# key=value 等号两边不可以有空格⚠️
$ export GITHUB_ENV_USERNAME=xgqfrms

$ echo $GITHUB_ENV_USERNAME

父 shell 设置的系统环境变量,子 shell 可以访问该系统环境变量;
⚠️ 但是子 shell如果修改删除该系统环境变量只会对子 shell 自己有效,不会影响到父 shell,即不会向上传播变化。


局部环境变量

# 查看当前用户拥有的所有环境变量 (局部环境变量 + 系统环境变量)
$ set
# ⚠️  没有单独查看当前局部环境变量的命令


# 设置局部环境变量, 全小写字母
# key=value 等号两边不可以有空格⚠️
$ github_env_username=xgqfrms

$ echo $github_env_username

父 shell 设置的局部环境变量,子 shell 不可以访问该局部环境变量

# 父 shell
$ github_env_username=xgqfrms
$ echo $github_env_username
xgqfrms

$ set | grep github_env_username
github_env_username=xgqfrms
# 子 shell
$ bash
$ echo $github_env_username

image

demos

系统环境变量

$ echo $HOME
/Users/xgqfrms-mm
$ echo $PATH
/bin:/usr/bin:/usr/local/bin:/Users/xgqfrms-mm/.nvm/versions/node/v18.12.0/bin:/usr/local/opt/[email protected]/bin:/Users/xgqfrms-mm/.nvm/versions/node/v18.12.0/bin:/bin:/usr/bin:/usr/local/bin:/Users/xgqfrms-mm/.nvm/versions/node/v18.12.0/bin:/bin:/usr/bin:/usr/local/bin:/Users/xgqfrms-mm/.nvm/versions/node/v18.12.0/bin:/usr/local/opt/[email protected]/bin:/Users/xgqfrms-mm/.nvm/versions/node/v18.12.0/bin:/bin:/usr/bin:/usr/local/bin:/Users/xgqfrms-mm/.nvm/versions/node/v18.12.0/bin:/Library/Frameworks/Python.framework/Versions/3.11/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/usr/local/mysql/bin/:/usr/local/mysql/bin/

(

标签:bin,shell,mm,Linux,usr,xgqfrms,环境变量
From: https://www.cnblogs.com/xgqfrms/p/17686492.html

相关文章

  • heijin_linux驱动笔记
    驱动程序的作用:1)向linux内核注册/注销设备号,创建/删除设备节点文件(这个操作可以分离出来),供应用程序调用。(设备节点文件中的设备号要与驱动程序申请注册的设备号一致)2)将物理地址转为虚拟地址进行设备操作,将应用程序的文件调用转为对自定义的驱动函数调用;驱动的创建:配置环境变量(......
  • Linux命令(74)之unzip
    linux命令之unzip1.unzip介绍linux命令是用来解压缩名称后缀为".zip"的文件2.unzip用法unzip[参数]filenname.zipunzip常用参数参数说明-l显示压缩文件内所包含的文件-t检查备份文件是否正确无误-v显示命令执行详细过程-q不显示命令执行过程-P<密码>使用unzip的密码选项-d......
  • linux centos 安装 openssl和httpd错误。
    一、出现如下错误;ab.o:Infunction`ssl_print_cert_info':/srv/httpd-2.4.57/support/ab.c:666:undefinedreferenceto`X509_get_version'/srv/httpd-2.4.57/support/ab.c:668:undefinedreferenceto`X509_getm_notBefore'/srv/httpd-2.4.57/support/ab.c......
  • linux命令行常用快捷键
    在Linux终端中,常见的行跳转指令和技巧:使用Ctrl键加上其他按键:Ctrl+A:将光标移至当前行的开头。Ctrl+E:将光标移至当前行的末尾。Ctrl+U:删除光标位置到行首的所有内容。Ctrl+K:删除光标位置到行尾的所有内容。Ctrl+L:清屏(清除终端上的内容,不是行内跳转)。使用Ctrl键加上左......
  • Windows访问Linux下的FTP服务器(Centos和Uuntu)
    centos7.9版本1.下载FTP离线安装包:http://rpmfind.net/linux/rpm2html/search.php?query=vsftpd(x86-64)   选择最后一个 vsftpd-3.0.2-28.el7.x86_64.rpm2.检查是否已经安装了vsftprpm-qa|grepvsftpd出现提示vsftpd版本号则表示......
  • Linux系统上安装.tar.gz格式的Python源码包
    要在Linux系统上安装.tar.gz格式的Python包,您可以按照以下步骤进行操作:解压文件:使用以下命令将.tar.gz文件解压缩:tar-zxvfpackage.tar.gz这将在当前目录下创建一个包含源代码的新文件夹。进入源代码目录:使用cd命令进入解压后的源代码目录:cdpackage检查依赖库:执行以下命令检查......
  • linux中实现去重复且保持原来的顺序
     001、去重复保持原来的顺序[root@pc1test01]#lsa.txt[root@pc1test01]#cata.txt##测试数据125533774[root@pc1test01]#awk'ay[$0]++'a.txt##输出重复项,且保持原来的顺序537[root@pc1test01]#awk'!ay[$0]++'a.txt##去除......
  • linux里如何将一个文件和一个套接字绑定?
    要将一个文件和套接字绑定,你可以使用Linux中的命名管道(NamedPipe)来实现。命名管道是一种特殊类型的文件,可以用来在进程之间进行通信。你可以将命名管道作为一个文件来进行操作,同时将其连接到套接字以进行网络通信。以下是将文件内容输入到套接字的简单示例:创建一个命名管道:mkfifo......
  • Linux下安装配置maven
    一、安装以及配置maven1.下载maven安装包首先需要切换到自己需要安装的目录我自己是把配置都放到了:/home/sunny路径下cd/home/sunny下载maven安装包:wgethttps://archive.apache.org/dist/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz如果没有wget命令,需要下载:y......
  • linux安装java环境
    linux安装java环境linux安装jdk,即Linux安装java运行环境一、下载安装包[root@localhostdownload]#wgethttps://repo.huaweicloud.com/java/jdk/8u201-b09/jdk-8u201-linux-x64.tar.gz-bash:wget:未找到命令123执行wget命令下载安装包,发现wget命令未找到,那么先安装wget命令,......