如何从终端的任何位置访问文本文件

如何从终端的任何位置访问文本文件

我有两个文件。file1是可执行文件并且file2只是一个文本文件,我经常使用它们,但我cd每次都必须这样做才能到达目录。

如何使 可file1在终端中普遍执行以及如何访问 的内容file2而不管我在终端中的位置。是否可以添加 的内容,file2以便man page我只需执行 即可man file2

我认为这可以做到,/etc/environment但我想知道正确的方法。

答案1

PATH环境变量就是为了这个目的。将包含file1和的目录添加file2到PATH,然后只需通过文件名就可以访问它们。

要将目录添加/opt/myappPATH环境变量,请使用以下命令:

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 
}

这样,我就可以通过传递额外的参数在lessmoregedit任何其他编辑器中打开 file2,例如:

file2 less
file2 more
file2 gedit

相关内容