我想知道必须向PATH环境变量添加新路径的位置。我知道这可以通过编辑来完成.bashrc(例如),但不清楚如何做到这一点。
这边走:
export PATH=~/opt/bin:$PATH
Run Code Online (Sandbox Code Playgroud)
或这个?
export PATH=$PATH:~/opt/bin
Run Code Online (Sandbox Code Playgroud) 假设我以用户身份可以通过 ssh 访问某些 Ubuntu 服务器,并且为了方便起见,我需要安装一些非系统工具(mc、rtorrent、mcedit)。我不想为这些小程序打扰管理员。
有没有办法在不使用类似的东西的情况下安装它们(让它们运行)sudo apt-get install?
示例:在 Ubuntu 中,.local主目录中始终有一个目录,并.profile包含以下行:
PATH="$HOME/bin:$HOME/.local/bin:$PATH"
Run Code Online (Sandbox Code Playgroud)
$HOME/.local/bin默认情况下不存在,但如果创建它,它已经存在$PATH并且可以找到其中的可执行文件。
这在XDG 目录规范中没有完全提到,但似乎是从它派生出来的。
我想知道这是否足够普遍,以至于通常可以假设它存在于最常见的最终用户发行版中。例如,是在所有 Debian 衍生产品中,还是至少在 Ubuntu 衍生产品中?Red Hat/Fedora/CentOS 生态系统如何?等等 Arch、Suse 以及人们现在使用的东西。
更明确地说,这仅适用于$HOME/.local/bin,而不 适用于$HOME/bin。
出于好奇,如果您有相关信息,请随意包括 BSD、OS/X 和其他。:)
据我了解,放置您自己的脚本的正确位置是/usr/local/bin(例如我用来备份某些文件的脚本)。我注意到这个文件夹当前(默认情况下)归 root 所有,我的普通用户无法访问它。我是这台电脑上的唯一用户。我应该将整个文件夹更改为我自己的用户吗?或者是否有另一种正确的方法来安排权限/usr/local/bin?
我正在尝试为我编写的一个小型 Perl 实用程序创建一个 Makefile,并且我正在努力寻找一种方法来在以非 root用户make身份运行时找到安装我的手册页的位置。
我目前正在解析 的输出manpath以找出$HOME目录中的第一个路径......它几乎可以正常工作。
我发现的路径是~/man和~/share/man
唯一的问题是,如果这些目录首先不存在,manpath则不输出其中任何一个。
安装从源代码编译的软件时,我通常将它们放在 /usr/local/ 中,这是迄今为止我经验中最常见的默认设置,也是至少在 Debian 及其衍生产品上的标准做法。
现在我想在我的主目录中安装一些东西,虽然理论上我可以创建任何子目录并将它放在那里,但我开始想知道不同的选项,以及是否有标准做法。我基本上找到了两个答案:
我不喜欢这两个,并认为既然已经有一个~/.local子目录,为什么不安装呢?它已经包含一个~/.local/share,这意味着本地用户的私有 /usr/share,所以安装程序似乎非常合乎逻辑,创建整个~/.local/bin,~/.local/库等
我的问题是:可以在 ~/.local 中安装本地软件吗?
当我在 google 或 stackexchange 中搜索安装每用户软件的位置时,为什么找不到任何对此的引用?对我来说,这似乎是一个如此明显的位置,以至于没有帖子表明这意味着某处必须有一个陷阱。
也许做过这件事的人可以分享他们的经验,无论是积极的还是消极的?
我有这个功能可以从 IP 获取 MAC 地址:
ip2arp() {
local ip="$1"
ping -c1 -w1 "$ip" >/dev/null
arp -n "$ip" | awk '$1==ip {print $3}' ip="$ip"
}
Run Code Online (Sandbox Code Playgroud)
以后使用它的正确方法是什么?作为 sh 保存到 /usr/bin 并使其可执行,还是将其保存在主目录中并在 bash 中创建别名?有对错之分吗?