我是Ubuntu的新手。我需要在我的.bashrc
文件中设置路径,但是即使系统管理员,我也会遇到权限被拒绝的错误。
export TCFRAME_HOME=~/tcframe
alias tcframe=$TCFRAME_HOME/scripts/tcframe
现在,当我键入tcframe version
时,我会得到
bash: /home/p46562/tcframe/scripts/tcframe: No such file or directory
该如何解决?
答案 0 :(得分:0)
错误消息告诉您您正在尝试执行一个不存在的文件。
我们可以模糊地猜测存在哪些文件,但是由于无法访问您的系统,我们无法确定您实际安装了什么以及安装在何处。
也许您的主目录中的目录tcframe
中有一个名为scripts
的文件?
alias tcframe=$HOME/scripts/tcframe
为避免在某个位置安装的每个随机实用程序使用一个或多个别名给环境带来混乱的常见安排是为PATH
创建一个专用目录-常见的惯例是将其命名为bin
-并使用指向您希望具有可执行文件的内容的符号链接进行填充。
只需一次
mkdir $HOME/bin
和edit your .profile
(or .bash_profile
or .bashrc
if you prefer)包括该行
PATH=$HOME/bin:$PATH
从现在开始,要使可执行脚本可以在没有显式路径的任何地方进行访问,请在bin
中创建指向该脚本的符号链接;
ln -s $HOME/scripts/tcframe $HOME/bin
请注意,语法类似于cp
;最后一个参数是目标位置(可以是目录,也可以是新文件名),第一个参数(以及最后一个参数之前的任何后续参数,如果最后一个是目录)则是源。当目标是目录时,每个源参数的文件名将用作目标目录中新符号链接的名称。
还要注意,您通常希望使用绝对路径;相对路径相对于bin
进行了解析(例如,
ln -s ../scripts/tcframe $HOME/bin
即使您当前位于../scripts
不存在的目录中。)
根据定义,脚本必须是可执行的。如果不是,当您尝试运行它们时,您将获得“权限被拒绝”。这由权限控制;每个文件都有一组权限位,这些权限位指示您是否可以读取,写入(或覆盖)和执行此文件。这些权限也分别针对您组中的成员(以便您可以管理团队访问的粗略形式)和其他所有人设置。但是对于您的个人脚本,您只需要真正为自己设置x
(可执行)位即可。如果不是,则可以更改-仅需要一次。
chmod +x scripts/tcframe