标签: path

永远改变像 PATH 这样的环境变量

可能重复:
如何设置用户环境变量?(永久,不是会话)

要更改 PATH 变量的数量,我使用: export PATH=...

但是当我关闭终端时,PATH 的数量变成了最初的样子。

我想保存更改,以便在关闭终端或注销后数量将是我想要的。

我怎样才能完成这项工作?

我使用 Fedora 17,内核:3.4.3

fedora terminal path environment-variables

8
推荐指数
2
解决办法
4万
查看次数

为什么 ssh 主机回显 $PATH 并在 ssh 进入机器后打印 $PATH 会给出不同的结果?

在特定主机上,当我 ssh 进入机器并输入时,echo $PATH我得到

/home/wxy/bin64:/home/wxy/bin:/usr/kerberos/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/bin:/usr/bin
Run Code Online (Sandbox Code Playgroud)

如果我执行ssh host 'echo $PATH'我看到这个:

/usr/local/bin:/bin:/usr/bin
Run Code Online (Sandbox Code Playgroud)

为什么会出现这种差异?

如果我想使用后一个命令查看前一个结果,我该怎么办?

shell bash ssh path environment-variables

8
推荐指数
1
解决办法
2万
查看次数

查找源 shell 脚本的位置

来源的 shell 脚本是否有可能知道它的位置?我读过确定来源的shell脚本路径,但答案集中在bashtcsh,如果使用POSIX外壳失败。$0也不是解决方案并产生错误的结果

解决方案不需要 100% 可靠。路径不太可能包含硬链接或符号链接。

# sourcing the script should yield the absolute path to the script
. somedir/thescript

# within “thescript”
-> /tmp/foo/bar/somedir
Run Code Online (Sandbox Code Playgroud)

一些背景:该脚本是现有应用程序的一部分,其中包含bin与源脚本相关的已知位置(因架构而异)的目录中的数十个二进制文件。要使用该应用程序,用户需要将bin目录PATH放在 .

shell path

8
推荐指数
1
解决办法
7656
查看次数

使用 LXDE 在 Debian Wheezy 中为单个用户添加 $HOME/bin 到 PATH

在 Ubuntu 中,如果 $HOME/bin 存在,它会自动添加到 PATH,但在 Debian 中不会发生这种情况。

我如何将它永久添加到给定用户的 PATH 中,但仅限于他,而不是所有用户?我希望它也对 GUI 程序有效,而不仅仅是对终端有效。

编辑:澄清一下,我使用 LXDE,并且来自登录管理器,即不是startx. .bashrc不适用于我在终端外启动的程序。

debian path lxde

8
推荐指数
1
解决办法
2万
查看次数

如何为 debian 的所有用户的非登录 shell 添加系统 $PATH 的路径

在 中安装了一些程序后/opt/xxx/bin,我想为所有用户的非登录 shell添加/opt/xxx/bin到系统$PATH中。我该怎么办?

debian path environment-variables

7
推荐指数
1
解决办法
2万
查看次数

为什么 TMux 无法正确初始化 oh-my-zsh?

每当我打开一个新的 TMux 会话时,我都会看到以下内容:

/home/foo/.oh-my-zsh/oh-my-zsh.sh:3: command not found: env
env_default:1: command not found: env
env_default:1: command not found: grep
env_default:1: command not found: env
env_default:1: command not found: grep
Run Code Online (Sandbox Code Playgroud)

我已经删除了我的.tmux.conf文件,以下是文件中的行oh-my-zsh.sh

  1 # Check for updates on initial load...                                                                                                                     
  2 if [ "$DISABLE_AUTO_UPDATE" != "true" ]; then
  3   env ZSH=$ZSH DISABLE_UPDATE_PROMPT=$DISABLE_UPDATE_PROMPT zsh -f $ZSH/tools/check_for_upgrade.sh
  4 fi
  5 
Run Code Online (Sandbox Code Playgroud)

常规终端会话没有这个问题...但是,由于某种原因,这确实...好吧,我应该说,它不会显示这些错误。可能还有一个我不知道的问题。现在想起来,oh-my-zsh 要求更新自己已经有一段时间了。

另外,Vim 似乎.vimrc也没有在 Tmux 中加载...这是 PATH 问题吗?

对这里可能出什么问题有什么想法吗?

编辑 这是我的.tmux.conf

# remap prefix from 'C-b' to 'C-a' …
Run Code Online (Sandbox Code Playgroud)

terminal tmux path oh-my-zsh

7
推荐指数
1
解决办法
5333
查看次数

anaconda Qt 与系统 Qt

