TopPocketBSDシュミプロ日記もくじ
--------------------

ポケビと私

PocketBSD で始まる私の濃い。


--------------------

免責事項(笑)

本ページの内容はすべて as is で提供されるものであり、その内容についてなんらの保証をするものではありません。

本ページの内容にしたがって行った事柄によっていかなる被害を被っても、本ページの作者/内容提供者は一切その責任を負いませんので、あらかじめ御了承下さい。


トピック


ユーザー ID の追加

とりあえずインストールに成功したら、普段ポケビを使うための「一般ユーザー」を登録しましょう。

インストール直後に利用しているのは、root (ルートと読む。別名スーパーユーザー)といって、システム管理者が各種メンテナンスをするときに使うユーザーです。メールの読み書きなどの普段の生活で使うには権限が強すぎますので、ポケビのような超個人向け UNIX でも一般ユーザーでログインするのがお勧めです。

Tips:
ユーザーid, グループid, ともに母艦に合わせるのがオススメ。
operator という group に加わっているユーザーは shutdown, zzz などのコマンドを実行できます。
wheel という group に加わっているユーザーは su の呪文でスーパーとこちゃんに(以下略)のコマンドで root になることができます。

作業の進め方

手順は下記の通りです。

  1. vipw で /etc/passwd の編集
  2. /etc/group の編集
  3. ホームディレクトリとドットファイルの作成

1. vipw で /etc/passwd の編集

コマンドラインから ``vipw'' と入力すると、パスワードデータベースの内容を読み込んだ vi が起動します。

ここで自分の作成したいユーザーの情報を追加すればオッケー。

ユーザー名はアルファベットの組合せで256文字まで。(たしかそのくらい。)日本語やスペース(空白文字)を使おうとするとハマります。

パスワードデータベースの書式については、マニュアルなどを参照して下さい。ここでは必要最低限の例を書きます。以下の通りやれば、意味が分からなくても使えるようにはなるはずです。

ユーザー名は仮に``pbsd'' としています。他の名前をつけた方は適宜読み替えて下さい。

手順

vipw を実行した直後から、以下の操作をして下さい。とくに書いていない場合、リターンキーは不要です。


G を一回押す(シフトを押しながら `g'):コマンド「最終行に移動」

o を一回押す:コマンド「一行追加して入力モードに移行」

下記の一行を入力する

pbsd::1001:1001::0:0:PocketBSD:/home/pbsd/:/bin/csh

[ESC] (エスケープキー)を押す:コマンド「コマンドモードに移行」

Z を二回押す(シフトを押しながら `z'):コマンド「保存して終了」

ふう。これでうまくいけば新しい一般ユーザー `pbsd' が登録できているはずです。

2. /etc/group の編集

コマンドラインから、``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


csh の限界に挑む (誇張)

メモリの制限のきついポケビでは、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 するのはイヤになりません? 実はこんなに便利な機能があるんです…。

pushd

``cd ディレクトリ名'' の代わりに ``pushd ディレクトリ名'' と打ってみましょう。すると、移動したあとも今いたディレクトリを csh がこっそり覚えていてくれます。

イロイロなコマンドを使って作業が進んだあと、さっき覚えてもらったディレクトリに戻りたいな、と思ったら ``pushd'' と打ちます。ディレクトリ名はいりません。これだけでぱっと戻ることができます。そして、戻る前にいたディレクトリ名を csh は覚えていてくれるのです。二つのディレクトリを交互に行ったり来たりするだけなら、もう単純に ``pushd'' を連発していればいいのです。超ラクチン!!

ほんとはスタックなんです

実は ``csh が覚えている場所'' はスタック状になっているんです。たくさん ``pushd ディレクトリ名'' を連発しても、全部覚えていてくれるんです。``dirs'' というコマンドを打つと、今 csh が覚えているディレクトリを全部教えてくれます。

スタックというのは、…って説明をはじめると長くなっちゃうので省きます。(笑汗)

popd

``popd'' と打つと、csh はディレクトリスタックのてっぺんから一つディレクトリを pop してきて、それをカレントディレクトリにセットしてくれます。

``popd'' を連発すると、``pushd ディレクトリ名'' で移動した順序を逆に移動できるのです。

スタックの操作と活用法

とりあえず、マニュアルを引用してしまおう。


pushd

pushd name

pushd n

        引数を指定しなかった場合、 pushd はスタックの先頭の 2 つの

        要素を入れ替えます。引数 name が指定された場合、 cd と同様

        にカレント・ディレクトリを変更したあと、古いカレント・ディ

        レクトリをディレクトリ・スタックにプッシュします。数字引数

        が指定された場合、ディレクトリ・スタックの n 番目の要素がス

        タックの先頭にくるようにローテートし、カレント・ディレクト

        リをその要素が指すディレクトリに変更します。ディレクトリ・

        スタックの要素は、スタックの先頭から 0 から順に番号がつけら

        れます。



popd

popd +n

        ディレクトリ・スタックをポップし、新たにスタックの先頭に

        なったディレクトリにカレント・ディレクトリを変更します。引

        数 `+ n' が指定された場合、スタックの n 番目の要素が捨てら

        れます。ディレクトリ・スタックの要素は、スタックの先頭から

        0 から順に番号がつけられます。



alias のマジック

最近のシェルは、カレントディレクトリがどこかをプロンプトに表示することができますよね。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


Emacs 系の設定

Mule とか Nemacs とか。

Nemacs 用 .emacs の設定

my-next-line とか、 my-buffer-menu とか。 C-h をバックスペースにとか。

;;; -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)

Nemacs 用 オススメ lisp ライブラリ

上の .emacs にも入っていますが、あなたの Nemacs ライフをより快適なものにするスグレもののライブラリ basic.el を御紹介します。

nifty/funix などでご活躍中の NAMBA さんが作者です。 Emacs Lisp programs I developed

# "TOWER OF MULE" はバベルの塔なんだろうか。ジェリコの砦というのはマニアック過ぎるから多分違うね。


mgl 関連の設定

mgl アプリでの canna 設定

環境変数を設定する

setenv MGLIM imcanna.so

mgterm のミニアプリ設定&使用法

環境変数を設定する

setenv MGTAPP mcalc:msame:mini_mil


Emacs 使いに送る 「vim で楽々マルチバッファ」

$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 を押してから入力します。

--------------------

Cake (SHIMADA Keiki)
Last modified: Sat Apr 15 02:15:32 JST 2000
カウンタ