• ベストアンサー

Knoppixでシェルスクリプトの作り方

KnoppixというLinux種の一つを使っています。 このOSで、Windowsでいうバッチファイルを作りたいです。 うまく行きません。 実行属性を付ける、という情報を得ました。そして実行属性を付けるコマンドも実行しましたが、解決しませんでした。 ご指導ください。

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.3

前の方に追補すると Unixでは拡張子はただのファイル名の一部でしかありません。 x.sh というファイルを実行するなら、 ファイル名としては x.sh と指定しなければなりません。 Windowsのように、 x.exe を x だけで実行できたりはしません。 x だけで実行したいなら、ファイル名を x にする必要があります。 実際、cat コマンドは、 cat と言う実行ファイルであることが多いです。

remokon
質問者

お礼

返答有り難うございます よくわかりました とても基本的な事でした。 以前、同様の質問をした時に、初心者を揶揄するような返答をもらってしまったので、今回も止めておこうと思ったのですが、貴方のような親切なひとがいて嬉しいです。 今後もおねがいします

その他の回答 (2)

  • notnot
  • ベストアンサー率47% (4848/10261)
回答No.2

>$./x.sh >abc >成功しました。しかし相変わらず >$x.sh >も >$x >も失敗します。 >  コマンドが見つかりません >と表示されます。 それで正常です。 >カレントディレクトリにあるのだから、見つからない筈がないと思います。 コマンド名だけを入れた場合、カレントディレクトリは探しません。 コマンド名だけの場合にカレントディレクトリにあるファイルを実行するのは危険(理由後述)なので、探さないようになってます。 Windowsでカレントディレクトリを探すのは、そもそもディレクトリというものが無かった(つまりドライブ直下しか無かった)MS-DOSver1時代(1981年)との互換性だと思います。 >何か設定が必要なのでしょうか。ちなみにWindowsにあるpathコマンドは無いようです。 echo $PATH とすると、: で区切られたディレクトリが表示されると思いますが、それがPATHです。 PATHに . (カレントディレクトリ) を含めると x.sh で実行できるようになりますが、 その際の危険性については最近別のところで書いたので、参照してください。 https://teratail.com/questions/3799 の otn の回答。 Unix/Linuxユーザーは、カレントディレクトリにあるコマンドを実行するときは、先頭に ./ を付けます。そういう習慣を付けてください。 頻繁に実行するなら、 コマンドファイルを $HOME/bin ディレクトリに置きます。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

・どのような操作をしてそのスクリプトを作ったのですか? ・どのようなスクリプトを作ったのですか? ・「解決しない」とはどのようなことですか? エラーが出たというならそのエラーメッセージも含めて「具体的に」書いてください.

remokon
質問者

お礼

返答有り難うございます (1) 最初に、このOS付属のleafpadというテキストエディタを起動します。 そして #!/bin/sh echo abc と入力してx.sh名で保存します。 (2) $cat x.sh とすると、その内容が表示されます。 (3) 実行しようと $x.sh とすると、  コマンドが見つかりません と表示されます。 (4) そこで $./x.sh とすると、今度は  許可がありません と表示されます。 (5) $sh x.sh とすると、期待通りに"abc"が表示されます。 $bash x.sh も同様です。 (6) ネットを参照して $ ls -l -d x.sh -rw-r--r-- 1 poo poo 19 12月 5 17:17 x.sh となります。 xがありません。つまり実行許可がありません。 (7) xを付けるために、 $ chmod +x x.sh $ ls -l -d x.sh -rwxr-xr-x 1 poo poo 19 12月 5 17:17 x.sh 実行許可属性が付いたようです。 (8) $./x.sh abc 成功しました。しかし相変わらず $x.sh も $x も失敗します。   コマンドが見つかりません と表示されます。 カレントディレクトリにあるのだから、見つからない筈がないと思います。 何か設定が必要なのでしょうか。ちなみにWindowsにあるpathコマンドは無いようです。

