source、logout がないということは、シェルが csh 系になっていないという
ことではありませんか?
echo $SHELL してください。
grep $USER /etc/passwd してください。
そして、root 権限で
env EDITOR=emacs vipw
としてシェル欄を書き換えてください。
========================================================================
飯嶋 浩光 / でるもんた・いいじま http://www.ht.sakura.ne.jp/~delmonta/
IIJIMA Hiromitsu, aka Delmonta mailto:delm...@ht.sakura.ne.jp
───【宣伝/ADVERTISEMENT】──────────────────────
fj.os.ms-windows.server2003 または fj.os.ms-windows.server の新設の可否
を問う投票を実施中です。
fj.news.group.comp をご参照のうえ、ふるってご投票ください。
投票期限は 8/25(月)です。
────────────────────────────────────
/etc/passwdのシェル名をcshに置き換えたら解決しました。
ありがとうございました。(゜゜)(。。)ペコッ
> /etc/passwdのシェル名をcshに置き換えたら解決しました。
> ありがとうございました。(゜゜)(。。)ペコッ
解決したようで何よりです。
でも、Solaris の csh にはカーソルの上下で以前のコマンドを参照したりする
機能はなかったはずですので、tcsh のインストールをお勧めします :-)
#とか書くと、/bin/sh の文法を覚えるために bash にしろとか、zsh はいいぞ
#とか意見がつくんですが、ま、tcsh で当座は間に合うなら、/bin/sh の文法は
#必要になってから覚えるということでいいと思いますよ。
"IIJIMA Hiromitsu" <delm...@ht.sakura.ne.jp> wrote in message
news:3F3F40CA...@ht.sakura.ne.jp...
> いいじまです。
>
> > /etc/passwdのシェル名をcshに置き換えたら解決しました。
> > ありがとうございました。(゜゜)(。。)ペコッ
>
> 解決したようで何よりです。
>
> でも、Solaris の csh にはカーソルの上下で以前のコマンドを参照したりする
> 機能はなかったはずですので、tcsh のインストールをお勧めします :-)
仕事で使ってるUnixがcsh動かしてるので、しばらくcshで頑張ります。。
ちなみに、/bin/shではできるけど、cshではできない、ということもあるのでしょう
か?
なければルートのシェルもcshにしてしまいたいのですが。。。。
> #とか書くと、/bin/sh の文法を覚えるために bash にしろとか、zsh はいいぞ
> #とか意見がつくんですが、ま、tcsh で当座は間に合うなら、/bin/sh の文法は
これからシェル選ぶとか、/bin/sh 系にのりかえるとかの場合には
zsh すすめたりしますが、それはともかく、
>>> env EDITOR=emacs vipw
こんなことしたら、su する前のユーザーのホームディレクトリーに書きに
いくわ、/etc 下にテンポラリーファイルのバックアップファイル作るわ、
大変なことにならないですか?
--
持田 修司 NETside Technologies Inc.
-- Equal Opportunity for All Good Architectures, NetBSD. --
> いいじまです。
> でも、Solaris の csh にはカーソルの上下で以前のコマンドを参照したりする
> 機能はなかったはずですので、tcsh のインストールをお勧めします :-)
ksh にもその機能あります。Solaris2.x 以降に同梱されています。
--
mailto:shi...@dd.iij4u.or.jp 渋谷伸浩
> ちなみに、/bin/shではできるけど、cshではできない、ということもあるのでしょう
> か?
> なければルートのシェルもcshにしてしまいたいのですが。。。。
いろいろあります。
一例として標準出力、標準エラー出力を同時に適切に扱う機能が欠如してます。
--
mailto:shi...@dd.iij4u.or.jp 渋谷伸浩
> > でも、Solaris の csh にはカーソルの上下で以前のコマンドを参照したりする
> > 機能はなかったはずですので、tcsh のインストールをお勧めします :-)
>
> 仕事で使ってるUnixがcsh動かしてるので、しばらくcshで頑張ります。。
tcsh はコマンドラインエディタの機能を除いては完全に csh の上位互換ですから、
tcsh にしちゃっていいと思いますよ。
> /bin/shではできるけど、cshではできない、ということもあるのでしょうか?
> なければルートのシェルもcshにしてしまいたいのですが。。。。
日常業務は csh で大抵間に合います。
が、標準出力と標準エラーを別々のデバイスに書き出す機能、たとえば
find / -name httpd 1> stdout.txt 2> stderr.txt
というのは csh ではできないので、csh から sh を起動してこのコマンドを打
ち込むか、あるいは私なら
sh -c 'find / -name httpd 1> stdout.txt 2> stderr.txt'
とします。
もうひとつ、csh 系には「関数定義」という機能が欠けているのですが、これは
まあ小島さんの今の段階では考える必要はないでしょう。私自身も、システム標
準の sh スクリプトをコピペして関数を書くことはたまにあって、これはシステ
ム管理の目的にはいろいろ重宝するのですが、自分のスクリプトで関数を書いた
ことは一度もありません。それで間に合っています。なぜなら、そこまで面倒な
仕事になると Perl に逃げてしまうから。
root のシェルも csh にして特に問題ないと思いますが、/usr が / と別パーテ
ィションになっている場合は、Solaris では csh は /usr/bin/ にあったはずで
すので、「/usr が壊れたので復旧のために root になりたいけど、csh が起動
しない!」というパニックになる可能性がありますから、緊急起動用の CD を常
備しておく程度の対策は必要です。
というわけで、root のシェルは sh のままにしておくのが定石です。
特に、tcsh 使いと bash/zsh 使いの管理人がいる場合には、どちらの贔屓にも
ならないように sh にしたりします。root になってから exec csh と入力して
csh を起動すればそれで事足ります。
すぐ csh が動いてほしい、というのであれば、croot とかいう別のユーザー
(UID は root と同じ 0 にする)を作って、そのシェルを csh にするという方
法があります。Linux だと、bash を使う toor というユーザーが存在していた
りしますよね。
あとは、むやみに root にならないで sudo を使うことも検討しましょう。
・コマンドラインで指定したコマンドひとつだけを root 権限で実行する
・ログが残る
・root パスワード不要で、本人のログインパスワードだけで実行可能できるので、
root パスワードを大人数で共有する必要がない
・誰それには○○を許可、誰それには××は不許可、という指定ができるので、
たとえば自分以外のユーザーは shutdown、reboot、mount、umount だけ許可、
という指定ができる
といった特徴があります。
sudo は Solaris 用のパッケージとして存在しているはずですよ。
> > env EDITOR=emacs vipw
>
> こんなことしたら、su する前のユーザーのホームディレクトリーに書きに
> いくわ、/etc 下にテンポラリーファイルのバックアップファイル作るわ、
> 大変なことにならないですか?
ん~、作業後に /etc とかを確認して余計なファイルをきちんと消すようにすれ
ば大丈夫だと思うのですが……ちょっと元記事の方は vi を使いこなせないだろ
うと判断して、あえて Emacs を使う方法を紹介しました。
Linux とかだと、vi コマンドの正体が vim で、普通に vi でシステムファイル
をいじってもバックアップファイルが残るらしいのですが、vipw のときはバック
アップ抑止オプションがついていたりするのでしょうか?
ちなみに私自身は、vi は基本的な操作はできますが、切り貼りのような比較的
高度な操作はできないので、そういうときは Emacs に逃げてしまいます。
> そして、root 権限で
> env EDITOR=emacs vipw
> としてシェル欄を書き換えてください。
ふつーログインshellを書き換えるんだったらpasswd -eでないんかい?
--
___ わしは、山吹色のかすてーらが大好きでのぅ
[[o o]] ふぉっふぉっふぉ
'J' 森下 お代官様 MaNMOS 英夫@ステラクラフト
PGP Finger = CD EA D5 A8 AD B2 FE 7D 02 74 87 52 7C B7 39 37
> というわけで、root のシェルは sh のままにしておくのが定石です。
これは、SVR4 系の「定石」かな?
BSD 系では root の shell は /bin/csh が普通。
SVR4 系は /bin が /usr/bin への symlink であり、/usr/bin 下のプログラ
ムは shared library を使うものが多く、/usr/bin/sh, /usr/bin/csh も例外
ではない。なので、SVR4 系では、root の shell は /sbin/sh を明示的に指
定しているはず(空だと /usr/bin/sh になるから)。
> Linux だと、bash を使う toor というユーザーが存在していたりしますよ
> ね。
4.4BSD-Lite 系にある、/bin/sh を使う toor が元でしょう。(OpenBSD では
削られてるけど)。私の知ってる linux では root は最初から /bin/bash を
使うものばかりだ。
--
池田研二 稲城駅前在住
IIJIMA Hiromitsu <delm...@ht.sakura.ne.jp> writes:
> いいじまです。
>
> でも、Solaris の csh にはカーソルの上下で以前のコマンドを参照したりする
> 機能はなかったはずですので、tcsh のインストールをお勧めします :-)
>
Solaris8以降では
/usr/bin/bash*
/usr/bin/csh*
/usr/bin/hash*
/usr/bin/jsh*
/usr/bin/ksh*
/usr/bin/pfcsh*
/usr/bin/pfksh*
/usr/bin/pfsh*
/usr/bin/remsh@
/usr/bin/rksh*
/usr/bin/rsh*
/usr/bin/sh*
/usr/bin/tcsh*
/usr/bin/zsh*
とよりどりみどり揃っていますのであえてインストールするまでもありません。
>>>> env EDITOR=emacs vipw
> ん~、作業後に /etc とかを確認して余計なファイルをきちんと消すようにすれ
> ば大丈夫だと思うのですが……ちょっと元記事の方は vi を使いこなせないだろ
> うと判断して、あえて Emacs を使う方法を紹介しました。
さっきちょっとやってみたんですが、編集途中で一旦保存して、さらに
バッファ上ですこし変更を加えてから保存せずに終了したら、
/etc 下に ptmp~ と #ptmp# が残ってしまいます。NetBSD/i386 1.5.1 の
ユーザーランドですが。
> Linux とかだと、vi コマンドの正体が vim で、普通に vi でシステムファイル
> をいじってもバックアップファイルが残るらしいのですが、vipw のときはバック
> アップ抑止オプションがついていたりするのでしょうか?
う~ん、わかりません。うちの Linux(たぶん Red Hat だったと思ったけど、
忘れた(笑))では、確かに vim のようですが、vipw しといて ps で
見てもオプションらしきものは付いてないですが、特にバックアップファイルが
残ったりはしないようです。
Unix ってのは、Bourne Shell の文法と vi さえ知っていれば、あとは
man でイモヅル式にかなりの情報を得ることができる環境だと思うんですよ、
で、最初から zsh 使ってれば不便もないわけで。そういう見方からすると、
csh も文法や emacs の使い方とかいうのは、「先に覚えない方がいい」と
いう感覚があります。
ただ、/etc/shellshはございませんので、適当に作成するように。
#絶対、片手落ち。
man...@stellar.co.jp (Hideo "Sir MaNMOS" Morishita) writes:
>
> ただ、/etc/shellshはございませんので、適当に作成するように。
from man shells(4)
The following default shells are used by utilities:
/bin/bash, /bin/csh, /bin/jsh, /bin/ksh, /bin/pfcsh,
/bin/pfksh, /bin/pfsh, /bin/sh, /bin/tcsh, /bin/zsh,
/sbin/jsh, /sbin/sh, /usr/bin/bash, /usr/bin/csh,
/usr/bin/jsh, /usr/bin/ksh, /usr/bin/pfcsh, /usr/bin/pfksh,
/usr/bin/pfsh, and /usr/bin/sh, /usr/bin/tcsh, /usr/bin/zsh.
Note that /etc/shells overrides the default list.
無くても良いようです。
> #絶対、片手落ち。
> > そして、root 権限で
> > env EDITOR=emacs vipw
> > としてシェル欄を書き換えてください。
>
> ふつーログインshellを書き換えるんだったらpasswd -eでないんかい?
Solaris でそれできましたっけ?
…調べてみました。
root 権限があれば passwd -e でできるんですね。
一般ユーザーの権限では /etc/passwd に書いてあるログインシェル指定は書き
換えられないので、本人が変更できるようにするには仕掛けが必要ですね。
> Unix ってのは、Bourne Shell の文法と vi さえ知っていれば、あとは
> man でイモヅル式にかなりの情報を得ることができる環境だと思うんですよ、
> で、最初から zsh 使ってれば不便もないわけで。そういう見方からすると、
> csh も文法や emacs の使い方とかいうのは、「先に覚えない方がいい」と
> いう感覚があります。
ええ。
でも、「Bourne Shell の文法と vi」を修得するまでの修行が初心者さんにはつ
らいのではと思うのですよ。たしかに、修行が本務である情報系の学生さんとか、
趣味で UNIX を使っている人とかならそれでかまわないんですが、
でも、Windows の代替用途に PC-UNIX を使わせようとしたら、Bourne Shell も
vi も、場合によっては Emacs も後回しにして、KDE なり GNOME なりでのグラフ
ィカルなファイル操作の手順と、OpenOffice あたりの操作方法、あとは Mozilla
あたりでのメールの読み書きの方法を教えて、とりあえずそれでよしとしなけれ
ばいけない。
私が出身大学に顔を出してチューターの後輩の仕事を手伝ってて、相談に来た学
生さんに「ls とか mv とかのコマンドの使い方わかりますか?」とか訊いてみる
と、「1 年生の時に『情報処理』(コンピュータ入門の授業、必修)で習ったけ
ど、もう忘れた」という返事が返ってくる人が本当に少なくないです。
それに私自身も、Emacs は外道な使い方をしていて、豊富な機能はほとんど殺し
てあります。
昔は変えられたんですけどね。いまでもldapとかniだとかnis+とかだと変えら
れるんです。
あ、そう言えば私のshellが昔の関係で/usr/local/bin/tcshになっていたのを
/usr/bin/tcshに変えたときに勘違いしていたようで…
> > #絶対、片手落ち。
しっつれいいたしましたぁ
> > 一般ユーザーの権限では /etc/passwd に書いてあるログインシェル指定は書き
> > 換えられないので、本人が変更できるようにするには仕掛けが必要ですね。
>
> 昔は変えられたんですけどね。
SunOS 4.x の時代ですね。
私が Solaris を使い始めたのは確か 98 年頃(SunOS 4.x が一部でまだ生き残っ
ていた時期)で、当時、日本 Sun の FAQ を読んで愕然とした覚えが…
知り合いには、シェルが csh 固定(実際には .cshrc で exec tcsh している)
なのに怒り心頭で、.cshrc の中身が
if ($?prompt) exec ~/bin/zsh
の 1 行だけ、なんていう人もいます。
> いまでもldapとかniだとかnis+とかだと変えられるんです。
はい。
IKEDA Kenji wrote:
> In article <3F402F92...@ht.sakura.ne.jp>,
> IIJIMA Hiromitsu <delm...@ht.sakura.ne.jp> wrote:
>>というわけで、root のシェルは sh のままにしておくのが定石です。
> これは、SVR4 系の「定石」かな?
SVR1時代にすでに定石だったとおもいますよ。
cshはSystemIIIの時代にすでに移植例があります。
もちろんこのころはkshはなく、デフォルトのシェルはshな
わけすが。rootのシェルをsh以外にすると、root権限で
suとかsystem()を使うツールやスクリプト群がうまく
動かなくなってしまうから、、、だったような記憶があります。
定石と言うよりは必須要件ですね。
> BSD 系では root の shell は /bin/csh が普通。
4.3BSDではすでにrootのシェルは/bin/cshですね。
ただしこの時代、シングルユーザモードでは/etc/passwdの
登録が何であっても/bin/shが動きますが。
> 4.4BSD-Lite 系にある、/bin/sh を使う toor が元でしょう。(OpenBSD では
> 削られてるけど)。私の知ってる linux では root は最初から /bin/bash を
> 使うものばかりだ。
4.3BSDの時代にすでにtoorは存在しました。たとえばIBMの
AOS4.3はtoorを持っています
4.2BSDの時にどうだったかは手元に資料が無くて分かりません。
UCBの純正BSDにtoorが入ったのがいつかは分かりませんが。。
純正4.[23]BSDの配布テープを見れば一発なんだけど、
1/2Inch9トラックMTなので、面倒で・・・・。
でも純正の/usr/bin/tcshは、config_f.hでKANJI、DSPMBYTE及びMBYTEDEBUGが
#undefのままbuildされているみたいでいまいちです。私の勤務先では、これら
を#defineしたのを/usr/local/bin/tcshに入れています。
In article <x74r0fk...@maiorica.uni.sony.co.jp>,
<l...@uni.sony.co.jp> wrote:
>佐藤通敏です。
>Solaris8以降では
>
>/usr/bin/bash*
>/usr/bin/csh*
>/usr/bin/hash*
>/usr/bin/jsh*
>/usr/bin/ksh*
>/usr/bin/pfcsh*
>/usr/bin/pfksh*
>/usr/bin/pfsh*
>/usr/bin/remsh@
>/usr/bin/rksh*
>/usr/bin/rsh*
>/usr/bin/sh*
>/usr/bin/tcsh*
>/usr/bin/zsh*
>
>とよりどりみどり揃っていますのであえてインストールするまでもありません。
多分 ls /usr/bin/*sh しただけなんしょうけど、どさくさに紛
れておかしなものまで含まれてしまってますね :-)
まず csh と pfcsh、sh と jsh と pfsh、ksh と rksh と pfksh
はそれぞれ同じ実体のものです。ls -i で i node を比較してみて
下さい。
このうち pf で始まる 3 つは、それぞれの shell を pfexec す
る機能を持つ代物で、shell としては元の shell と同じものと見
なすべきでしょう。詳細は pfexec(1) 参照。
rksh も ksh と同じ実体を持ちますが、これは restricted ksh
のことで、cd など一部の機能が制限されています。別物とカウン
トする程の差異はないでしょうね。
jsh は sh と同じ実体を持ちますが、これは job control shell
のことで、csh like な job control が可能になります。強いて別
物とするならこれくらいかな。
remsh は rsh への synbolic link ですが、どっちも remote に
使う代物なので shell の一つとしてカウントするのはまずいでし
ょう。こんなの入れるなら ssh も入れてあげないと。
そいでもって hash に至っては shell でもなんでもありません
ね。ksh の alias 用に作られた shell script ですが、機能詳細
は ksh(1) 参照のこと。
ということで、実体として残るのは以下の 6 つだけになります
かね。
>/usr/bin/bash*
>/usr/bin/csh*
>/usr/bin/ksh*
>/usr/bin/sh*
>/usr/bin/tcsh*
>/usr/bin/zsh*
結局そこいらの Linux に入ってる shell と大差ないように思い
ます。
--
しらい たかし