このメモは、もしかすると役に立つかもしれないことの覚え書きです。古くて役に立ちそうにないものも含まれていますので、気をつけてください。適当に同じような情報がまとまってきたら、別のメモとして、独立させる予定です。何か気になった点などがありましたら、メールで指摘してください。
PC-Unix 関係覚え書き 目次
lftp というコマンドラインで使用できる FTP クライアントの使い方のメモです。lftp を使うと、手元にあるファイルをディレクトリごと FTP サイトにアップロードするミラーリングも可能です。また、lftp は日本語でメッセージの表示もできますので、英語が苦手でも大丈夫です。
lftp は http://lftp.yar.ru/get.html からダウンロードできます。また、RedHat Linux などでは、rpm としてパッケージが用意されていますので、インストールは省略します。
まず、引数を付けずに、lftp
コマンドを実行すると、シェルのようなプロンプトが返ってきますので、open
の引数に ユーザID と FTP サーバの URI を入力すると、パスワードを要求されますので、パスワードを入力すると、ログインできます。
$ lftp lftp :~> open -u <ユーザID> <FTPサーバ>
また、直接 FTP サーバにログインするには、以下のように、lftp
コマンドの引数に FTP サーバとユーザID を指定して実行すると、パスワードを要求されます。認証に成功するとログインできます。匿名 FTP を利用する場合はユーザ名に [anonymous]、パスワードに自分のメールアドレスを入力します。
$ lftp <FTPサーバ> -u <ユーザID>
FTP サーバにログインすると、lftp
のコマンドが使用できるようになります。基本的には以下のものがあります。
cd <リモートディレクトリ> : サーバのディレクトリを変更 lcd <ローカルのディレクトリ> : クライアントのディレクトリを変更 put <ローカルファイル> : クライアントのファイルをアップロード get <リモートファイル> : サーバのファイルをダウンロード mput <複数のローカルファイル> : クライアントの複数ファイルをアップロード( 例: mput *.html ) mget <複数のリモートファイル> : サーバの複数ファイルをダウンロード( 例: mget *.rpm ) rm <リモートファイル> : サーバのファイルを削除 help <コマンド名> : コマンドの説明。コマンド名を省略すると、コマンド一覧を表示
put
、get
、mut
、mget
コマンドはデフォルトではバイナリモードで転送を行います。アスキーモードで転送を行う場合は、-a
オプションを付ける必要があります。詳しくは help
などで確認してください。put
その他にも、lftp
には、多くのコマンドがあります。help
コマンドを使用して確認してください。
ログイン後、ブックマークを使用して、FTP サーバの URI、ディレクトリの場所、ログインした時のユーザ名などを記録しておくことができます。
bookmark add <登録名> : ブックマークの追加 bookmark del <登録名> : ブックマークの削除 bookmark edit : ブックマーク編集(エディタが起動) bookmark list : ブックマーク一覧を表示
ブックマークを登録すると、lftp
の実行時や、open
を使用した時に、URI の代わりに、ブックマーク名を入力すると自動的に、ブックマークをした時のユーザ名でしていた FTP サーバに接続してくれます。
ただし、デフォルトでは、ブックマークにパスワードは含まれません。接続する時にパスワードを要求されます。パスワードをブックマークに含め、自動的にログインしたい場合は、以下の指定をホームディレクトリに .lftprc を作成して、以下のように記述してから、lftp
を起動し、ブックマークの登録を行ってください。
set bmk:save-passwords 1
lftp
には、mirror
コマンドがあり、このコマンドを使うことで、指定されたリモートディレクトリをローカルディレクトリにまとめてダウンロードしたり、反対に、ローカルディレクトリをリモートディレクトリにアップロードすることができます。
サーバ側のファイルをディレクトリごとダウンロードしたい時には以下のようにします。
cd <コピー元のサーバ側ディレクトリ> lcd <コピー先のクライアント側ディレクトリ> mirror
反対に、クライアント側のファイルをサーバにアップロードする場合は、以下のようにします。
cd <コピー先のサーバ側ディレクトリ> lcd <コピー元のクライアント側ディレクトリ> mirror -R
mirror
コマンドに -e
オプションを付けると、コピー元にないファイルは削除することができます。
mirror
コマンドで -R
をオプションを使用する場合、-R
を付け忘れると、サーバ側のファイルがダウンロードされ、上書きされてしまいますので、注意してください。
lftp
で手元にあるディレクトリのファイル全てをアップロードする作業を何度も行う必要がある場合、自動更新を行うためのスクリプトを作成すると、手動でコマンドを打たなくても自動的に更新されるますので便利です。このページも、複数ファイルを変更、修正することが多いので、ミラーリングアップロードを行うようにスクリプトを使用しています。
例として、autoupload.lftp というファイルを以下の内容で作成します。
open <ブックマーク登録名、または、相手の FTP サーバの URI> cd <ミラーリング先のサーバのディレクトリ> lcd <ミラーリング元のクライアントのディレクトリ> mirror -R -e
コマンドラインで以下のように実行すると、自動的にアップロードが始まります。
$ lftp -f autoupload.lftp
Happy Hacking キーボードなどでは、通常の日本語キーボードでは、Caps Lock キーのある位置に Ctrl キーがあるのですが、これに慣れてしまうと、日本語キーボードを使う時に、Ctrl キーが押しにくい位置になってしまいます。デスクトップで使うときは、キーボードを変更することもできますが、ノートパソコンを使っているとかなり不便です。キーの位置を入れ換える方法をメモしておきます。
X Window System でのみキーマップを変更する時は、~/.xmodmaprc というファイルを追加して、以下のように記述しておきます。
! ! Swap Caps_Lock and Control_L ! remove Lock = Caps_Lock remove Control = Control_L keysym Control_L = Caps_Lock keysym Caps_Lock = Control_L add Lock = Caps_Lock add Control = Control_L
後は、X Window System が起動してから、以下のように実行するか、自動実行されるようにウインドウマネージャなどに登録することでキーマップの入れ換えができます。
$ xmodmap .xmodmaprc
コンソールなどでは、この方法は使えません。VineLinux などでは、kbdconfig
で、jp106_Ctrl_CAPS を選択することで Ctrl と Caps Lock の入れ換えができますが、RedHat Linux などでは、そのようなキーマップの定義ファイルが入っていませんので、作成してしまうという手があります。RedHat Linux では、/lib/kbd/keymaps/i386/qwerty/ にキーマップの定義ファイルがありますので、gzip を展開し、書き換えて gzip 圧縮をかけることで kbdconfig
から選択できる定義ファイルが作成できます。例として、us キーマップのキーコードの変更の手順をメモしておきます。
日本語キーボードの場合は、jp106.keymap.gz があると思いますので、そのファイルを編集するように適当に読みかえてください。
$ su -c 'zcat /lib/kbd/keymaps/i386/qwerty/us.kmap.gz > /lib/kbd/keymaps/i386/qwerty/usx.kmap' $ su -c 'vi /lib/kbd/keymaps/i386/qwerty/usx.kmap'
以下のような設定になっていますので、
keycode 58 = Caps_Lock keycode 97 = Control
以下のように変更します。
keycode 58 = Control keycode 97 = Caps_Lock
Caps Lock キーが不要な場合は、keycode 97
も Control にしておいても問題ないと思います。最後に、gzip
で圧縮して、kbdconfig
で作成したキーマップ(ここでは usx)を指定すると Caps Lock と Ctrl キーが指定したキーに入れ替わっています。
$ su -c 'gzip /lib/kbd/keymaps/i386/qwerty/usx.kmap'
Linux や、FreeBSD で、CD-R の作成を行うコマンドとして、cdrecord
がありますので、その使い方です。
まず、CD-R のデバイス番号を調べます。
# cdrecord -scanbus
ここで、表示された CD-R のデバイス番号をメモしておきます。
# cdrecord -v dev=0,3,0 speed=4 -pad -dao /path/to/path/<isoイメージ>
オプションの dev
は先の cdrecord
の結果から、CD-R のデバイス番号を指定します。0,3,0 が CD-R の場合は上のように、-scanbus
dev
に指定します。speed
は倍速の指定です。上の例では 4倍速に設定。-pad
というオプションは、dd
や cat
での読み出し時エラーを防ぐために、データの最後に 0 をつめてくれますので、付けておいた方が良いと思います。-dao
は、disk at onceでの書き込みを指定します。
VineLinux では、debian のパッケージ管理の apt-get
がありますので、覚え書き程度にメモしておきます。簡単なコマンドで自動的にアップデートされますので、かなり便利です。基本的には、root でないと使えないので、su
コマンドで root になっておきます。
まず、データベースをアップデートします。コンソール画面のときは、日本語が表示できませんので、kon
コマンドで日本語を表示できるようにしておくか、eng
コマンドで英語環境にしてから使用する方がいいと思います。
# apt-get update
/etc/apt/sources.list から接続先サーバを確認して、アップデート用のリストがダウンロードされます。次に、apt-get
を実行すると、現在インストールされているアップデートパッケージが見付かった場合、自動的にアップデートしてくれます。upgrade
# apt-get upgrade
新しいパッケージをインストールする場合は、以下のように apt-get
を使用します。install
# apt-get install <インストールしたいパッケージ名>
目的のパッケージ名が分からない場合、以下のように、検索することもできます。
# apt-cache search <検索したいパッケージのキーワード>
最近は、ssh
を使ってリモートログインするのが当然のようになってきましたが、サーバクライアントしては、意外と役に立つことがあります。
telnet で pop3 に接続して、来ているメールを確認できます。メーラがない場合や、新しいメールだけを確認したいときに使えるかもしれません。他にも、pop3 サーバが生きているかどうかを確認するのに便利です。[] は環境によって適切なものに置き換えてください。
$ telnet [メールサーバ] 110 USER [ユーザ名] PASS [パスワード] LIST -- メールの番号とバイト数を一覧表示 STAT -- メールの件数とバイト数を一覧表示 RETR [list番号] -- メールの表示、[list番号]は list コマンドで確認 DELE [list番号] -- メール削除 QUIT -- 終了
APOP 認証を行ってログインするサーバの場合、上の方法では、パスワードが合わず、ログインできません。APOP 認証で実際に行うパスワードを計算する方法がありますので、メモしておきます。
サーバに、接続すると、以下のような文字列が表示されます。この文字列は、サーバの場所や接続する時間によって変化します。例えば、サーバが 192.168.0.1 (通常はドメイン名) だとすると、以下のような文字列が表示されます。
<22863.1049367229@192.168.0.1>
パスワードの入力の際に、この文字列を使って、パスワードを計算します。例えば、パスワードが test
だとすると、以下のように md5sum
( BSD 系の場合は、md5
) コマンドを使用して計算できます。
$ echo -n '<22863.1049367229@192.168.0.1>test' | md5sum 6b853936faa5862ce93352df9d3a5ee6 -
ここで表示される 6b853936faa5862ce93352df9d3a5ee6 という文字列がパスワードになります。以下のような形でログインできます。
$ telnet 192.168.0.1 110 Connected to 192.168.0.1. Escape character is '^]'. +OK <22863.1049367229@192.168.0.1> USER test +OK PASS 6b853936faa5862ce93352df9d3a5ee6 +OK
telnet で SMTP に接続して、メールを送信できます。テストメールを送るときくらいにしか役に立ちませんが。この状態では日本語を使っても、普通の人は読めない可能性が高いので、日本語は使わない方が安全です。
$ telnet ***.********.**.jp 25 helo [クライアントドメイン名] -- クライアントを通知 mail from: [送信元メールアドレス] -- 送信元メールアドレスを通知 rcpt to: [送信先メールアドレス] -- 送信先メールアドレスを通知 data -- メール送信(先頭に"."のみを入力すると終了) [・・・ メールの内容 ・・・] . quit -- メール送信を終了 -- data の書式 -- From: To: Subject: . -- 終了する(メール送信)
FreeBSD で ADSL 接続をしていたときの ppp.conf の設定です。設定としては、カーネルに、NETGRAPH という PPPoE 関係のモジュールを組み込むか、kldload
で、ng_pppoe を入れるかのどちらかを選択することになります。
/etc/ppp/ppp.conf は以下のように設定しました。詳細は、man
でかなり詳しい情報が載っていますので、参考にしてください。ppp
default: set device PPPoE:fxp1 # fxp1 は ADSL モデムが接続されている NIC を指定 set speed sync set mru 1454 set mtu 1454 set ctsrts off set authname <USERNAME@DOMAIN> # ADSLを使うときのユーザ名とドメイン名 set authkey <PASSWORD> # パスワード enable lqr add default HISADDR enable dns
また、設定方法は、UNIX USER 2001年7月号を参考にしましたので、持っている人は、そちらも参考にしてください。
多分、古くてこのままでは使えないと思いますが、FreeBSD 4.3 Release の頃に行った make
の手順です。もしかしたら参考になるかもしれませんので、残しておきます。手順は FreeBSDハンドブック の、19.4. make world の利用を参考にしていますので、そちらの方を参照してください。world
・/etc/make.conf を作成。以下の行を追加。 # vi /etc/make.conf -------------------------------------- NOPROFILE=true CFLAGS=-O -pipe -------------------------------------- # reboot ・シングルユーザモードで起動( 起動時に Enter 以外のキーを押す ) ok book -s # fsck -p # mount -u / # mount -a -t ufs # swapon -a # script /var/tmp/mw.out # make -j4 buildworld # exit # cd /usr/src # make buildkernel # make installkernel # make installworld # cp -Rp /etc /root/etc.bak # mkdir /var/tmp/root # cd /usr/src/etc # make DESTDIR=/var/tmp/root distrib-dirs distribution # cd /var/tmp/root # find -d . -type d | xargs rmdir 2>/dev/null # cp /var/tmp/root/dev/MAKEDEV /dev # cd /dev # ls -l | awk '{print $1, $2, $3, $4, $5, $6, $NF}' > /var/tmp/dev.out # sh MAKEDEV # ls -l | awk '{print $1, $2, $3, $4, $5, $6, $NF}' > /var/tmp/dev2.out # diff /var/tmp/dev.out /var/tmp/dev2.out # cd /usr/src/release/sysinstall # make all install # fastboot
FreeBSD は、SoftUpdate 機能を使うことで、ハードディスクのパフォーマンスを向上させることができます。FreeBSD を使っていて、 / が SoftUpdate の対象になっていない場合は、以下の方法で SoftUpdate の対象にすることが可能です。
FreeBSD のインストールは、しばらくやっていないので、最近はよく分かりませんが、もしかすると、デフォルトで / にも SoftUpdate フラグが付くようになっているかもしれません。あまり安全な方法ではないかもしれませんので、自己責任で行ってください。
FreeBSD をシングルユーザモードで起動し、以下のようにコマンドを実行します。
# mount -u -o ro / //Read Only に # sync; sync; sync //気休め # tunefs -n enable /
これでもうまくいかない場合は、/etc/rc の PATH 指定の後に、以下のコマンドを記述して再起動してください。再起動後、その行は削除します。
tunefs -n enable /
Atok X for Linux の日本語変換能力はかなり高いと思います。かんな や FreeWnn の日本語変換に不満のある人は試してみるといいと思うのですが、Linux のディストリビューションによって、インストール方法がいろいろと違います。有名なディストリビューションではインストール方法が載っているのですが、VineLinux 2.1.5 では、最初は載っていませんでした。とりあえず、以下のようにすると正常にインストールできました。
今では、VineLinux 2.5/2.6 も出ていますので、この方法が使えるかは確認していません。
CD-ROM からインストール (普通に install_atokx
を実行)
/etc/X11/xinit/xinitrc.d/sestime を編集
//・・・前略・・・ echo -n "Selecting IME ... " >> ${LOG} case "${IM}" in //以下の3行追加 --------------------------------------------------------------------------- atokx*|Atokx*) . /usr/lib/im/locale/ja/atokserver/atokx_client ;; --------------------------------------------------------------------------- wnn6*|Wnn6*) echo "Wnn6 with ${WNN6_FRONT_END}, server=${WNN6_SERVER}" >> ${LOG} setime wnn6 >> ${LOG} ;; //・・・後略・・・
~/.vine/system/ime の編集
//以下の部分を EMACS_IME=canna XIM_PROG=canna //以下のように変更 EMACS_IME=atokx XIM_PROG=atokx
一応、以前に NetBSD をインストールしたことがありますので、そのときのメモ書きです。かなり古いバージョンですので、今でも使えるかは確認していません。もし、NetBSDをインストールしようという人が見たら役に立つかもしれませんので、残しておきます。Software Design 2001/4 を参考にしています。
timezone 設定
Asia/Tokyo
kernel timezone の設定
# cp /netbsd /netbsd.bak # gdb --write /netbsd (gdb) set rtc_offset=-540 (gdb) quit # /sbin/reboot
X server の設定
まず、NetBSD のミラーサーバから、XF86Setup-3.3.6.tgz を手に入れます。ftp://???.??????.??.??/NetBSD/packages/1.5/i386/All/XF86Setup-3.3.6.tgz にあるはずです。以下のように、設定します。マウスを使うには、Mouse Protcol に wsmouse
を指定する必要があるようです。
# pkg_add XF86Setup-3.3.6.tgz # XF86Setup Mouse Protcol ---> "wsmouse" Mouse Device ---> "/dev/wsmouse"
最近の Linux では、小さくて見やすいフォントが最初からインストールされていることが多くなりましたが、数年前などでは、デフォルトの日本語フォントが見にくいことが多かったです。Windows で使っている True Type Font を Linux で使う方法もありましたので、載せておきます。ただ、最近は以下のようなことをしなくても True Type Font を使うことができるかもしれません。
$ tar zxvf perlftlib-1.2.tar.gz $ cd perlftlib-1.2 Makefileの変更 ------------------------------------------ BINDIR=/usr/bin MANDIR=/usr/man/man1 PERLLIBDIR=/usr/lib/perl5/site_perl/5.005 ------------------------------------------ mkttfdir.pl ---------------- #! /usr/bin/perl ---------------- に変更 $ make $ su # make install True Type フォントを適当なディレクトリにコピー # mkttfdir
fonts.dir が作成されますので、/usr/X11R6/lib/X11/fonts/TrueType にフォントファイルをコピーし、このディレクトリにある、fonts.dir に mkttfdir
で作成した内容を追加します。一行目にあるフォントファイルには、現在のフォントの数が入っていますので、2つのファイルの1行目を合計した数を入力します。
X Window を再起動すると追加した TrueType フォントが使えるようになっています。
Telnet で APOP 認証を行う方法を追加。
lftp の使い方、Ctrl と Caps Lock のキーマップ変更を追加。
初版作成。まとめ直し。日記の方から参考になるかもしれないメモをこちらに移しました。