関連するQ&A

  • Knoppix上のバッチファイル

    Knoppix上で、Windows上でいうところのバッチファイルを作りたいです。シェルスクリプトというそうですが、ネット情報を参考にしてテキストファイルに命令を書き込み、そして「実行」属性も付けました。 しかし、実行できません。エラーの意味も良くわかりません。 どうすれば良いのでしょうか。

  • KNOPPIXでfirefoxを

    インストールして 展開しましたが、実行ファイルとかクリックしても、インストールが完了できません>< 他のLinux系OSでは、インストールできるのを検索で見つけたのですが、 KNOPPIXでは、どうしてインストールするのでしょうか??? ちなみに、OSはXP、マシンはデルのinspiron630mで、 KNOPPIXは最新のバージョンです。 最初から入っているとも聞きますが、どこにあり、どうしてインストール するのでしょうか。。 firefoxやfirefox.binファイルなどの実行ファイルはありますが、どうしても、開けません。 すいません。よろしくお願いします。

  • redhatで使用するシェルを作りたいです。

    redhatで使用するシェルを作りたいです。 linuxはほとんど触ったことがなく、そもそもの理解が間違っているかもしれません。 ご容赦ください。 サーバOSがredhat5.4?でとりあえずシャットダウン処理を走らせる、簡単なコマンドでできないかと思っています。 Windowsだとbatファイルにshutdownコマンドを記入して実行すればシャットダウンされますが、linuxの場合はshファイルにどのようなコマンドを記入してどう実行すればよいのかわかりません。 Windowsとは勝手が違うのでしょうか? インターネットで調べてみましたが入門編のようなサイトが見当たらず、このように投稿した次第です。 よろしければコマンドの書き方と実行方法を教えていただけると助かります。 よろしくお願いします。

  • Knoppixをインストールしたいのですが、

    できません。 http://www.rcis.aist.go.jp/project/knoppix/から isoイメージをCDに焼き付けて、その中にインストールのファイルや実行ファイルやバッチファイルがありません。 バージョンは、最新のものです。 どうしたら、インストールできますか?

  • cronでシェルスクリプトが実行されない

    Linuxでファイルのバックアップを取るため backup.shというシェルスクリプトを組み、コマンドから実行する場合問題ないことを 確認しています。ところがcronに設定し自動実行すると内容が実行されておりません。 /var/log/cronを確認したところ時間通り実行されているというログは残っています。 /var/spool/cron/にrootというファイルを作成し 00 23 * * * /BACKUP/backup.shを実行させたいのです。 なぜ、手動の場合は問題がないのにcronで設定すると問題が生じるのでしょう? もし、お分かりの方は教えてください。 OSはRed Hat Linux release 8.0 (Psyche)です。

  • シェルスクリプト内のcdで、カレントディレクトリを変えるには?

    シェルスクリプト内のcdコマンドで、カレントディレクトリを変えるにはどうしたらいいか?をどうか教えて下さい。 MS-DOSのバッチファイル内で"cd XXXXX"と書き実行した時の動作を、UNIX(CygWin)環境でも行いたいです。 が、シェルスクリプトは(サブシェルで動く為)カレントディレクトリが変わってくれません。aliasコマンド等でいろいろ実験しましたが、DOSバッチファイルのように「バッチファイル単体でディレクトリ移動が出来る方法」を探し出せませんでした。 極めて初歩的とは存じますが、どうか宜しくお願い致します。

  • シェルスクリプトの実行

    一台目のLINUX上でプログラムを実行しLANでつながれたもう1台のLINUXにあるシェルスクリプトを実行するにはC言語でどのようにプログラミングをすれば可能でしょうか? プログラムと同じ場所ならsystem(コマンド)で出来るんですよね? telnetとか使いますか?それとももっと単純に出来るのでしょうか?

  • Linuxシェルスクリプトを新しいコマンドにしたい

    Linux初級者です。よろしくお願いします。 OSにFedora Core 10, シェルにtcshを使用しています。 よく使用するコマンドを、まとめて一括で実行するように、 新しいコマンドを作成したくて、次のようなことをしていたのですが (1)ホームディレクトリにmybinというディレクトリを作成してPATHを通す。 (2)newbin1という以下の内容のシェルスクリプトを作成して、~/mybinに置いておく。 ================================== #!/bin/tcsh -f date #実行コマンド例1 echo $PATH #実行コマンド例2 ================================== (3)chmodコマンドでファイルに実行権限を与える。 上記のような方法で、作成したシェルスクリプト(newbin1)を PATHの通ったディレクトリ(~/mybin)に置いて、 > newbin1 とコマンドを呼び出しても、 "newbin1: コマンドが見つかりません" というエラーになってしまいます。 > which newbin1 とすると、ちゃんとファイルのパスが表示されるのですが、 *********************************************************** 自分で作成したシェルスクリプト(newbin1)を、 新しいコマンドとして認識させるにはどのようにすればよいのでしょうか。 また、そもそもシェルスクリプトを新しいコマンドにすることが 不可能だったりするんでしょうか? ************************************************************ 一括で実行したいコマンドが多い場合に、aliasで割り当てるのが大変なので、 できればaliasコマンドは使わずにできる方法を探しています。 基本的な質問かもしれませんが、よろしくお願い致します。

  • KNOPPIXがコマンドラインで起動できない

    Linux系のディストリビューションに、 詳しい方にお伺いしたいです。 この度、仕事でUNIXやソラリスのOSを使う為、 手近な所でLinux系のコマンドの勉強をすることにしたのですが、 生憎自宅のPCはWindowsXPを使用しており、 Linuxだけの為に、PCのすべての機能を犠牲することはできず、 かといってLinuxの為だけのPCを買う経済的余裕も無く、 途方にくれていた所、 KNOPPIXというWindows環境でも起動可能な、 ディストリビューションがあることを知り、 パソコン再生用KNOPPIX試用版のISOファイルを、 CD-RWに焼き付けて入手しました。 しかし基本的にインターネット閲覧モードで、 起動するようにできているらしく、 コマンドラインモードで起動するコマンド knoppix 2 noswap lang=ja を某HPで入手し、ブート時に打ったのですが、 いつまで待っても「起動しています。暫くお待ちください」 の画面のままで、起動してくれません。 インターネット閲覧モードではきちんと起動したのですが・・・。 何が原因なのでしょうか? KNOPPIXに詳しい方、教えて頂けないでしょうか? もしくはLinuxに詳しい方で、 他にWindows環境でも、UNIX系OSのコマンドの練習ができるものを、 知っている方がいたら教えて頂けないでしょうか。 宜しくお願いします。

  • シェル?

    よくLINUXの本とかを見ていると 下記のようなコマンドを良く見かけます。 $ ls ← ユーザーからの注文 file1 file2 file3 ← 実行の結果 Fedora 7などの場合 このコマンドってどのソフト上でどこに入力するのですか? LINUX初心者なので良く分かりません。 つまらない質問で申し訳ございません。 教えて頂けないでしょうか。