12万作品が月額500円(税別)で見放題なのはdTVだけ!! >>dTV(外部リンク)

先日REDHATLINUXを購入した。バージョンは5のENTERPRISE版である。早速自作のCSHをファイルを実行しようとしたがコマンドが無いと言われる。あれれ、おかしいな、/bin/cshが存在しないぞ・・・・・・。

REDHATはCSHをサポートしないのでしょうか?それともINSTALLする時のPACKAGE選択に問題があったのでしょうか?

A 回答 (3件)

tcshは標準インストールでインストールされます。


ちなみにls -lで出力させると、cshはtcshにリンクを貼ってあります。

# ls -l /bin/csh
lrwxrwxrwx 1 root root 4 10 14 17:56 /bin/csh -> tcsh

なんらかの原因でリンクが切れてしまったということはないでしょうか?
    • good
    • 0
この回答へのお礼

Cの開発環境をインストールするよう選択したところ、インストールされました。TCSHは標準ではないようですよ。

お礼日時:2008/10/25 02:04

全く回答にはなりませんが, 「csh でスクリプトを書く」ことをやめるという, 非常に後ろ向きな解決策もあります.


まあ, とりあえず
which csh
とか入力してみましょうか.
    • good
    • 0

cshはtcshのaliasで、tcshは標準ではインストールされないのではないかな。


あることはあると思いますよ。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QRed Hat 7.1 に rshできない(~/.rhostsの設定後)

Red Hat Linux release 7.1 です。
~/.rhosts を設定しても 他及び自ホストから rshできません。
ホストとユーザを記述し,モードを 600 にしました。

どうすれば,rshを許可できるでしょうか?

Aベストアンサー

myhost: Connection refused
で拒否されるのであれば、
inetd/xinetdからin.rlogindの起動が
許可されていません。
inetd(スーパーサーバ)の関連を、調べなおして
見ましょう。
TCP Wrapperで拒否されたのであれば
Connection reset by peer.
と表示されます。

プロンプトから
ps -ax|grep inetd|grep -v grep
と入力し、inetdとでたら、/etc/inetd.conf
のloginで始まる行のコメントを解除しましょう。
ファイルを、

xinetdと表示されたら/etc/xinetd.d/rlogin
を修正しましょう。
disable = yes
となっているはずです。これをnoに変えましょう。

単にリモート操作をしたいのであればrloginやtelnet
の方が適していると思います。rshは遠隔でコマンドを
実行するのが目的でリモートログインするのは
おまけ的な要素でしかありません。
なぜrshなのでしょうか?
何もrshでなくてtelnet/rloginでは何がだめなのでしょうか?


注意:
ここでは「単に動くだけ」の設定方法しか紹介して
おりません。そのためこのままではセキュリティ的に
非常に弱いので、このままインターネットに直結/常設
することは避けてください。

myhost: Connection refused
で拒否されるのであれば、
inetd/xinetdからin.rlogindの起動が
許可されていません。
inetd(スーパーサーバ)の関連を、調べなおして
見ましょう。
TCP Wrapperで拒否されたのであれば
Connection reset by peer.
と表示されます。

プロンプトから
ps -ax|grep inetd|grep -v grep
と入力し、inetdとでたら、/etc/inetd.conf
のloginで始まる行のコメントを解除しましょう。
ファイルを、

xinetdと表示されたら/etc/xinetd.d/rlogin
を修正しましょう。
...続きを読む

Qレッドハットのバージョン確認方法

自分のサーバで使用しているREDHATのバージョン確認はどうすればいいのでしょうか?

more /etc/issue
とやっても英文しか出てきませんでした。

uname -all
でもカーネルのバージョンは出るのですが、REDHATのバージョンは出ませんでした。

Aベストアンサー

> more /etc/issue
> とやっても英文しか出てきませんでした。

その英文にはRedHatのバージョンは書いてなかったのですか?
書いていなかったとしたら、管理者により編集されている可能性
がありますね。

cat /etc/redhat-release

ではいかがでしょう?
やっぱり英文ですけど。

rpm -q redhat-release

でもいいかも

