如何从系统内的任何位置运行我的 C 程序(Ubuntu 10.10)?

如何从系统内的任何位置运行我的 C 程序(Ubuntu 10.10)?

朋友,我想将我的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 起作用。

相关内容