我下载了一个命令行应用程序,我想把它放在某个地方,我可以从命令行运行它,而不必显式键入路径。
用于此类事情的常规路径是什么?/usr/bin
? 是否有不同的选项,一种是我想要所有用户都可以使用,另一种是我只想要特定用户(例如我的管理员帐户)使用?
或者我应该把它放在Applications目录下它自己的目录中,并将其添加到路径中?如果是这样,哪个文件控制路径的设置位置?
多年来,在类 UNIX 系统上(与我最相关的是 Linux),我注意到.
(当前目录)在$PATH
默认情况下永远不会出现。为什么是这样?
我记得几年前读到这是一个安全问题,但我读过的文章并没有解释到底是什么问题。是不是因为有人可能会离开的恶意版本,ls
或cp
在一个目录下,我最终会不自觉地运行它呢?
我目前将我的 bashPS1
设置为这样的:
PS1="\[\`if [[ \$? = "0" ]]; then echo '\e[32m\h\e[0m'; else echo '\e[31m\h\e[0m' ; fi\`:\w\n\$ "
Run Code Online (Sandbox Code Playgroud)
我怎样才能让它显示绝对路径而不是相对路径(例如/home/dave/dir
而不是~/dir
)?
我有一个文件夹方案,如(高度简化的版本):
New Files
>Tools
>Scripts
Tested Files
>Tools
>Scripts
Run Code Online (Sandbox Code Playgroud)
...我想在从“新文件”子文件夹到“测试文件”子文件夹的每个文件夹中都有一个快捷方式。但是这个文件夹可能会不时移动,这会破坏所说的快捷方式。
有没有办法为每个文件夹创建一个相对快捷方式?我记得在 HTML 中执行此操作,您可以在其中设置路径,类似于.../Files
返回父级然后进入新文件夹的内容,但我不确定 Windows 快捷方式是否支持此功能?
PS:类似相对快捷方式的情况,当目标是文件时,在/sf/ask/81868951/中处理文件夹-是。在本例中,目标是一个文件夹。
当一个文件被执行时,Unix 如何搜索它?如果PATH中有多个同名的可执行文件,首选哪一个?执行文件时搜索中是否包含当前目录?
假设executable.sh
当前目录中有一个带有名称的文件。如果它被执行$ executed
并且.
不是 的一部分,那会起作用PATH
吗?
我正在制作一个shell脚本来打包一些文件。我正在压缩这样的目录:
zip -r /Users/me/development/something/out.zip /Users/me/development/something/folder/
Run Code Online (Sandbox Code Playgroud)
问题是生成的 out.zip 存档中包含整个文件路径。也就是说,解压缩后,它将包含整个“/Users/me/development/anotherthing/”路径。将目录放入存档时是否可以避免这些深层路径?
当我从目标目录中运行 zip 时,我没有这个问题。
zip -r out.zip ./folder/
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我没有得到所有的垃圾。但是,有问题的脚本将从任何地方调用。
FWIW,我在 Mac OS X 10.6 上使用 bash。
可能的重复:
为什么我能够执行不在我的 PATH 环境变量中的程序?
我正在教一位同事有关 %PATH% 的知识,发现如果我运行“Firefox”,它可以工作,但很惊讶地发现它不在我的路径中。
我错过了什么?
如果我发出
sudo my-command
Run Code Online (Sandbox Code Playgroud)
Linux 如何寻找它my-command
?
该my-command
是我的道路。我可以毫无问题地调用它。但是,当我用 调用它时sudo
,我会得到command not found
. 如何克服它?
编辑:那个"Possible duplicate"选择的答案是错误的,好吧,至少不是重点。来自terdon的这个答案是正确的。
我刚刚在 Mac 上的 bash 上安装了 Homebrew,现在我需要这样做:
安装 Homebrew 后,在 PATH 环境变量的顶部插入 Homebrew 目录。您可以通过在
~/.bashrc
文件底部添加以下行来完成此 操作。
export PATH=/usr/local/bin:$PATH
“ls -a”显示.bash_profile
和.bashrc.save
。
我是否将此行添加到.bash_profile
?如何?
对不起。我对一切都很陌生。