個人用の備忘録ですので、一部ノン・フォーマットです。 :-)

{{toc}}

!linux
!!Debian

!!RedHatLinux

!!CentOS

!!Vine Linux
How to get Vine Linux
http://vinelinux.org/getvine.html


!!turbolinux
turbolinux8 workstation

「LinuxWORLD」(2002/09)誌の付録CDのプロモーション版

turbopkg --ftp=ftp.turbolinux.co.jp/pub/TurboLinux/TurboLinux/ia32/Workstation/8/updates/RPMS/



!MIDI
MIDIユーティリティ
http://linux.softwaresearch.jp/new/class.php?339

!!MIDIをWAVに変換する

timidity
  timidity -Ow test.mid

WAV を再生する
wavp
  wavp test.wav

WAVをMP3に変換する
lame
NotLame MP3 Encoder
http://www.idiap.ch/~sanders/not_lame/
  notlame test.wav test.mp3
  notlame -b 32 test.wav test.mp3 (デフォルトは-b 128)

  notlame -m m -b 16 sample.wav  sample.mp3

MP3 を再生する
mpg321
http://mpg321.sourceforge.net/

!lvm
lvcreate, lvconvert, lvreduce, lvresize, lvchange, lvextend

# sudo /usr/sbin/lvdisplay
# sudo /usr/sbin/lvdisplay /dev/VGsystem/LVusr

  --- Logical volume ---
  LV Name                /dev/VGsystem/LVusr
  VG Name                VGsystem
  LV Size                3.00 GB

PV: /dev/md1
VG: VGsystem
LV: LVusr

特集:LVMによるディスクパーティションの動的化(後編)
http://www.itmedia.co.jp/enterprise/0308/08/epn01.html

PVを追加する(vgextend)
# vgextend system /dev/hda8
	VGとPVを指定

LVをリサイズする(e2fsadm)
# umount /work
# /sbin/e2fsadm -L+2g /dev/system/work
	LVと“増量-L+2g(GB)”を指定
# mount /dev/system/work /work


SE奮闘記: 【CentOS】LVMでディスク容量を拡張(VMwareのHDD容量を増やす)
http://se-suganuma.blogspot.com/2009/04/centoslvmvmwarehdd.html

論理ボリュームを増加させる(lvextend)
# lvextend -L +20Gb /dev/VolGroup00/LogVol00

ファイルシステムサイズの再認識
# resize2fs /dev/VolGroup00/LogVol00


!PostgreSQL

/var/lib/pgsql/data/postgresql.conf:
client_encoding = UNICODE

データベースを作成する
% createdb -E EUC_JP test

符号化方式を確認する
% psql -l


データ型
http://www.postgresql.jp/document/pg837doc/html/datatype.html

boolean			bool				論理(ブール)値(真/偽)

character		varying [(n)] varchar [(n)]	可変長文字列
character[(n)]		char [(n)]			固定長文字列
text							可変長文字列

real			float4				単精度浮動小数点(6桁精度)
double precision	float8				倍精度浮動小数点(15桁精度)
numeric[(p, s)]		decimal[(p, s)]			精度の選択可能な高精度数値

smallint		int2				2バイト符号付き整数
								-32768から+32767
integer			int, int4			4バイト符号付き整数
								-2147483648から+2147483647
serial			serial4				自動増分4バイト整数(連番型)
								1から2147483647

date							暦の日付(年月日)
time [(p)] with time zone		timetz 		時間帯付き時刻
timestamp [(p)] [without time zone]			日付と時刻
timestamp [(p)] with time zone		timestamptz	時間帯付き日付と時刻

ACCESS -> PostgreSQL移行ツール
http://www.jade.dti.ne.jp/kamada/mdb2pg/mdb2pg.htm

http://www.jade.dti.ne.jp/kamada/mdb2pg/mdb2pg_1.0.5.zip

postgresql ODBCドライバが必要です。 
データ移行先となるpostgresqlデータベースのODBC DSN定義を作成する必要があります。 

DAO 3.6とADOX 2.8を使っているので、
MicorosoftのサイトからMDACをダウンロードしてインストールする必要があるかも知れません。 

Microsoft Data Access Components (MDAC) 2.8
MDAC_TYP.EXE

Windows XP では不用!

[テーブル定義変換/テーブル作成]
3146: ODBC--呼び出しが失敗しました。


!usermod
-G:
現在そのユーザが、
新しいリストにないグループのメンバーになっている場合は、
そのグループから削除される。


!RAID
Disk Druid (GUI)
raidtools
/etc/raidtab
mkraid

# cat /proc/mdstat


!ACL

特集:Linuxカーネル2.6で実現するACL (2/5)
http://www.itmedia.co.jp/enterprise/0403/06/epn01_2.html

ACLを設定
$ setfacl -m u:user:rw testfile
$ ls -l
-rw-rw-r--+  1 user group        0 Nov 21 16:03 testfile
パーミッションの最後に「+」がつく

ACLを確認
$ getfacl testfile
# file: testfile
# owner: ymorita
# group: kippcd
user::rw-
user:isao:rw-
group::rw-
mask::rw-
other::r--

設定をチェックする
# getfacl filemname

設定する
# setfacl -m g:getsujis:rwx filemname

拡張ACL の設定を取り消す(一部)
# setfacl -x g:getsujic filemname

拡張ACL の設定を取り消す(全て)
# setfacl -b filemname


!Win32OLE
Rubyist Magazine - Win32OLE 活用法【第 1 回】 Win32OLE ことはじめ
http://jp.rubyist.net/magazine/?0003-Win32OLE

!!ActiveScriptRuby
ActiveScriptRuby 1.8.7(p72) with-winsock2 (revise)
http://arton.hp.infoseek.co.jp/indexj.html


!unix tools
!!uniq
  -d, --repeated
  同じ内容が 2 行以上あるものだけを出力する。


!!split
split [OPTION] [INPUT [PREFIX]]
  -a, --suffix-length=N   use suffixes of length N (default 2)
  -b, --bytes=SIZE        put SIZE bytes per output file
  -C, --line-bytes=SIZE   put at most SIZE bytes of lines per output file
  -d, --numeric-suffixes  use numeric suffixes instead of alphabetic
  -l, --lines=NUMBER      put NUMBER lines per output file


!!a2ps
a2ps --encoding=euc-jp a2ps --font-size=20 --output=test.ps text.ps
--no-header
--portrait

!!ppm
/usr/bin/bmptoppm
/usr/bin/ppmtobmp
/usr/bin/ppm2tiff
/usr/bin/ppmtojpeg

!!pdf
/usr/bin/pdf2dsc
/usr/bin/pdf2ps
/usr/bin/pdfopt
/usr/bin/ps2pdf
/usr/bin/ps2pdf12
/usr/bin/ps2pdf13
/usr/bin/ps2pdfwr

/usr/bin/epstopdf
/usr/bin/mptopdf
/usr/local/bin/pdftops
/usr/local/bin/pdftotext


!KNOPPIX
!!USB-KNOPPIX
・kserv web page
http://kosuge.or.tp/kserv/news/release_2004-10-17.html
・【特選フリーソフト】USB メモリから起動するLinux
http://itpro.nikkeibp.co.jp/article/COLUMN/20060228/231328/


!v4l
NuppelVideo
nuv2divx

v4lctl setnorm NTSC
v4lctl setstation Composite1
aumix -l Record

nuvrec -y 16 -n -S 1 -t 5 hoge
nuv2divx -f -b 4096 hoge.nuv hoge.avi


!X Window System

ずんWiki - Debian on Libretto L5
http://www.kawaz.jp/pukiwiki/?Debian%20on%20Libretto%20L5

TOra
データベースのGUIフロントエンド(Oracle Database, MySQL, PostgreSQL)
Linux版, Windows版, Mac OS X版
閲覧、クエリの使用(SQLワークシート)、PL/SQLデバッガ、DBAツール一式も用意されている。

!!KDE
!!!KRDC
RDPとVNCの両方のサーバに接続可能な、強力なリモートデスクトップクライアント

!!!Kexi
Microsoft Accessで作成されたデータベースを利用・再利用できる。
他にMySQLとPostgreSQLのデータベースも読むことができる。

データベース、テーブル、データの作成を行うためのGUI、
クエリの実行、パラメトリッククエリのサポートなど多くの機能を提供する

!!!KMyMoney
GNUCashがより高いレベルの会計業務に使われることを念頭に置いているのに対し、
KMyMoneyは個人の財務管理ソフトに特化している。


