本ページの内容はすべて as is で提供されるものであり、その内容についてなんらの保証をするものではありません。
本ページの内容にしたがって行った事柄によっていかなる被害を被っても、本ページの作者/内容提供者は一切その責任を負いませんので、あらかじめ御了承下さい。
とりあえずインストールに成功したら、普段ポケビを使うための「一般ユーザー」を登録しましょう。
インストール直後に利用しているのは、root (ルートと読む。別名スーパーユーザー)といって、システム管理者が各種メンテナンスをするときに使うユーザーです。メールの読み書きなどの普段の生活で使うには権限が強すぎますので、ポケビのような超個人向け UNIX でも一般ユーザーでログインするのがお勧めです。
手順は下記の通りです。
コマンドラインから ``vipw'' と入力すると、パスワードデータベースの内容を読み込んだ vi が起動します。
ここで自分の作成したいユーザーの情報を追加すればオッケー。
ユーザー名はアルファベットの組合せで256文字まで。(たしかそのくらい。)日本語やスペース(空白文字)を使おうとするとハマります。
パスワードデータベースの書式については、マニュアルなどを参照して下さい。ここでは必要最低限の例を書きます。以下の通りやれば、意味が分からなくても使えるようにはなるはずです。
ユーザー名は仮に``pbsd'' としています。他の名前をつけた方は適宜読み替えて下さい。
vipw を実行した直後から、以下の操作をして下さい。とくに書いていない場合、リターンキーは不要です。
G を一回押す(シフトを押しながら `g'):コマンド「最終行に移動」
o を一回押す:コマンド「一行追加して入力モードに移行」
下記の一行を入力する
pbsd::1001:1001::0:0:PocketBSD:/home/pbsd/:/bin/csh
[ESC] (エスケープキー)を押す:コマンド「コマンドモードに移行」
Z を二回押す(シフトを押しながら `z'):コマンド「保存して終了」
ふう。これでうまくいけば新しい一般ユーザー `pbsd' が登録できているはずです。
コマンドラインから、``vi /etc/group'' と入力すると、グループ定義ファイルを読み込んで vi が起動します。同じように一行追加しちゃいましょう。
一般ユーザー用として、ここでは `users' というグループ名を使います。前節と同じく、ここでは例として最低限の情報を登録します。
G を一回押す(シフトを押しながら `g'):コマンド「最終行に移動」
o を一回押す:コマンド「一行追加して入力モードに移行」
下記の一行を入力する
users:1001:pbsd
[ESC] (エスケープキー)を押す:コマンド「コマンドモードに移行」
Z を二回押す(シフトを押しながら `z'):コマンド「保存して終了」
さっきとほとんど同じですね。(笑)
なんとなく vi が怖くなくなってのではないでしょうか。
ホームディレクトリというのは、自分の個人的なファイルを保管しておくディレクトリです。(ここで「個人的なファイル」というのは「システムに関係するファイル」の反対の意味です)
ホームディレクトリがログインしたときのカレントディレクトリになります。また、一般ユーザーは、ホームディレクトリ以下のファイル/ディレクトリ以外基本的に書き込みできないようになっています。
mkdir /home
mkdir /home/pbsd
chown pbsd /home/pbsd
chgrp users /home/pbsd
cp /root/.cshrc /home/pbsd
chown pbsd /home/pbsd/.cshrc
chgrp users /home/pbsd/.cshrc
メモリの制限のきついポケビでは、bash とかの便利なシェルはそれだけでスワップ増加の元になってしまいます。わたしは泣く泣く bash を消し、csh での生活に戻りました。
しかし「住めば都」とはよく言ったもので、使いこなしのコツを飲み込んでくるとそれほど不自由な思いはしなくなってきました。
ここでは私の使っているいくつかの tips を御紹介しましょう。
コマンドを打つ時、一番めんどうなのは深いディレクトリにあるファイルやながーいファイル名を指定することですよね。そんなときは、ファイル名の途中まで打って [ESC] キーを押しましょう。csh が後の文字を代わりに補完してくれます。候補が複数あって csh に判断できない場合は、途中まで補完したあとビープで教えてくれます。
コマンド名を間違えた!!とか同じコマンドをちょっとずつ変えて何回も入れなければならない!!とかいうときは、ヒストリ置換を使いましょう。
% find / -name w3mhelp.html -pront
find: -pront: unknown option
% !!:s/pront/print/
find / -name w3mhelp.html -print
/usr/local/share/doc/w3m/w3mhelp.html
% _
``!!'' というのは直前に実行したコマンドを表す記号です。そのままリターンを入れると、直前のコマンドを再度実行することができます。
しかし csh がすごいのは、その後 ``:'' に続けて (s)ed 互換の文字列置換コマンドを使って間違いを修正することができるところです。正規表現が使えるので、単純なカーソル移動による画面編集よりも便利に使える場面もあります。なんとも Unix らしい機能ですね。
シェルを使っていろいろな作業をしていると、いくつかの異なるディレクトリの間を行ったり来たりしなければならない事がでてきます。そんなときに何度も同じディレクトリ名を cd するのはイヤになりません? 実はこんなに便利な機能があるんです…。
``cd ディレクトリ名'' の代わりに ``pushd ディレクトリ名'' と打ってみましょう。すると、移動したあとも今いたディレクトリを csh がこっそり覚えていてくれます。
イロイロなコマンドを使って作業が進んだあと、さっき覚えてもらったディレクトリに戻りたいな、と思ったら ``pushd'' と打ちます。ディレクトリ名はいりません。これだけでぱっと戻ることができます。そして、戻る前にいたディレクトリ名を csh は覚えていてくれるのです。二つのディレクトリを交互に行ったり来たりするだけなら、もう単純に ``pushd'' を連発していればいいのです。超ラクチン!!
実は ``csh が覚えている場所'' はスタック状になっているんです。たくさん ``pushd ディレクトリ名'' を連発しても、全部覚えていてくれるんです。``dirs'' というコマンドを打つと、今 csh が覚えているディレクトリを全部教えてくれます。
スタックというのは、…って説明をはじめると長くなっちゃうので省きます。(笑汗)
``popd'' と打つと、csh はディレクトリスタックのてっぺんから一つディレクトリを pop してきて、それをカレントディレクトリにセットしてくれます。
``popd'' を連発すると、``pushd ディレクトリ名'' で移動した順序を逆に移動できるのです。
とりあえず、マニュアルを引用してしまおう。
pushd
pushd name
pushd n
引数を指定しなかった場合、 pushd はスタックの先頭の 2 つの
要素を入れ替えます。引数 name が指定された場合、 cd と同様
にカレント・ディレクトリを変更したあと、古いカレント・ディ
レクトリをディレクトリ・スタックにプッシュします。数字引数
が指定された場合、ディレクトリ・スタックの n 番目の要素がス
タックの先頭にくるようにローテートし、カレント・ディレクト
リをその要素が指すディレクトリに変更します。ディレクトリ・
スタックの要素は、スタックの先頭から 0 から順に番号がつけら
れます。
popd
popd +n
ディレクトリ・スタックをポップし、新たにスタックの先頭に
なったディレクトリにカレント・ディレクトリを変更します。引
数 `+ n' が指定された場合、スタックの n 番目の要素が捨てら
れます。ディレクトリ・スタックの要素は、スタックの先頭から
0 から順に番号がつけられます。
最近のシェルは、カレントディレクトリがどこかをプロンプトに表示することができますよね。csh でも、こんなおまじないを $HOME/.cshrc に書いておけば同じことができます。どうしてそうなるのかは、…えーっと、みなさんへの宿題としときます。よく考えてみましょう。(^-^;
#csh .cshrc file
# for include cwd in prompt string
alias spt 'set prompt="`pwd` % "'
alias cd 'cd \!*;spt'
alias pushd 'pushd \!*;spt'
alias popd 'popd \!*;spt'
# set prompt for first time...
spt
Mule とか Nemacs とか。
;;; -mode: lisp-interaction; syntax: elisp -*-
(define-key global-map "\C-h" 'delete-backward-char)
(define-key global-map "\C-^" 'help-command)
(define-key ctl-x-map "u" 'canna-undo)
(setq load-path (cons "/usr/local/share/nemacs/site-lisp" load-path))
(load-library "canna")
(canna)
(set-kanji-display-code 'euc)
(defun date ()
(interactive)
(insert (current-time-string)))
;;; From basic.el, written by Mr. NAMBA
(defun my-next-line (arg)
"Move cursor vertically down ARG lines.
Almost the same with next-line, but never inserts newline in any case."
(interactive "p")
(line-move arg)
(setq this-command 'next-line)
nil)
(global-set-key "\C-n" 'my-next-line)
(defun my-buffer-menu (arg)
(interactive "p")
(list-buffers arg)
(delete-window)
(forward-line 2))
(define-key ctl-x-map "\C-b" 'my-buffer-menu)
(put 'narrow-to-region 'disabled nil)
上の .emacs にも入っていますが、あなたの Nemacs ライフをより快適なものにするスグレもののライブラリ basic.el を御紹介します。
nifty/funix などでご活躍中の NAMBA さんが作者です。 Emacs Lisp programs I developed
# "TOWER OF MULE" はバベルの塔なんだろうか。ジェリコの砦というのはマニアック過ぎるから多分違うね。
環境変数を設定する
setenv MGLIM imcanna.so
環境変数を設定する
setenv MGTAPP mcalc:msame:mini_mil
$HOME/.vimrc というファイルを、下記の内容で作成する。
:map ^X^F :split
:map ^X2 :split
:map ^X1 ^O
:map ^Xk :bdelete
:map ^X^B :buffers
:map ^X^S :w
:map ^X^C :wq
注:^X などの文字は実際はコントロールキャラクタなので、vi 系では C-v 、Emacs 系では C-q を押してから入力します。