Qシェルスクリプト実行で”そのようなファイルやディレクトリはありません”と出ます。

以下の単純なシェルスクリプトを実行しようとしています。
-------------------
#!/bin/sh
echo ok
-------------------
そのとき、
bad interpreter: そのようなファイルやディレクトリはありません
と出てしまいます。

・which sh で確認すると /bin/sh です。
・Windowsで作ったファイルをFTPのアスキーモードで転送しています。

(ものすごく単純なミスをしてるのかもしれませんが、)
よろしくお願いします。

Aベストアンサー

1行目の「/bin/sh」のうしろにCRが入っていると、このような現象が発生します。
FTPの転送モードが間違いなくアスキーモードになっているか、
転送後のファイルにCRがついていないかなど、再度確認してみてください。

CR以外のコントロールコードや全角スペースなどがついていても似た現象が起こります。
その場合はエラーメッセージが多少異なるはずですが、併せて確認しておくと良いかと思います。

Qシェルの実行について

シェル、コマンドを実行に関して質問があります。
シェル名だけ「シェル名」だけで実行できたり「./シェル名」としないと実行できなかったりしますが、この違いはどこからくるのでしょうか?
また、「csh シェル名」とするばあいもありますが、これらの明確に違い(使い分け)が分かりません。
ご教授の程宜しくお願いいたします。

Aベストアンサー

パスを省略すると、環境設定のPATHに記述された順にコマンドを探しに行きます。

「csh シェル名」とするのは、cshにファイルを渡しています。
先頭のcshを省略するためには、ファイルの先頭に #!/bin/csh (環境に応じて変更要)の記述がある
ことと、そのファイルに実行権限がついていることが必要になります。

なお、「./シェル名」とすることは、PATHによって意図したコマンドとは別に存在する
コマンドを呼んでしまうことがないようにする良いマナーです。
特にrootではコマンドはフルパスで実行するよう心がけましょう。

コマンドの場所は、 which で探すことができます。
PATHによって複数のコマンドが呼べる場合は、whereis で探すこともできます。

Q起動しているサービスを確認するコマンド

初歩的な質問で恐縮ですが、ご教示いただけますと幸いです。

起動しているサービスを確認するために以下の2つのコマンドを打ってみるのですが、結果(出て来るサービス名)が違います。
このコマンドの違いについてご教示いただけますでしょうか。

(1)service --status-all
(2)chkconfig --list

Aベストアンサー

(1)service --status-all

サービスの現在のステータスを調べるコマンド

(2)chkconfig --list

OSのブート時に自動起動するサービスを調べるコマンド

違いが出るのは、
・ブート後に手動あるいは他のコマンドから起動したサービス
・ブート後に手動あるいは他のコマンドから、あるいはエラーで停止したサービス
・ブート後に実行はされるがすぐに停止して常駐しないサービス (ntpdate とか)

あるいは、(1)ではサービス名が表示されない物もあるので、どのサービスがどんなステータス出力をするのか知っておく必要もありますね。(service network statusとか)

Qbad 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

Aベストアンサー

/bin/shはありますか?

