use*_*366 18 permissions command-line bash scripts
我习惯于将常用脚本放入其中,/usr/local/bin
以便我可以使用终端从任何地方执行它们。
例如,我创建了一个名为 的 shell 脚本1
,使其可执行chmod +x 1
并放入 中/usr/local/bin
,然后在脚本中#!/bin/sh
的第一行输入,然后输入我的命令。从那以后,它非常方便地使用并且通过键入快速执行
1
Enter
在终端上,从任何文件夹内。
我的问题是我目前正在使用一台无法完成的计算机,sudo
我也不希望得到它,所以我无法将我的脚本放在/usr/local/bin
.
我有哪些选择?是否有另一条具有相同“从任何地方运行”功能的路径,我可以在没有 的情况下访问它sudo
,或者以另一种方式实现等效的功能?
这篇文章的公认答案说
对于用户范围的脚本,请在您的主目录中使用 bin/。
我试过了,但bin
我的主目录中没有文件夹,当我创建一个文件夹时,我仍然无法从其他任何地方运行脚本。
我在 Ubuntu 12.04 LTS 上运行。
May*_*hux 20
我有哪些选择?是否有另一条具有相同“从任何地方运行”功能的路径,我可以在没有 sudo 的情况下访问它,或者另一种实现等效功能的方法?
怎么做?
在您的家中创建一些目录来保存通常命名bin
为约定的脚本。
mkdir ~/bin
Run Code Online (Sandbox Code Playgroud)
现在将您的脚本移至 bin
mv somescript ~/bin
Run Code Online (Sandbox Code Playgroud)
现在如何让它从四面八方变通?!
你必须添加bin
到 PATH
打开你的 .bashrc
gedit .bashrc
Run Code Online (Sandbox Code Playgroud)
并添加这一行:
export PATH=$PATH:/home/username/bin
Run Code Online (Sandbox Code Playgroud)
不要忘记替换username
为您的用户名
保存退出,然后source bashrc
source .bashrc
Run Code Online (Sandbox Code Playgroud)
现在你很好了,你可以像以前一样运行你的脚本了!但您必须注意这仅与您的用户有关。
注意:最好将您的脚本重命名为 1 ,2 以外的其他名称,因为您可能会遇到该名称的一些问题
更新:
您可以这样做,只需在您的家中创建 bin 目录source ~/.profile
而不是~/.bashrc
. 由于将 ~/bin 添加到您的 PATH 中已经列出.profile
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9068 次 |
最近记录: |