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


16

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

たとえば、という名前のシェルスクリプトを作成し、1で実行可能にしchmod +x 1、に配置し、最初の行/usr/local/binに入力#!/bin/shしたスクリプト内にコマンドを入力します。それ以降は、非常に便利に使用でき、入力することですばやく実行できます

1Enter

ターミナルで、任意のフォルダ内から。

私の問題は、現在できないコンピューターで作業しており、sudoそれを取得することも期待できないため、スクリプトをに配置できないこと/usr/local/binです。

私のオプションは何ですか?同じ「どこからでも実行」機能を備えた別のパスはありsudoますか?

この投稿に対する受け入れられた答えは言う

ユーザースコープのスクリプトの場合、ホームディレクトリでbin /を使用します。

これを試しましたがbin、ホームディレクトリにフォルダがなく、作成したときに、どこからでもスクリプトを実行できませんでした。

Ubuntu 12.04 LTSで実行しています。


2
スクリプト名として1などを使用しないでください。シェルで何かを計算してみてください。たとえば、expr 1 + 1(そうでない場合は、いくつかのスクリプトが確実にある時点でそれを行います)
-frlan

1
@frlan:expr 1 + 1という名前のスクリプトが存在すると、どのような影響を受け1ますか?
psmears

本当です...影響exprも、bash算術もありません$(( 1 + 1 ))
カンパ

回答:


19

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

どうやってするの?

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

mkdir ~/bin

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

mv somescript ~/bin

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

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

あなたを開きます .bashrc

gedit .bashrc

次の行を追加します。

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

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

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

source .bashrc

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

注:1、2以外のスクリプトの名前を変更することをお勧めします。その名前で問題が発生する可能性があるためです。


更新:

あなたは同じことをすることができます。あなたの家にbin dirを作成してからの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

私が使用しexport PATH=$PATH:$HOME/bin、私は別のユーザー名を持つ他のアカウントに同じbashrcにを使用できるようにします。
アンソニーG-モニカの正義

1
ただ、言及すること~/bin にある$PATHUbuntuのデフォルトではオン。source ~/.profileディレクトリを作成した後、実行またはログアウト/ログインするだけです。
ジェイコブVlijm

@JacobVlijmどのバージョンですか?!!! 私は12.04、14.04、15.04を使用し、それらのどれもPATHに〜/ binがありません
-Maythux

では、すべてのそれらの、私は常に実行した後、言ったように、私の(受け入れ)の回答の多くは、それを使用するだけでなく、その上の任意のコメント、同様に5つのシステム上の家で彼女の作品をやったことがなかったけどsource ~/.profile。(例)こちらをご覧ください:askubuntu.com/a/247422/72216
ジェイコブヴリム

1
彼はソース~/.profile~/.bashrcを言った彼はソースを決して言わなかった :)また、原則として、環境変数は行くべき.profileはなく.bashrc、彼らは一度だけ設定する必要があるため。(これはあなたの答えが良くないと言うことではありません、気にして、私から+1)
テルドン

4

/ubuntu//a/643030/218015に加えて、よく使用される小さなタスクの.bashrc内にエイリアスを定義することもできます。例えば

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.