朋友,我想将我的C程序的路径添加到环境变量PATH中。我的 C 程序称为“md5”。这样我就可以从任何地方(即任何目录)执行它。
我的 md5 程序位于/home/ahuq/MappingServer/md5_program
.所以我所做的是:
export PATH=$PATH:/home/ahuq/MappingServer/md5_program
在正在运行的外壳中。这只会进行临时更改,并让我可以md5
暂时从任何地方运行该程序。
root@ahuq-kitchen:/home/ahuq# md5 -sanis
MD5 ("anis") = 38a1ffb5ccad9612d3d28d99488ca94b
但我想让这个改变永久化。
我试图将该行放在and文件PATH=$PATH:/home/ahuq/MappingServer/md5_program
的末尾。我退出 shell 并再次进入。但这没有用:/home/ahuq/.bashrc
/home/ahuq/.profile
root@ahuq-kitchen:/home/ahuq# md5 -sanis
No command 'md5' found, did you mean:
Command 'cd5' from package 'cd5' (universe)
Command 'mdu' from package 'mtools' (main)
Command 'mdb' from package 'mono-debugger' (universe)
md5: command not found
也许我把PATH
声明放在了上述文件的错误位置。这两个文件中有很多 if-else-fi 结构。我需要将PATH
语句放入这些结构中吗?我是直接注销还是必须重新启动系统才能使更改生效?
答案1
看来您将路径放在了正确的位置。但是,如果路径中某处有空格,它可能不起作用。您可以尝试这样做以确保正确性:
export PATH="$PATH:/home/ahuq/MappingServer/md5_program"
或者,只需将应用程序放入/usr/local/bin
.或者甚至安装该md5sum
软件包,它似乎与您的应用程序执行相同的操作。
答案2
如果没有看到你的点文件,很难确定,但从你引用的内容来看,当你将它添加到 .profile 和 .bashrc 文件时,你遗漏了“导出”。
答案3
从你的问题来看:
root@ahuq-kitchen:/home/ahuq# md5 -sanis
但是,您说您只为您的用户编辑了 .bashrc 。
如果您需要每个用户的新路径都是全局的,您可以进行编辑(如果其他用户由于权限问题而/etc/bash.bashrc
无法从您的主目录执行,这可能会导致问题)。md5
或者,如果您只需要将更改应用到 root 以及本地用户,/root/.bashrc
也可以考虑进行编辑。
或者,更优选的是,作为 root,您可以考虑将命令安装/复制md5
到/usr/local/bin
,这是我在 Ubuntu 中每个人的默认命令$PATH
。
你可以这样做:
$ sudo cp /home/ahuq/MappingServer/md5_program/md5 /usr/local/bin
$ sudo chown root:root /usr/local/bin/md5
$ sudo chmod 755 /usr/local/bin/md5
答案4
我在将可执行文件添加到我的路径时也遇到了一些问题。对我有用的是将行添加export PATH=$PATH:/home/ahuq/MappingServer/md5_program
到~/.bash_profile
.
不幸的是,我不知道为什么,但对于 met .bashrc 不起作用,但 .bash_profile 起作用。