首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Bash不会将导出变量和别名保留在当前会话中。你知道如何开始调查这个问题吗?

要调查Bash不会将导出变量和别名保留在当前会话中的问题,可以按照以下步骤进行:

  1. 确认环境:首先,确认你正在使用的操作系统是否是Linux或类Unix系统,因为Bash是这些系统的默认Shell。如果你使用的是其他操作系统,如Windows,那么Bash可能不是默认的Shell,或者可能需要额外的配置。
  2. 理解导出变量和别名:了解导出变量和别名的概念。导出变量是指将一个变量标记为可供子进程继承的环境变量,而别名是指将一个命令或命令序列关联到一个简短的名称上。
  3. 检查当前会话:在Bash中,可以使用echo $SHELL命令来确认当前使用的Shell是否为Bash。如果不是Bash,可以尝试切换到Bash Shell。
  4. 创建导出变量和别名:尝试在当前会话中创建一个导出变量和一个别名,并验证它们是否在当前会话中保留。例如,可以使用以下命令创建一个导出变量和一个别名:
    • 导出变量:export MY_VAR="Hello World"
    • 别名:alias my_alias="ls -l"
  • 验证导出变量和别名:使用echo $MY_VAR命令验证导出变量是否在当前会话中保留。使用my_alias命令验证别名是否在当前会话中保留。如果它们没有保留,那么可能存在某些配置或环境问题。
  • 检查配置文件:Bash在启动时会读取一些配置文件,如~/.bashrc~/.bash_profile。这些文件可以包含自定义的配置和设置。检查这些文件是否存在,并确保其中没有覆盖或重置导出变量和别名的命令。
  • 检查Shell选项:Bash有一些选项可以控制其行为。使用set -o命令可以查看当前的Shell选项设置。特别关注exportalias选项,确保它们没有被禁用。
  • 检查Shell版本:Bash有多个版本,不同版本可能会有一些差异。使用bash --version命令查看当前Bash的版本号,并在互联网上搜索该版本的特定问题或已知问题。
  • 查阅文档和资源:查阅Bash的官方文档、用户手册、论坛或社区资源,寻找关于导出变量和别名在当前会话中不保留的相关信息。这些资源可能提供有关已知问题、解决方案或工作流程的有用信息。

总之,调查Bash不会将导出变量和别名保留在当前会话中的问题需要对Bash的配置、环境、选项和版本进行仔细检查,并参考相关文档和资源来获取更多信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

理解 LinuxUnix 登录脚本

知道有没有遇到过这样的场景,当你需要设置一个环境变量,或者运行一个程序设置的shell或桌面环境,但是不知道在哪里是最方便设置的位置。...Debian的默认.bashrc会查找.bash_alias,如果这个文件存在的话,会将它作为别名配置来源。所以可以在这个文件随意保存所有的Bash别名。...如果仅仅是为了个人登录会话时的一个环境变量,且它只关心X会话可以将它添加到~/.xsessionrc。...可以把它添加到.profile,并且从.xessionrc作为.profile的来源。但是之后,当你的X服务没有在运行的时候,就不需要导出环境变量。...希望你现在可以更好地了解了登录注销脚本在Debian GNU/Linux系统上的工作原理。如果已经为这些登录注销脚本创建、或者遇到任何特别有趣或有创新的用途,请在评论告诉我们如何做到的。

1.1K10

Bash 环境变量的那些事

bash 变量,尤其是讨厌的环境变量,已经是一个老生常谈的话题了。我们也更应该对它有一个详细的了解,让它为我们所用。 下面就打开终端,开始吧。...有一个常见的问题:如果希望弄乱系统的 bin/ 目录,同时也希望你自己的文件被其它人运行,还不想每次运行的时候都要输入完整的路径,那么,可以在你的主目录创建一个独立的 bin/ 目录: mkdir...在 bash 运行程序的时候会生成一个子 shell,这个子 shell 执行原程序的父 shell 并不是完全一样的,只是继承了父 shell 的部分内容,而且默认是继承父 shell 变量的...R2D2 & C3P0 这一个特性可以有效避免配置过程中产生混乱,同时也会导致一个问题:如果程序需要设置变量,但却由于子 shell 的原因无法正常访问到这个变量,该如何解决呢?...如果要取消导出一个变量,可以加上 -n 参数: export -n robots 接下来 了解过环境变量的知识之后,已经到达了可能对自己和他人造成危险的水平,接下来就需要了解如何通过使用别名来让环境变得更安全

