• ベストアンサー
  • すぐに回答を!

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

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

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数328
  • ありがとう数3

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

  • ベストアンサー
  • 回答No.2
  • vaidurya
  • ベストアンサー率45% (2710/5975)

シェルとは、OSとユーザーの間に入る仕組みを指す言葉で OS環境の変遷によって、意味が多様化していますが… UNIXではターミナルエミュレーターやsshログイン時などで キーボード操作を司るソフトウェアです。 (sh,csh,bashほかいろんなシェルがあります) このシェルで動かすテキストファイルによる自動処理の仕組み またそのためのテキストファイルをシェルスクリプトと呼びます。 シェルスクリプトは、慣例としてshという拡張子を付けることが多いのですが UNIX系OSでの実行可否は、拡張子ではなく属性によって決まるため 必ずしもshという拡張子が必要なわけではありません。 逆に言えば、shという拡張子を付けても属性設定を誤れば実行されません。 また、MS-DOSなどのように、カレントディレクトリーにある実行ファイルが 最優先で実行対象になるということもありません。 ./test.shといった書式で明示しない限り、規程の実行パスに基づき処理されます。 でシャットダウンの手段ですが… Microsoftがshutdownというコマンドを発見する前から UNIX系OSではshutdownコマンドが使われてきました。 (Microsoftはインターネットを発見するのに3年から10年かかったと揶揄されます) まぁ、MS-DOS時代のPCは、同時期のMacと違い ソフトウェアからの電源offができなかったりしていましたが MS-DOSの終了手段さえも、Microsoftからは提供されていなかったのです。 (再起動もHSBみたいなツールが大人気だったし) Linuxのshutdownコマンドでは、OSの終了と、OSの終了後の電源offが可能です。 また、コマンド発行時にターミナルエミュレーターやsshなどから繋がった端末に 終了を伝えるメッセージを送る機能もあります。 この機能を効果的に利用するために、コマンド発行から 実際の終了処理開始までの時間を指定することもできます。 〉システムは reboot に向けて、 30 分後にシャットダウンします! といったメッセージが表示されます。 (ただしgnome-terminalやkonsoleなどの別タブには表示されません) 通常はroot権限で使う必要があります。 限定的に一般ユーザーに使わせるためには シェルスクリプトで工夫することができます。 Linuxでは初期段階でそういったシェルスクリプトが用意されている場合もあります。 管理者権限に関する事情は、WindowsとLinuxではいろいろ違う気がしますが… Windowsでバッチファイルを作らなくてもshutdownコマンドが使えるように Linuxでのshutdownもシェルスクリプトを作らなくても使えます。 シェルスクリプトで定型的な使い方を用意するのも便利ですが…コマンドラインで yum check-update;yum updateyum -y update;sleep 30m;shutdown -h now と入力して使うこともできます。 (アップデート終了後、30分放置されていたら電源を落とす:但しroot権限にて)

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • Linuxのシェル(sh,bash等)について

    Linux上でコマンドを実行するとき、その窓口となるものが、シェル(sh,bash)という認識です。 つまり、 (1)CUI環境でLinuxを操作する上で、シェル以外でコマンドを実行する事はありうるのか? (2)Windowsのコマンドプロンプトも一種のシェルと言えるか 以上、2点についてお教え頂きたいです。 宜しくお願いします。

  • シェルの中からシェルを呼び出して判定

    UNIXで以下のようなシェルが動作しております。 #!/bin/sh su abcdef -c './GHI'; err=$? if [! $err -eq 0 ] then echo エラーが発生しました fi exit このシェルは「abcdef」ユーザに移ってカレントディレクトリのシェルコマンド「GHI」の結果を判定するというものです。 UNIX上では問題なく動作しております。 これをLinuxでそのまま動作させると「err」に「su abcdef」というユーザ切替コマンド自身の正否を格納しているようです。 「'」でくくられた範囲内で結果をファイルに格納したりして、その後ファイルの中を見て判断するとうまくいくことは分かっておりますが、出来たらファイルなど使いたくありません。 このような場合、みなさんどうしてるんでしょうか? よく出てくるパタンだと思うのですがどうしても良い対処が見つかりません。 どうか宜しくお願いします。 Linuxは「miracle-Linux2.0」というOSです、いわゆるRedHat系です。

  • 【Linux】シェルの実行方法を教えて下さい。

    【Linux】シェルの実行方法を教えて下さい。 ファイルの中身が#!/bin/bashで始まる拡張子shのシェルがあります。 これを実行するには、どのようなコマンドを打てばよいのでしょうか? 1.rootでログイン。 2.test.shがあるフォルダに、cdで移動する。 3.test.shと入力し、Enterキーを押す。 ↑みたいな感じで良いのでしょうか。 テスト用サーバなので、最悪壊しても良いと上司に言われましたが、 なにぶん時間がないため質問させていただきました。 Redhatでバージョンが3か4だったと思います。 よろしくお願いします。

