web-dev-qa-db-ja.com

一般的なスクリプト用の/ 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で実行しています。

15
user985366

私のオプションは何ですか?同じ「どこからでも実行」機能を備えた別のパスがありますか。Sudoを使用せずにアクセスできますか。

どうやるか?

慣例として通常binという名前のスクリプトを保持するために、ホームにいくつかのディレクトリを作成します。

mkdir ~/bin

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

mv somescript ~/bin

今、どこからでもそれを調整する方法?!

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

.bashrcを開きます

gedit .bashrc

次の行を追加します。

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

usernameをユーザー名に置き換えることを忘れないでください

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

source .bashrc

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

注:1、2以外のスクリプトの名前を変更する方がよいのは、その名前に関する問題に直面する可能性があるため


更新:

同じことをあなたの家にbin dirを作成し、source ~/.profileの代わりに~/.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
19
Maythux

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 には、いくつかの例と設定方法があります。

4
frlan