71540
  • 《Linux命令行与shell脚本编程大全》 第六章环境变量

    6.1 什么是环境变量bash shell用一个叫环境变量(environment variable)的特性来存储有关shell会话工作环境的信息。...在bash shell,分两类: 全局变量:对于shell会话所有生成的子shell都是可见的 局部变量:只对创建的它们的shell可见 6.1.1全局环境变量 查看全局变量,  $env    $...只在当前子shell有效。 6.3删除环境变量 $unset my_variable 子shell删除了,无法反应到父shell中去。 6.4 默认的shell环境变量。...我的电脑没有BASH_ENV值。是如何处理的呢?通过继承父shell的导出过的变量。 比如:父shell是登录shell。...比如之前的给命令取别名,如果放在这里就可以永远使用了。 6.7 数组变量。 环境变量可以是数组(从0开始)。比如: ? 这个用的很少。

    1K100

    Linux下.bashrc文件探索~

    知道为什么没有东西~ 在profile添加环境变量 一般建议在/etc/profile文件添加环境变量,因为在这个文件添加的设置会对所有用户起作用。...这个文件同样也可以用于配置环境变量启动程序,但只针对单个用户有效。 profile文件类似,bash_profile也会在用户登录(login)时生效,也可以用于设置环境变理。....bashrc 当你登入shell时执行 请注意后两个的区别:’.bash_profile’只在会话开始时被读取一次,而’.bashrc’则每次打开新的终端时,都要被读取。...这些文件是每一位用户对终端功能属性设置,修改.bashrc可以改变环境变量PATH、别名alias提示符。具体如何修改会在下面做介绍。...如何才能完成理想的设置呢?对于健忘的初学者来讲,默认设定有些不友好,因为提示符只显示当前目录的最后一部分。如果看到象这样的提示符 当然可以。

    12.5K20

    终极 Shell-MacTalk-池建强的随想录Customize to your needs…

    上次在「如何学习一门编程语言」里提到了 Shell,也有读者问到 Shell 的问题,所以这次给大家说说 Shell 的事。...to your needs… 可以在此处定义自己的环境变量别名,当然,oh my zsh 在安装时已经自动读取当前的环境变量并进行了设置,可以继续追加其他环境变量。...设置完环境变量别名之后,基本上就可以用了,如果是个主题控,还可以玩玩 zsh 的主题。...退出终端会话重新登录,开始感受 zsh 的训疾如风! 使用 zsh 1、兼容 bash,原来使用 bash 的兄弟切换过来毫无压力,该咋用咋用。...6、目录浏览跳转:输入 d,即可列出这个会话里访问的目录列表,输入列表前的序号,即可直接跳转。 7、在当前目录下输入 ..

    1.8K80

    bashshell的入门

    这就与 bash 的 HISTFILESIZE 这个变量设定值有关了!...这样会 有 ~/.bash_history 的写入问题?想一想,因为这些 bash 在同时以 root 的身份登入, 因此所有的 bash 都有自己的 1000 笔记录在内存。...shell 在开始介绍 bash 的配置文件前,我们一定要先知道的就是 login shell 与 non-login shell!...在 CentOS 7.x 这个目录底 下的文件规范了 bash 操作接口的颜色、 语系、ll 与 ls 指令的命令别名、vi 的命令别名、which 的命令别名等等。... 过,也可以将一些备份或者是其他认为重要的工作写在这个文件 (例如清空暂存盘), 那么 当你离开 Linux 的时候,就可以解决一些烦人的事情 7.4 终端机的环境设定:stty,set 事实上

    94820

    写给前端同学的终端修炼手册

    如果上述的操作遇到不可解决的问题,我们可以使用 Git Bash[5],它允许通过模拟在 Windows 上运行 Bash。...即使在许多现代shell语言如Zsh不再使用$作为提示符字符,这种符号的意义仍然保留了下来。 $ 还需要知道的知识点 在 Bash Shell ,$ 符号有多个作用,具体作用取决于上下文。...这将结束当前会话。如果 ctrl + c 因某种原因不起作用,ctrl + d 可能会起作用。 最后,如果所有方法都失败了,可以关闭当前的标签页/窗口。快捷键取决于操作系统终端应用程序。...循环切换命令 许多终端应用程序会记录我们在当前会话运行的每个命令。我们可以使用up键循环浏览以前的命令。 如果我知道最近运行过某个命令,通常按几次up键比重新输入要快得多!...关于如何设置别名,我们可以参考下面的链接,这里就不展示说明了。 Bash 别名[8] Zsh 别名[9] 快速打开GUI模式 有时候,我们想通过在终端快速打开GUI模式。

    12310

    linux怎么查看系统环境变量路径,Linux系统的环境变量如何设置与查看

    今天小编要跟大家分享的文章是关于Linux系统的环境变量如何设置与查看。大家都知道,在 Linux 系统,有环境变量 Shell 变量这两种变量。...而 Shell 变量仅在当前 Shell 可用,可以用来存储当前用户的 ID 等信息。 那么什么是环境变量,什么是 Shell 变量,该如何设置查看这两种变量呢?下面来小编一起看一看吧!...先从在当前会话定义一个 Shell 变量开始: $ MYVAR=lxlinux 可以用 echo $MYVAR 来验证变量是否已设置: echo MYVAR lxlinux 使用 printenv...如果要将新的环境变量加载到当前的 Shell 会话,可以使用source命令: $ source ~/.bashrc 如果你想要设置环境变量就可以考虑将其添加到 /etc/profile 、/etc...结论 以上就是小编今天为大家分享的关于Linux系统的环境变量如何设置与查看的文章,在本文章,我们了解了一些常见的环境变量 Shell 变量,也学习了如何设置查看这些变量,其实这些变量一直都在我们的

    20.7K20

    日拱一卒,量大管饱,MIT手把手教你配环境

    tmux当中的结构如下; 会话 - 每个会话都是一个独立的工作区,其中包含一个或多个窗口 tmux 开始一个新的会话 tmux new -s NAME 以指定名称开始一个新的会话 tmux ls 列出当前所有会话...在 tmux 输入d ,将当前会话分离 tmux a 重新连接最后一个会话。...比如bash别名语法如下: 注意,在等号左右没有空格,因为alias是一个shell命令,它只接收一个参数。...根据shell的不同,是否登录或者是否以交互的形式开始这个过程会有很大的区别并且非常复杂。...在这两个文件当中,可以引入一些你想要在启动的时候执行的命令,比如我们刚才介绍的别名或者是配置一些PATH环境变量

    1.4K20

    第十二章 : shell 环境

    set - 设置 shell 选项 export — 导出环境变量,让随后执行的程序知道。...alias - 创建命令别名 什么存储在环境变量?...它们是环境变量 shell 变量。Shell 变量bash 存放的少量数据。剩下的都是环境变量。除了变量,shell 也存储了一些可编程的数据,即别名 shell 函数。...随后我们可以看到,这个变量内容可以全面地定制。 PWD 当前工作目录。 TERM 终端类型名。类 Unix 的系统支持许多终端协议;这个变量设置的终端仿真器所用的协议。 TZ 指定所在的时区。...Shell 脚本 bash 启动文件都使用 “#” 符号来开始注释。其它配置文件可能使用其它的符号。大多数配置文件都有注释。把它们作为指南。

    41520

    The Missing Semester of Your CS Education

    Bash的字符串通过' "分隔符来定义,但是它们的含义并不相同。以'定义的字符串为原义字符串,其中的变量不会被转义,而 "定义的字符串会将变量值进行替换。...更通用的做法,可以按照最近的使用时间列出文件? find ....它们分别表示在前台继续或在后台继续,jobs 命令会列出当前终端会话尚未完成的全部任务。...pgrep相当于更方便的过滤出你想要的进程pid 如果您希望某个进程结束后再开始另外一个进程, 应该如何实现呢? 在这个练习,我们使用 sleep 60 & 作为先执行的程序。...这样当我们创建新的提交的时候,我们就可以知道它的相对位置(如何设置它的“父辈”)。在 Git ,我们当前的位置有一个特殊的索引,它就是 “HEAD”。

    1.9K21

    深入了解定制 Bash | Linux 中国

    接收更复杂的值的 Bash 选项(如 HISTTIMEFORMAT),常常通过赋值给环境变量来达到配置目的。以下演示如何以 shell 选项环境变量定制 Bash。...可以随意使用该存储库的例子进行学习体验。 总结 既然已经掌握了一些 Bash 的工作原理,那就可以轻松修改Bash 点文件,满足自己的需求和习惯。...终端模拟器也可以作为登录会话启动,有些人总喜欢用登录环境。使用终端电脑的姿势,取决于如何修改(或不修改)的点文件。 如果很好奇自己的命令行处于什么会话状态,使用下面这个脚本来判断一下。 #!...$- 在 Bash 是一个变量,如果是交互式 shell,它会包含字母 i。此外,可以直接输出 $- 变量然后检查它的输出是否含有 i 标记。...请注意,确保的本地手册页记录了当前运行的 Bash 版本的特性,因为在网上找到的信息有时可能太老(过时了)或太新(的系统还没有安装)。

    1.1K30

    在Linux中使用export命令的具体方式

    用户可以简单地使用export指定变量并将它们添加到他们的.profile文件。因此,每次用户登录时,环境都将按照这种方式配置。...Shell的export变量 export的-p标志将打印出当前Linux shell中所有导出变量的列表。...linuxmi@linuxmi:~$ export -p 您可以使用这个命令来排除正在运行的shell会话的各种配置问题。...只需在文件末尾添加自定义导出即可。这样,如果愿意,总是可以找到并删除它们。 总结 Linux export命令是配置环境参数的一个有用工具。...此外,这个命令非常容易掌握,因为这个命令只有几种不同的选项。我们概述了一些示例,以帮助您更好地理解这个工具。希望从现在开始,您可以开始使用export来定制环境。如果道这个简单的指南有什么看法。

    1.9K30

    写给前端程序员的命令行入门

    ❝再继续之前,我应该警告:终端可能相当宽容。rm命令没有 "确定?"的确认提示。也没有任何撤销操作。当你使用rm删除文件,它不会进入回收站/垃圾桶。它被永久地、不可逆转地删除。...而且,对于在MacOS上使用VS Code的人,需要做一些工作[8]来启用code命令。 重新安装依赖 知道对任何电脑问题的标准建议是重启?...循环切换命令 许多终端程序会记录下在一个特定会话中所运行的每一条命令。可以使用上键循环查看先前的命令。 如果我明确知道最近运行过某条命令,通常按几次上键会比从头开始输入更快。...它应该能在MacOS、WindowsLinux工作。 这个命令/快捷键是在Bash/Zsh实现的。它是shell环境的一部分。这意味着它只在shell空闲时起作用。...如果这个命令又长又复杂,每次都要完整的敲出来,而且要逐字逐句地记住,这就非常烦人。 BashZsh都支持别名,这是一种创建自定义快捷键的方法。

    1.1K30

    linux下.bashrc文件修改生效

    .bash_logout 当你退出时执行的命令 .bash_profile 当你登入shell时执行 .bashrc 当你登入shell时执行 请注意后两个的区别:’.bash_profile’只在会话开始时被读取一次...这些文件是每一位用户对终端功能属性设置,修改.bashrc可以改变环境变量PATH、别名alias提示符。具体如何修改会在下面做介绍。...2) PATH环境变量修改 PATH变量决定了shell 将到哪些目录寻找命令或程序。如果要执行的命令的目录在 $PATH ,您就不必输入这个命令的完整路径,直接输入命令就可以了。...因为先前定义的是一个局部环境变量(仅限于当前的终端)。...可以通过 $PS1 变量来设置提示符。 命令“echo $PS1”,将显示当前的设定。其中可用字符的含义在 man bash 的’PROMPTING’部分有说明。 如何才能完成理想的设置呢?

    12.3K30

    Shell脚本——内置命令

    例如,用于进入或者切换目录的 cd 命令,虽然我们一直在使用它,但如果不加以注意很难意识到它与普通命令的性质是不一样的:该命令并不是某个外部文件,只要在 Shell 就一定可以运行这个命令。...还记得系统变量 PATH? PATH 变量包含的目录几乎聚集了系统绝大多数的可执行命令,它们都是外部命令。...而执行内建命令相当于调用当前 Shell 进程的一个函数。 二、alisa命令 alisa 用来给命令创建一个别名。若直接输入该命令且不带任何参数,则列出当前 Shell 进程中使用了哪些别名。...optionsvariables都是可选的,如果没有提供变量名,那么读取的数据将存放到环境变量 REPLY 。...从 STDIN 读取一行数据并将其赋给一个不可修改的变量 return 强制函数以某个值退出,这个值可以被调用脚本提取 set 设置并显示环境变量的值 shell 属性 shift 将位置参数依次向下降一个位置

    2.1K10

    一个cron的环境问题-二更

    背景前文说到cron遇到的一个环境变量问题,这期再深究一下。环境文件的类型全局配置文件:这些文件通常位于 /etc 目录下,例如 /etc/profile /etc/bash.bashrc。...通过在 ~/.bash_profile 中加载 ~/.bashrc 文件,可以确保登录 Shell 会话也能使用 ~/.bashrc 文件的配置(如别名函数)。...例如,当你在终端模拟器打开一个新的终端会话,或者通过 SSH 登录到远程系统时,就会启动这种类型的 shell。...如何使用在cron执行的bash命令,增加一个source ~/.bashrc即可。那么,可以在系统文件增加,比如/etc/profile增加我们需要的环境变量?理论上可以,实际上不行。...一个业务模块需要的环境变量,放到系统文件不合适。这里放的都是系统级别的,比如jdk、maven配置等。2、试过了,不起作用ORZ。问题在没有进行发布方式更改的时候,为什么cron能顺利执行?

    8910

    日拱一卒,麻省理工教你CS基础,那些酷炫无比的命令行工具

    通常,shell脚本会导入它们的函数定义 Shell Tools 寻找如何使用命令 现在,可能想要知道,怎么样知道命令那些flag的用法,比如ls -l, mv -i, mkdir -p。...针对这个场景,可以创建一些别名,但shell哲学还可以探索替代品。记住,shell中最好的一个属性是,它仅仅是调用程序的,所以可以找到或者是干脆自己针对某一个问题写一个替代品。...注意,find/fd一样,重要的是知道这些问题怎么样快速通过合适的工具解决,而这些工具本身并没有那么重要。...另外,可以根据最近访问时间列出所有的文件? 答案 不知道大家有没有感觉到,这一次练习的难度明显提升了很多。...由于当函数执行结束,函数变量即销毁,所以我们要把它export成全局变量。 在polo函数当中,直接cd到导出的全局变量即可。

    1.6K40

    Linux 命令行小技巧-持续更新

    export HISTCONTROL=ignorespace ---- 禁用当前会话的所有历史记录 如果你想禁用某个会话所有历史,可以在开始命令行工作前简单地清除环境变量 HISTSIZE 的值即可。...执行下面的命令来清除其值: export HISTSIZE=0 HISTSIZE 表示对于 bash 会话其历史列表可以保存命令的个数(行数)。...应该避免这个很“笨重”的操作。相反,可以使用一个简单的方法解决这个问题: # > /path-to-file/huge_file.log 当然需要根据实际情况替换路径和文件名。...当我们需要调度一个任务时,我们会使用Cron,但知道我们在不使用Cron的情况也可以调度一个在将来时间运行的任务?...---- 如何不使用clear命令清空终端的内容 如何清空终端的内容?可能会认为这是一个傻问题。好吧,大家都清楚可以使用clear命令。

    89240

    推荐几个 LinuxMac 中方便的 Bash 别名

    有多少次在命令行上输入一个长命令,并希望有一种方法可以保存它以供日后使用?这就是 Bash 别名派上用场的地方。它们允许将长而神秘的命令压缩为易于记忆使用的东西。需要一些例子来帮助你入门?...没问题! 要使用你创建的 Bash 别名需要将其添加到 .bash_profile ,该文件位于的家目录。请注意,此文件是隐藏的,并只能从命令行访问。...alias untar='tar -zxvf ' 2、想要下载的东西,但如果出现问题可以恢复?...我们希望这样。相反,让我们将其限制在五个 ping。 alias ping='ping -c 5' 6、在任何你想要的文件夹启动 Web 服务器。...alias speed='speedtest-cli --server 2406 --simple' 8、有多少次需要知道的外部 IP 地址,但是不知道如何获取?我也是。

    28710
    领券