對於常見腳本,非 sudo 替代 /usr/local/bin

對於常見腳本,非 sudo 替代 /usr/local/bin

我習慣將常用腳本放入其中,/usr/local/bin以便我可以使用終端從任何地方執行它們。

例如,我製作了一個名為 的 shell 腳本1,使其可執行並將chmod +x 1其放入 中/usr/local/bin,然後在腳本中我#!/bin/sh在第一行鍵入,然後是我的命令。從那時起,透過鍵入即可非常方便地使用和快速執行

1Enter

在終端機上,從任何資料夾內。

我的問題是,我目前正在一台無法執行此操作的計算機上工作sudo,而且我也無法期望得到它,因此我無法將我的腳本放入/usr/local/bin.

我有什麼選擇?是否有另一條路徑具有相同的「從任何地方運行」功能,我可以在沒有 的情況下訪問該路徑sudo,或者以其他方式實現等效的功能?

接受的答案這個帖子

對於使用者範圍的腳本,請在主目錄中使用 bin/。

我嘗試過,但我的主目錄中沒有bin資料夾,當我建立一個資料夾時,我仍然無法從其他任何地方運行該腳本。

我正在 Ubuntu 12.04 LTS 上運行。

答案1

我有什麼選擇?是否有另一條路徑具有相同的「從任何地方運行」功能,我可以在沒有 sudo 的情況下訪問該路徑,或者有其他方法來實現等效的功能?

怎麼做?

在您的家中建立一些目錄來保存通常按照bin約定命名的腳本。

mkdir ~/bin

現在將您的腳本移至 bin

mv somescript ~/bin

現在如何讓它從任何地方轉過來? !

您必須將其新增bin至 PATH

打開你的.bashrc

gedit .bashrc

並且加入這一行:

export PATH=$PATH:/home/username/bin

不要忘記替換username為您的用戶名

儲存退出,然後source bashrc

source .bashrc

現在一切都好了,您可以像以前一樣運行腳本了!但您必須注意這僅與您的用戶有關。

注意:最好將腳本重新命名為 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

答案2

另外https://askubuntu.com/a/643030/218015您也可以在 .bashrc 中為經常使用的小型任務定義一個別名。例如

alias ll='ls -l'
alias ls='ls --color=auto'

將為您建立一個「命令」ll,它正在執行 ls -l ,並且 ls 將在定義別名後著色。https://wiki.ubuntuusers.de/alias有更多範例和設定方法。

答案3

嘗試~/.local/bin/

(我承認這個答案沒有添加任何新內容,但這個問題有一個簡短的答案,不需要閱讀其他所有內容。)

答案4

確實應該有一個針對每個使用者的 bin,因為它在多用戶環境中非常有用,在多用戶環境中,人們被拒絕 root 權限,以使每個人都更加安全。在 bash 腳本中使用以下命令來自動建立它。

if [ ! -d "$HOME/.local/bin" ] ; then
  mkdir -p "$HOME/.local/bin"
  printf '\nexport "PATH=$PATH:'"$HOME"/.local/bin'"' >> "$HOME/.bashrc"
  # Change the PATH right now:
  PATH="$PATH:$HOME/.local/bin"
fi

相關內容