我想导出LD_LIBRARY_PATH到系统服务和所有用户。系统服务在登录前运行,因此.bashrc不适用。
如何实现这一目标?
我有很长的export PATH=A:B:C ...。我可以制作多行以如下更有条理吗?
export PATH = A:
B:
C:
Run Code Online (Sandbox Code Playgroud) 我已安装node.js在自定义位置并将该位置添加到$PATHin.profile文件中。
$ node --version
v0.6.2
$ which node
$ echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:~/Unix/homebrew/bin
$ cat ~/.profile
export PATH="$PATH:~/Unix/homebrew/bin"
Run Code Online (Sandbox Code Playgroud)
Node.js 本身运行良好。问题是它没有按which命令列出。所以我npm现在无法安装。因为npm安装找不到node.js. 我怎样才能使node发现的二进制文件which?
可能的重复:在源代码中将重复项
保留在 $PATH 之外
我的一些脚本位于$HOME/mydir. 不幸的是,如果这个目录不是PATH.
我想创建一个小脚本,检查是否$HOME/mydir是PATH. 如果不是,PATH则应使用它和 进行更新EXPORTED。
我的问题是:我可以使用哪个命令来检查是否$HOME/mydir属于PATH? 谢谢。
解决方案
为了记录,我实现了以下内容:
echo "Before: $PATH"
echo $PATH | grep -q "$HOME/scripts"
if [ $? -eq 0 ]; then
PATH=$PATH:$HOME/scripts
export PATH
else
export PATH
fi
echo ""
echo "After: $PATH"
Run Code Online (Sandbox Code Playgroud) 我是 Unix 的新手,在为我的论文安装程序的过程中,我必须使用 PATH 来处理基本的 Unix 命令,例如ls. 每次我输入ls我想要列出文件的目录名称时,它都会显示为:
-bash: ls: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我能做些什么来解决这个问题?非常感谢任何帮助!
在设置它以便我可以从 bash 执行 Sublime Text 时,我通过不同的教程发现了两种方法:
方法 1) 从/usr/local/bin/sublSublime 的 bin 目录创建一个符号链接:
sudo ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/subl
这利用/usr/local/bin了我的 PATH 变量中已经存在的优势。
...或者...
方法 2) 更新您的 PATH 以包含 Sublime 的 bin 文件夹的路径:
export PATH="/Applications/Sublime Text.app/Contents/SharedSupport/bin/":$PATH
两者都有效,但我想知道一种方法是否比另一种更好,或者它们是否同样好?
我可能会看到的唯一优势是方法 1,如果在 PATH 目录中使用较少的目录是否有益(寻找可执行文件的速度/性能?)。
我有一个 sh 文件,我希望能够随时从终端打开它。我想在终端中输入“studio”,并打开 android studio
我记得ln -s曾经这样做过,但我忘记了并且已经浪费了很多时间在网上搜索。
另外,创建的符号链接保存在哪个目录中?
这是我努力的语法,找不到命令
ricardo@debian:~$ ln -s /opt/android-studio/bin/studio.sh studio
ricardo@debian:~$ studio
bash: studio: command not found
Run Code Online (Sandbox Code Playgroud) 我需要PATH使用 shell 脚本找到给定程序的路径。路径必须是程序的实际完整路径,稍后可以将其传递给exec*不搜索PATH自身的函数之一,例如execv.
有一些程序,例如kill,它们可以同时作为实际程序和内置 shell 使用。如果是这种情况,我需要实际程序的完整路径。
有几个实用程序可以PATH在第 2.9.1.1 节,POSIX 标准的命令搜索和执行中指定的程序上找到程序。
有which,它不是任何标准的一部分。它可以是某些系统上的常规程序,而某些 shell 则提供它是内置程序。它似乎在大多数系统和 shell 上都可用,但是具有内置版本的 shell 也只返回内置版本的名称而不是可执行文件的路径。此外,它没有以任何方式标准化,可能会返回任何输出并采用不同的选项。
bash# which kill
/usr/bin/kill
dash# which kill
/usr/bin/kill
fish# which kill
/usr/bin/kill
mksh# which kill
/usr/bin/kill
tcsh# which kill
kill: shell built-in command.
zsh# which kill
kill: shell built-in command
Run Code Online (Sandbox Code Playgroud)
有whence,它是几个 shell 的内置函数。但在许多外壳上不可用。它也将返回内置程序的名称而不是程序路径。-p可以将A传递给 wherece 以更改此行为。
bash# whence kill
bash: whence: command not found …Run Code Online (Sandbox Code Playgroud) command bash 中的命令:运行带有参数的命令,忽略任何名为 command 的 shell 函数。
' -p ' 选项意味着使用$PATH的默认值来保证找到所有标准实用程序。
这里提到的默认 PATH 究竟是什么?当我定义时export PATH="/home/ozgur/":$PATH,我不是在默认值上添加一个新的 PATH 路径吗?
## For Example
~$ export PATH="/home/ozgur/":$PATH
~$ echo $PATH
/home/ozgur/:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
~$ script.sh
hey, i am working !
~$ command -p script.sh
hey, i am working !
Run Code Online (Sandbox Code Playgroud)
当我使用命令的“ -p ”选项时command,我希望它忽略我定义的新 PATH 路径,但这并没有发生。我到底错过了什么?什么是使用“点-p ”选项,如果用户的PATH路径变化并不与“覆盖-p ”选项?
我想aria2c通过将其复制到手动安装/usr/local/bin,因为我使用 apt 安装了 aria2c/usr/bin
如果我输入其中哪一个将被执行aria2c?
path ×10
bash ×4
shell ×4
command-line ×2
symlink ×2
command ×1
executable ×1
home ×1
libraries ×1
ls ×1
profile ×1
shell-script ×1
string ×1
which ×1