我有两个文件。file1
是可执行文件并且file2
只是一个文本文件,我经常使用它们,但我cd
每次都必须这样做才能到达目录。
如何使 可file1
在终端中普遍执行以及如何访问 的内容file2
而不管我在终端中的位置。是否可以添加 的内容,file2
以便man page
我只需执行 即可man file2
。
我认为这可以做到,/etc/environment
但我想知道正确的方法。
答案1
PATH
环境变量就是为了这个目的。将包含file1
和的目录添加file2
到PATH,然后只需通过文件名就可以访问它们。
要将目录添加/opt/myapp
到PATH
环境变量,请使用以下命令:
PATH=/opt/myapp:"$PATH"
您可以添加上述命令以~/.bashrc
进行永久更改。运行source .bashrc
以重新加载.bashrc
当前终端。
file1
另一种方法是建立到files
内部目录的软链接/usr/bin
。
答案2
您已经知道如何在不输入完整路径的情况下运行可执行文件。因此,我将针对第二个问题提出解决方案。
我猜你有一个或几个特殊文件,你想直接访问它们。我建议你使用较少的(也用于手册页)。我还猜测您的文件的名称与可执行程序的名称不同。否则您应该重命名它们以避免混淆。(例如,使用此方法访问名为 sudo 的文件是个坏主意。)
您可以创建一个别名并将该别名存储在您的文件中~/.bashrc
alias file2='less /path/to/file2'
其中将 /path/to/ 替换为实际目录路径。
跑步
file2
并检查它是否有效。当它有效时,您可以将别名命令行添加到 ~/.bashrc 文件中其他别名附近。运行
source ~/.bashrc
在已打开的终端窗口中激活它。下次您登录时,它将在那里供您使用。
答案3
我使用@Zanna 提供的链接解决了这个问题。
对于 file1:
sudo ln -s /full/path/to/my/file1 /usr/local/bin/name_of_new_command
对于 file2,我在~/.bashrc
文件中编写了一个函数,
file2 () {
pwd=$PWD
cd /full/path/to/my/file2_directory
if [ "$1" == "more" ] || [ "$1" == "less" ]; then
$1 file2
cd $pwd
else
$1 file2 &
cd $pwd
fi
}
这样,我就可以通过传递额外的参数在less
、more
或gedit
任何其他编辑器中打开 file2,例如:
file2 less
file2 more
file2 gedit