![一般的なスクリプト用の /usr/local/bin の非 sudo 代替](https://rvso.com/image/1127626/%E4%B8%80%E8%88%AC%E7%9A%84%E3%81%AA%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E7%94%A8%E3%81%AE%20%2Fusr%2Flocal%2Fbin%20%E3%81%AE%E9%9D%9E%20sudo%20%E4%BB%A3%E6%9B%BF.png)
/usr/local/bin
私は、ターミナルを使ってどこからでも実行できるように、一般的なスクリプトを配置することに慣れています。
たとえば、 というシェルスクリプトを作成し1
、 で実行可能にして に配置chmod +x 1
し/usr/local/bin
、スクリプト内の#!/bin/sh
最初の行に と入力し、その後にコマンドを入力します。そこからは、次のように入力するだけで、非常に便利に使用でき、すばやく実行できます。
1
Enter
ターミナル上の任意のフォルダ内から。
私の問題は、現在 が実行できないコンピューターで作業しておりsudo
、 を取得することも期待できないため、 にスクリプトを配置できないことです/usr/local/bin
。
どのような選択肢がありますか? 同じ「どこからでも実行」機能を備え、 なしでアクセスできる別のパスsudo
、または同等の機能を実現する別の方法はありますか?
受け入れられた答えはこの郵便受け言う
ユーザースコープのスクリプトの場合は、ホームディレクトリの bin/ を使用します。
試してみましたが、ホーム ディレクトリにフォルダーがなくbin
、フォルダーを作成しても、他の場所からスクリプトを実行できませんでした。
Ubuntu 12.04 LTS で実行しています。
答え1
どのような選択肢がありますか? sudo なしでアクセスできる、同じ「どこからでも実行」機能を備えた別のパス、または同等の機能を実現する別の方法はありますか?
どうやってするの?
bin
慣例に従って通常は名前を付けられるスクリプトを保存するためのディレクトリをホームに作成します。
mkdir ~/bin
スクリプトをビンに移動します
mv somescript ~/bin
さて、どこからでもどうやってそれを作るのでしょうか?
bin
PATHに を追加する必要があります
開く.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