蟒蛇蟒蛇框架包括它自己的Qt的共享库,其他中。由于框架的性质,它必须首先出现在PATH环境变量中,因此它的 Python 二进制文件优先于系统的二进制文件。

当人们想将系统的 Qt 共享库用于与 python 无关的项目时,这会产生冲突。编译 Qt 项目时,它将使用qmake来自 anaconda的二进制文件及其共享库。

可以qmake通过将其路径添加到PATH变量来强制使用二进制文件,但这不适用于共享库。我尝试更改,LD_LIBRARY_PATH但它一直选择 anaconda 的。

我发现的“解决方案”:

  1. LD_PRELOAD:强制使用 Qt 共享库的 .so 使用系统库,方法是将它们一一添加到 LD_PRELOAD 环境变量中。这最终变得乏味和耗时。
  2. 与 Anaconda 混淆:按照此处的建议从 anaconda 中删除与 Qt 相关的所有内容。如果你想在 python 中开发 GUI 应用程序,这在未来看起来太脏而且容易出错。
  3. Anaconda Qt > System Qt:使用anaconda Qt 而不是系统Qt。这似乎是错误的职责分配。我与 python 无关的 Qt 项目不应该与我的 anaconda 安装耦合。它们应该彼此独立。
  4. 更改作案手法:而不必预先考虑到蟒蛇路径我所有的炮弹的PATH变量,有一个容易获得的脚本,它的预规划每当我需要它,建议在这里。问题是我习惯于让我的 python 二进制文件随时可用,并且当我在不知不觉中使用系统的 python 二进制文件时很容易出错。
  5. 移动 anaconda:临时移动 anaconda 文件夹,使其在路径中找不到。这是最快的,但在我使用完系统 Qt 库后,它太依赖我的记忆来修复所有问题。 …

path python dynamic-linking qt shared-library

7
推荐指数
1
解决办法
2388
查看次数

如何在 ash 中保留环境变量,Almquist shell?

如何让 ash 在启动时加载一些环境变量?

只需将它们放在 /etc/profile 中

/etc/profile 仅为登录 shell 读取;使用 docker(使用 alpine>busybox>ash)时经常弹出的非登录 shell 呢?

如果在环境变量 ENV 中指定,则非登录 shell 将读取文件

太好了,我如何确保设置了 ENV?它本身是一个环境变量,默认为空白。

本质上,我正在寻找一些保证 ash 可以读取的总体配置文件。对 busybox 使用的 ash 版本的偏好(BusyBox v1.28.4,如果你想准确的话)。这样的事情存在吗?是的,我知道 docker 中的 ENV 指令,它可用于在构建 docker 镜像时设置 $ENV;我仍然想知道这在 docker 之外是否可行。

我已经阅读了thisthis以试图理解。

作为旁注,谁能解​​释这种在高山的奇怪行为?

$docker run -it alpine
/ # echo $CHARSET #proof /etc/profile has not run

/ # echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
/ # env -i sh -c 'echo $PATH'
/sbin:/usr/sbin:/bin:/usr/bin
/ # echo $ENV

/ #
Run Code Online (Sandbox Code Playgroud)

当我们可以显示 /etc/profile 没有时,与为新 …

path environment-variables profile ash docker

7
推荐指数
1
解决办法
5245
查看次数

bash:关闭:找不到命令


我安装了最新版本的 Debian (netinstall)。
我遇到的问题是,终端不知道shutdownreboot等命令。
当我whereis shutdown这样做时,它告诉我它在/usr/sbin.

我通过写入写入的位置/usr/sbin尝试在不同的安装上修复了此问题。 但这一次没有成功。/etc/profile$PATH


我查看了这个: https: //wiki.debian.org/EnvironmentVariables,但是这些文件不存在或者我不知道在哪里放置路径。
而且做的事情export PATH=$PATH:usr/sbin不是永久的,重启后就消失了,所以这也是垃圾。

编辑:等等,也许我必须更改 PATH /etc/environment?!
当我再次尝试 Debian 时,我必须对此进行测试。

debian path environment-variables

7
推荐指数
1
解决办法
6万
查看次数

将路径中每次出现的(可能重叠的)“/./”替换为“/”是否“安全”?

在符合 POSIX 标准的系统中,是否出现(可能重叠)/./已被替换的路径/保证通向与原始路径相同的目标?

例子:

#!/bin/bash

shopt -s extglob

some_command -- "${@//\/+(.\/)//}"
Run Code Online (Sandbox Code Playgroud)

更新:

鉴于评论,它不等同,所以我将更新问题:

在符合 POSIX 标准的系统中,是否出现的路径(可能重叠)/././已被替换为/./保证导致与原始路径相同的目标?

shell path

7
推荐指数
1
解决办法
521
查看次数