!!krxvt の文字を大きくする
[[PCG-U1にDebian Linux - その他|
http://koano.jp/b/linux/vaiu/others.html]]

~/.Xresources:
                                                                         
Rxvt*font: -shinonome-gothic-medium-r-normal--16-150-75-75-c-80-iso8859-1
Rxvt*mfont: -shinonome-gothic-medium-r-normal--16-150-75-75-c-160-jisx0208.1990-0


!sound
!! Audacity
録音、編集(MP3,Wav)


!!sox
サウンドファイルを必要なフォーマットに変換するユーティリティ

!!cdrdao 
フリーのライティングソフト

disk-at-once (DAO)

!!cdrecord
cdrecord -v speed=2 dev=0,6,0  -audio  track1.{cdr,wav,au} ...

!!mpg123
mpg123 --cdr - track1.mp3 > track1.cdr


!!spwave
spwave
http://www.sp.m.is.nagoya-u.ac.jp/people/banno/spLibs/spwave/index-j.html

WAV,AIFF,MP3など様々なフォーマットに対応した音声ファイルエディタ

toc file

Windows95/98,Mac OS,Linuxなどで動作

!!gwc (Gnome Wave Cleaner)
アナログ・ソースの雑音を削減する。

Gnome Wave Cleaner from Redhawk.org
http://gwc.sourceforge.net/

Gnome,libsndfile,fftw libs が必要。

忘月忘日Linux: gwcでノイズ除去その1
http://logcabin.cocolog-nifty.com/linux/2005/08/gwc_53a1.html


!text-tools
conky - epian-wiki
http://epian.dyndns.org/pukiwiki/index.php?conky

:colrm:出力の一部を縦にカットする。(何列目以降を出力しない等)
:column:行を列にして出力する。
:paste:複数ファイルの各行をマージして出力する。(n行目には全てのn行目がつながって出力される)
:cut:既に列形式(例えばcsv)のファイルから特定の列のみ出力する。

 %cut --fields -2,5 filename  #デフォルトのセパレータはtab

command reference
http://www.arc.ritsumei.ac.jp/kachina/shin/polsci/command.html

:comm:ソート済みの2つのファイル(file1,file2)を比較して、片方だけある行と両方にある行に分類する。


!grub
コピー後起動しない。

Message:
HDD-2 (HDD-1 をコピーしたもの)
grub

HDD-1
GRUB Loading stage2...


[[読まなくてもいいよ42|
http://www.ne.jp/asahi/techno/ostra/yoma/yoma042.html]]

grubのFD
# dd if=/boot/grub/stage1 of=/dev/fd0 count=1
# dd if=/boot/grub/stage2 of=/dev/fd0 seek=1

grub> install=(fd0)+1 (hd0) (hd0,0)/boot/grub/stage2 0x8000 p

[[AKI ON WEB: 第5章サーバー移設時のトラブルシューティング|
http://akionweb.com/archives/2004/07/post_25.shtml]]

/etc/grub.conf

[[copy_hdd_to_hdd.html|
http://www.geocities.jp/apple_grapejuice/linux/copy_hdd_to_hdd.html]]

linux HDD 換装コピー --- 一番簡単確実な方法はこれ(debian sarge)

[[Introduction to GNU GRUB|
http://www.h5.dion.ne.jp/~simochu/grub/grub.html]]
ハードディスクの MBR 領域に GRUB をインストール

grub > root (hd0,0)
grub > setup (hd0) (hd0,0)

ここで setup コマンドの第一引数はインストールするハードディスク、
第二引数は stage2 のファイルが存在するパーティションです。このパー
ティションの /boot/grub 以下に stage2 のファイルが存在していなけれ
ばなりません。

[[boot.html|
http://www.geocities.co.jp/SiliconValley-Bay/2414/linuxboot/boot.html]]
grubによるブート

mbr をコピー
grub-install /dev/hdb

MBRのバックアップ 
$ dd if=/dev/hda of=mbr bs=512 count=1

ブートローダー部分のみリストアするなら 
$ dd if=mbr of=/dev/hda bs=446 count=1

MBRをリストア 
# dd if=mbr of=/dev/hda bs=512 count=1

grub - xField Wiki
http://www.xfield.org/wiki/rub


!USB

!!Related Info
/usr/share/doc/pilot-link/README.usb.gz

 # /sbin/modprobe usb-ohci
 or
 # /sbin/modprobe usb-uhci
 
 # /sbin/modprobe usbserial
 # /sbin/modprobe visor

Gentoo Linux Documentation -- Gentoo Linux USBガイド
http://www.gentoo.org/doc/ja/usb-guide.xml

USB/OS/Linux - SyncHack
http://mcn.oops.jp/wiki/index.phpSB%2FOS%2FLinux

 /usr/sbin/lsusb
 
 cat /proc/bus/usb/devices


!!USB接続のメモリカードリーダ/ライタを使うに

@IT:USB接続のメモリカードリーダ/ライタを使うには
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/609usememrw.html

# dmesg
(省略)
 Initializing USB Mass Storage driver...
scsi0 : SCSI emulation for USB Mass Storage devices

デバイス名: /dev/sda1, /dev/sdb1, /dev/sdc1, /dev/sdd1, /dev/sde1

カーネルの再構築が必要なとき
CONFIG_SCSI_MULTI_LUN	ON
[Probe all LUNs on each SCSI device]


!mp3DirectCut
http://mpesch3.de1.cc/mp3dc.html


!localtime
リアルタイムクロック(RTC)
システムクロック

UTC(Coodinated Universal Time)
GMT(Greenwich Mean Time)

/etc/localtime -> /usr/share/zoneinfo/Asia/Tokyo

タイムゾーン
DST(Daylight Saving Time): 夏時間
環境変数: TZ


!csh
echo_style = both [bsd,sysv]
改行のコントロール(改行しない): -n または \c
\t の有効・無効

set echo_style=both
echo -n "both:A\tB"  # スクリプトでは-n無効のときあり
echo "both:A\tB\c"

set echo_style=sysv
echo "sysv:A\tB\c"

set echo_style=bsd
echo -n "bsd:A\tB"  # スクリプトではtab無効、コマンドラインではtab有効

/bin/echo の場合は、echo_style に関係しない。
-e オプションにて\t が有効になる


!!.cshrc
#setenv LANG ja_JP.eucJP
setenv LANG ja_JP.UTF-8
setenv  LC_TIME C
setenv JLESSCHARSET japanese
setenv PATH "/usr/local/sbin:/usr/sbin:/sbin:${PATH}:${HOME}/bin:${HOME}/lib"

# set up shell variables
#set prompt = "`whoami`@`hostname -s`:\!% "
set prompt = \[`id -nu`@`hostname -s`\]\#\
set echo_style = both
# set noclobber
umask 002
set history = 100
set savehist = 100

alias h history


!qvplay
 (qvrec, qvalldel)

README
http://www.igel.co.jp/~ken-ichi/Linux/QV/qvreadme.html

# ln -s /dev/ttyS0 /dev/qvtty
# setserial /dev/ttyS0 {spd_vhi,spd_hi}

qvplay -r
qvplay -D /dev/ttyS0 -S nor -r

qvplay -S nor[mid,high,top,light] -v -o yymmdd -s num -a
qvplay -S mid -v -o yymmdd -s 2 -a

normal  9600 baud
mid    19200 baud
high   38400 baud
top    57600 baud
light 115200 baud

ppmdistort-0.3.tar.gz

libjpeg-progs (6b-10)
 (gjpeg, cjpeg)

!atコマンド
at [ オプション ] 時刻

at 17:15 07/29/06

基本的に時間、日付の順で指定
HH:MM
09:20
10pm

midnight(0時)
noon(12時)
teatime(16時)

MMDDYY
MM/DD/YY
MM.DD.YY
05/25/04
aug 10 2004
today(今日)
tomorrow(明日)
'+日数days'(今日から日数後)

atコマンド
http://cyberam.dip.jp/linux_foundation/system/at_main.html


!環境変数COLUMNS, LINES
キャラクタ端末の桁数と行数を指定する。
termcap/terminfo/cursesなどを利用したプログラムで利用される。
他の方法(termcap、sttyなど)によって指定されていない場合に有効。(Wikipedia)

 # COLUMNS=130 ps aux
 # COLUMNS=130 dpkg -l | grep kernel-image


!find
find の -permを使う tips - ダイミテイ
http://d.hatena.ne.jp/hujikojp/20070331/find_perm

find + xargs と find -exec の使い分け
http://sonic64.com/2003-11-07.html

% find . -name \*.c -exec grep hogehoge {} \;
*.c のファイルの数だけ grep コマンドが実行され、時間がかかる

% find . -name \*.c -print | xargs grep hogehoge
または、
% find . -name \*.c -print0 | xargs -0 grep hogehoge /dev/null

マッチしたファイルを消去
  find / -name core -print0 -type f | xags -0 rm

find file
  find /usr/src/linux-2.2.19 -type f | xargs grep -i -e sbp2 -e hpsb


!CD-R/RWにデータを書き込む
CD-RWのデバイス番号を調べる
# cdrecord -scanbus

$ cdrecord dev=0,0,0 speed=24 -v -eject -data image.iso

CD-R/RWにCDイメージを書き込む場合には,cdrecordコマンドを利用する。
dev にはCD-R/RWのデバイス番号
-data オプションの後に書き込むCDのイメージを指定
-v オプションを付けた場合は書き込み状況が表示され,
-eject オプションを付けた場合は書き込み終了後にCDが自動的に排出される。


!dd でFDをまるごとコピー
$ dd if=/dev/fd0 of=fd.image bs=1440k
$ dd if=fd.image of=/dev/fd0 bs=1440k


!Hiki
!!basic認証に対応させる


!!ページを削除する
[編集]
中身を空にし、Password を設定して、[保存]すると削除できる。

!!hiki-mode
!!!hiki-mode.el(Basic認証対応)
凍結のパスワードとは共存できないようです。
もちろんBasic認証が使える環境では、その必要性はないワケですが……。

hiki-mode.el:
;; $Id: hiki-mode.el,v 1.10 2005/08/24 06:43:04 fdiary Exp $

hiki-mode.el: Basic認証対応 (Hiki-dev:01036) - Hiki - SourceForge.JP
http://sourceforge.jp/projects/hiki/lists/archive/dev/2005-September/001035.html

hiki-mode.elをbasic認証に対応させた - おもしろWEBサービス開発日記
http://d.hatena.ne.jp/willnet/20080522/1211470748

!!!hiki-mode.el
;;; hiki-mode.el -- Major mode for Hiki editing -*- coding: euc-jp -*-

;; Copyright (C) 2003 Hideaki Hori

;; Author: Hideaki Hori <yowaken@cool.ne.jp>

;; $Id: hiki-mode.el,v 1.1.2.1 2004/02/29 02:04:29 hitoshi Exp $

key             binding
---             -------
C-c             Prefix Command
TAB             self-insert-command
ESC             Prefix Command

C-c C-q         hiki-edit-quit
C-c C-c         hiki-edit-save-page
C-c C-e         hiki-edit
C-c C-r         hiki-edit-reload
C-c TAB         hiki-edit-next-anchor

ESC S           center-paragraph
ESC s           center-line
ESC TAB         ispell-complete-word

Hiki Index mode:
Major mode for Hiki index.

key             binding
---             -------
Q               hiki-index-quit
q               hiki-index-suspend
R               hiki-index-refetch-index
S               hiki-index-sort
SPC             hiki-index-display-page-next
.               hiki-index-display-page
e               hiki-index-edit-page
RET             hiki-index-edit-page-current-line
TAB             self-insert-command
ESC             Prefix Command

ESC S           center-paragraph
ESC s           center-line
ESC TAB         ispell-complete-word


!sadc

システムの使用状況データを収集してファイルに書き込みます。
デフォルトでは、/var/log/sa/ ディレクトリにあるファイルに
データが書き込まれます。ファイル名は sa<dd> になります。
<dd> は現在の日付を 2 桁で表します。

sadc は通常、sa1 スクリプトで実行される。


sar

sadc で収集されたデータに基づいてシステムの使用状況レポートを生成する。
レポートファイルは /var/log/sa/ に書き込まれ、
ファイル名は sar<dd> です。
<dd> は前の日付を 2 桁で表しています。

sar は通常、sa2 スクリプトにより実行される。

Red Hat Enterprise Linux 固有の情報
http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/
	ja/admin-guide/s1-resource-rhlspec.html

!emacs
!!auto-save
ubulog: Emacsでオートセーブファイルの作成場所を変える
http://ubulog.blogspot.jp/2008/10/emacs_16.html

Emacsでオートセーブファイルの作成場所を変える

(setq auto-save-file-name-transforms
      `((".*/Dropbox/.*" ,temporary-file-directory t)))

~/Dropbox/以下では自動保存ファイルを作らないようにします。


!!auto-save-buffers.el
跡地  Emacs
http://ksugita.blog62.fc2.com/category1-1.html

ファイルの自動保存ちょっと一工夫

(add-hook 'find-file-hooks
          (lambda() (unless buffer-read-only (toggle-read-only) )) )

ファイルオープンする時はどんなファイルでも read-onlyにして,
編集したいときに意図的に編集可能に変更(toggle-read-only)する


!!全角チルダ
全角の英数文字を排除しているが、
全角チルダも問題が多いので追加する。

波ダッシュ - Wikipedia
http://ja.wikipedia.org/wiki/%E6%B3%A2%E3%83%80%E3%83%83%E3%82%B7%E3%83%A5

  .emacs:
  ;; change character to ASCII in the current region
  (fset 'japanese-ascii-region
  ;   "\C-u\C-[|nkf -wZ\C-m")
     "\C-u\C-[|nkf -wZ | sed -f ~/lib/tilde2wave-dash.sed\C-m")
  (global-set-key "\C-ca" 'japanese-ascii-region)

  tilde2wave-dash.sed:
  # 全角チルダ(tilde u:EFBD9E U:FF5E)を波ダッシュ(wave dash u:E3809C E:A1C1 S:8160 U:301C)に
  s/全角チルダ/〜/g


!!evernote-mode.el
Emacs evernote mode
http://emacs-evernote-mode.googlecode.com/svn/branches/0_21/doc/readme_ja.html

/usr/lib/ruby/site_ruby/1.8/Evernote/

Debugger entered--Lisp error: (file-error "Cannot open load file" "tree-widget")
  require(tree-widget) ...

tree-widget.el
http://src.seereason.com/tree-widget/tree-widget.el

とりあえず、これをwget して、
~/share/emacs/site-lisp/tree-widget.el
においたが、さらなるエラーが……。

if: Symbol's function definition is void: called-interactively-p
Symbol's function definition is void: called-interactively-p

環境は、CentOS 5.4
ruby 1.8.7 にはアップデートしたけど、
Emacs 21.4.1 ではダメかなぁ。

もしかしてEmacs23 が必要。


!!Twittering-mode
EmacsWiki: TwitteringMode-ja
http://www.emacswiki.org/emacs-ja/TwitteringMode-ja

Twittering-mode
http://twmode.sourceforge.net/ja/

twittering-mode-3.0.0.tar.gz


!!!History
2014-06-17
Emacs を再起動したら、
Failure: /usr/bin/curl exited abnormally

.emacs:
(setq twittering-allow-insecure-server-cert t)

Emacs - hikaru's Personal Site
http://hikaru.6.ql.bz/memo.php?id=emacs


2014-06-13
            ;; friends("C-c C-f") は使っていないので……
            (define-key twittering-mode-map (kbd "C-c C-f") 'twittering-follow)
            (define-key twittering-mode-map (kbd "C-u C-c C-f") 'twittering-unfollow)


2014-06-09
twittering-modeでTwitter
http://yourpalm.jubenoum.com/archives/1526

(add-hook 'twittering-mode-hook
          (lambda ()
            ;; "F"でお気に入り
            ;; "R"でリツイートできるようにする
            (define-key twittering-mode-map (kbd "F") 'twittering-favorite)
            (define-key twittering-mode-map (kbd "R") 'twittering-native-retweet)))


!!!Install
2014-05-23
EmacsでTwitterできるようにする | おもむくがままに
http://blog.k-sakabe.com/?p=4894

GNU Emacs 21.4.1 (i686-redhat-linux-gnu)

`json.el' is required to use the Twitter REST API v1.1

EmacsでGoogleMapを使うのだ: 麦汁三昧
http://mugijiru.seesaa.net/article/210478483.html

$ wget http://edward.oconnor.cx/elisp/json.el

.emacs:
(require 'json)


SSL is required to use the Twitter REST API v1.1

.emacs:
(setq twittering-use-ssl t)


2011-05-24
ubulog: EmacsでTwitter
http://ubulog.blogspot.com/2008/01/twitter.html

動作確認 - なきのn次資料
http://d.hatena.ne.jp/naki_in_silico/20100615/p1

twittering-mode-1.0.0.tar.gz

Authorization via OAuth failed. Type M-x twit to retry.


!!Misc
*M-x upcase-region
*M-x downcase-region

*M-x name-last-kbd-macro        ;キーボードマクロ
*M-x insert-kbd-macro

ESCシーケンス
ctrl-S(^S): スクロールを停止(Xoff)
ctrl-Q(^Q): スクロールを再開(Xon)


!!.emacs
!!!misc
;(setenv "LANG" "C")
(setenv "LC_TIME" "C")
;(setq make-backup-files nil)
(setq-default scroll-step 1)
(define-key ctl-x-map "j" 'goto-line)

;; *.gz なファイルを直接読めるように
;; info 使用時必須!
(auto-compression-mode t)

;; change character to ASCII in the current region
;  X0208中の英数字と若干の記号をASCIIに変換する
(fset 'japanese-ascii-region
   "?C-u?C-[|nkf -eEZ?C-m")
(global-set-key "?C-ca" 'japanese-ascii-region)

;; put date strings to cursol position. (YYYY-mm-dd)
(defun putdate ()
(interactive)
(insert (format-time-string "%4Y-%2m-%2d"(current-time))))
(define-key global-map "\C-cd" 'putdate)

;; put time strings to cursol position. (YYYY-mm-dd HH:MM)
(defun puttime ()
(interactive)
(insert (format-time-string "%4Y-%2m-%2d %02H:%02M"(current-time))))
(define-key global-map "\C-cf" 'puttime)


!!!日本語ファイル名を文字化けなしで表示する
cygwinのemacs内のdiredで日本語ファイル名を - Mimiteru の日記
http://slashdot.jp/~Mimiteru/journal/345616

(set-language-environment "Japanese") をコメントアウトする。


!!!BSとDELを入れ換える
(load-library "term/bobcat")
;(global-set-key "\M-/" 'help-for-help)
(global-set-key "\C-x?" 'help-for-help)

!!!Display time & mail
(setq display-time-day-and-date t)
(display-time)

!!!for INFO
 (setq Info-default-directory-list
   (append
         Info-default-directory-list
         '("/usr/share/info" "/usr/local/info")
 ))

!!!.emacs を読み込まずに起動
emacs -q

!!!ソースコードのカラー表示をカスタマイズする
デフォルトでは、変数の表示色が黄色になっていて可読性が悪いので、
変更してみることにしました。

font-lock-variable-name-face
(set-face-foreground 'font-lock-variable-name-face "magenta")
(set-face-foreground 'font-lock-comment-face "black")

 black
 blue
 cyan
 green
 magenta
 red
 white
 yellow


Emacs Lisp TIPS
http://homepage.mac.com/zenitani/elisp-j.html

 カラー設定
 書式: (set-face-foreground '(名前) "(色名)")
 メジャーコードごとに固有の名前(領域)がある。
 (set-face-foreground 'font-lock-comment-face "MediumSeaGreen")
 (set-face-foreground 'font-lock-string-face  "purple")
 (set-face-foreground 'font-lock-keyword-face "blue")
 (set-face-foreground 'font-lock-function-name-face "blue")
 (set-face-bold-p 'font-lock-function-name-face t)
 (set-face-foreground 'font-lock-variable-name-face "black")
 (set-face-foreground 'font-lock-type-face "LightSeaGreen")
 (set-face-foreground 'font-lock-builtin-face "purple")
 (set-face-foreground 'font-lock-constant-face "black")
 (set-face-foreground 'font-lock-warning-face "blue")
 (set-face-bold-p 'font-lock-warning-face nil)

 関連コマンド
 (set-face-foreground '(名前) "(色名)") 文字色を変更する
 (set-face-background '(名前) "(色名)") 文字の背景色を変更する
 (set-face-background '(名前) nil)      文字の背景色を設定しない
 (set-face-bold-p '(名前) t)            太字(ボールド体)にする
 (set-face-bold-p '(名前) nil)          太字(ボールド体)にしない
 (set-face-italic-p '(名前) t)          イタリック体にする
 (set-face-italic-p '(名前) nil)        イタリック体にしない
 (set-face-underline-p '(名前) t)       下線を表示する
 (set-face-underline-p '(名前) nil)     下線を表示しない


!!!
(fset 'exchange-regions
   "\C-[wq\C-x\C-x\C-w\C-y\C-[y")
(global-set-key "\C-cr" 'exchange-regions)

!!!what-char
what-char.el (1.0.0.1)
カーソル位置の文字コードを echo area に表示する

おまけ for GNU Emacs
http://homepage3.nifty.com/satomii/software/elisp.ja.html

~/.emacs:
(autoload 'what-char "what-char" nil t)
(global-set-key "\C-cw" 'what-char)


!!!タイトルバーに日時を表示
[[.emacs の小技|http://www.te-kun.com/windows-de-unix/dot.emacs/]]

 ;; タイトルバーに日時を表示する
 (setq display-time-day-and-date t
       display-time-24hr-format t)
 (setq display-time-string-forms
       '((if display-time-day-and-date
             (format "%s/%s/%s " year month day)
           "")
         (format "%s:%s%s"
                 (if display-time-24hr-format 24-hours 12-hours)
                 minutes
                 (if display-time-24hr-format "" am-pm))))
 (display-time)
 (cond (window-system
        (setq frame-title-format
              '((multiple-frames "")
                display-time-string))
        (remove-hook 'global-mode-string 'display-time-string)))


!!Search
Emacs20/21
C-s Enter


!!Point & Jump
Emacs20/21
point-to-register-compatibility-binding	C-x /
point-to-register	      C-x r SPC

jump-to-register-compatibility-binding C-x j
jump-to-register	      C-x r j

Mule
C-s C-k: "*Enter string... I-search: " 
C-x j: jump-to-register  ;Jump


!!Copy & Paste
copy-to-register-compatibility-binding C-x x
copy-to-register	      C-x r s, C-x r x

insert-register-compatibility-binding C-x g
insert-register		      C-x r i, C-x r g

!!矩形操作(Rectangles)
M-x delete-rectangle C-x r d
    長方形リージョンのテキストを消去し,それぞれの行の右のテキストを元の長方形
    リージョンの端に移動します.
M-x kill-rectangle C-x r k
    上と同様ですが,消した長方形リージョンの内容を保持します.
M-x yank-rectangle C-x r y
    ポイントの位置を左上の角にして最後に削除した長方形をヤンクします.
M-x open-rectangle C-x r o
    長方形リージョンを空白で埋めます.そこにあったテキストは右へ押しやられます
    .
M-x clear-rectangle C-x r c
    長方形リージョンのテキストをすべて空白で置き換えます.

C-x r r
    レジスタrに長方形リージョンをコピーします (copy-region-to-rectangle).数引
    数を付けるとコピーのあと,長方形リージョンを消します.
C-x r g
    レジスタrに記憶されている長方形を挿入します(これは,レジスタに長方形がある
    場合です)(insert-register).

C-x g
    レジスタに連続したテキストがあればそれを挿入しますし,
    長方形があれば長方形を挿入します.

C-x r s (r) リージョンのテキストをレジスタ r に保存
C-x r i (r) レジスタ r に保存されたテキストの挿入(insert-register)


!!toggle-truncate-lines

GNU Emacs Lispリファレンス・マニュアル - Emacsの表示
http://www.dennougedougakkai-ndd.org/pub/
elisp-manual-19-2.4-jp2.0/elisp-jp_37.html

Function: set-screen-width columns &optional not-actual-size
    この関数は端末がcolumns桁を表示可能であることを宣言します。詳細は
    set-screen-heightを参照。

切捨て表示

テキストの行がウィンドウの右端を超えた場合には、その行は画面の次の行に続きが表
示されるか、右端を切捨てて一行に表示されるか、の選択肢があります。長いテキスト
行を表示するために使われる行のことを継続(continuation) 行といいます。普通、右端
の桁にある`$'は行の切捨てを示します。また右端の`?'は行が次の行に"wrap"、つまり
続いていることを示しています。 (表示テーブルを使えばほかの表示をすることもでき
ます。 section 表示テーブルを参照。)

継続は行詰め込み(filling)とは違うことに注意してください。継続は画面の上だけで起
こり、バッファの内容に対しては起こらないし、また継続はちょうど画面の左端で行を
分割するのであって、単語の境界ではありません。 See section 行詰め。

User Option: truncate-lines
    このバッファ・ローカル変数はウィンドウの右端にはみだす行をEmacsがどう表示す
    るかを制御します。既定値はnilで、継続表示を指定します。その値が nilでない場
    合は、はみだす行は切り捨て表示されます。

    変数truncate-partial-width-windowsがnilでない場合は、 truncate-linesの値に
    関わらず(一つのフレームの中で)横に並んだウィンドウではいつも切捨て表示が採
    用されます。


!!原始的なタブ動作の実現
;TAB key bind to "C-q TAB"
(add-hook 'text-mode-hook
             (function (lambda ()
                         (define-key text-mode-map
                             "?t"
                             'self-insert-command))))

Emacs メモ
http://www.kabipan.com/computer/emacs/

Emacs ではTAB キーを押すことは「タブを入力すること」ではない。
tab-stop-list で設定された文字までカーソルを移動することを意味する。
タブを入力するには、C-q TAB。

タブキーにバインドされている関数
indent-relative
直前の行のインデンションに合わせ、それが無理なら tab-to-tabstop を使う。

tab-to-tabstop は、タブ文字だけによって、インデンションを行うわけではない。
タブ文字によるインデンションは、 tab-width という変数にしたがうが、
これは、スカラーだから、等間隔のインデンションしか実現できない。
tab-to-tabstop は、tab-stop-list で定めた位置までジャンプするために、
まずタブを使ってみて、たりない分はスペースで埋めるのである。
Emacs のインデンションはこのように二重の仕組みで実現されている。

(default-value 'tab-width)
8
(default-value 'tab-stop-list)
(8 16 24 32 40 48 56 64 72 80 88 96 ...)


!!skk-mode
C-x C-j: skk-mode (on/off)

!!Emacsでファイルの自動保存 (auto-save-buffers)
http://namazu.org/~satoru/misc/auto-save/

/usr/share/emacs/site-lisp/auto-save-buffers.el

~/.emacs:
(require 'auto-save-buffers)
(run-with-idle-timer 0.5 t 'auto-save-buffers)


ubulog: Emacsの保存関係の設定
http://ubulog.blogspot.com/2008/10/emacs.html
 (setq auto-save-timeout 30)   ; 自動保存する間隔(秒)
 (setq auto-save-interval 300) ; 300打鍵ごとに自動保存



!!coding-system
<< Emacs 20.5.1 >>
set-buffer-file-coding-system menu-bar mule set-various-coding-system set-buffer-file-coding-system, C-x RET f

set-terminal-coding-system    menu-bar mule set-various-coding-system set-terminal-coding-system, C-x RET t

set-keyboard-coding-system    menu-bar mule set-various-coding-system set-keyboard-coding-system, C-x RET k

<< mule-2.3 の場合 >>
        C-x C-k f で ミニバッファに
                File-coding-system:
        と出る。
        スペースを押すと候補の一覧。
        EUC だったら、*euc-japan* です。

<< XEmacs-20.4 の場合 >>
<< Emacs 21.2.1 の場合 >>
        メニューバーのMuleから Set coding system of Buffer file
        を選択するか、C-x C-m f で
                File-coding-system:
        と出る。


!ログインに失敗した記録
# grep "FAILED LOGIN" /var/log/messages

ログインの履歴
/var/log/wtmp
% last -f filename username
reboot

ログインの記録
/var/log/utmp
% w
% who


!bz2

tar jxvf kernel-source-2.4.27.tar.bz2
bzcat ~/tmp/pilot-link-0.11.8.tar.bz2 | tar tf -

!netstat
netstat --tcp --all

!info
GNU Texinfo 4.3
http://www.geocities.jp/fut_nis/html/texinfo-ja/Other-Info-Directories.html

~/.cshrc:
setenv INFOPATH .:~/info:/usr/local/emacs/info

~/.emacs:
(require 'info)
(setq Info-directory-list
 (cons (expand-file-name "/home/bob/info")
       Info-directory-list))

M-x infoを最初に実行したときのみマージするので,
既にinfoを実行しているEmacsのセッションでInfo-directory-list設定したい場合,
Emacsにdirファイルを再構成させるため
(setq Info-dir-contents nil)する必要があります.


~/.emacs:
(setq Info-default-directory-list
  (append
        Info-default-directory-list
        '("/usr/share/info" "/usr/local/info")
))

info を起動すると、
各々の場所にある dir 達をmerge して表示する。

メニューリスト(dir) への登録は
# cd INFODIR
# install-info INFOFILE dir

/usr/share/info/wl-ja.info.gz が文字化けする。
        文字コードがJIS?
        /usr/local/info/ に移動してもNG
        コンソールからinfo wl-ja はOK
以下の設定でOK

~/.emacs
(auto-compression-mode t)
        *.gz を直接読めるようになる

!zip & unzip

zip -f ArchiveFile	Replace (freshen) an existing entry in the zip archive.
				will not add files that are not already in the archive
zip -u ArchiveFile *	Replace (update) an existing entry in the zip archive.
zip -d ArchiveFile *	Remove (delete) entries from a zip archive.


!gzip

圧縮時、元のファイルを残す
gzip -c FILENAME.gz > FILENAME

!CUPS (Common UNIX Printing System)
設定 http://localhost:631/

LPRng

foomatic

!EBView
http://ebview.sourceforge.net/faq-ja.html

!dot file

ls -la .[a-z]*


!awk 

awk '{print $2, $1, $3}'

桁数を整える
awk '{printf("%06d?n",$1)}'

!!実数計算
awkでの数値演算注意 (Yahoo! JAPAN Tech Blog)
http://techblog.yahoo.co.jp/web/yahoo/awk/

一般的な財務計算では、小数点以下第2位まであれば十分でしょう。
OFMT = "%.2f" (デフォルト値は"%.6g")

デフォルトの状態では以下の現象が発生する。

・表示形式による表記違い(計算結果が7桁以上の場合)
科学表記か浮動小数点表記いずれか、キャラクタ数が少なくなる方で出力される。

・表示形式による情報落ち(小さな値)
6桁以下の情報は失われる。

・丸め誤差(小さな値の情報落ち)
 絶対値が大きな値と小さな値とを加えた場合、小さい方の数値がもつ情報は失われる。


!!ユーザ定義関数
AWKのユーザ定義関数
http://lagendra.s.kanazawa-u.ac.jp/ogurisu/manuals/awk/intro/node27.html


!!PUSH & POP
function push(x) { stack[t++] = x }

function pop() { if (t > 0)  return stack[--t]

             else   printf("error: poped empty stack\n") }

function getX() { if (t > 0) return stack[t - 1]

              else   printf("error: poped empty stack\n") }

!RealVNC 

/usr/bin/vncserver
起動するときに以下のファイルを参照する。
~/.vnc/startup

ログイン(mvcviewer)
起動時に表示されるディスプレイ番号を入力
172.20.23.90:x
ymorita: ymoritakip
kipqc: kipqckip

full-screen mode:
Ctrl-Esc Esc and then right-click on the vncviewer taskvar icon to
[F8] にて設定画面(起動時にフルスクリーンになってノーコンのときに使用)

パスワードを変更する
vncpasswd
~/.vnc/passwd

サーバーを終了する
vncserver -kill :1 ("1" is a display #.)

xinetd を使用しないときは、接続を切断しただけでは
Xvnc は起動したまま。
※終了するときは、アプリを起動したまま、
vncviewer のウインドウをclose する。
(この動作がscreen のデタッチに相当?)

Copy & Past
XEmacs -> TeraTerm : ok
XEmacs -> MemoPad : ng
Emacs  -> TeraTerm : ng (ASCIIのみ)

TeraTerm -> XEmacs : ng(日本語文字化け)
MemoPad -> XEmacs : ng

以下、未確認
# /etc/init.d/xdm restart

vncクライアントから接続
通常は、"IPアドレス:DISPLAY番号"で接続するが、
xdm経由で接続する場合は、IPアドレスだけを入力

!/usr/X11R6/bin/xv
/usr/X11R6/bin/xloadimage

!XFree86

X11R5
~/.Xdefaults
X11R6
~/.Xresources

~/.Xmodmap
キーボードの設定

!apache

Errors:
403 Forbidden (あなたにはお見せできません。)


.htaccess
・サーバ管理者が許可していない命令を使用
・文法誤りがある
→ 500 Internal Server Error が発生

Options option option ...
Options [+|-]option [+|-]option ...

# すべてのディレクトリオプションを許可
Options all

# ExecCGI と Includes のみを許可し、他をすべて不許可にする
Options ExecCGI Includes

# ExecCGI は許可し、Includes を不許可にする。その他の設定は引き継ぐ
Options +ExecCGI -Includes

許可するディレクトリオプションを指定します。option には次のようなものが選べます
。option の前に、+ か - の記号が置かれているとき、標準設定からの差分を意味しま
す。

All
    MultiViews を除き、すべてのオプションを有効にします。
ExecCGI
    CGI スクリプトの実行を可能にします。
FollowSymLinks
    シンボリックリンクを有効にします。
Includes
    SSI の利用を可能にします。
IncludesNOEXEC
    SSI の利用を、制限付きで可能にします。SSI の機能のうち、#exec 命令と、CGIス
    クリプトの #include 命令が使えません。
Indexes
    index.html がない場合に、ディレクトリ一覧を表示することを許可します。特別な
    場合を除いて、許可すべきではありません。
MultiViews
    コンテンツネゴシエーションされた、MultiViews 検索を許可します。
None
    すべてのオプションを無効にします。
SymLinksIfOwnerMatch
    ファイル所有者に限り、シンボリックリンクを許可します。FollowSymLinks より安
    全です。


!IP-Address を変更する

ifconfig eth0 192.168.1.1


!Wonderlust(wl)

Wanderlust -- Yet Another Message Interface On Emacsen
http://www.gohome.org/wl/doc/

Emacs Application/wl
http://emacs-21.ki.nu/application/wl.html

Wanderlust FAQ 日本語版 - 設定編
http://wiki.gohome.org/wlja/C0%DF%C4%EA%CA%D4

くぷぷぷ〜っ!くぷっ?: Wanderlustで複数アカウント
http://tsurukame.blog.ocn.ne.jp/b/2006/08/wanderlust_1a16.html

サーバーのフォルダを参照する
複数のメールアカウントを使う

戯術者の日記 / wanderlust
http://www.jp-z.jp/changelog/cat_wanderlust.html

■返信時の to/cc に自分を含めない
■日本語の添付ファイルの表示

EmacsでGmail IMAPを触る - とあるはてな社員の日記
http://d.hatena.ne.jp/stanaka/20071025/1193286440

日本語フォルダ対策
(setq elmo-imap4-use-modified-utf7 t)


~/.wl

~/.fodlers:
+draft
+trash
%inbox:"mailaccount"/clear@servername
ymorita{
%INBOX.misc:"mailaccount"/clear@servername
%INBOX.bcc:"mailaccount"/clear@servername
%INBOX.spam:"mailaccount"/clear@servername
%INBOX.Draft:"mailaccount"/clear@servername
%INBOX.Sent:"mailaccount"/clear@servername
%INBOX.Trash:"mailaccount"/clear@servername
}

~/.elmo/sendlog  ;送信記録

emacs のバッファ"*trace of SMTP session to localhost*"
にSMTP のログが表示される。

内部フォルダ
'mark or 'falg(wl-2.11以降)
'sendlog
[g] で表示可

・メールサーバのパスワードを保存する
  パスワードを保持した状態で
  M-x elmo-passwd-alist-save
・メールサーバのパスワードを消去する
  M-x elmo-passwd-alist-clear

;;大きいメッセージを送信時に分割しない
(setq mime-edit-split-message nil)


Folder & Summary Mode:
c すべて既読にする
E ゴミ箱を空にする。 (wl-folder-empty-trash)
@ .address に追加する
Z .address の設定を読み直す
^t plug again

Folder Mode:
s フォルダの未同期メッセージ数を更新 (wl-folder-check-current-entity)
S フォルダのサマリを更新 (wl-folder-sync-current-entity)

Summary Mode:
r リージョンを操作対象とする
t スレッドを操作対象とする
m マークを操作対象とする
m a 全てをマーク

/ スレッド開閉
[ スレッド開
] スレッド閉
T スレッド表示の入切(トグル:時間順/スレッド化)
S 並び替え(date,from,list-info,number,subject)
l 表示の切替(トルグ)  1-pane/2-pane

g 他のフォルダに移動(または新規に作成)
o リファイル(マークしたあと、x で実行)
? サーチ
V サーチ(仮想フォルダ)
^ 親メールに移動
R 既読化
 未読化

H ヘッダを表示
. ヘッダを隠す
M MIME解析しない
. MIME解析する

f フォワード・メッセージ
C-c C-p プレビュー(フォワード時の文字化けを確認)
q プレビュー終了
E メールの再編集
M-E エラーメールの再編集

・スレッドの繋ぎなおし
カット: 該当するメッセージにカーソルを合わせて
	`M-w' (`wl-summary-save-current-message')
ペースト: 新しい親メッセージのところで
	  `C-y' (`wl-summary-yank-saved-message')

・添付書類を保存する
j メール本文に移動(メッセージモードへ)
r メール本文から戻る(サマリモードへ)  ;?
n 次のPart に移動
p 前のPart に移動
e Part を保存


Draft Mode:
w 
W フォルダ情報を使用
・返信する
a
A 引用付
C-u a 全員に
s フォルダのアップデート

・.signaure を挿入する
C-c C-w
C-c C-x C-s (MIME-Edit)

・登録した設定を使用する
C-c C-j

・書類を添付する
C-c C-x TAB  ;Insert file as MIME message
C-c TAB  ;Attach file

Summary mode:
Major mode for reading threaded messages.
See Info under Wanderlust for full documentation.

Special commands:
key             binding
---             -------
C-t		wl-plugged-change
h		Prefix Command
L		wl-summary-lower-score
K		wl-summary-increase-score
r		Prefix Command
m		Prefix Command
t		Prefix Command
U		wl-summary-unmark-all
u		wl-summary-unmark
d		wl-summary-delete
C-o		wl-summary-auto-refile
O		wl-summary-copy
o		wl-summary-refile
*		wl-summary-target-mark
x		wl-summary-exec
i		wl-summary-prefetch
R		wl-summary-mark-as-read
C-y		wl-summary-yank-saved-message
?		wl-summary-pick
TAB		wl-summary-goto-last-displayed-msg
V		wl-summary-virtual
v		wl-summary-toggle-disp-msg
l		wl-summary-toggle-disp-folder
T		wl-summary-toggle-thread
S		wl-summary-sort
s		wl-summary-sync
!		wl-summary-mark-as-unread
^		wl-summary-jump-to-parent-message
I		wl-summary-incorporate
J		wl-thread-jump-to-msg
j		wl-summary-jump-to-current-message
Q		wl-summary-force-exit
q		wl-summary-exit
|		wl-summary-pipe-message
#		wl-summary-print-message
Z		wl-status-update
B		wl-summary-burst
M		wl-summary-redisplay-no-mime
H		wl-summary-redisplay-all-header
C-c		Prefix Command
e		wl-summary-save
W		wl-summary-write-current-folder
w		wl-summary-write
P		wl-summary-up
N		wl-summary-down
p		wl-summary-prev
n		wl-summary-next
y		wl-summary-save
@		wl-summary-edit-addresses
$		wl-summary-mark-as-important
f		wl-summary-forward
E		wl-summary-reedit
C		wl-summary-cancel-message
A		wl-summary-reply-with-citation
a		wl-summary-reply
c		wl-summary-mark-as-read-all
g		wl-summary-goto-folder
ESC		Prefix Command
-		wl-summary-prev-line-content
]		wl-thread-close-all
[		wl-thread-open-all
/		wl-thread-open-close
RET		wl-summary-next-line-content
<backspace>	wl-summary-prev-page
DEL		wl-summary-prev-page
>		wl-summary-display-bottom
<		wl-summary-display-top
.		wl-summary-redisplay
SPC		wl-summary-read

h x		wl-score-set-expunge-below
h m		wl-score-set-mark-below
h F		wl-score-flush-cache
h f		wl-score-edit-file
h e		wl-score-edit-current-scores
h c		wl-score-change-score-file
h R		wl-summary-rescore

r y		wl-summary-save-region
r $		wl-summary-mark-as-important-region
r !		wl-summary-mark-as-unread-region
r u		wl-summary-unmark-region
r d		wl-summary-delete-region
r O		wl-summary-copy-region
r o		wl-summary-refile-region
r *		wl-summary-target-mark-region
r x		wl-summary-exec-region
r i		wl-summary-prefetch-region
r R		wl-summary-mark-as-read-region

m r		wl-summary-target-mark-region
m ?		wl-summary-target-mark-pick
m f		wl-summary-target-mark-forward
m A		wl-summary-target-mark-reply-with-citation
m t		wl-summary-target-mark-thread
m a		wl-summary-target-mark-all
m U		wl-summary-target-mark-uudecode
m u		wl-summary-delete-all-temp-marks
m $		wl-summary-target-mark-mark-as-important
m !		wl-summary-target-mark-mark-as-unread
m y		wl-summary-target-mark-save
m d		wl-summary-target-mark-delete
m O		wl-summary-target-mark-copy
m o		wl-summary-target-mark-refile
m R		wl-summary-target-mark-mark-as-read
m i		wl-summary-target-mark-prefetch

t s		wl-thread-set-parent
t y		wl-thread-save
t $		wl-thread-mark-as-important
t !		wl-thread-mark-as-unread
t u		wl-thread-unmark
t d		wl-thread-delete
t O		wl-thread-copy
t o		wl-thread-refile
t *		wl-thread-target-mark
t x		wl-thread-exec
t i		wl-thread-prefetch
t R		wl-thread-mark-as-read

C-c C-a		wl-addrmgr
C-c C-o		wl-jump-to-draft-buffer

ESC t		wl-toggle-plugged
ESC o		wl-summary-refile-prev-destination
ESC w		wl-summary-save-current-message
ESC e		wl-summary-expire
ESC s		wl-summary-stick
ESC j		wl-summary-jump-to-msg-by-message-id
ESC E		wl-summary-resend-bounced-mail
ESC RET		wl-summary-prev-line-content


!ebnet ndtp

辞書サーバ
http://www.geocities.co.jp/SiliconValley/2916/ebnetd.html

% telnet localhost ebnet

BOOKLIST <RETURN>

% telnet localhost ndtp

t <RETURN>


~/.lookup:
(setq lookup-search-agents '((ndtp "localhost")))

M-x lookup
C-c L

m キーで辞書を選択 (*が選択を表す)
u キーで辞書を非選択に設定できます。

    f    新たな単語を検索する
    SPC  本文バッファを前方へスクロールする
    n    次の項目へ移動する
    p    前の項目へ移動する
    v    概観モード
    o    バッファを最大化する
    s    本文を前方へインクリメンタルサーチする
    i    項目の情報を表示する
    t    整形処理を切り替える
    w    内容をキルリングに保存する
    M    辞書のメニューを表示する
    L    リファレンスの一覧を表示する
    S    辞書選択モード
    r    検索開始バッファへ移動する
    h    本文バッファへ移動する
    g    検索をやり直す
    M-n  次の検索履歴へ移動する
    M-p  前の検索履歴へ移動する
    M-f  次の辞書グループへ移動する
    M-b  前の辞書グループへ移動する
    q    Lookup から抜ける
    Q    Lookup を終了する
    R    Lookup を再起動する
    ?    ヘルプを表示する



!apt

apt-get update
apt-cache search keyword

!vnc

Windows --> vnc

connection option 
Mouse:
Eulate 3 Buttons (with 2-button click)
によるエミュレートではペーストできないが、

Swap mouse buttons 2 and 3
をチェックするとClick"3" にてペーストできる。

vnc --> Windows
Click"1" -- Click"3" 
(Push"1" -- Release"3")

!timestamp

*hold
cp -p
wget
ffftp(Win)

*not hold
ftp x


!gnuplot 
set output
set terminal postscript[jpeg, pbm]
	aifm  Adobe Illustrator 3.0 Format
        corel  EPS format for CorelDRAW
	dxf  dxf-file for AutoCad (default size 120x80)

gnuplot> set output 'D:?sigfunc.eps'
gnuplot> replot


!CVS
RCS -> CVS

$ cvs checkout モジュール名

$ cd モジュール名
edit target.file
$ cvs commit -m "Added comments" target.file	; 変更の格納

$ cd ..
$ cvs release -d モジュール名	; モジュールの放棄

最新版を入手
$ cvs -d:pserver:anonymous@cvs.sourceforge.jp/cvsroot/hiki login
$ cvs -d:pserver:anonymous@cvs.sourceforge.jp/cvsroot/hiki co core

最新版との差分ファイルのみがダウンロード
$ cd core
$ cvs up

特定のブランチを入手
$ cd core
$ cvs up -r Test_Hoge


!dmesg -a
/var/log/messages

!bash

配列とスペース区切り文字列
array=(1 2 3 4)
num=0
for num in ${array[@]};do
  echo ${num}
done

参照(置換え)
■$key の値の前方からマッチした最長の部分を除去する。
  #!/bin/sh
  afo=/hoge/foo
  echo ${afo##*/}
  foo
■$key の値の前方からマッチした最短の部分を除去する。
  ${afo#*/}
■$key の値の後方からマッチした最長の部分を除去する。
  ${afo%%*/}
■$key の値の後方からマッチした最短の部分を除去する。
  ${afo%*/}

■ファイル名の末尾にある拡張子(サフィックス)を取り除く
keyword: 変数に対するパス名指定子

・csh
echo $hoge:r

・sh(bash)
echo ${hoge%.*}

sh -FreeBSD ON ThinkPad235-
http://www.on.rim.or.jp/~tyuu/Computer/FreeBSD_ON_ThinkPad235/sh.html

#!/bin/bash
for i in `find ./ -type f | grep ?.JPG`
do
mv $i ${i%.JPG}.jpg
done

パターン照合演算子
LinuxWorld Online
http://www.idg.co.jp/lw/weekly_1/041005/index2.html

man bash:
“履歴のイベント”でしか「単語指示子(Word Designators)」を
使えない。

「なぜ csh でプログラムを書くのが良くないのか」
(原題: "Csh Programming Considered Harmful by Tom Christiansen)
http://faqs.jmas.co.jp/FAQs/csh-whynot-jp


!webalizer
/etc/webalizer.conf

http://localhost/usage/
(localhostの部分を自分のドメインにするだけ)

cron (mailto,mrtg,webalizer,tripwire)
http://www.geocities.co.jp/HeartLand-Icho/5345/lin_cron.html

webalizer
http://www.aritia.org/hizumi/dsl/page_08.htm

!英文字以外の文字の連続を,改行に変換する

tr -cs ' ■' '?012■' <file


!ftp

ユーザのログインシェル設定によって接続できない。

/bin/false -> NG
/sbin/nologin -> OK

!xinetd

/sbin/chkconfig telnet on
にて以下のファイルが変更になる
/etc/xinetd.d/telnet:
        disable = yes --> no

!Samba-CAP
文字コードの0x80以上の部分を16進数で表現する方法です。
"脇"は":98e"
"a脇b"は"a:98eb"

!cap encord

nkf --cap-input

locate hogehoge | nkf -e --cap-input | w3m

Perl
$str =~ s/:([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/ego;

open(CAP, "| nkf -e --cap-input");
    print(CAP "$strings");
close(CAP);

smbfnconv
coding system = cap から unix charset = eucjp-ms に変更
perl ./smbfnconv -f cap -t eucjp-ms

PHP
$w = str_replace("%", "%25", $cap_original); // % を %25 に置き換え、
$w = str_replace(":", "%",   $w);            // : を % に置き換えて、
$cap_decode = rawurldecode($w);              // urldecode()とする。


!rsync

-n: for test

-e "ssh -1"
ファイル転送はSSHを使い,プロトコルはRSA1

rsync_backup:
#!/bin/csh
# -n : for test
rsync -av -e ssh --exclude="memo_kuma.txt" \
 --exclude-from=/etc/rsync.exclude 192.168.1.7:~/memo ~/memo/

rsync -av -e ssh ~/memo/memo_kuma.txt 192.168.1.7:~/memo

# rsync -av -e ssh --exclude="memo_land.txt" \
#  --exclude="landisk.mem" \
#  --exclude="kumakich-3.mem" \
#  --exclude-from=/etc/rsync.exclude ~/memo/ \
#  192.168.1.7:~/memo
# 
# rsync -av -e ssh 192.168.1.7:~/memo/memo_land.txt ~/memo
# rsync -av -e ssh 192.168.1.7:~/memo/landisk.mem ~/memo
# rsync -av -e ssh 192.168.1.7:~/memo/kumakich-3.mem ~/memo

rsync -av -e ssh --exclude-from=/etc/rsync.exclude ~/public_html/ \
 192.168.1.7:~/publib_html

rsync -av -e ssh --exclude-from=/etc/rsync.exclude ~/pilot/ \
 192.168.1.7:~/pilot

# rsync -av -e ssh --exclude-from=/etc/rsync.exclude ~/YjMorita/ \
#  192.168.1.7:~/YjMorita

rsync
http://www.infoscience.co.jp/technical/rsync/rsync.html

rsync -avz foo:src/bar/ /data/tmp

ソースの後にスラッシュが付くと、
foo というマシンにあるsrc/bar ディレクトリ以下の全てのファイルを
/data/tmp/ に転送します。

ソース名の後に付く / は、
「このディレクトリにあるコンテンツをコピーする」ことを意味します。

スラッシュがなければ、
「このディレクトリをコピーする」ことを意味します。

この違いは --delete オプションを使う際に特に重要になります。


!find
-delete : FreeBSD版のみサポートされているオプション

!DeleGate

APOPを利用する
http://tokyoxjp.hp.infoseek.co.jp/001de.shtml

メールサーバーとの認証をDelegateに中継させれば、
APOP非対応のメールソフトでもAPOPで認証を行うことができる。

C:?delegate?dg.exe -vs ADMIN=メールアドレス
-Plocalhost:110 SERVER=pop://POPサーバーアドレス:110

-v option  --  ログレベルを制御
           ==  -v[vdtsau]

-vv: -v より詳細なログ 
-vd: デバッグ情報を含む詳細なログ
-vt: 簡潔
-vs: ログを停止し、静かにします。


!port/protocol

/etc/services

lsof -i:20
lsof -c ssh

!xpdf

/usr/share/xpdf/japanese/EUC-JP.unicodeMap
3.0 のものに変更した。

pdftotext -enc EUC-JP
	       ISO-2022-JP
               Shift-JIS

http://www.mlab.t.u-tokyo.ac.jp/~saru/archives/000072.php

半角英数、半角スペースが全角に変換されてしまう。
全角スペース(8140)の数が倍になってしまう。

┌──────┬──────┐
│変更前      │変更後      │
├──────┼──────┤
│000a 0a     │            │
│000c 0c     │            │
│000d 0d     │000a 0a     │
│0020 8140   │000c 0c     │
│0021 8149   │000d 0d     │
│〜          │0020 007e 20│
│007d 8170   │00a7 8198   │
│007e 8160   │00a8 814e   │
│00a7 8198   │            │
│00a8 814e   │            │
└──────┴──────┘

標準出力に出力するスクリプト
#!/bin/sh
case $# in
1) infile="$1" ;;
*) echo "usage: pdfstdout [file]";exit 0;
esac

tmpfile="pdfstrip.$$"
pdftotext "$infile" "$tmpfile"
cat "$tmpfile"
rm "$tmpfile"
exit 0

/usr/share/xpdf/japanese/EUC-JP.unicodeMap

EUC-JP でも「’」は全角になるので、EUC-JP.unicodeMap の
2018 2019 a1c6 を 2018 a1c6 と 2019 27 に変更。


!cat
!!連続した空白行
Sed では難しそうだが、Perl だと楽勝だと思い、
Google で事例を検索して、イロイロやってみたが、旨くゆかない。 :-)


  perl -pe 's/\n+/\n/gs'
  perl -pe 's/\n\n*/\n/gs'

結局、cat を使って出来ました。 :-)

こんなベーシックなコマンドに、こんな機能があったとは……。


  CAT(1)
  
  名前
         cat - ファイルを連結して出力する
  オプション
         -s, --squeeze-blank
                連続した空白行を、1つの空白行にまとめる。

xyzzyでプログラミング/空行、行末空白などの削除 
http://xyzzy.s53.xrea.com/wiki/index.php?cmd=read&page=xyzzy%A4%C7%A5%D7%A5%ED%A5%B0%A5%E9%A5%DF%A5%F3%A5%B0%2F%B6%F5%B9%D4%A1%A2%B9%D4%CB%F6%B6%F5%C7%F2%A4%CA%A4%C9%A4%CE%BA%EF%BD%FC&word=%B6%F5%B9%D4%A1%A2%B9%D4%CB%F6%B6%F5%C7%F2%A4%CA%A4%C9%A4%CE%BA%EF%BD%FC


!Perl
!!後方参照(グルーピング)
perl -pe 's/「(.*)」/$n/'
n: 1-9


!!CSV
CSV形式の行から値のリストを取り出す
http://www.din.or.jp/~ohzaki/perl.htm#CSV2Values

値に改行コードを含む CSV形式を扱う
http://www.din.or.jp/~ohzaki/perl.htm#CSVwithCRLF

値のリストから CSV形式に変換する
http://www.din.or.jp/~ohzaki/perl.htm#CSVfromValues


!!scripts
Scripts used to generate the AREA web pages
http://wolff.to/area/scripts.html

!!レキシカル変数
my $a = 1 ;           # レキシカル変数の宣言、代入

uc          文字列を大文字に変換する

?L ?Eが来るまで後続の文字を小文字に変換
?U ?Eが来るまで後続の文字を大文字に変換
?E ?U又は?Lで始まった大文字・小文字の変換を終了


!!Misc
どさにっき
http://ya.maya.st/d/200606c.html

スクリプト言語の shebang 行(#!)で
スクリプトインタープリタを直接書かずに /usr/bin/env でラップする。

#!/usr/bin/env

a2z.pl:
#! /usr/bin/perl
require "/home/ymorita/lib/jcode.pl";

die "usage: a2z.pl filename\n" unless @ARGV;

$infile = $ARGV[0];
open(IN, "$infile");

while ($line = <IN>){
chop $line;
&jcode'tr(*line,'0123456789A-Za-z','0123456789A-Za-z');
#&jcode'tr(*line,'.,:/@?#&-','.,:/@?#&−');
print "$line\n";
}

!!最短一致
通常は「最長一致」としてマッチするが、量指定子の直後に"?" を付けることで可能。

Search by Regular Expression
http://infosys.gsid.nagoya-u.ac.jp/~ohna/re/kc2005/re4kc.html

  *?	  直前の文字を0回以上に最短マッチ
  +?	  直前の文字を1回以上に最短マッチ
  ??	  直前の文字を0又は1回に最短マッチ
  {n}?   直前の文字をn回に最短マッチ
  {n,}?  直前の文字をn回以上に最短マッチ
  {n,m}? 直前の文字をn回以上、m回以下に最短マッチ


!sed

sed =Y=a'=Y=a^
http://www.kabipan.com/computer/sed/

*私はこの小さな働き者が大好きだ。
**sed で段落内改行を削除


b label
       label に分岐(label が省略された場合は、スクリプトの末尾に分岐)
h H    パターンスペースをホールドスペースにコピー/追加
g G    ホールドスペースをパターンスペースにコピー/追加
x      ホールドスペースとパターンスペースの内容を交換
n N    入力の次の行をパターンスペースに読み込む/追加
p      現在のパターンスペースを出力


!!CSV, TSV
CSVを活用しよう
http://www.asahi-net.or.jp/~AW4T-SGFJ/japana/csv.html

csv2tsv.sed
tsv2csv.sed


!!繰返し
\{n,m\} 直前の一文字がnからmまでのり返し
\{n,\} 直前の一文字が最低n回の繰り返し
\{n\} 直前の一文字がn回の繰り返し


!!後方参照(グルーピング)
s/\(.*\)/\n/
n: 1-9

GNU sed version 3.02
は\t が使用できないが、

ftp://ftp.gnu.org/pub/gnu/sed/sed-4.1.2.tar.gz
GNU sed version 4.1.2
は使用可


!!misc
 disp.sed:
 #マッチした行を出力する。
 #sed -n -f ~/lib/disp.sed infilename > outfilename,Fxは(B

 /^[A-z0-9]/p$,1/^に最短マッチ(B

 ndisp.sed:
 #マッチした行は出力しない。(削除)
 #sed -f /usr/lib/ndisp.sed infilename > outfilename
 
 /^[A-z0-9]/d


11/27 -> 2003/11/27
sed -e 's|^?([0-9][0-9]/[0-9][0-9]?)|2003/?1|'

sed -e 's/?([0-9][0-9]?)?([0-9][0-9]?)/?1 ?2/g'  ; TrainTime

sed -e 's/hnum"k66-[0-9][0-9][0-9][0-9]"//'
sed -e 's/,hnum"k66-[0-9][0-9][0-9][0-9]"//'

sed -e 's/-d[1-4] ?(.*?)/?1/'

sed -e 's/^?#+?(.+?)/?1/'


!!キャラクタクラス
未來社
http://www.miraisha.co.jp/mirai/text/pasokongihou.html

全角英数: [A-z0-9]
JIS第1水準漢字: [亜-腕]
JIS第2水準漢字: [弌-龠]
ひらがな: [ぁ-ん]
全角カタカナ: [ァ-ヶ]

「JIS第1水準漢字」だけ出力する
  sed -n -e '/[亜-腕]/p' infile
「JIS第1水準漢字」だけ出力しない
  sed -e '/[亜-腕]/n' infile


!grep
 grep -v expression files	#一致する行を出力しない
 grep expression files		#一致する行を出力する


!sort

 sort +0 -1
 sort +1 -2  ; 項目2で昇順にソート
 sort +2 -3
 sort +0 -3
 sort +0 -1 +1 -2
 
 -r reverse order

!IP-Address を変更する

RedHat
/etc/sysconfig/network-scripts/ifcfg-eth0
# /sbin/service network restart


Debian
/etc/networks (?)

!mkdir -p 
ディレクトリが存在しないとき

!DNS
/etc/named.conf:

http://gapo.zive.net/bind/right.html
zone "."		#ヒントファイル
	file "named.ca"
localhost		#local host 正引きファイル
	localhost.zone
0.0.127.in-addr.arpa	#local host 逆引きファイル
	named.local
zive.net		#LAN内 正引きファイル
	lan.zone
172.in-addr.arpa	#LAN内 逆引きファイル
	lan.rev

http://www.yamasita.jp/linkstation/0312/031224.html
zone "."
	file "named.root"
localhost
	localhost.zone
0.0.127.in-addr.arpa
	0.0.127-rev
yamasita.jp
	yamasita.jp-in-zone
1.168.192.in-addr.arpa
	1.168.192-rev

!mail

% mail -s 'subject' hogehoge

To:
Cc:
Bcc: 
Reply-To:
Subject: 
Content-Type: text/plain; charset="ISO-2022-JP"

!OpenSSH

% ssh-keygen -b 1024 -t rsa1
% cat .ssh/identity.pub | ssh server-name "cat >> .ssh/authorized_keys"

% ssh-keygen -b 1024 -t rsa
% cat .ssh/id_rsa.pub | ssh server-name "cat >> .ssh/authorized_keys2"

% ssh server-name -l login-name -1

!!passphrase だけを変更する
private key のあるPC の~/ にて

% ssh-keygen -p  -t [rsa1, rsa, dsa]

passphrase が設定済の場合は、old-passphrase の入力が必須。


!/usr/games/fortune
/usr/share/games/fortune/*

fortune.it-1.51.lsm
  italia
  zozzital
	# cp italia zozzital /usr/share/games/fortune
	# cd /usr/share/games/fortune
	# strfile italia
	# strfile zozzital

% /usr/games/fortune -ls italia

!mh-e

~/.mh_profile:
Path: Mail
Draft-Folder: drafts
Aliasfile: aliases
file-coding: ja_JP.jis7
display-coding: ja_JP.jis7 
process-coding: ja_JP.jis7
send: -hencode
whom: -hencode

Folder-protct: 700
Msg-protct: 600
inc: -host mail -rpop
Unseen-Sequence: notyet
showproc: less
repl: -filter replyfilter -anno

MH customize guide
http://www.chem.eng.himeji-tech.ac.jp/~hayashi/internet/MH/mh_guide01.html

メール作成用フォーマット定義ファイル
MH の Lib dir (例: /usr/local/mh/lib など) にある
components	comp (compose a message)
distcomps	dist (redistribute a message to additional address)
forwcomps	forw (forward messages)
digestcomps	forw -digest (forw コマンドに digest オプションをつけた時)
replcomps	repl (reply to a messages)

~/Mail/components:
To:
Bcc: ymorita@gar.sakura.ne.jp
Subject:
MIME-Version: 1.0
Content-Type: text/plain; charset="ISO-2022-JP"
Content-Transfer-Encoding: 7bit
--------

/usr/local/lib/mh/mtstailor:
  localname:      ドメイン名(from: に入るドメイン名を指定)


!ruby


RubyGemsは"ruby用のapt"です。

gem search -r PackageName
gem install PackageName

GigaLandiskのDebianにRubyGemsを導入してみる GigaLandiskといっしょ。| HDL-Gで格安自宅サーバー!
http://hdlg.wablog.com/54.html

Rails' Wiki - TodoListTutorial
http://wiki.fdiary.net/rails/?TodoListTutorial

!!テキストデータ
Text::CSVというModule

TSV
my @fields = split /\t/, $line;


!Rails
Ruby on Rails というフレームワーク。(「Rails」や「RoR」とも呼ばれる)

!!IDE
!!!NetBeans
EnterpriseZine:意外にかんたん!Ruby on RailsとNetBeansのインストール
http://enterprisezine.jp/article/detail/739

!!!Eclipse
Eclipse.org home
http://www.eclipse.org/

!!!Aptana
Aptana Studio + RadRails

Aptana Studio (Community Edition/Professional Edition)
EclipseベースのIDE

Aptana Studio -- The Web 2.0 IDE for Ajax, PHP, Ruby on Rails, Jaxer and more
http://www.aptana.com/studio


!!!!10日でおぼえるRuby_on_Rails入門教室 arton 翔泳社 04/2008

10日でおぼえるRuby on Rails入門教室:SEshop.com/商品詳細
http://www.seshop.com/detail.aspid=8998

例題サンプルファイル
http://www.shoeisha.com/book/hp/10days/down/PDF.zip

!!!Heroku
Firefox 上で Ruby on Rails 統合開発環境を実現した Web アプリケーション


!!!3rdRail

!!Related Info
Rails初心者はどうやって他人のRailsコードを読めばいいか - バイオ研究者見習い生活 with IT
http://d.hatena.ne.jp/Hash/20080601/1212329865

Do Ruby!(Ruby on Railsのシステム開発)
http://doruby.kbmj.com/

ランプの中身(Ruby on Railsのシステム開発)


!!2.0

Ruby on Rails 2.0.1に対応 - idesaku blog
http://d.hatena.ne.jp/idesaku/20071210/1197260363

*paginationはRails2.0からプラグインになった。
*classic_paginationプラグインのインストールは可能だが、will_paginateを使う。
*Rails2.0では必須であるはずのActiveResource

よしぶろっIP: {Rails 2.0 Preview]新機能いくつか
http://yoshimeux.seesaa.net/article/59816416.html

*マイグレーションの記述方式の変更
 t.column, "account_id",  :integer
 t.column, "first_name",  :string, :null => false
 t.column, "last_name",   :string, :null => false
 t.column, "description", :text
 t.column, "created_at",  :datetime
 t.column, "updated_at",  :datetime
 ↓
 t.integer :account_id
 t.string  :first_name, :last_name, :null => false
 t.text    :description
 t.timestamps

Rails 2.0のscaffoldを使ってみた - idesaku blog
http://d.hatena.ne.jp/idesaku/20071211/1197386955

 % rails trial -d sqlite3
 % cd trial
 % ruby script/generate scaffold person name:string age:integer
 % rake db:migrate
 % ruby script/console
 % :
 % ruby script/server

http://localhost:3000/people


Rails 2.0 をインストールしてみた - Rails で行こう! - Ruby on Rails を学ぶ
http://d.hatena.ne.jp/elm200/20080222/1203666414


!!1.0
Ruby1.9.0とRails2.0.xがリリースされてしまった現時点で、
初心者が Ruby と Rails を勉強するには? - tmaeda 日記
http://tmaeda.s45.xrea.com/td/20080103.html

$ gem install -v=1.2.6 rails

Railsマスターへの道:Ruby on Rails 日本語化
http://www.geocities.jp/master_rails/japanese.html

Rubyist Magazine - RubyOnRails を使ってみる【第 1 回】
http://jp.rubyist.net/magazine/?0004-RubyOnRails

趣味のプログラミングの復活? メモ帳/ウェブリブログ
http://larch.at.webry.info/200802/article_6.html

!!!『Ruby on Rails入門--優しいRailsの育て方』
ヽ( ・∀・)ノくまくまー
http://wota.jp/ac/?category=Rails


!!!『はじめよう Ruby on Rails」(かずひこ/喜多川豪)
Rails' Wiki - hajimeyo_rails
http://wiki.fdiary.net/rails/?hajimeyo_rails

書籍のソースコードあり

hajimeyo_source.zip

正誤表

$ rails scheduler

No such file or directory - /dev/urandom

*1.1
 % rails scheduler -d sqlite3
	-> config/database.yml
	;データベースの設定
 % cd scheduler
 % ruby script/generate migration create_schedules
	;データベースの雛型を作る
	-> db/migrate/001_create_schedules.rb
	datetime:timestamp title:string content:text
 % rake db:migrate
 % ruby script/generate scaffold Schedule

*2.0
 % rails scheduler -d sqlite3
 % cd scheduler
 % ruby script/generate scaffold Schedule \
	datetime:timestamp title:string content:text
 % rake db:migrate
 % ruby script/server

http://localhost:3000/schedules
でアクセスできました。


!file-expire
特定のディレクトリ内の古いファイルを削除するスクリプト

2007-08-28 - ’(rubikitch wanna be (a . lisper))
http://d.hatena.ne.jp/rubikitch/20070828


!pdumpfs

# cp pdumpfs /usr/local/bin/
# gzip pdumpfs.8
# cp pdumpfs.8.gz /usr/share/man/ja/man8/

pdumpfs: Plan9もどきのバックアップシステム
http://namazu.org/~satoru/pdumpfs/

--exclude=PATTERN
    PATTERN (Ruby の正規表現) にマッチするファイルまたはディレクトリをバックア
    ップ対象から除外する。複数個を指定可能。パターンマッチは、コマンドライン引
    数に渡した「対象ディレクトリ」が相対パスならそれを含んだ相対パス、絶対パス
    なら絶対パスに対して行われます。
--exclude-by-size=SIZE
    SIZE 以上のサイズのファイルをバックアップ対象から除外する。 1000, 100K,
    10M, 1G のような単位の指定が可能。
--exclude-by-glob=GLOB
    GLOB にマッチするファイルをバックアップ対象から除外する。ファイル名の比較に
    は、ファイルのベースネームに対して fnmatch(3) (シェルのワイルドカード) を利
    用します。複数個を指定可能。


pdumpfs-rsync: rsync を利用したリモートpdumpfs
http://tach.arege.net/software/pdumpfs-rsync/

% pdumpfs-rsync <ユーザ名>@<ホスト名>:<対象ディレクトリ> <コピー先ディレクトリ>

オプション
--exclude --exclude-from --include --include-from

/foo/	; 基点ディレクトリにある foo というディレクトリを除外
/foo	; 基点ディレクトリにある foo というファイルを除外
foo/	; foo というファイルを除外

/etc/rsync.exclude:
*~
?#*?#


pdumpfs-clean: pdumpfs のバックアップを掃除するツール
http://tach.arege.net/software/pdumpfs-clean/

% pdumpfs-clean OPTION <対象ディレクトリ>

--keep : バックアップを残す期間を指定
最近7日分,最近6週間の各日曜日,最近6ヶ月の各1日,最近2年の各1月1日

--keep 5Y12M18W14D (デフォルト)
最近14日分,最近18週の各日曜日,最近12ヶ月の各1日,最近5年の各1月1日

My Setup
--keep 5Y12M18W30D
最近30日分,最近24週の各日曜日,最近12ヶ月の各1日,最近5年の各1月1日
% pdumpfs-clean --verbose --no-act --keep 5Y12M24W30D /var/backups/kipqc-2

--no-act : 実際の削除は行わない
--verbose : 経過・結果を詳細表示

pdumpfs over ssh
% pdumpfs foo remote:bar

---
xc

~/.xc
set cis "off"  # B-Plus が使用不可
set sjis "off" # sjis への変換をしない
set auto "on"  # ログファイルを保存(./capture.log)

# xc -l /dev/cua0

<XC>          ; プロンプト
<XC> t [ret]  ; ターミナルモードに
Ctrl-A X      ; ターミナルモードからプロンプトに戻る
<XC> q        ; 終了

Default Setting
Keyword                Description Status
------------------------- -----------
auto                  Auto Capture OFF
bps                Bits per Second 38400
cfile                 Capture File capture.log
cis        CIS <ENQ> Auto Download OFF
cr       Carriage Return Injection ON
hdplx             Half-duplex Mode OFF
nl             Newline Translation ON
pfile            Phone Number File phonelist
proto                  Port set to 8N1
xcape    Terminal Escape Character ^A
xoff        Terminal Mode XON/XOFF OFF
rtscts       Hardware Flow Control ON
del2bs       DEL to BS Translation ON
msdos        Character Translation OFF
autozm   Automatic ZModem Download ON
zmcmd         Automatic rz command rz -y
[d]ial directory  [t]erminal mode  [q]uit  [s]cript  [?]help

!mime_pls ver.2.02

mime_pls ver.2.02 document
http://www.cc.rim.or.jp/~ikuta/mime_pls/

MIME encode/decodeのためのperl library
mimer.pl, mimew.pl

MIME encode/decode と、
メッセージボディのBase64形式およびQuoted-Printable形式のencode/decodeの機能を
Perlの関数として提供する。

library を使用したPelスクリプト
rbody wbody

rbody {-q|-b} [ ファイル名 ...]
       MIME base64 encoding または Quoted-Printable encoding された
       データをデコードする。

Quoted-Printable: rbody -q | nkf -eE (on Emacs)
Base64: rbody -b | nkf -eE

wbody {-q|-b} [ ファイル名 ...]
       データを MIME base64 または Quoted-Printable でエンコードする。

!電子メール アーカイブサーバ
全文検索
WEB共有
スレッド表示

qmail
postfix

uw-imap-cygwin

Univ. of Wash. IMAP Server for Cygwin
http://japanese.osstrans.net/software/uw-imap-cygwin.html

Cyrus IMAP
CyrusでIMAPサーバを構築する
http://www.atmarkit.co.jp/fmobile/rensai/imap03/imap03.html

Courier-MTA (qmail)

dovecot (maildir)

1) プロバイダ→ POP3 → fetchmail
2) fetchmail → SMTP →ローカルPostfix
3) ローカルPostfix内でSpamAssassinのSPAMチェック
4) ローカルPostfix → LMTP →ローカルCyrus IMAP Server

2a) fetchmail → maildrop or procmail でローカルストレージに保存
2b) 保存されたメールをローカルPostfixに投げる

2b)の部分はテキトーなプログラミング言語で書く。

getmail
http://pyropus.ca/software/getmail/


!IMAP
IMAPを利用すると何ができるのか?
http://www.atmarkit.co.jp/fmobile/rensai/imap01/imap01.html

事例: ユーザーサポート業務
機能: IMAPの共有メールボックス

共有メールボックス(InComing, Answered, tech)を利用して
ユーザーサポート業務で使用する。

事例: 稟議書承認
機能: IMAPの共有メールボックス、アクセスコントロール、SMIMEの電子署名
共有メールボックス(申請、承認)を利用して

!!imapd
動作の確認
http://www.wakhok.ac.jp/~kanayama/summer/02/site/node216.html

telnet imap-server 143
1 login だれそれ パスワード
2 list "" *
3 logout


!!cyrus-imapd
SpamFiltering - Postfix+BSFilter+Cyrus-imapd - Shinichiro s Wiki
http://www.stained-g.net/wiki/shinichiro/pukiwiki.php?SpamFiltering%20-%20Postfix%2BBSFilter%2BCyrus-imapd
 cyrus-imapd の ACL を利用

CyrusでIMAPサーバを構築する
http://www.atmarkit.co.jp/fmobile/rensai/imap03/imap03.html
 ・ さまざまな拡張機能に対応                            
     特徴的なものとして挙げられるのは、容量制限のQUOTA(RFC2087)、アク
    セス制限のACL(RFC2086)、メールの振り分けのSieve(RFC3028)などです 

 ●ACL
  共有メールボックス“foo”に外部から投稿できる権利“p”を追加するには、
 以下のようにします。
 
 % cyradm --user cyrus-admin localhost
 Please Enter your password: <cyurs-adminのパスワード>
 localhost> sam foo anyone +p
 localhost> quit

IMAP4 Server (Cyrus IMAP4)
http://hk-tech.homeip.net/pcserver/imap4.html#regist
 MTAからのメールの配送
 Sieveを使ったメールのフィルタリング

Postfix(SMTP-AUTH)とcyrus-imapdの設定 [Fedora Core 3]
http://www.mykobito.net/memo/postfix_cyrus-imapd_FC3.html

!!squirrelmail
!!mobileimap

!SASL
!!cyrus-sasl

Postfix を利用するユーザのパスワードを設定(SMTP-AUTH)
cyrus を利用するユーザアカウントを作成

SASLでパスワードの設定をする
sasl2を利用するので、saslpasswd2を使って、パスワードを作成する。
# /usr/sbin/saslpasswd2 -u `/usr/sbin/postconf -h myhostname` -c alice


!SMTP
telnet smtp-server 25
HELO mail-server
MAIL FROM:<my-mail-address>
RCPT TO:other-mail-address
DATA
Subject: hoge-hoge
From: mail-address
mail-body
.

!sendmail/postfix

・キューの内容を表示する
% mailq (postqueue -p)
・キューをフラッシュする
% sendmail -q (postqueue -f)
・キューを削除する
% sudo postsuper -d $(キューID)  ;キューID はmailq で調べる
% sudo postsuper -d ALL  ; 全てのキューを削除する。

!setenv LC_TIME C
日付の表示を英語にする

time-command on csh
2004年 4月29日 木曜日 14時17分48秒 JST
Thu Apr 29 14:17:04 JST 2004

dired on Emacs
-rw-r--r--    1 ymorita  kipqc        1549  4月 29 13:52 .emacs
-rw-r--r--    1 ymorita  kipqc        1549 Apr 29 13:52 .emacs

!libtiff

tiffcp
  Copy, concatenate, and convert TIFF images (e.g.
  switching from Compression=5 to Compression=1)

tiffsplit
  Create one or more single-image files from a (possibly)
  multi-image file.

!PATH

add
export PATH=$PATH:/hogehoge
PATH="$PATH":/hogehoge

setenv PATH "$PATH":/hogehoge

!w3m
!!w3m-0.5.2
sjis なページで文字化けしないようになりました。
w3m-0.5.1 では文字化けしていた。

% make
make[1]: Entering directory `/home/ymorita/src/w3m-0.5.2/po'
test -z "ja.gmo" || make ja.gmo
make[2]: Entering directory `/home/ymorita/src/w3m-0.5.2/po'
rm -f ja.gmo && : -c --statistics -o ja.gmo ja.po
mv: cannot stat `t-ja.gmo': No such file or directory
make[2]: *** [ja.gmo] エラー 1
make[2]: Leaving directory `/home/ymorita/src/w3m-0.5.2/po'
make[1]: *** [stamp-po] エラー 2
make[1]: Leaving directory `/home/ymorita/src/w3m-0.5.2/po'
make: *** [po] エラー 2

# make install
make[1]: Entering directory `/home/ymorita/src/w3m-0.5.2/po'
test -z "ja.gmo" || make ja.gmo
make[2]: Entering directory `/home/ymorita/src/w3m-0.5.2/po'
rm -f ja.gmo && : -c --statistics -o ja.gmo ja.po
mv: cannot stat `t-ja.gmo': No such file or directory
make[2]: *** [ja.gmo] エラー 1
make[2]: Leaving directory `/home/ymorita/src/w3m-0.5.2/po'
make[1]: *** [stamp-po] エラー 2
make[1]: Leaving directory `/home/ymorita/src/w3m-0.5.2/po'
make: *** [install-po] エラー 2

~/.w3m/keymap:
keymap	C-l	TAB_LINK


w3m -o cgi_bin=~/cgi-bin file:/cgi-bin/pu.cgi
w3m -o cgi_bin=~/src/w3m-0.4/Bonus/ file:/cgi-bin/smb.cgi

!Redhat kinput2 XMODIFIERS XIM

!skkinput3

skkinput-3.0.5以降(skkiput-3.0.4以前は不可)のバージョン

skkinpt3がインストールされていれば、
コマンドtcinputを実行して、Tコード用の設定でskkinput3を起動する。

個人用の設定は`~/.tc-skk'で行います。
~/.tc-skk
`tcode-data-directory'の設定
;;; isearchでTコードを使用しない。(skkinput3では使えない。)
(setq tcode-use-isearch nil)

!NFS
  /etc/exports

nfs-client
% mount -t nfs 172.20.23.91:/var/home/fax /mnt/fax

% showmount -e 192.20.23.91  ; export されているフォルダを表示

!catdoc

catdoc デフォルトの状態で、
# catdoc infile > outfile
とやっても旨く変換できない。

MS-Word 2000 の場合は、以下の
# catdoc -l
# catdoc -u -d utf-8 infile | lv -Iu8 -Oej > outfile

# xls2csv -l
# xls2csv -l -d utf-8 infile | lv -Iu8 -Oej > outfile

!efax
http://www.cce.com/efax/
efax-0.9a-001114.tar.gz

FAXもLinuxで
http://www.shino.pos.to/linux/fax.html
efax-0.9a001114b0-1.src.rpm

fax make tiger.ps
fax send xxxxxxxx tiger.ps.0*

lpr -P fax -J xxxxxxx tiger.ps

cat fax.txt | mpage -1 - > fax.ps ; fax make fax.ps

fax new
fax send xxxxxxxx new.fax tiger.ps.001

□ 手動送信
・psファイルなどをfax形式に変換する
        $ fax make doc.ps
        doc.ps.001, doc.ps.002 などのtiffg3ファイルが作られます。このファイルは
        xloadimage, kfax, ghfaxveiwer などで表示できます。
・日本語テキストをfax形式に変換するには、いったんpsファイルを作る
        $ cat doc.txt | mpage -1 - > doc.ps ; fax make doc.ps
・送信は例えば
        $ fax send 03-3999-9999 doc.ps.0*

Windows のBsBiff でFAXの着信をチェックしているが、
メールのチェック時にエラーが発生し強制終了してしまうことあり。

当該メールのヘッダ、
フィールドSubject の文字数が多いことが原因のよう。

<2004/12/22 14:59:17>Subject: fax/message from "          0254453500" : 1222102805.001 1222102805.002 1222102805.003 1222102805.004 1222102805.005 1222102805.006 1222102805.007 1222102805.008 1222102805.009 1222102805.010 1222102805.011 1222102805.012 1222102805.013 1222102805.014 1222102805.015 1222102805.016 1222102805.017 1222102805.018 1222102805.019 1222102805.020 1222102805.021 1222102805.022 1222102805.023 1222102805.024 1222102805.025 1222102805.026 1222102805.027 1222102805.028 1222102805.029 1222102805.030 1222102805.031 1222102805.032 1222102805.033 1222102805.034

tiffcp を使ってマルチページのtiff に変換できないか。


!utf-8 をeuc に変換
lv -Iu8 -Oej

!tail
tail -n [+ | -]number
tail [+ | -]number

!xlHtml
Pivot Tables, Charts, OLE Objects, Hyperlinks, Images, Macros 以外はOK

xlhtml file.xls | lv -Iu8 -Oej | w3m -T text/html
xlhtml file.xls -xp:2 -csv | lv -Iu8 -Oej > file.csv

xlhtml-0.4.9.2
データのないセル → String Table Error

xlhtml-0.5.1-vd2
データのないセル → OK
VD's xlhtml pre-release
  http://nebuchadnezzar.zion.cz/xlhtml.php

!wget

wget PROTOCOL://USER:PASSWORD@HOST(:PORT)/pub/filename
通常はFTPでログインした場合、
ユーザanonymouse またはUSER のホームディレクトリにchroot されているので、
ルートディレクトリになるが、
realuser でログインした場合、

wget PROTOCOL://USER:PASSWORD@HOST(:PORT)//home/USER/pub/filename

wget -r -N -l inf ftp://username:passwd@172.20.23.90//usr/mistral/

GNU Wget 1.8.1
--mirror (m)
-r -N -l inf -nr

--recursive (r)
--timestamping (N)
--level (l)
--dont-remove-listing (nr)

-g on/off
--glob=on/off
    Turn FTP globbing on or off.


GNU Wget 1.10.2 (Red Hat modified)
--mirror (m)
-r -N -l inf --no-remove-listing

--no-remove-listing


--no-glob
    Turn off FTP globbing.


!samba

Windows からファイルを取得する
# mount -t smbfs -o username=myname,uid=my_uid,gid=my_gid ?
        //server/share /mnt/smb  # Windows ファイルを Linux にマウント
# smbmount //server/share /mnt/smb ?
        -o "username=myname,uid=my_uid,gid=my_gid"
# smbclient -L 172.20.23.56 # コンピュータ上の共有のリスト
# smbclient //172.20.23.56/post PASSWD  ;ログインする

Linux から Samba の隣人をチェックする
# smbclient -N -L ip_address_of_your_PC | less
# nmblookup -T "*"
# findsmb  ;use nmblookup, smbclient

!mount する

smbmount /mnt -I kipqc-1/172.20.23.90

How to mount remote Windows shares
http://wiki.centos.org/TipsAndTricks/WindowsShares


!Windowsマシンで共有されているプリンタに出力する

gs -q -dKANJI -dSAFER -dNOPAUSE -r360 -sDEVICE=bjc600?
-sOutputFile=tiger.bjc600 /usr/share/ghostscript/6.52/examples/tiger.ps

/usr/local/samba/bin/smbclient ????ComputerName??canon -P -U kipqc
/usr/local/samba/bin/smbclient ????shizu??canon -P
smb: ?> print tiger.bjc600


!/etc/fstab
/dev/hda1  /boot  ext2 defaults  1 2  ;

LABEL=/boot  /boot ext2 defaults  1 2  ;Red Hat Linux 7.1以降
	e2label  ;ラベルの設定・変更
	df	 ;ラベルの確認

!Windows のTeraTerm 上で動いているemacs に大きなテキストをペーストすると、
“尻切れトンボ”になってしまう。

  RedHat6.2 のemacs では同様。
	GNU Emacs 20.5.1
  RedHat7.3 のemacs では同様。
	GNU Emacs 21.2.1
  FreeBSD4.4 のemacs では問題なし。
	GNU Emacs 19.34.1
	Mule Version 2.3 (SUETSUMUHANA) of 1995.7.24

!MIME

MIME をデコードしてUTF-8 に変換する
nkf -mw

mpack-1.5-linux.tar.gz

MIME-Version: 1.0
Content-Type: multipart/mixed;
	boundary="_NextPart_000_0000"
--------
This is a multi-part message in MIME format.

--_NextPart_000_0000
Content-Type: text/plain; charset="iso-2022-jp"
Content-Transfer-Encoding: 7bit

--_NextPart_000_0000
Content-Type: image/jpeg; name="hogehoge.jpg"
  (Content-Type: application/octet-stream; name="hogehoge.jpg")
  (Content-Type: application/pdf; name="hogehoge.pdf"

Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="hogehoge.jpg"

xxxxx
xxxxx
--_NextPart_000_0000--


!fetchmail

touch ~/.fetchmail.log

% fetchmail -F
既読のメールをサーバ上から消去する。

% fetchmail -A
既読のメールも取得する。


~/.fetchmailrc
no rewrite  ; for header
no mimedecodo

!ldconfig

コマンドhogeが使用しているライブラリの確認する
% ldd /usr/sbin/hoge

setenv LD_LIBRARY_PATH=/usr/hoge/lib
export MANPATH=$MANPATH:/usr/hoge/lib
としてからプログラムを実行

ライブラリのデータベースに追加する
# ldconfig -n /usr/hoge/lib

/etc/ld.so.conf にパス/usr/hoge/lib を追加して
# ldconfig

LD_RUN_PATH

!mh

popでメールを取る
inc -host hoge -apop -norpop

!Proxy Server

http://172.20.23.91:8080/

!ImageMagick
Ver5(最新版) Ver4.2.9

ImageMagick
http://mechanics.civil.tohoku.ac.jp/soft/node43.html

画像のサイズ,フォーマット変換
% convert -geometry 320x240 hogehoge.jpg hogehoge_small.jpg

画像変換を行なう。
% mogrify -geometry 640x480 -colors 2 -format jpeg *.tiff

画像の一覧をつくる
% montage hogehoge.jpg mojimoji.jpg piyopiyo.jpg all.jpg

画像の回転、反転
 時計回りに90度回転
% convert -rotate 90 hoge.jpg hoge_rotate.jpg

同じサイズの画像を結合
 +appendで左右方向, -appendで上下方向に.
% convert +append hoge1.jpg hoge2.jpg hoge-append.jpg

画像に縁をつける
 widthは左右の縁,heightは上下の縁の厚さ.
% convert -border <witdh>x<height> hoge.jpg hoge-border.jpg

画像内の colorの色の部分を透過に
 -transparent color
% convert -transparent white magick.gif magick-transparent.gif
color をRGB指定できないか?

文字を入れる
 -draw string         annotate the image with a graphic primitive

 -draw 'text 10,20 "TEST"'
 -draw 'text 20,20 "'"$title $txtstr-01"'"' org.JPG org-add_text.jpg
       csh内で変数を使用するときは
 -gravity SouthEast   ;datum string
 -font helvetica   ;font string
 -pointsize 36  ;size string
 -fill red      ;collor string

% /usr/X11R6/bin/convert -draw 'text 10 ,20 "TrafficAccident_071016"' \
hoge.jpg hoge-draw.jpg

convert: Unable to read font (/usr/share/ghostscript/fonts/n019003l.pfb) [そのようなファイルやディレクトリはありません].

% /usr/X11R6/bin/convert \
-font "/usr/share/fonts/default/Type1/n019003l.pfb" \
-fill white -pointsize 18 \
-draw 'text 10 ,20 "TrafficAccident_071016"' \
hoge.jpg hoge-draw.jpg

-resize 600x480
-font Arial


!tac
tac	concatenate and print files in reverse
	Debian, RedHat, Plamo

awk '{lines[n++] = $0} END {for (i = n - 1 ; i >= 0 ; i--) print lines[i]}'

rev	reversing the order of characters in every line
	Debian, RedHat, Plamo, FreeBSD
	
!Terminator
# CR+LF -> LF  ; dosfile is changed to unixfile
# SJIS -> EUC (X0201 kana->X0208 kana)
nkf -deS

# LF  -> CR+LF  ; unixfile is changed to dosfile
# EUC -> SJIS
nkf -csE

# Convert X0208 alphabet to ASCII
nkf -Z
-Z     X0208中 の 英数字と若干の記号をASCIIに変換する。-Z1
       はX0208間隔をASCII spaceに変換する。-Z2はX0208間 隔
       をASCII  space 二つに変換する。趣味によって使い分け
       てほしい。

2121 ,.:;?!'`^_-?
2141 |`'""()[]{}<>+-
2161 =<>$%#&*@
2221
2241
2261
2321 !"#$%&'()*+,-./0123456789:;<=>?@
2341 ABCDEFGHIJKLMNOPQRSTUVWXYZ[?]^_`
2361 abcdefghijklmnopqrstuvwxyz{|}~

!kill -HUP <pid>
killall -HUP inetd

!archie

!/etc/hosts.allow
172.20.0.0/255.255.0.0
172.20.23.0/24
172.20.


!umask
(シェル組込みコマンド)

/etc/profile
/etc/csh.login
022(
w-r--r--,rwxr-xr-x) -> 002(rw-rw-r--,rwxrwxr-x) ;(file,directry)

!logrotate

  RedhadLinux 6.2: for all
  /etc/cron.daily/logrotate
  /etc/logrotate.d/
  /etc/logrotate.conf

rotatelogs
  /etc/
  FreeBSD: for Apache
  RedhadLinux: for all

newsyslog
  /etc/newsyslog.conf
  FreeBSD: for all

!adduser
usage: adduser  [-u uid [-o]] [-g group] [-G group,...]
                [-d home] [-s shell] [-c comment] [-m [-k template]]
                [-f inactive] [-e expire ] [-p passwd] [-M] [-n] [-r] name
       adduser  -D [-g group] [-b base] [-s shell]
                [-f inactive] [-e expire ]

-s /bin/false [/sbin/nologin]
-M :ホームディレクトリを作らないことを指示

RedHat Linux
same as useradd

chsh: デフォルトのログインシェルを変更する


!gettext への対応を調べる

$ nm /bin/cat | grep gettext
  gettext という文字列がパラパラと表示されれば、gettext に対応している
$ strings /bin/cat | grep locale
  usr/share/locale などと表示されれば、gettext に対応している

!シングルユーザモード
/etc/inittab が間違っている、/etc/passwd が壊れた、
パスワードを忘れたなどによりログインできない

LILO: linux single

!linuxconf
Web インタフェースを使用する場合は、
ブラウザでlinuxconf を実行するマシンのポート 98に接続する。

!rpm

rpm --rebuild
ソースファイルSRPM からバイナリファイルRPM を作成してインストールする。

# rpm --rebuild hoge-hoge.src.rpm
# cd /usr/src/redhat/RPMS/i386
# rpm -ivh hoge-hoge.i386.rpm


rpm -ba
ソースファイルSRPM を展開し
/usr/src/redhat/SPECS/hoge-hoge.spec を編集した後、
ソースファイルSRPM とバイナリファイルRPM を作成してインストールする。

# rpm -ivh hoge-hoge.src.rpm
# cd /usr/src/redhat/SPECS/
# vi /usr/src/redhat/SPECS/hoge-hoge.spec
# rpm -ba hoge-hoge.spec


rpm -ivh <file-package>
  install(バイナリRPMをインストール、ソースRPMを展開)
rpm -Uvh <file-package>
  upgrade
rpm -Fvh <file-package>
  freshen
rpm --help | less

rpm -i <package>
  バイナリパッケージのインストール
rpm -U <package>
  バイナリパッケージのアップデート
rpm -F <file-package>
  バイナリパッケージのアップデート(earlier version のみが対象)
rpm -e <package>
  バイナリパッケージのアンインストール

rpm -qa <package>
  インストールされたパッケージの一覧を表示
rpm -qpl <file-package>
  パッケージ中のファイルをリストアップ
rpm -qpi <file-package>
  パッケージの情報を取得
rpm -qpR <file-package>
  パッケージの依存関係を表示
rpm -qf <file>
  ファイルが所属しているパッケージを調べる

rpm2cpio <file-package> | cpio -e "file"
  ファイルを取り出す

!Console

BSD
/etc/ttys
/etc/gettytab

System V
/etc/ttydef
/etc/gettydef

Linux
/etc/inittab
/etc/gettydefs

!chown
再帰的に全てのファイル、ディレクトリを変更する
chown -R user.group directry

特定のユーザやグループを変更する

group: 500 -> 200
       501 -> 200
% find / -group 500 -exec chown .kipqc {} \;
% find / -group 501 -exec chown .kipqc {} \;

user: 501 -> 201
      500 -> 200
% find / -user 500 -exec chown kipqc. {} \;
% find / -user 501 -exec chown ymorita. {} \;

!chmod
4: r
2: w
1: x

ディレクトリはそのままで、通常のファイルだけ変更したい場合
% find . -type f -exec chmod go-x {} \;
% find . -type f -exec chmod 644 {} \;

ディレクトリだけ変更したい場合
% find . -type d -exec chmod 775 {} \;


!ipchains	Linux 2.2

ipfw
iptables	Linux 2.4

!mule
ファイル名を指定してinfoファイルを見る。
    CTRL-u ESC x info [リターン]

※動作コマンドの前に CTRL-u を試してみると意外な発見...

Q. 日本語テキスト文字をWindows 上のTeraTerm からmule にカット&ペーストすると
文字化けしてペーストされてしまうのですが?

A. Mule の keyboard-coding-system と kterm の kanjiMode が一致していない
   ためです。kterm で設定している漢字コードを以下のように ~/.emacs に
   設定します。
      (set-keyboard-coding-system *euc-japan*)  ; (eucの場合)

!セキュリティの設定

R-Command (rlogin, rsh, rcp)
  /etc/hosts.equiv
  ~/.rhosts

!IPADDR="192.168.1.1"	# REPLACE with YOUR IP address!
NETMASK="255.255.255.0"	# REPLACE with YOUR netmask!
NETWORK="192.168.1.0"	# REPLACE with YOUR network address!
BROADCAST="192.168.1.255"	# REPLACE with YOUR broadcast address, if you
			# have one. If not, leave blank and edit below.
GATEWAY="192.168.1.1"	# REPLACE with YOUR gateway address!

start:
    /sbin/ifconfig ${device:?} up ${IPADDR} broadcast ${BROADCAST} ?
        netmask ${NETMASK}
    /sbin/route add -net ${NETWORK} netmask ${NETMASK}
    /sbin/route add default gw ${GATEWAY} metric 1

stop:
    /sbin/route del default
    /sbin/route del ${NETWORK}
    /sbin/ifconfig ${device:?} down

restart:
    /sbin/ifconfig ${device:?} down up

!MagicPoint

!ntp
日本標準時プロジェクト 公開NTP
http://www2.nict.go.jp/w/w114/tsp/PubNtp/

日本標準時プロジェクト 公開NTP FAQ
http://www2.nict.go.jp/w/w114/tsp/PubNtp/qa.html#q1-1

ntp.nict.jp (133.243.238.{163,164,243,244})

[[TechWiki iTakahiro(takaBSD) - NTP|
http://takabsd.jp/w/tech/?ntp]]

telnet ntp-server 123

!!ntpdate
ntp-server に接続して時計を合わせる。

ntpdate -s -b ntp-server
 
-s: silent mode for cron
-b: adjust system clock

[[ntp server|http://www.asahi-net.or.jp/~mu6k-ski/ntp.html]]

NTPサーバ名の詳細情報入手
ntpdate -q NTPサーバ名
ntpdate -d NTPサーバ名	;デバッグ・モード

ntpdate: no server suitable for synchronization found
サーバが安定動作していないという警告だが、動作はしている。
暫くして安定動作になると表示されなくなる。 


!!ntpd
/etc/ntp.conf:

サーバ稼働状態をチェックする
# ps -aux | grep ntpd
ntp      27772  0.0  1.6  1820 1812 ?        SL   11:10   0:00 ntpd -U ntp -g

# ntpq -np
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*133.243.238.163 .PPS.            1 u   21   64   17    9.318  -19.426   1.334
+133.243.238.164 .PPS.            1 u   24   64   17    8.091  -20.329   3.425
-133.243.238.243 .PPS.            1 u   30   64   17    6.785  -22.232   0.186
+133.243.238.244 .PPS.            1 u   25   64   17    8.827  -21.057   1.604


poll: 64(一番短い周期,同期がとれない)
      512 or 1024(安定時)

st(stratum=階層): 1-16
指定しているサーバの一覧が表示される。
行頭に "*" が付いているのが現在同期しているサーバ。
そのような行がない状態では「サーバと同期していない」ことになる。

クライアントから動作を確認する
ntpdate -q NTPサーバ名

#netstat -uap
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
PID/Program name
udp        0      0 kipqc-2:ntp             *:*
27909/ntpd
udp        0      0 localhost:ntp           *:*
27909/ntpd
udp        0      0 *:ntp                   *:*
27909/ntpd

/etc/ntp.conf:
statsdir /var/log/ntpstats/


!perl4 
/usr/bin -> /usr/local/bin
  usr/bin/a2p
  usr/bin/cppstdin
  usr/bin/h2ph
  usr/bin/c2ph
  usr/bin/pstruct
  usr/bin/s2p
  usr/bin/find2perl
  usr/bin/sperl4.036

!init q
/etc/inittab を変更したあとに実行

!/var/lib/ezinst/installed/jperlbin
  usr/local/bin/jperl4.036
  usr/local/bin/tjperl4.036
  usr/local/bin/a2p
  usr/local/bin/cppstdin
  usr/local/bin/h2ph
  usr/local/bin/c2ph
  usr/local/bin/pstruct
  usr/local/bin/s2p
  usr/local/bin/find2perl
  install/doinst.sh
  /var/lib/ezinst/scripts/jperlbin.p	;install-script

/var/lib/ezinst/installed/jperllib
  usr/local/lib/perl4/

/var/lib/ezinst/installed/jperlman
  usr/local/man/
  
!/var/log/packages/perl
  Larry Wall's interpreted systems language. (v. 4.0pl36)
  usr/bin/
  usr/lib/perl4/
  usr/man/preformat/
  usr/src/perl-4.036/

/var/log/scripts/perl
( cd usr/bin ; ln -sf perl4.036 perl )
( cd usr/bin ; ln -sf tperl4.036 taintperl )
( cd usr/bin ; ln -sf sperl4.036 suidperl )

-- /var/log/packages -- Linux_2.0.35 pcmcia_2.6.3 
/var/log/packages/jperl5
  日本語対応 perl(v. 5.004)
  usr/bin/
  usr/lib/perl5/
  usr/man/

/var/log/scripts/jperl5
    ln perl5.00404 perl
    ln c2ph pstruct

!自動タスクユーティリティ(タスクスケジューラ)

cron
システムの継続稼動が前提
タスクの実行予定時刻にシステムが稼動している必要あり

anacron
タスクの実行予定時刻にシステムが稼動している必要なし

at
指定した時刻に1度だけ行われるタスクをスケジュール

batch
システムの平均負荷が0.8を下回ったときに実行される1度限りのタスクをスケジュール

crontab
/var/spool/cron/crontabs/root
0 9,13,18 * * *       updatedb

min hour day month week(0-6)

crontab -l
crontab -e

run-parts

/etc/crontab:
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly


新森からの雑記 - cronの設定ファイル
http://www.uetyi.instat.ne.jp/wordpress/?p=162

このディレクトリに置くファイル名には、命名規則があります。
(上記設定ファイルにあるコマンド「run-parts」に関係あります。)
アルファベットか数字で始まり、
そのあとにはアルファベットか数字かハイフンだけが続くファイル名にする必要があります。
(詳しくは、run-partsのマニュアル参照)
また、同一ディレクトリ内のファイル実行順序は、ファイル名の昇順で実行されます。


あーありがち - periodic と run-parts
http://aligach.net/diary/20070925.html

If the --lsbsysinit option is not given then the names must consist entirely of upper
and lower case letters, digits, underscores, and hyphens.


anacron

/var/spool/anacron/*
実行後にタイムスタンプが記録される。


!Plamo Linux
loadlin c:?linux?vmlinuz root=/dev/sda1 initrd=extroot.gz

!fortunes

bsdgames.tgz
  fortunes, fortunes-o, startrek, zippy

!package の構成

JE
  /var/lib/ezinst/
Plamo
  /var/log/package/

!LILO を無効にする
dos にて
  fdisk /mbr 

!modules

insmod       モジュールのインストール
rmmod        モジュールを除く
depmod -a    モジュール依存関係のアップデートを行う
modprobe     依存関係を考慮した上でモジュールのインストールをする
lsmod        現在のモジュールを見る

%lsmod
/etc/modules.conf
  alias eth0 sis900
  alias sound-slot-0 emu10k1  # Sound Blaster Live
%depmod -a
%modprobe [eth0,sound]

/sbin/depmod -a
  error: Unresolved symbols in module /lib/module/2.0.35/*
/sbin/insmod /lib/module/2.0.35/net/ppp.o
  error: Wrong version or undefined


!カーネルバージョンを調べる
uname --kernel-release
uname -a


!rxvt


!screen
GNU screen を使い始めて数ヶ月が経ち、ようやく慣れてきました。
それで、screenrc による設定方法などを調べているのですが、「こ
ういうときはこうする」とか「こうすると.. - 人力検索はてな
http://q.hatena.ne.jp/1134693287

coLinux - FreeStyleWiki
http://spookies.org/wiki/wiki.cgiage=coLinux

escape ^z^z
defhstatus "^En:^Et"
# コピーモードで Emacs のような移動を可能にする
# (man にも載っている定番)
markkeys h=^b:l=^f:$=^e

# 現在位置から行末までコピーする
# URL のコピペに使えます(C-a C-k)
bind ^k  eval "copy" "stuff ' $ '"

# “C-z (スペース)”でコピーモードに入った直後に最初のマークを付ける
# スペースのかわりに生の ^@ とかを指定するとそれっぽくなります
bind ' ' eval "copy" "stuff ' '"

# Emacs の yank っぽいペースト法(C-z C-y)
bind ^y paste .
# クラス“launcher”として定義されたキーバインドへ移行する
bind ^x eval "echo 'Launcher-mode:  [ t: top ] [ w: w3m -B]'" "command -c launcher"
# クラス“launcher”に属するキーバインドを設定
bind -c launcher t screen top
bind -c launcher w screen w3m -B
bind -c launcher ^z command
#タブ風のキャプション表示
caption always "%{= wg} %-w%{=bu dr}%n %t%{-}%+w %= %{=b wb}%y/%m/%d(%D) %{=b wm}%c"


ウィンドウごとに文字エンコードを変える
デフォルトキーバインドなら
C-a :encoding (utf8|euc|sjis)

カレントウィンドウの文字コード確認する
C-a i

頻繁に使うのであれば
bind ^U encoding utf8
bind ^E encoding euc

screen -r
screen -t console tail -F /var/log/messages

screen [ -options ] [ cmd [ args ] ]
screen -r [ [pid.]tty[.host] ]
screen -x	デタッチされていない screen セッションへのアタッチ を行う
		(複数表示モード)
screen -wipe

~/.screenrc
# prefixキー
# escape ^Aa
escape ^Tt
# 常駐タイトル
defhstatus "^En:^Et"

escape +
?: help
c: create new window
w: Disply window's number
A: Set window's title
p: 前のWindowに移動
n: 次のWindowに移動
数字: 指定したWindowに移動
^a: 直前にactiveだったWindowに移動

Screen
コピーモードの移動キー

十字キー(HJKL)
    カーソル移動
^
    行頭に移動
$
    行末に移動
H, M, L
    カーソルをウィンドウの一番上、中央、一番下に移動する。
g
    カーソルをバッファの先頭に移動する。
G
    カーソルをバッファの最後に移動する。
b
    カーソルを単語単位で前に移動する。
e, w
    カーソルを単語単位で後ろに移動する。
^u
    カーソルを画面の半分だけ上方向に移動させる。
^d
    カーソルを画面の半分だけ下方向に移動させる。
^b
    カーソルを画面分上方向に移動させる。
^f
    カーソルを画面分下方向に移動させる。
スペースキー
    現在位置にマークする。
Y
    現在行をマークしてコピーモードを終了します。
y
    現在行の先頭と行末をマークします。コピーモードは継続されます。
w
    現在位置にある単語をマークしてコピーモードを終了します。

2台の端末でtty を共有
screen
http://www.dekaino.net/screen/

Screen
http://risky-safety.org/~zinnia/screen/


!gcc sourcefile -o objectfile


!startx > x.log 2>&1


!POP2
telnet pop-server 110
  user だれそれ
  pass パスワード
  list, retr 番号, dele 番号
  quit

!ファイル名を小文字にリネーム

妙な名前のファイル ( ['] を含むものとか。Samba/netatalk 共用で
cap encode してるとそんな名前のファイルもできます) のとき
  find . -print0 -type d -depth | xargs -0 fntolower 


#! /usr/local/bin/perl

$to_lower = 1;
$tmpfile = "__filecase__.$$";

if (@ARGV[0] eq "-u") {
    $to_lower = 0;
    shift @ARGV;
}

foreach $file (@ARGV) {
    $_ = $file;
    if ($to_lower) {
        tr/A-Z/a-z/;
    } else {
        tr/a-z/A-Z/;
    }
    if ($_ ne $file) {
        print "mv $file $tmpfile ; mv $tmpfile $_?n";
    }
}

#!/bin/sh
# tolower.sh
# ファイル名を小文字にリネーム
# tolower.sh ファイル名1 ファイル名2 ...

for o in $*
do
  d=`dirname "$o"`
  b=`basename "$o"`
  n=`echo "$b" | tr A-Z a-z`
  if [ "$d/$b" != "$d/$n" ]; then
    if [ -f "$d/$n" -o -d "$d/$n" ]; then
      echo "$d/$n already exists. Cannot rename $d/$b to $d/$n. Skipping..."
    else
      mv -iv -- "$d/$b" "$d/$n"
    fi
  fi
done

!whoami

!/var/X11R6/bin/X -> /usr/X11R6/bin/XF86_SVGA
                    /usr/X11/bin/XF86_VGA16

/var/X11R6/lib/XF86Config

!Nifty4U-1.5.tgz

perl4.036
  /usr/lib/perl4

not averable
jperl4.036
  /usr/local/lib/perl

!Walking Linux
  Slackware Linux 2.1.0
    perl-4.036-linux-kit.tar.gz

  Slackware のgroff とJE-0.9.7z のjman を両方ともインストールすると、
manページがうまく表示されなくなる。(P.64)

!weex 

~/.weex/weexrc

[host] に設定のない項目は、[default] の設定が使用される。

!340M for EZ425
Walking Linux
a primer of Linux
  nemacs 

!500M for SS425
"Walking Linux"
  gcc2.7.2

"Plamo"
  /cdrom/plamo/a1/basebin.tgz
  /cdrom/plamo/a1/aoutlibs.tgz
  /cdrom/plamo/a1/baseutil.tgz
devs.tgz
e2fsbn.tgz
elflibs.tgz
etc.tgz
find.tgz
grep.tgz  ;error /usr/bin/fgrep
gzip.tgz
hdsetup.tgz
jbase.tgz
ldso.tgz

  modules-2.0.0
    /cdrom/plamo/a1/basebin.tgz sbin/*
    /cdrom/plamo/a1/modules.tgz usr/man/*
    /cdrom/plamo/a1/modules.tgz usr/doc/modules-2.0.0/*

"A Primer of Linux"
  canna
  nemacs 

!Plamo 
  Linux 2.0.35
  pcmcia-cs-3.0.5
  modules 2.0.0

Walking Linux
  Linux-1.2.13
  ld.so-? -> 1.7.14  ;error in man command, "can't load libstdc++.so.27"
  libc-? -> 5.2.18
  libg++- ? -> 2.7.1.3
  gcc 2.7.0 -> 2.7.2
  binutils-? -> 2.6.0.10
  pcmcia-cs-2.6.3 -> 2.8.9
  modules-? -> 1.3.57
  jperl4.036
    /usr/local/lib/perl
  perl5
    /usr/lib/perl5
  
!usr/lib/man.config

!X Window System
/var/X11R6/bin/X -> /usr/X11R6/bin/XF86_SVGA
/var/X11R6/bin/X -> /usr/X11R6/bin/XF86_VGA16

!pppd +chap

!pppd
  rm -f /var/lock/LCK..cuaX

!chat
  chat -v -t60 "" ?; "service :" blackice ogin: callahan word: PASSWORD ?
      black% "stty -echo; ppp" "Starting PPP now"  && sleep 5

-t60: タイムアウトまで 1 分間

!setserial

/etc/rc.d/rc.serial

/bin/setserial -b /dev/cua2 irq 9 spd_vhi       # 16550A

!localhost
192.168.7.1 j31
192.168.7.2 SE
192.168.7.3 PPC

192.168.7.1 dec_pc
192.168.7.7 Win98

!Netatalk
カーネル1.2.13 : Netatalk-1.3.3b2

!mount

外付hdd: mount -t ext2 /dev/sda1 /mnt

cd-rom: mount -r -t iso9660 /dev/sr0 /cdrom
	mount -t ext2 /dev/scd0 /cdrom  ; plamo


isoイメージをマウント
moutn -r -t iso9660 plamo2.1.iso /plamo

/etd/fstab
/home/ftp/pub/plamo2.1.iso /plamo iso9660 ro,loop,exec 0 0

!versions

je4: slackware, je-0.9.7j

!to do in linux for 80m-hdd

canna
/usr/local/canna/lib/dic/user/ymorita/*
/usr/local/canna/lib/dic/tut-e.kp

n4u
~/n4u/*

qmail
 need make

ppp
/usr/lib/ppp/* (?)

!lynx with canuum
canuum -u -u

!fsck -pn /dev/hda2

!plamo linux in win98 machine

hda1	c: win98_system&program
hda2    ext(for hda5~7)
hda3	linux_swap
hda4	linux_native(/) formated in ext2 with i-node 2048bytes
hda5	d: win98_usr
hda6	e: win98_tmp
hda7	f: dos

hdc	cd-rom

!initrd

外付hdd から起動する
cd /linux
loadlin vmlinuz initrd=extroot.gz root=/dev/sda1

ram から起動する
loadlin vmlinuz initrd=initrd.gz root=/dev/ram0

!root 以外のユーザでも mount コマンドを使用可とする

#/etc/fstab
 /dev/fd0 /mnt/floppy msdos noauto,user 0 0

$ mount /mnt/floppy
$ umount /mnt/floppy

!ストレージをクリアする
  dd if=/dev/zero of=/dev/sbd count=100

!共有ライブラリのチェック
%file /lib/libc.so.?.*

!locate
updatedb

slocate  [-qi]  [-d  <path>]  [--database=<path>]  <search string>
-i     Does a case insensitive search.
-q     Quiet mode.  Error messages are suppressed.

locate [-d path]  [--database=path]  [--version]  [--help] pattern...

updatedb -localpaths='path1 path2...'
--output=dbfile (/usr/local/var/locatedb)
/var/lib/slocate/slocate.db

locate .xls  ;ファイル名がキーワードを含む
locate '*.$*'  ;正規表現ではフルネーム指定する


!hdparm -s でハードディスクの待機時間を設定

!ngraph の linux 版
http://www2e.meshnet.or.jp/~isizaka/

!x 上で xset コマンドの m オプションを使う(1)か、xf86config の pointer
セクションに resolution の指定をする(2)かで変更出来ます。

例
(1)
   $ xset m 5

(2)
   section "pointer"
      protocol        "ps/2"
      device          "/dev/psaux"
      resolution      200
      buttons         3
   endsection

詳しくは、それぞれ man 1 xset、man 5 xf86config を実行して man page を
御覧下さい。(2)は、マウスの種類に依るそうなので、お手持ちのマウスで出
来るかどうかは分かりません。

!mail 関係の設定

#/etc/sendmail.cf
メールスプール /usr/spool/mail にeuc でスプール
     mlocal,   p=/usr/bin/jmail,    f=lsdfmmrn,     s=10, r=20/0, a=jmail -d $u
メールスプール /usr/spool/mail にjis でスプール
     mlocal,   p=/bin/mail,          f=lsdfmmrn,     s=10, r=20/0, a=jmail -d $u

  日本語のヘッダのみが扱えればよい場合には tiny-mime が便利です。
  tiny-mime は ftp.hitachi-sk.co.jp の /pub/emacs-lisp/tm4.8.tar.gz
  などにあります。最近の linux cd-rom にも収録されている場合が多いです。
  また mew (ftp.aist-nara.ac.jp /pub/elisp/mew/mew-current.tar.gz) を
  使えば mh で mime や pem (privacy enhanced mail)、pgp (pretty good
  privacy) が使えるようになります。

cnn, inn
rnews
mail2news.pl


!nohup command
logout後もプロセスを実行させる。

% nohup hoge.sh < /dev/null >& /dev/null &
% logout

入力も殺しておくのがミソです。これ覚えとくと、rsh で実行させ
る時なんかに困らなくていいです。出力が欲しい時は /dev/null 
を適当に変更してください。エラー出力も処理しておくのを忘れず
に。


  私は結果(出力)が欲しい時はよく

% make |& tee log

とかやるんですが、時間がかかる場合で且つ端末が windows など
の信頼性ゼロな os の場合 :-p、よく

% nohup make >& log &

と裏で実行させます。これなら端末がハングしてもプロセスが死ぬ
ことはありません。

#通常はさらに nice +20 も加えて他の処理を優先させてます。

!documents

http://jf.linux.or.jp/jf/jf.html
http://jf.gee.kyoto-u.ac.jp/jf/jf-ftp/
http://wais.kusastro.kyoto-u.ac.jp/ml/linux-users/search.html
  linux-usersmalinglistの過去ログ検索ページ

!エディタなしでファイルを作成する

catがなくても,
# ifs=""
# while read line; do echo $ine; done > /etc/fstab
などとしてファイルが作れます.

環境変数ifs(input field separator)を空にしないと,単語がブランクで分割
されたりタブが無視されたりするので注意.

# ifs=""
# while read line; do echo $line; done < /etc/resolv.conf
とか
# ifs=""
# while read line; do echo $line; done < /etc/passwd > /etc/passwd.orig
も不可能ではありません.

!ppp

/usr/local/bin/ppp-on -> /usr/local/lib/ppp/ppp-on
/usr/local/bin/ppp-off -> /usr/local/lib/ppp/ppp-off

  -rwxr-xr-x   1 root     root          676 jul  8 08:13 ppp-on
  -rwxr-xr-x   1 root     bin           502 oct 18  1994 ppp-off
  -rws--x--x   1 root     bin         66564 oct 18  1994 pppd

#/etc/ppp/options [root.root]
debug
defaultroute
noipdefault
crtscts
19200
modem
passive
domain mse.biglobe.ne.jp
/dev/cua0

ppp-on &
tail -f /usr/adm/message
tail -f /usr/adm/ppplog
ppp-off

/sbin/insmod /lib/modules/1.2.9/net/ppp.o

/usr/bin/popclient
  -rwxr-xr-x   1 root     bin         17412 aug  2  1994 popclient
!telnet 127.0.0.1

telnetサーバ(telnetdなど)がインストールされているかどうかテストする。

!ping 127.0.0.1

!ファイル名の変更(バッチ処理)

・perl
ls dsc*.jpg | perl -lne '$orig = $_; s/dsc(?d+).jpg/image?1/; rename($orig, $_);
'

・c-shell
foreach f ( dsc*.jpg )
    mv $f $f:s/dsc/image/:s/.jpg//
end

・sh
  for old_name in `ls dsc*.jpg`
  do
      new_name=`echo ${old_name} | ?
          sed 's/dsc0?([0-9][0-9][0-9]?)?.jpg/image?1/g'`
      mv ${old_name} ${new_name}
  done

・sh
$ ls -1 dsc0*.jpg

を実行し、次に

$ ls -1 dsc0*.jpg | sed 's/dsc0?(.*?)?.jpg/mv & image?1/'

を実行し、結果に納得がいったら

$ ls -1 dsc0*.jpg | sed 's/dsc0?(.*?)?.jpg/mv & image?1/' | sh

!cat /proc/interrupts

 linux 側の設定として、ある irq が現在使用中かどうかを確認する
但し、たとえばシリアルポートを使用する irq などは端末ソフトが動作している
時 (あるプロセスがそのシリアルポートを使用している時)しか現われてきません。

●rm *
% touch !
% chmod 0 !
しとくと rm * しても助かる可能性が高いです.
shell は * を展開してソートするので.
tcsh の場合は set rmstar というのもあり.

●mkswap
        # dd if=/dev/zero of=/swapfile bs=1024 count=16384
          (16M のスワップ用ファイルを作成)
        # mkswap swapfile
          (swapfile をスワップとして使う準備)
        # swapon swapfile
          (/swap file をスワップファイルとして使用)

              # dd if=/dev/zero of=swapfile bs=1024 count=8192
              # mkswap swapfile 8192
              # sync
              # swapon swapfile

●xterm -e bc &
●fibmtp2に「thinkpadでlinux」という会議室があり

●kterm の漢字コードの設定
コントロールキー + マウスの中ボタンで
表示される vt options メニューの下のほう
にある japanese euc mode が選択されているか
どうか確認する。選択されていなかったり、
shift-jis mode が選択されていたりしたら
変更し、 do full reset する。

●pnm
pnm というのは ppm,pgm,pbm の総称で使われるようです。man
pnm に簡単に書いてあります。pnm がコマンド名に含まれるものは、
元が ppm,pgm,pbm のいずれでも受け付けるようになっています。

●X Window System
ctrl+alt+backspace: Xサーバのみ落とす
ctrl+r: xdm を落とす。

X Window System -> Console: ctr-alt-PF1~
Console -> X Window System: alt-PF7

●X Window System にクライアントからアクセス
リモート側の設定
# xhost +RocalHostname

ローカル側の設定
# kterm -display RemotHostname:0.0 & (通常は':0' だけでよい)

または、
# setenv DISPLAY edpc01:0.0
# kterm &

●xf86config のありか
http://www.st.rim.or.jp/~adats/wl/xf86config/xf86config33_tp535

●rcs
ci : deposit
co -l : edit
ci

-- man --
rlog
rcsfile
rcsintro
rcsmerge
rcsclean
rcsfreeze
ident

●指定ページのみの印刷
psselect
psutils.tar.gz に含まれる。

テキストファイルのページ指定をする方法
$ a2ps -no -p -a4 .emacs | psselect 2,4 > ooo.ps
[2] [4] wrote 2 pages, 14728 bytes

a2ps は以下のサイトで入手可能。
  ftp://ftp.iij.ad.jp/pub/iij/dist/utashiro/perl/

psnup: 複数ページを縮小して1ページに詰め込むソフト

●gimp
gtk+(0.99.3)
gimp(0.99.18)
gimpは私も何気なく入れてみたのですが、すごい機能がいっぱいで
びっくりです。ちょっと昔のphotoshopなみ?ですね。
stableバージョンの正式リリースが待ち遠しいです。

●画像ファイルの変換

・window の画像を256色のカラーイメージでとりこむ
xwd -out foo.xwd
xv [grav]?

・ps ファイルに変換する
xwd | xpr -device ps > screen.ps 

・pict をmacpaint に変換する
bmptoppm -> ppmtopict
ppmtobmp <- picttoppm

xbmtopbm -> pbmtomacp
pbmtxbmo <- macptopbm

・白黒2値のppmファイル(pbmファイル) にする
xwdtopnm foo.xwd | ppmtopgm | pgmtopbm > foo.pbm

●mi/x
windows95 で動くフリーなx サーバ
microimages 社の mi/x

http://tnt.microimages.com/www/html/freestuf/mix.htm

●psconv
psconv  -nj -v

●errorlog
/var/log/syslog
/var/adm/messages

●hfs formahfs_fs-0.7.8tar.gz を展開して、
hfs.oをinsmodでmoduleとして組み込むと、
/sbin/insmod /lib/modules/1.2.9/fs/hfs.o
mount -t hfs /dev/fd0h1440 /a にて、mount することができる。

hfs_fs の配布元は、以下の場所です。
http://www-sccm.stanford.edu/~hargrove/hfs/

●date & time
date コマンドでシステム時刻を設定する
  date 0820083057

cmos クロックを表示する
   /sbin/clock -r
cmos クロックにシステム時刻を書き込む
  /sbin/clock -w
cmos クロックをシステム時刻に書き込む
  /sbin/clock -s

●canna のローマ字カスタマイズをする
cd ~
mkromdic tut-e.kpdef
su
cp /home/ymorita/tut-e.kp /usr/local/canna/lib/dic/

●xmodmap & loadkeys
x window 上でキーバインドを変更する。
(console 上では、loadkey)

xmodmap -e "add     mod2    = num_lock"
~/.xmodmap
add     mod2    = num_lock

console でキーバインドを変更する。
# /usr/bin/loadkeys defkeymap j106-d

●emacs
KeyboardMacro
キーボード・マクロをコマンドにする

name-last-kbd-macro     定義したキーボード・マクロに、名前を付ける
M-x コマンド名 [CR]
insert-kbd-macro        名前付きキーボード・マクロの定義内容を
                        カーソル直前に挿入する。マークは設定されない。

repeat-complex-command        C-x M-ESC, C-x M-:, <redo>
list-command-history
command-history

(fset 'read-quoted-printable
   "?C-xo?C-xh?C-[|nkf -emQ?C-m?C-xo?C-x1")
(global-set-key "?M-?C-q" 'read-quoted-printable)


dired
"s" にてソートオーダをトグルできる

Dired by date
Dired by name

ange-ftp
M-x find-fileで /user-name@foo.bar.or.jp: のようなパス形式で
ftpサーバ上のファイルをアクセスできる。

/ymorita@172.20.23.90:~/
/ymorita@172.20.23.91:~/
/ymorita@172.20.23.56:~/
/kipcon@172.20.23.198:~/
/kipcon@192.168.1.1:~/

emacs -nw
X Window System環境のコンソールで立ち上げる

emacs -nw -r
X Window System環境のコンソールで立ち上げる(リバースモード)


^L: C-q C-l で入力

.emacsに以下の記述を追加すると、バックアップファイルがsavedirで指定した
ディレクトリに作成されるようになります。

;; Backup fileディレクトリの設定
(if (fboundp 'make-backup-file-name-original) nil
  (fset 'make-backup-file-name-original
        (symbol-function 'make-backup-file-name))
  (defun make-backup-file-name (filename)
    (let ((savedir "~/.backup/"))
      (if (file-directory-p (expand-file-name savedir))
          (expand-file-name
           (file-name-nondirectory filename) savedir)
        (make-backup-file-name-original filename)))))

.emacs 以外の設定を使う
emacs -q -l ~/canna/canna.emacs

nemacs -q で起動して、*scratch* バッファで (load "~/.emacs")
と入力した後、c-j を入力する。

lfd(c-j)		eval-print-last-sexp

C-x l		count-lines-page
C-x h		mark-whole-buffer

ESC !		shell-command
C-u ESC !	shell-command to current buffer
ESC |		shell-command-on-region
C-u ESC |	shell-command-on-region to current buffer

C-x C-k f	change-fileio-code

●vi の操作キー(最小機能版)
カーソル移動            h, j, k, l
挿入モード              i
行末から挿入モード      A
挿入モードから抜ける    ESCキー
一文字削除              x
一行削除                dd
直前の動作を繰り返す    .
アンドゥ                u
保存	            	:w
保存して終了            :wq or ZZ
終了            	:q
保存せずに終了          :q!

空行の追加             o   ※追加モードになります。
2行を1行にする      J
1行のコピー       Y
コピーした行のペースト p
行の先頭へ移動     0   ※数字の0です。
行の末尾へ移動     $
1文字を上書き      r
上書きモードにする   R

●tc-2.1 Configure data
bushu.dic
  部首合成変換辞書への登録や削除は`bushu.dic'を編集することにより行いま
す。ここで、辞書はEUCコードでソートされていなければなりません。登録した
ときは、忘れずにソートしてください。

  `bushu.dic'を書き変えた場合には`C-u M-x tcode-read-bushu-dictionary'を
行ってください。なお、`bushu.rev'というファイルが自動的に生成されます。
このファイルはユーザが直接編集するファイルではありません。

●tc-2.0 Configure data
Emacs のコマンド名: nemacs
Emacs の種類: nemacs
Lisp ファイルを置くディレクトリ: /home/ymorita/emacs/lisp/
部首辞書などのデータを置くディレクトリ: /home/ymorita/emacs/lisp/
Info ファイルを置くディレクトリ: /usr/local/emacs/info/


●faxspool
jlatex filename.tex
fxspool alias filename.dvi
  alias is configured in ~/.faxnrs
/usr/local/bin/faxrunq (by root)
(faxq -v, faxrm)

alias
fax_bns faxspool
fax_kip faxspool -h ~/faxheader_kip
fax_prt faxspool -h ~/faxheader_prt
fax_psl faxspool -h ~/faxheader_psl

●sendfax
jlatex filename.tex
/usr/local/bin/make_g3 filename.dvi
/usr/local/sbin/sendfax telephone_number /tmp/fax.g3

-- make_g3 --
#!/bin/csh
jdvi2kps -d 204 $dvi_file | gs -dSAFER -sNOPAUSE -sDEVICE=dfaxhigh -sOutputFile=/tmp/fax.g3 -
g3topbm /tmp/fax.g3 | xloadimage -shrink stdin

-- show_g3 --
#!/bin/csh
/usr/local/bin/g3topbm /tmp/fax.g3 | /usr/X386/bin/xloadimage stdin

●cu
cu -l cua0 -s 9600

~.: quit
~?: List all commands.

●fp-net
ats0=0x3
ats37=5n0

●Kermit
kterm の漢字コードをsjis にする必要あり。
kterm -geometry 80x25+10+10 -km sjis

c: モニタ・モードへ
[del] + c: コマンド・モードへ

C-Kermit 5A(189), 30 June 93, POSIX
をずっと使ってます。0.99 の頃からだから長いなあ。
bpl52ux.tgz, bpl62src.lzh 両方持ってますが、.kermrc には

define bpl  ! bpl62 -ps ?%1   <?v(line) >?v(line)

●~/.Xresources の更新
xrdb -merge ~/.Xresources
xrdb -query #確認するとき

●~/.Xmodmap
このファイルがあると、
xinit 起動時に

●X
/usr/lib/X11/Xconfig
/usr/X11R6/bin/X -> /usr/X11R6/bin/XF86_Mono

●TeX
tgif -print -eps filename.obj

●man
% nroff -man server.jmn | more

/usr/man/ の下の cat1/ cat2/ ... というのは,整形ずみのマニュアルが
入っていて,これは less で直接見れます.簡単ですね.

man1/ man2/ ... は,整形前のマニュアルが入っています.
これを見るには,例えば ls の場合,
% nroff -man ls.1 | less
とすれば読めます.

% man hoge | col -b > hoge.txt

●eldic.el
--- modfied files ---
~/.emacs
;; EJ-dic,JE-dic
(global-set-key "?C-x#" 'lookup-edic)
(global-set-key "?C-x$" 'lookup-jdic)
(autoload 'lookup-edic "eldic" nil t)
(autoload 'lookup-jdic "eldic" nil t)

--- added files ---
/usr/local/emacs/lisp/eldic.el

●arc.el
--- modfied files ---
~/.emacs
(load "arc.el" nil t)

--- added files ---
/usr/local/emacs/lisp/arc.el

●pcmcia 関係
--- modfied files ---
/etc/rc.d/rc.M
  /etc/rc.d/rc.pcmcia start  # top of file in rc.M

  if [ -x /usr/sbin/apmd ] ; then
    /usr/sbin/apmd
  fi

--- added files ---
/etc/rc.d/rc.pcmcia
/etc/pcmcia/

--- usage ----
#checking battery status
cat /proc/apm
#system message
tail -f /var/adm/message 

cat /var/log/messages | grep cardmgr
/sbin/cardctl ident

●Canna 関係
--- modfied files ---
#/etc/rc.d/rc.local
if [ -x /usr/local/canna/bin/cannaserver ]; then
        rm -f /var/lock/canna/.CANNALOCK
        /usr/local/canna/bin/cannaserver
        echo -n ' cannaserver'
fi

#~/.emacs
(if (and (boundp 'CANNA) CANNA) ; 『かんな/emacs』であることを確認して
    ;; 『かんな/emacs』 の場合だけ以下を実行します。
    (progn
      (require 'canna)
      (canna) ))

●時間を計測する
"time cat ファイル > /dev/null"

●lpr でプリントアウトする
無制限にする指定は mx#0
#/etc/printcap
:lp:lp=/dev/lp1:sd=/var/spool/lpd:mx0:sf:sh

--- modfied files ---
#/etc/printcap
lp|pcpr_euc|pcpr102tl3:?
  :lp=/dev/lp1:?
  :sd=/var/spool/lp1:?
  :lf=/var/spool/lp1/errs:?
  :if=/usr/lib/lpd/pcpr_euc:?
  :sh:?
  :sf:
#
pcpr_sjs:?
  :lp=/dev/lp1:?
  :sd=/var/spool/lp1:?
  :lf=/var/spool/lp1/errs:?
  :if=/usr/lib/lpd/pcpr_sjs:?
  :sh:?
  :sf:
#
gs:?
  :lp=/dev/lp1:?
  :sd=/var/spool/lp1:?
  :lf=/var/spool/lp1/errs:?
  :if=/usr/lib/lpd/gsf:?
  :sh:?
  :sf:
#
dvi:?
  :lp=/dev/lp1:?
  :sd=/var/spool/lp1:?
  :lf=/var/spool/lp1/errs:?
  :if=/usr/lib/lpd/dvif:?
  :sh:?
  :sf:

--- added files ---
#/usr/lib/lpd/pcpr_euc
#! /bin/sh
/usr/bin/pf -DPCPR -IEUC -T4 -W90 -A13 -N60 -L72 -Q26 -H -M10
exit 0

#/usr/lib/lpd/pcpr_sjs
#! /bin/sh
/usr/bin/pf -DPCPR -ISJIS -T4 -W90 -A13 -N60 -L72 -Q26 -H -M10
exit 0

#/usr/lib/lpd/dvif
#!/bin/sh
# dvif
OPTS=""        # sorry, I don't know options
trap "rm -f /tmp/$$.dvi" 15
cat > /tmp/$$.dvi
dviprt $OPTS /tmp/$$
rm /tmp/$$.dvi
exit 0

#/usr/lib/lpd/gsf
#!/bin/sh
/usr/local/bin/gs -q -dSAFER -dNOPAUSE -sDEVICE=pr201 -sOutputFile=- -

--- usage ----
lpr -Ppcpr_euc filename.txt
lpr -Ppcpr_sjs filename.txt
lpr -Pdvi filename.dvi
lpr -Pgs filename.ps

●gs でプリントアウトする
jdvi2kps filename.dvi > filename.ps

gs -sDEVICE=pr201 -sOutputfile=/dev/lp1

●フロッピー上に Linux のファイルシステムを作る
fdformat /dev/fd0h1200
mke2fs /dev/fd0h1200
(mkfs -t ext2 /dev/fd0h1200)

●行末の変換
Decimal   Octal   Hex    Binary     Value
-------   -----   ---    ------     -----
  009      011    009   00001001       HT    (Horizontal Tab)
  010      012    00A   00001010       LF    (Line Feed)
  013      015    00D   00001101       CR    (Carriage Return)

CR=x0D ?r ?015 <carriage return>
LF=x0A ?n ?012 <newline>
TAB=x09 ?t ?011
	tr '?011' ' '

CR+LF -> LF  # dosfile is changed to unixfile
  tr -d '?015' < dosfile > unixfile  # 8進数にて表記
  tr -d '?r' < dosfile > unixfilen
CR+LF -> CR  # dosfile is changed to macfile
  tr -d '?012' < dosfile > macfile

CR -> LF  # macfile is changed to unixfile
  tr '?015' '?012' < macfile > unixfile
  awk 'BEGIN{RS="?r"}{print}' macfile >unixfile
CR -> CR+LF  # macfile is changed to dosfile
  awk 'BEGIN{RS="?r"}{printf("%s?r?n",$0)}' macfile >dosfile

LF -> CR+LF  # unixfile is changed to dosfile
  perl -pe 's/?n/?r?n/' unixfile > dosfile

●Use the DOS filesystem, i.e. type, for example:
        mkdir /dos
        mount -t msdos -o conv=text,umask=022,uid=100,gid=52 /dev/hda3 /dos
If it's a floppy, don't forget to umount it before ejecting it !

You can use the conv=text/binary/auto, umask=nnn, uid=nnn and gid=nnn
options to control the automatic line-ending conversion, permissions and
ownerships of the files in the DOS filesystem as they appear under Linux.
If you mount your DOS filesystem by putting it in your /etc/fstab you can
record the options (comma-separated) there, instead of defaults.

●SPC Driver
cd-rom の場合は、
mount -t iso9660 /dev/sr0 /mnt
でマウントすることができます。

hd(ms-dos) の場合は、
mount -t msdos /dev/sda1 /mnt
でマウントすることができます。

該当するメジャー番号のdevファイルが既に存在するかどうかのチェックは、
  ls -l /dev | grep 11
とします。

●
sync
reboot
shutdown -h now
shutdown -r now
shutdown -Fr now  ;起動時にfsckする

mount -t msdos [-o conv={auto,text,binary}] /dev/hda1 /dos
sysinstall -instsrc /dos/linux -series b
ezinst -hd /dev/dos/linux/je

●gunzip & tar
decompress:
tar zxvf foo.tar.gz
zcat foo.tar.gz |tar xvf -
cat foo.tar.gz | gunzip -c | tar xvf -

list:
tar ztf foo.tar.gz
cat foo.tar.gz | gunzip -c | tar tf -

create:
tar cf foo.tar filenames
tar zcf foo.tar.gz filenames

append:
tar rf foo.tar filenames

●uuencode
uuencode name filename > filename.uue
uudecode < filename.uue

●UNIX User 誌のcd-rom
root:
mounr -t iso9660  /dev/sda1 /mnt
ln -s /cdrom/FREESOFT/LINUX/SLS /mnt/install
install:

*.tpz はいらない。(旧ファイル)
CD-ROM から直接インストールする場合、/sbin/sysintall の
   for なんとかかんとか in *.tgz *.pkg *.tpz ....
という行を捜しだし(たしか1つだけのはず)、"*.tpz" という文字列を
削除してから sysintall する。

● boot 過程のログ
root になって、
  # syslogk on > /tmp/log
  # ^C   ← Ctrl+C
とすれば boot 過程のログがとれます。

dmesg > boot.mes

●「Linux の起動用ディスク」を使ってhard disk 上のLinux を起動する
ディスクを入れて起動し、プロンプトが出てくるので、そこで

boot: linux root=/dev/sda1
                 ^^^^^^^^^^ Linux の入っているパーティション

「Linux の起動用ディスク」がない場合は、インストール用のディスクで代用出来る
場合が多い。

●ブートディスクの作成
dd if=/usr/src/liunx/Image of=/dev/fd0
dd if=/vmlinux of=/dev/fd0

hd をルートパーティションとしてfd から起動するように設定する。
rdev /dev/fd0 /dev/hda2

●Linux を起動した後にhd をマウントする。
mount -t ext2 /dev/hda2 /mnt
mount -t msdos -o conv=binary /dev/hda1 /mnt

●/dev/sda6をroot partitionとしてbootさせることです。
まず先日お送りしたboot imageを使ったboot floppyを1枚作り、それを使っ
てLGXを起動して下さい。そしてrootでログインし、次のコマンドを打ち込ん
で下さい。

  # rdev /dev/fd0 /dev/sda6

●install
・fdisk	boot usr swap
・mk2fs
・boot disk の作成
・reboot (fdisk後は、要reboot)
・hd へのimage 書き込み (hd からの、boot 時)

●参考書
『ツールとしてのunix』(深澤良彰、サイエンス社、2,060円、1993年)
『unixの環境設定』(久野禎子・久野靖、アスキー出版局、1800円1、993年)
『スーパユーザの基礎知識』(日経BP)

●漢字コンソールの作成
・標準のkernel/chr_drv/console.c をおきかえて使用する。

・boot/setup.S にパッチをあてる。

カーネルのトップディレクトリusr/src/linux で
  patch < pl??.diff
を実行。

●ftp
ftp hostname
ftp://anonymous@hostname
ftp://usernama@hostname

open
binary
put/get
mput/mget
cd/mkdir/dir
quit
<anonymous / usr ID>

FTP によって取り寄せたファイルは uuencode + mailsplit して返送されます。
一つのメールは uuencode されたデータ部が最大 750 lines * 60 chars/line で
約48K Bytes 単位となります。

送られてきたファイルを復元するには、uudecode コマンドを使用します。
uudecode コマンドは多くの UNIX システムに標準で搭載されています。
もし複数のメールに分割されて送られてきた場合には、まず
        BEGIN---cut here---
        END-----cut here--- 
で囲まれている部分を取りだし、cat コマンドなどで順番に連結します。
        begin ??? filename
        end
で囲まれたファイルが完成した後、uudecode にファイルを入力すれば復元されます。