alias以外でシェルを実行
解決済
回答 2
投稿
- 評価
- クリップ 0
- VIEW 1,590
シェルスクリプトを起動する際にaliasコマンド以外での起動方法はありますでしょうか。
alias以外と申しますのは、「.bash_profile」に記述をしますと時々エラー文がログイン時に出るようになるのを避けたいためです。
alias以外となりますと、「./シェルのファイル名」での起動がありますが、前半の「./」を削除したファイル名のみでの起動を希望しております。
ご回答の程、宜しくお願いします。
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
checkベストアンサー
+3
aliasを使わずにファイル名だけでスクリプトを実行するには、
shebang
を付けてファイルに実行権限(x
)を付け、パスの通っているディレクトリーに置くことで実現できます。
注意しなければならない点として、環境変数
$PATH
もログインユーザーによって異なる可能性があるということです。
以下、少し詳しい説明です。
シェルスクリプトを実行するコマンドにスクリプトを渡すには、
・
sh <スクリプトの絶対/相対パス>
を実行
・ファイルに
shebang
と実行権限(x
)を付けて<スクリプトの絶対/相対パス>
だけで実行
のいずれかを行います。
shebang
とは、スクリプトファイルの1行目につける#!/bin/sh
などのことです。
また、名前だけ=絶対/相対パスの指定無しでスクリプトを実行するには、
・aliasに登録
・ファイルに
shebang
と実行権限(x
)を付けた上で、パスの通っているディレクトリーに置く
のいずれかを行います。
パスが通っているとは、環境変数
$PATH
に記載されたディレクトリーのいずれかにスクリプトや実行ファイルを置かれていることを指します。
環境によりますが、環境固有のスクリプトは
/usr/local/bin
などに置いたりします。投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
+2
$HOME/bin/
に置くのが普通です。
OSによるかもしれませんが、自動的に PATH に組み込まれるはずです。
自動的に組み込まれない場合は、
.bash_profile
で PATH に組み込む。
複数ユーザーで共用するコマンドは、
/usr/local/bin
に置く。これは自動的にPATHに組み込まれるはず。
なおcronからの実行は、ログイン時に設定されるPATHと違うPATH内容で動きますので、注意が必要です。
また、PATH に . を含めるのはリスクがありますので、大丈夫な環境かよく考える必要があります。
一般論としては、PATHに . を含める癖を付けない方が良いでしょう。
例:
PATHの先頭に . を入れた場合。
誰かに /tmp/ls というコマンドファイルを作られ、中に危険な処理が書いてある。
cd /tmp
ls
⇒被害を受ける。
末尾に . を入れた場合でも、/tmp/sl とかあって、ls とするつもりが sl と打ち間違えるとか。
ということで、少なくとも共同利用機の場合は、やめたほうがいいです。
ユーザーが自分一人の場合でも、インターネットに繋がっている場合などでは、脆弱性や設定ミスにより外部からファイルが作られるリスクもあるので、やめた方が良いでしょうね。
apache権限を乗っ取られファイルを作られて、上記のようなトラップでroot権限取られるとか。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.23%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
2014/11/28 14:10
2014/11/28 14:13
書くのを忘れてました。
ご指摘ありがとうございます。