一般的なスクリプト用の /usr/local/bin の非 sudo 代替

一般的なスクリプト用の /usr/local/bin の非 sudo 代替

/usr/local/bin私は、ターミナルを使ってどこからでも実行できるように、一般的なスクリプトを配置することに慣れています。

たとえば、 というシェルスクリプトを作成し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

スクリプトをビンに移動します

mv somescript ~/bin

さて、どこからでもどうやってそれを作るのでしょうか?

binPATHに を追加する必要があります

開く.bashrc

gedit .bashrc

次の行を追加します:

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

usernameユーザー名を忘れずに置き換えてください

保存して終了し、bashrcをソースします。

source .bashrc

これで、以前と同じようにスクリプトを実行できるようになりました。ただし、これはユーザーにのみ関係することに注意する必要があります。

注意: スクリプトの名前を 1 、 2 以外に変更することをお勧めします。これらの名前では問題が発生する場合があります。


アップデート:

同じことをするにsource ~/.profileは、ホームディレクトリにbinディレクトリを作成するだけです~/.bashrc。PATHに~/binを追加すると、すでに次のディレクトリにリストされます。.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'

ls -l を実行する「コマンド」ll が作成され、エイリアスを定義すると ls が色付きになります。https://wiki.ubuntuusers.de/aliasさらにいくつかの例と設定方法があります。

答え3

試す~/.local/bin/

(この回答には何も新しいことは追加されていないことは承知していますが、この質問に対する短い回答があり、他のすべてを読む必要はありません。)

答え4

全員の安全を確保するためにルート権限が拒否されるマルチユーザー環境では、ユーザーごとのビンがあると非常に役立つため、ユーザーごとのビンが本当に必要です。これを自動的に作成するには、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

関連情報