その他の回答 (1)

  • 回答No.1

man shutdown or shutdown -h shutdown -help shutdown -? or init 0

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • XPを使用しています。

    XPを使用しています。 以下の作業を自動化したいのですが、シャットダウンがうまくいきません。 (1) スタンバイ状態 (2)タスクにて特定の時間にあるプログラムを実行 (3)タスクにて特定の時間にシャットダウンコマンドを実行 (2)まではうまくいくのですがシャットダウンされません。 シャットダウンはbatにて以下のコマンドを実行しています。 C:\WINDOWS\system32\shutdown.exe -f 「タスクの実行時にスリープを解除する」にチェックを入れています。 どなたか教えてください。 宜しくお願い致します。

  • shはシェルなのかコマンドなのか?

    http://d.hatena.ne.jp/KishikawaKatsumi/20080504/1209922424 で $ sudo sh j2sdk-1_4_2_13-linux-i586-rpm.bin $ sudo rpm -ivh j2sdk-1_4_2_13-linux-i586.rpm と、shと打ち込むと最後の.binが消えますが、shは シェルなのか、それともコマンドなのかどちらなの でしょうか? 手元にあるlinuxの入門書には「shはシェルの一種である」 と記述があります。googleで検索をしてみましたが、 コマンドであるような記述もあり、混乱しております。 また、その入門書には「シェルを切り替えるには、コマンドライン でシェルの名前を入力します。exitコマンドで、元のシェル に戻ります」とあり、その文章の下には実際にshと打ち込んでexit で元に戻る様が書いてあるので実際に試してみました。 [root@localhost ~]# sh sh-3.2# exit exit [root@localhost ~]# この記述のせいでますますわからなくなりました。 なお、最後のbinがシェルスクリプトであることは理解して おります。 ご存じの方、ご教授頂ければ幸いです。何卒宜しくお願い申し 上げます。

  • WINDOWSコマンドの名前を変更できる?

    WINDOWSコマンドの名前を変更できるのでしょうか? 例えば シャットダウンコマンドであれば 「shutdown」ですが 「shutdown_pc001(マシン名等)」に変更し マシン名等を記入しなければ コマンドが実行出来ないようにできるのでしょうか? ※この時「shutdown」だけでは実行出来ないようにしたいです。 ▼やってみたこと(OSはXP) c:\windows\system32\shutdown.exe ↓名前変更 c:\windows\system32\shutdown_xx.exe コマンドプロンプトで shutdown_xx.exe にて認識。 しかし、 shutdown.exe でも認識するのです。 おかしいなと思いファイルを調べてみると名前を書換えて存在しないはずの shutdown.exeが勝手に出来上がるようすです。 shutdown.exeファイルが生成されなければ問題解決なのですが。。。 コマンドにお詳しい方ご教示お願いいたします。

  • bad interpreterで、シェルが使えません(T_T)

    RedHat9ではよく以下のような胃の痛いような エラーがでます。 rootでシェルが実行できないのですが、 どうすれば実行できるでしょうか? ■1.shというシェルファイル #!/bin/sh /bin/touch 1 ■1.shを実行するとエラーになります。。 # ./1.sh : bad interpreter: そのようなファイルやディレクトリはありません ■cronでも動きません。。 /bin/bash: 1.sh: /bin/sh: bad interpreter: No such file or directory

  • CSHが使えない REDHAT

    先日REDHATLINUXを購入した。バージョンは5のENTERPRISE版である。早速自作のCSHをファイルを実行しようとしたがコマンドが無いと言われる。あれれ、おかしいな、/bin/cshが存在しないぞ・・・・・・。 REDHATはCSHをサポートしないのでしょうか?それともINSTALLする時のPACKAGE選択に問題があったのでしょうか?

  • UNIXシェルのデバッグ

    サーバーを更改したので業務システムを丸ごと 新しいサーバーへコピーしてきました。メニューのシェルが数十個 あるのですが、恐らくそのまま動くとは思うのですが、一応 シェルからシェルへの移動(遷移っていうんでしょうか)くらいは 確認しようと思っています。 そのままシェルを順番に動かす以外の手法は何かありませんでしょうか? sh -xで動かせば詳細な情報をログとして残せますが、シェル内のコマンドも 実行してしまうので時間がかかります。シェル内のコマンドを実行させないで すむ手法があればご教授ください。

  • perlからsystemコマンド呼ばれる時のシェルについて

    HP-UX/perl4 で作成したスクリプトを、Linux(Red Hat)/perl5 へ移植するに当たって、system関数の動作が異なり困っています。 HP-UX では ksh をシェルとして使用していたため、perl からのsysytem関数で実行するsystemコマンドも、kshで動作するものを使っていました。Linuxでもログインシェルをkshに設定しました。 ところが、HP-UXで使っていたprintコマンドが使用できず、以下のエラーメッセージが出ます。 sh: print: command not found シェルはkshを指定していても、perlからsystem関数やバッククウォート`` でシステムコマンドを実行するときは、shが使われるようなのです。 perl内の記述は以下のとおりです。 system("print 'a'"); "print"の前に"ksh "をつけたり、"print"を"echo"に変えると、正しく動作します。 移植するperlの本数が多いのと、print以外にもこの問題が起きるかもしれませんので、できれば perl 内からのシステムコマンド実行時にもログインシェルとおなじ ksh で動くようにしたいのですが、どのようにすればよいのでしょうか? よろしくお願いいたします。

  • シェルからJavaを起動したい

    シェルからJavaを起動したい 上記ですけど、Linuxで毎回「java パッケージ名.クラス名」を打つのは面倒なので、 シェルスクリプトのファイルを作って、それを実行するだけで起動できるようにしようと思っています。 が、クラスが見つからないってエラーが出て実行できませんでした。 (「java パッケージ名.クラス名」を実行しているディレクトリにシェルを作ってます) 恐らく環境変数などの設定がシェルの中にいるのではないかと思いますが、 シェルスクリプトとかLinuxの環境には疎い為、どういった記述が必要なのか解りません。 どなたか例を提示して頂けないでしょうか? ちなみに、一般的なJavaの環境変数や、 プロジェクト特有・jarファイル等の環境変数は設定済みです。 それから、シェルは以下のように記述してます。 #!/bin/sh java パッケージ名.クラス名 よろしくお願いします。

  • linux(Redhat7.2)でのデフラグ的なもの?

    linux(Redhat7.2)を使用しています。 「windowsのデフラグ」のようにハードディスクを整えたい場合どうすればいいのでしょうか? コマンドなどあるのでしょうか? (そういえば、Macもどうしているのでしょう…) どなたか教えて下さい。

  • Kシェルのリダイレクト

    Kシェルのリダイレクト シェル初心者で申し訳ございませんが、ご教授いただけたら幸いです。 やりたいこと  xxx.kshの実行ログを出力したい。 出力したいログは、以下コマンド実行時に標準出力されるログをファイルへ落としたい。 尚、実際の実行コマンドは、ksh -xは入力しません。 $ ksh -x ./xxx.ksh 上記コマンドを実行すると、詳細なログが表示されるのですが、ファイルへ落としたいと思います。 分かりづらいかも知れませんが、宜しくお願い致します。