シェルスクリプトの最初の行(#!で始まる行)は、インタープリタの指定を意味しています。
つまり、#!/bin/shと書けば、「このファイルは/bin/shをインタープリタとする」ということです。

なので、
"/bin/bash: 1.sh: /bin/sh: bad interpreter: No such file or directory"
このエラーは、「/bin/bashが1.shを実行しようとしたが、/bin/shが無い」ということを意味しています(多分)。

RedHat9では、/bin/shは/bin/bashへのリンクなので、もし無ければ
ln -s /bin/bash /bin/sh
とすると良いでしょう。

QBシェルとCシェル

Solarisサーバの運用において、シェルでスクリプトを作成する場合、BシェルとCシェルでは、どちらが多く用いられているでしょうか?

Aベストアンサー

ちょっと補足。
BshかCshかという選択ならBshですが、他の方が言っておられるようにbashなどで書いても構いません。

・一般ユーザが利用するsetuidしていないスクリプト
 shでもbashでもzshでもなんでもよい。
 csh系(tcshも)だけはやめた方が無難。
・setuidしていいるスクリプト
 シェルスクリプトはsetuidしないのが安全。
 csh系(tcshも)だけはやめときましょう。

・Solaris以外のOSに移植するかも知れないスクリプト
 shかbashで書く。
 OSにデフォルトで存在するシェルで書いておいた方が無難。
 shはどのOSにもあるが、微妙なところで仕様が違うので要注意。
 ただ、Solarisの/bin/shは一番古くて仕様がしょぼいので、
 Solarisで動けばよそに持っていっても動くと期待できる。

・システムのブート段階などで動くスクリプト
 基本は/sbin/sh。シェルがスタティックリンクされている必要がある。

Qstartxうまいくいかない。

 こんばんは。
仮想環境でCentOSを使っている者です。
startxを打ってもGUIに行かず困っています。
打つと、下記エラーが出力されます。

xauth: creating new authority file /root/.serverauth.4052

Fatal server error:
Server is already active for display 0
If this server is no longer running, remove /tmp/.X0-lock
and start again.

仮想環境では
CentOS 5.0です。

ホストOSの環境です。
Windows XP SP3
Pentium4 2.66G
RAM 2G

どのようにすれば解決するでしょうか?

Aベストアンサー

> どのようにすれば解決するでしょうか?

解決の前に確認が必要です。

そのエラーは「すでにXサーバーが起動している」ということです。
つまり、すでにGUI環境なのにstartxを実行しているのでGUIに行けない状態です。

次のどちらか(または、どちらも)試してみるとどうなりますか。
1. init 3 と入力してモード変更して startx を試す。
2. テキストモードで起動して startx を試す。

Qexport と set は違うの?

export X=a は環境変数
set Y=b はシェル変数
を設定すると聞きました。

この二つは違うのでしょうか・・。
具体例があると助かります。

Aベストアンサー

sh,bashでは、
シェル変数=値
export 環境変数=値

csh,tcshでは、
set シェル変数=値
setenv シェル変数 値
です。
シェル変数はシェルの設定を変更したり、シェルスクリプトで変数に使ったりします。環境変数は、シェルから起動したコマンドの動作を変えたりします。

bashの例:
PS1='abc$ ' プロンプトを変更します。
for i in `set 20`;do echo $i;done ループの変数

date 日付は日本語形式で表示
export LC_TIME=C 日付表示形式をデフォルトにします
date 日付は英語形式で表示

Qロケールをutf8からsjisにするとログイン時に「イベントがありません」エラー

こんにちは。私はLinux CentOS5を使っています。
あるユーザ(aaaとする)でログインシェルを/bin/cshにしています。

システムロケールをUTF8からSJISに変更すると(i18nファイルを変更しました)、
[aaa@centos ~]$ su - aaa
パスワード:
~: イベントが見つかりません.

となってcshスクリプトなどが使えず、/home/aaa/.cshrcも正常に読み込まれないようなので、/home/aaa/.cshrcで書いているPATHなどが通っていません。
わからないのは、システムロケールがUTF8の時は問題なくログインして.cshrcもちゃんと読めていたのに、SJISにするとエラーが起こることです。

どうかよろしくお願いします。

Aベストアンサー

> こう書くのが普通なのですね・・・普通、というのがまだわかってないです。/dev/の中にnullなんてものが・・・勉強します!

普通というか、名前無しパイプ(|)を使えば余計なファイルを作成せず、コマンドの標準入力に${path}を内容渡せますし、grepも終了ステータス(cshの場合$status)を見れば一致するものが見つかったかどうか分かるので。
あと、/dev/null は、例えばコマンド結果を画面やファイルに出力したくない場合にその出力を /dev/null に出力すれば破棄してくれる特別ものです。

> ログイン時のエラーはまだ、そのままです。

あれ、そうなんですか。
実際、修正して試したりしていないのでまだエラーになる所があるのかな。

> エラーを再現してくださったディストリは何ですか?

> [lean@brynhildr ~]$ cat /etc/redhat-release
> CentOS release 5.2 (Final)

とあるように CentOS 5.2 です。


人気Q&Aランキング