我bin在我的主文件夹中创建了一个目录,用于放置所有脚本。然后在我的 .bashrc 中我添加了以下内容:
export PATH=$PATH:/home/myusername/bin
Run Code Online (Sandbox Code Playgroud)
所以我可以从任何地方访问我放在那里的文件。但是有些脚本需要以 root 身份执行。所以我想,我可以将我的 .bashrc 符号链接为 root,(如 /root/.bashrc 指向 /home/myusername/.bashrc,不知道这是否聪明)所以当我需要以 root 身份运行脚本时我只能这样做:
sudo program_that_requires_root
Run Code Online (Sandbox Code Playgroud)
但后来我得到一个:
sudo: program_that_requires_root: command not found
Run Code Online (Sandbox Code Playgroud)
如果我以 root 身份登录并执行该程序,它可以正常工作。那么完成我想要的正确方法是什么?
运行依赖于 python2.x 但在 python3.x 别名为 python 的系统上的脚本的正确方法是什么。
解决方案应考虑以下事项:
一种解决方案是临时创建别名并在完整路径的开头设置 Python2 的位置。
处理此问题的正确 (*nix) 方法是什么?
我正在使用运行 Suse Enterprise 11.1 的服务器。我需要为所有用户和所有 shell 添加一些位置到路径中。有没有一种很好且简单的方法来做到这一点,或者我是否必须修改每个 shell 的配置文件。
另外我不知道这是否是 suse 的默认配置,或者是否有人把服务器搞砸了,但是没有 /etc/profile 也没有 /etc/shellnameprofile.local
我该如何存档?请帮忙。
我已经下载了这个名为 pyAES.py 的脚本,并将它放在我的 Linux 桌面目录中的文件夹名称代码中,
根据这个例子, http://brandon.sternefamily.net/2007/06/aes-tutorial-python-implementation/
当我打字时,
./pyAES.py -e testfile.txt -o testfile_encrypted.txt
Run Code Online (Sandbox Code Playgroud)
应该执行文件 pyAES.py。但我收到此错误,
pi@raspberrypi ~/Desktop/Codes $ pyAES.py
-bash: pyAES.py: command not found
Run Code Online (Sandbox Code Playgroud)
ls -l命令的输出是,
pi@raspberrypi ~/Desktop/Codes $ ls -l
total 16
-rw-r--r-- 1 pi pi 14536 Oct 8 10:44 pyAES.py
Run Code Online (Sandbox Code Playgroud)
这是之后的输出 chmod +x
pi@raspberrypi ~/Desktop/Codes $ chmod +x pyAES.py pi@raspberrypi ~/Desktop/Codes $
pi@raspberrypi ~/Desktop/Codes $ pyAES.py
-bash: pyAES.py: command not found
pi@raspberrypi ~/Desktop/Codes $
Run Code Online (Sandbox Code Playgroud)
和命令,chmod +x pyAES.py && ./pyAES.py给出以下错误,
-bash: ./pyAES.py: /usr/bin/python2: bad interpreter: No …Run Code Online (Sandbox Code Playgroud) 我在玩一些可执行文件的名称,将它们放在一个文件夹中~/bin,该文件夹位于我的$PATH. 现在我想知道如何设置bash-3.2终端的首选项,以便它选择这些可执行文件而不是要执行的内置程序或别名。
例如,如果我将一个名为的脚本放在cd中的目录中$PATH,cd则仍会执行内置的 for 。但是,如果我创建一个aliasfor cd,那么这个别名将被执行,覆盖内置函数。
$ type cd
cd is a shell builtin
Run Code Online (Sandbox Code Playgroud)
有没有办法让可执行文件在$PATH默认情况下优先于内置的shell,只执行,例如cd,不必求助于使用命令builtin或command?
我也对任何讨论这种偏好的官方参考资料感兴趣(不是我理解的推理)。
注意:这个问题纯粹是出于个人教育目的,我想知道为什么它会这样工作。
安装了两个 Python 解释器:
[user@localhost ~]$ /usr/bin/python -V && /usr/local/bin/python -V
Python 2.4.3
Python 2.7.6
Run Code Online (Sandbox Code Playgroud)
Sudo 在执行时更改 PATH:
[user@localhost ~]$ env | grep PATH && sudo env | grep PATH
PATH=/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/user/bin
PATH=/usr/bin:/bin
Run Code Online (Sandbox Code Playgroud)
然而,通过 sudo 运行 Python 与直接运行是一样的:
[user@localhost ~]$ sudo python -V && python -V
Python 2.7.6
Python 2.7.6
Run Code Online (Sandbox Code Playgroud)
我希望sudo python运行/usr/bin/python这是修改后的PATH. 为什么它会运行/usr/local/bin/python?
我在 sudo-users 邮件列表上问了这个问题,但在与 sudo 维护者 Todd C. Miller 的讨论中我们找不到这种行为的原因。
以供参考:
[user@localhost ~]$ sudo -l
Matching Defaults entries for user …Run Code Online (Sandbox Code Playgroud) 我试图让一个 .desktop 文件运行一个与 .desktop 存储在同一目录中的 .sh。整个目录需要可移植并在机器之间移动。
我的运行脚本是 run.sh
我试过了:
[Desktop Entry]
Type=Application
Terminal=true
Name=RunMe
#Exec=sh -c "`dirname %k`/run.sh"
#Exec=bash -c "export PATH=$PATH:`dirname %k`; bash run.sh;"
#Exec=bash -c "export PATH=$PATH:`dirname %k`; sh run.sh;"
Exec=bash -c "export PATH=$PATH:`dirname %k`; run.sh;"
Run Code Online (Sandbox Code Playgroud)
但是当我双击 .desktop 文件时没有任何反应。如果我双击“run.sh”并选择“run”,脚本运行良好。如果我使用 ' sh run.sh'从命令行运行脚本,它工作正常。
任何想法,甚至只是如何调试它实际试图运行的路径?
我正在尝试使用位于 的 gtk /usr/include/gtk-3.0/gtk/ ..,但工具包中的所有头文件都有#include <gtk/gtk.h>.
除了添加/usr/local/gtk-3.0到PATH或添加gtk-3.0到所有包含的预处理器,没有一个有什么其他的选择这个?
我正在尝试在我的 Linux 机器上安装Anaconda。对或错,在他们说的说明的末尾
将此行添加到主目录中的 .bashrc 文件中:export PATH="/home/username/anaconda/bin:$PATH"
我不太了解 bash 中的 PATH 是如何工作的。但是,我的 .bashrc 文件中有另一个 PATH:
export PATH="/usr/local/share/rsi/idl/bin:$PATH"
Run Code Online (Sandbox Code Playgroud)
我应该如何添加新路径?
该蟒蛇蟒蛇框架包括它自己的Qt的共享库,其他中。由于框架的性质,它必须首先出现在PATH环境变量中,因此它的 Python 二进制文件优先于系统的二进制文件。
当人们想将系统的 Qt 共享库用于与 python 无关的项目时,这会产生冲突。编译 Qt 项目时,它将使用qmake来自 anaconda的二进制文件及其共享库。
可以qmake通过将其路径添加到PATH变量来强制使用二进制文件,但这不适用于共享库。我尝试更改,LD_LIBRARY_PATH但它一直选择 anaconda 的。
我发现的“解决方案”:
PATH变量,有一个容易获得的脚本,它的预规划每当我需要它,建议在这里。问题是我习惯于让我的 python 二进制文件随时可用,并且当我在不知不觉中使用系统的 python 二进制文件时很容易出错。