Linux実践講座

Linux実践講座

コンピュータを便利に使う tips などをメモ

Google Chart を使ってmyでんき予報グラフをWordPressのサイドバーに表示する

読了までの目安時間:約 5分

東京電力でんき予報のページに電力の使用状況データ (CSVデータ)あるので、PHP と google chart api を使って WordPress のサイドバーに棒グラフを表示するようにしてみました。

Google Chart に渡すパラメータ

// google chart
$chtt= ""; // グラフのタイトル
$chl = ""; // グラフのラベル
$chxt = ""; // 複数軸ラベルを指定(chxt=x,y,r,x)
$chs = ""; // グラフのサイズ
$chxl = ""; // グラフのx軸・y軸のラベル
$xcho = ""; // グラフの色
$chd = ""; // グラフの数値を指定
$chd = ""; // 補助線を指定(chg=[x軸のステップサイズ],[y軸のステップサイズ],[分断線],[空白線])
$chm = ""; // グラフの補助的な数値を表示
$chds = ""; // データスケーリングを指定(chds=[最小値],[最大値])
$chbh = ""; // 棒グラフの太さ・間隔を指定(chbh=[棒線の太さ],[棒線の間隔])
$cht = ""; // グラフの種類を指定
/*
lc - 折れ線グラフ
lxy - 折れ線グラフ
bhs - 棒グラフ(横)
bvs - 棒グラフ(縦)
bhg - 棒グラフ(横)グループ化
bvg - 棒グラフ(縦)グループ化
p - 円グラフ
p3 - 円グラフ3D
v - ベン図
s - 散布図
ls - スパークライン
r - レーダー(直線)
rs - レーダー(曲線)
t - 地図
gom - Google-o-meter
qr - QR コード

<img src=\"http://chart.apis.google.com/chart?
データの場所
http://www.tepco.co.jp/forecast/html/images/juyo-j.csv
*/

PHPでの処理

file_get_contents("http://www.tepco.co.jp/forecast/html/images/juyo-j.csv")で東電から電力の使用状況データを配列に読み込みます。

$getURL = "http://www.tepco.co.jp/forecast/html/images/juyo-j.csv";

$data =  file_get_contents( $getURL );
$data = mb_convert_encoding( $data, 'utf-8', 'shift_jis' );
$data = preg_replace( '/(\r\n|\r|\n)/', "\n", $data );
$data = explode( "\n", $data);

$data に取り込んだ情報を使いまわして Google Chart API にパラメータを渡します。後は iframe を使ってWordPress のサイドバーに Google Chart API で作成されたグラフを表示します。

";

print "\n$cmd\n
"; print "$dataUpdate

ピーク時間帯:$yosouData[1]
予想最大電力:$yosouData[0]万kW
ピーク時供給力:$peakData[0]万kW
予想最大電力情報更新時刻:$yosouData[2] $yosouData[3]
"; ?>

Google Chart の描画機能は、簡単、便利だけどラベルの位置の指定ができなかったり、細かい指定が出来ないのが気にります。商用利用でなければ JpGraph を無料で使えるので、求められる内容によって Google Chart を使うか JpGraph にするか? 選択肢があるのはありがたいことです。

参考URL 感謝です

東京電力 でんき予報
電力の使用状況データ
PHPでごりごり書いた東京電力の電力使用状況取得スクリプト
Toden Power Information: 東京電力の消費電力情報表示ツール
Google Chart API でグラフをカンタン作成!

シェルは Linux とユーザとの対話を受け持つプログラム

読了までの目安時間:約 5分

シェル (shell) はオペレーティングシステム (OS) の機能の一部であり、ユーザーからの指示を受けて解釈し、プログラムの起動や制御などを行うプログラムのことです。

シェルの概要 (wikipediaから)

シェル(殻)という名称は、OSの機能を実装している中心核部分(カーネル)の外層として動作することからきている。通常、シェルはコマンドラインインタフェース (CUI) を持つが、グラフィカルユーザインタフェース (GUI) を持つものは特にグラフィカル・シェルと呼ぶ。

シェルはUNIXで使用される呼称であり、より一般的にはコマンドインタプリタと呼ぶ。しかしUNIXの普及やMS-DOSなど他のOSでも使用されたことにより現在では一般的な名称となっている。ただし通常「シェル」と言った場合はPOSIX系のオペレーティングシステムにおけるシェルを指すことが多い。一方「コマンドインタプリタ」の名称で呼ばれる場合は単に「コマンドを解釈する者」の意であり、OSのユーザインタフェースとしての意味合いは失われていることが多い。

UNIXライクなオペレーティングシステムではシェルがユーザプログラムとして実装されており、また好きなシェルを差し替えて使用することができ、このことはUNIX発表当時においてはUNIXの特徴の一つとなっていた。

いろいろなシェル

シェル (殻) とは変わった呼び方ですが、UNIX/Linux の一番外側をくるむというイメージから付いたといわれています。ユーザが入力した文字列をコマンドとして実効するのもシェルの仕事の一部です。UNIX/Linux のシェルは sh系の Bourne Shell(sh)、Korn Shell、Standalone Shell(ksh)、Boune Again Shell(bsash Linux標準シェル)、Z Shell(zsh)や csh系の C Shell(csh)、TENEX C Shell(tcsh FreeBSDの標準シェル)、グラフィカルシェルの Nautilus (GNOME標準)、Konqueror (KDE標準)など種類が多く存在します。

sh (Bourne シェル)
 UNIX普及の最初期から存在したシェル。対話的な機能が貧弱なため、現在では対話的に使われることはあまりありません。ただ、バッチ機能は強力で現在でもシェルスクリプトを記述するために広く使われています。

csh (C シェル)
 BSD に期限をモツ対話機能重視型のシェルで、代替シェルの草分けです。上位互換の tcsh が現れたため、このシェルを使う人は減っています。

ksh (Korn シェル)
 Bourne シェル上位互換のシェル。csh 風のジョブコントロールを取り入れるなど各種の機能強化が図られています。得にコマンドライン編集機能が便利です。

bash (Bourne Again シェル)
 GNU のシェル。Bourne シェルをベースに csh や ksh の機能を取り入れ、コマンドライン編集屋履歴検索機能などの拡張がされています。

tch
 csh を基本に、コマンドライン編集、強力な補完とスペル補正、ビジュアルな履歴検索などの機能拡張が行われている。csh に代わって広く使われています。

zsh (Z シェル)
 bash、ksh、tcsh からそれぞれの便利な機能を取り入れ、さらに独自の機能を加えた超高機能シェル。構文の基本は sh ですが、csh 構文の一部と独自の構文を加えて機能強化を図っています。対話利用の為の機能も非常に強力で、より正規表現に近い便利なファイル名パターン、簡単に定義してコマンドラインからも利用できる関数、補完候補の制御のほか、複数行に渡るコマンドラインの編集も極めて容易になっています。

現在使用されているシェルを知る

$ echo $SHELL
/bin/bash

使用可能なシェルを知る時は /etc/shells ファイルを見る

$ cat /etc/shells
# /etc/shells: valid login shells
/bin/csh
/bin/sh
/usr/bin/es
/usr/bin/ksh
/bin/ksh
/usr/bin/rc
/usr/bin/tcsh
/bin/tcsh
/usr/bin/esh
/bin/dash
/bin/bash
/bin/rbash

参考URL 感謝です。

業務で楽するためのUNIXテクニック集 まずはおさらい、シェル制御構造と正規表現の基礎

nkfはネットワーク用漢字コードフィルタでネットカフェではありません

読了までの目安時間:約 22分

nkfコマンドの使い方

Linux を使っていると Windowsで作成されたファイルを扱う時に文字コードの関係でいろいろと不都合な事があります。nkfコマンドは JIS(ISO-2022-JP)、EUC、ShiftJIS、UTF-8 の変換や改行コード (Windowsの改行記号は"CR+LF"、Linuxでは"LF")を変換する事もできます。

 Windowsで作成したテキストをLinuxで使えるようにUTF8に変換する。
$ nkf -w -Lu hoge.txt > hogeutf8.txt

 Windowsで作成したテキストをLinuxで使えるようにUTF8に変換し上書きする。
$ nkf -w -Lu --overwrite hoge.txt

 文字コードを調べる
$ nkf -g hoge.txt

nkf ヘルプ (manより)

NAME
nkf - ネットワーク用漢字コード変換フィルタ v2.0.7

SYNOPSIS
nkf B<[-butjnesliohrTVvwWJESZxXFfmMBOcdILg]> B<[>IB<]>

DESCRIPTION
nkf はネットワークでメールやニュースの読み書きをするために作られた、漢字コードの変換フィルタである。

このnkfの特徴としては、入力漢字コード系の統計的な自動認識機能がある。このため、利用者は、入力漢字コード系が何であるかを知らなくても、出力漢字コード系のみ指定すれば良いことになる。ただ、この判定機構は、理論的には完全ではないが、通常のニュースやメールのメッセージについては確実に動作する安全なものにはなっている。

現在、nkfが認識できる入力の漢字コード系は、いわゆる JIS コード(ISO-2022-JP に基づくもの)、Shift_JIS (MS 漢字コード)、日本語 EUC (AT&Tコード)、UTF-8、UTF-16 のいずれかである。出力する漢字コード系も、これらである。入力は、ファイルを指定しなければ、標準入力となる。出力は標準出力である。

OPTIONS
指定できるオプションは、以下の通り。 -mu のように続けることができる。

-j JIS コードを出力する。(デフォルト)

-e EUC コードを出力する。

-s Shift_JIS コードを出力する。

-w -w8[0] -w16[BL][0]
Unicode を出力する。

-w -w80
UTF8 コードを出力する。 (BOM 無し)

-w8 UTF8 コードを出力する。

-w16 -w16B0
UTF16 コードを出力する。 (Big Endian / BOM 無し)

-w16B
UTF16 コードを出力する。 (Big Endian / BOM 有り)

-w16L
UTF16 コードを出力する。 (Little Endian / BOM 有り)

-w16L0
UTF16 コードを出力する。 (Little Endian / BOM 無し)

-m[BQSN0]
MIME を解読する。(デフォルト) ISO-2022-JP (B encode) と ISO-8859-1 (Q encode) のみを解読する。 ISO-8859-1 (Latin-1) を解読する時は、-l フラグも必要である。 -m0 では MIME を解読しない。 -mB, -mQ では 、BASE64, Q encode されているものとして処理する。

-mB MIME base64 stream を解読する。ヘッダなどは取り除くこと。

-mQ MIME quoted stream を解読する。

-mS MIME のチェックを厳しくする (デフォルト)

-mN MIME のチェックを緩くする

-m0 MIME を解読しない。

-mS は、宣言の内容と、その後に続く encoded-text の整合性をチェック する。 -mN は、改行で切られた MIME なども解読する。解読が止まらない こともある。

-M[BQ]
MIME に変換する。 JIS にコード変換してから BASE64 される。

-M ヘッダ形式に変換する

-MB base64 stream に変換する

-MQ Quoted stream に変換する

-J -E -S -W
期待される入力コードの性質を指定する。

-J ISO-2022-JP を仮定する。

-E 日本語 EUC (AT&T) を仮定する。

-S Shift_JIS を仮定する。いわゆる半角カナ (JIS X 0201 片仮名) も受 け入れる。

-W UTF-8 を仮定する。

-W8 UTF-8 を仮定する。

-W16
UTF-16 (Little Endien)を仮定する。

-W16B
UTF-16 (Big Endien)を仮定する。

-W16L
UTF-16 (Little Endien)を仮定する。

-x 通常おこなわれる、いわゆる半角カナ (JIS X 0201 片仮名) からいわゆる全角カナ (JIS X 0208 片仮名) への変換を行わず、半角カナを保存する。 入力は、Shift_JIS の 1byte カナ、SO/SI、ESC-(-I, SSO を受け付ける。 出力は、日本語 EUC 中では SSO、JIS コード中では ESC-(-I をデフォルトで用いる。

-X いわゆる半角カナ (JIS X 0201 片仮名) をいわゆる全角カナ (JIS X
0208 片仮名) へと変換する。

-B 壊れた (Broken) JIS コード。 ESC がなくなったと仮定する。

-B1 ESC-(, ESC-$ のあとのコードを問わない

-B2 改行のあとに強制的に ASCII に戻す

-f[m[-n]]
一行 m 文字になるように、マージンを n として簡単な整形をおこなう。デフォルトは文字数は 60、マージンは 10 である。

-Z[0-3]
JIS X 0208 英数字と若干の記号を ASCII に変換する。つまり、全角を半角に変換する。

-Z -Z0
Convert X0208 alphabet to ASCII.

-Z1 JIS X 0208 和字間隔を ASCII space 一つに変換する。

-Z2 JIS X 0208 和字間隔を ASCII space 二つに変換する。

-Z3 >、<、”、&、を >、<、"、& に変換する。

-b バッファリング出力を行う。(デフォルト)

-u 出力時に、バッファリングしない。 ssh localhost │ nkf -u というよう
に使う。

-t 何もしない。

-I ISO-2022-JP 以外の漢字コードを〓に変換。

-i[@B]
JIS 漢字を指示するシーケンスを指定する。 (デフォルトは、ESC-$-B)

-o[BJH]
1 バイト英数文字セットを指示するシーケンスを指定する。 (デフォルト は、ESC-(-B)

-r ROT13/47 の変換をする。

-g 自動判別の結果を出力します。

-v バージョンを表示する。

-T テキストモードで出力する。(MS-DOS 上でのみ効力を持つ)

-l 0x80-0xfe のコードを ISO-8859-1 (Latin-1) として扱う。 JIS コードアウトプットとの組合せみのみ有効。 -s, -e, -x とは両立しない。

-O ファイルに出力する。 UNIX では不要な機能だが Windows や MSDOS では必要らしい。直後の引き数でなく、最後のファイル名が出力ファイル名となり上書きされてしまうので注意。ファイル名がない場合は nkf.out。

-L[uwm] -d -c
改行コードを変換する。

-Lu -d
unix (LF)

-Lw -c
windows (CRLF)

-Lm mac (CR)

デフォルトでは変換しない。

--ic=>
入力・出力の漢字コード系を指定します。

ISO-2022-JP
いわゆる JIS コード。-j, -J と同じ。

ISO-2022-JP-1
RFC 2237 に定められた形式。 JIS X 0212 を含む。

ISO-2022-JP-3
RFC 2237 に定められた形式。 JIS X 0213 を含む。

EUC-JP
EUC コード。-e, -E と同じ。

EUC-JISX0213
文字集合に JIS X 0213:2000 を用いた EUC-JP。

EUC-JIS-2004
文字集合に JIS X 0213:2004 を用いた EUC-JP。

eucJP-ascii
オープングループ日本ベンダ協議会が定義した eucJP-ascii。 -x が暗黙のうちに指定される。

eucJP-ms
オープングループ日本ベンダ協議会が定義した euc-JPms。 -x が暗黙のうちに指定される。

CP51932
Micorosft Code Page 51932。 -x が暗黙のうちに指定される。

Shift_JIS
Shift_JIS。 -s, -S と同じ。

Shift_JISX0213
文字集合に JIS X 0213:2000 を用いた Shift_JIS。

Shift_JIS-2004
文字集合に JIS X 0213:2004 を用いた Shift_JIS。

CP932
Micorosft Code Page 932。 -x が暗黙のうちに指定される。

UTF-8 UTF-8N
BOM 無しの UTF-8。 -w, -W と同じ。

UTF-8-BOM
BOM 付きの UTF-8。-w8 または -W と同じ。

UTF8-MAC
UTF8-MAC。互換分解されたひらがな・カタカナ等を結合します。

UTF-16 UTF-16BE-BOM
BOM 有りで Big Endian の UTF-16。 -w16B, -W16B と同じ。
UTF-16BE
BOM 無しで Big Endian の UTF-16。 -w16B0. -W16B と同じ。

UTF-16LE-BOM
BOM 有りで Little Endian の UTF-16。 -w16L, -W16L と同じ。

UTF-16LE
BOM 無しで Little Endian の UTF-16。 -w16L0, -W16L と同じ。

--fj --unix --mac --msdos --windows
これらのシステムに適した変換をします。

--jis --euc --sjis --mime --base64
対応する変換をします。

--hirakana --katakana
平仮名、片仮名変換

--fb-{skip, html, xml, perl, java, subchar}
Unicode から Shift_JIS, EUC-JP, ISO-2022-JP に変換する際に、変換できなかった文字をどう扱うかを指定できます。

--prefix=escape charactertarget character..
EUC-JP から Shift_JIS への変換の際、2 バイト目に現れた文字の前にエスケープ文字をつけることができます。引数の 1 文字目がエスケープ文字、2 文字目以降にエスケープされるべき文字を指定します。

例えば、

--prefix=\$@ とすると、Shift_JIS の 2 文字目に $ か @ が来たら、その前に \ が挿入されます --prefix=@@ とすると、Shift_JIS の 2 文字目に @ が来たら、その前に @ が挿入されます

--no-cp932ext
CP932 において拡張された、NEC 特殊文字、NEC 選定 IBM 拡張文字(89-92 区)、IBM 拡張文字を変換しません。

--no-best-fit-chars
Unicode からの変換の際に、往復安全性が確保されない文字の変換を行いません。 Unicode から Unicode の変換の際に -x と共に指定すると、nkfを UTF 形式の変換に用いることができます。 (逆に言えば、これを指定しないと一部の文字が保存されません)

パスに関わる文字列を変換する際には、このオプションを指定することを強く推奨します。

--cap-input, --url-input
それぞれ :、% に続く 16 進数を文字に変換する

--numchar-input
&#....; のような Unicode 文字参照を変換する

--in-place[=SUFFIX] --overwrite[=SUFFIX] 元のファイルを変換結果で置き換える。 複数のファイルを書き換えることも可能。 元のファイルのタイムスタンプとパーミッションが保持される。 現在、作成日時や inode は変更されるが、将来にわたってこの実装のままである保証は無い。
--guess
自動判別の結果を出力する

--help
コマンドの簡単な説明を表示する。

--version
nkf のバージョンを表示する。

-- これ以降のオプションを無視する

--exec-in nkf [options] --exec-in cmd args... とやると、cmd の出力をnkf の入力とする (config.h で EXEC_IO を define してコンパイルした時のみ有効)
--exec-out
nkf [options] --exec-out cmd args... とやると、nkf の出力を cmd の入力とする (config.h で EXEC_IO を define してコンパイルした時のみ 有効)

BUGS
実は、入力のコード系の判定は、Shift_JIS と EUC との自動判定であり、最初に特定できる文字が来た時点で確定してしまう。そして、特定不能の間は保留バッファにためておかれ、確定後に処理される。このため、7 ビット JIS は常に認識される。 Shift_JIS、EUC 混合もほとんどの場合は問題がない。ただし、Shift_JIS のいわゆる半角カナ (JIS X 0201 片仮名) と EUC 漢字が識別できない。したがって、デフォルトでは Shift_JIS のいわゆる半角カナはないと仮定している。 (つまり、Shift_JIS か EUC か迷った時は EUC とみなす)

Unicode の日本語以外の部分の変換には対応していないが、--no-best-fit-chars を指定すれば、UTF-8 と UTF-16 の相互変換をすることは可能である。

ACKNOWLEDGE
以下のかたがた、どうもありがとうございました。

nkf 1.4

morb@fujitsu, kiss@ayumi.stars.flab.fujitsu, cen122@flab.fujitsu,
yuki@flab.fujitsu 他、fujitsu & flab.fujitsu の皆さんの協力に感謝。
shinoda@cs.titech, kato@cs.titech, uematsu@cs.titech TNX
kono@ie.u-ryukyu.ac.jp

nkf 1.9-

河野真治
Akio Furukawa
Andy Taki
From: OHARA Shigeki
Fumitaka Kitagawa
Hiroaki Sengoku
Ikuhiro MORITA (森田 育宏)
Yoshiharu ITO
Junn Ohta
KAWAMURA Masao
Kazuhiko Mori
Keitaro Isokawa
Ken-ichi Hirose
Ki-ichiro SATO
Kiwamu Aoyama
Koichi Hirayama
Mitsuru Hase (長谷 満)
OHARA Shigeki (大原 重樹)
Rei FURUKAWA
Satoru Takabayashi
Shigeyuki Takagi
Shin MICHIMUKO
Tadamasa Teranishi
TOYODA Jiro
TSUCHIYA Masatoshi
Tsutomu Sakai
YAMASHITA Junji (山下 純司)
Yasuyuki Sato
Yoshiaki Yanagihara
hat@so-net
DCC技術部渡辺
かとぺ / 加藤 貴司
かべdais
ひろせ まさあき
イントラネットシステム(株)松尾
鵜飼文敏
塩崎 毅彦(SHIOZAKI Takehiko)
河村雅夫 (Media Lab.)
河野 康司
喜瀬“冬猫”浩@南国沖縄
金井 智彦
桂田 祐史 (かつらだ まさし)
高橋宜盟
国吉
黒江明彦
三宅正泰
山倉 真
山本 芳人
山野裕司 (やまのゆうじ)
重村法克
小島基靖
上田 健
新井 康司 (Koji Arai)
森 千絵子
森 和彦
水野 貴文
前地和俊
仲宗根@並列信頼研
猪谷 英一郎 == Eiichiro Itani
藤原 秀行
八田 真行 (Masayuki Hatta)
尾川敏也
望月 孝志
木村 (@筑波大学数学研究科)
野村俊彰
有岡@ミノルタ
有沢 明宏
落合一喜
林 亮
國安 治
木下 雄介
田中隆裕
鶴谷直樹
中田伸悦
わたなべひろふみ
MoonWolf
sava

AUTHOR
市川 至 ichikawa@flab.fujitsu.co.jp (was
ichikawa@fujitsu.JUNET)
河野 真治 kono@ie.u-ryukyu.acjp
Rei FURUKAWA furukawa@tcp-ip.or.jp
成瀬
mastodon

http://sourceforge.jp/projects/nkf/

Copyright (C) 1987, FUJITSU LTD. (I.Ichikawa),2000 S. Kono, COW Copy-
right (C) 2002-2006 Kono, Furukawa, Naruse, mastodon

参考URL 感謝です

【 nkf 】 文字コードを変換する

cat は conCATinate (連結する) で猫ではありません

読了までの目安時間:約 5分

cat コマンドはファイルの内容を標準出力に出力します。また複数のファイルを連結して出力します。
catとはconcatinate(ファイルを連結する)の略です。
ファイルの最下行から逆方向に表示する tacコマンドがあります。

cat コマンド例

cat -n file1 :file1を、すべての行に番号をつけて表示する
cat -s file2 :file2を、連続する空白行はまとめて表示する
cat file3 file4 :file3とfile4を連続して表示する
cat file5 file6 >file7 :ile5とfile6を結合してfile7として出力する

cat のヘルプ (manから)

名前
cat - ファイルを連結して出力する

書式
cat [-benstuvABET] [--binary] [--number] [--number-nonblank]
[--show-all] [--show-ends] [--show-nonprinting] [--show-tabs]
[--squeeze-blank] [FILE...]

cat [--help] [--version]

説明
cat は指定したファイルそれぞれの内容を標準出力へ書き出す。 FILE が一つも与えられないと標準入力から読み込む。また FILE が ‘-’ だった場合には、そのファイルには標準入力が用いられる。

オプション
-b, --number-nonblank
 空白でない行に番号を付ける。初めの行を1行目とする。

-e ‘-vE’ と同じ。

-n, --number
 すべての行に番号を付ける。初めの行を 1行目とする。

-s, --squeeze-blank
 連続した空白行を、1つの空白行にまとめる。

-t ‘-vT’ と同じ。

-u 何もしない。 Unix との互換性のために存在する。

-v, --show-nonprinting
 <LFD> と <TAB> とを除く制御文字を ‘^’ 表記を使って表示する。高位ビットがセットされている文字は、前に ‘M-’ を置いて表わす。

-A, --show-all
 ‘-vET’ と同じ。

-B, --binary
 DOS プラットフォームのみ。ファイルの読み書きをバイナリモードで行う。バイナリ/テキストモードについては以下の記述を参照のこと。

-E, --show-ends
 各行の最後に ‘$’ を表示する。

-T, --show-tabs
 <TAB> 文字を ‘^I’ と表示する。

--help 標準出力に使用方法のメッセージを出力して正常終了する。

--version
 標準出力にバージョン情報を出力して正常終了する。

DOS の テキスト/バイナリ モード
cat はデフォルトではテキストモードを用い、標準出力がファイルまたはパイプにリダイレクトされたときにはバイナリモードを用いる。この振舞いはオ プシ ョンによって変更でき、 --binary や --show-nonprinting を指定すればバイナリモードに、 --number-blank や --show-ends や --number を指定すればテキストモードになる。

テキストモードでは文字変換が行われる (例えば <CR> を <CR><LF> へ、など)。したがって cat を使ったファイルコピーには適さない。オリジナルの内容を保存しないからである。

注意
プログラムのバグについては bug-textutils@gnu.org に報告してください。
man ページは Ragnar Hojland Espinosa <ragnar@ragnar-hojland.com> が作成しました。

xsel コマンドを使ってクリップボードにviで編集している文書を張り付け

読了までの目安時間:約 13分

xsel コマンドを使えば vi で編集中の文書をクリップボードにコピーし、ブログ等にペーストする事ができます。

xsel コマンドをインストールする

ubuntu は

sudo apt-get xsel

でインストールできたが、CentOS の場合はソースをダウンロードしてインストールする。

xsel のソースをダウンロード
$ cd xsel-1.2.0/
$ ./configure
$ make
$ make install

xsel の使い方

xsel -i で入力されたデータをセレクションに設定、xsel -b でコマンドをクリップボードセレクションを処理対象に指定できる。

たとえば

 cat hoge.txt | xsel -bi

で、テキストファイル hoge.txtをクリップボードにコピーする事ができる。ペーストすればコピーされた内容を張り付ける事ができる。

vi で編集中に範囲を選んで

:w !xsel -bi

とすると選択範囲をクリップボードにコピーする事ができる。
vi の場合 ggGV で全て選択し

:w !xsel -bi

でクリップボードにコピーされる。

xsel ヘルプ (man から)

NAME
xsel - manipulate the X selection.

SYNOPSIS
xsel [OPTION]...
DESCRIPTION
Retrieve and set the X selection.
The X server maintains three selections, called PRIMARY, SECONDARY and
CLIPBOARD. The PRIMARY selection is conventionally used to implement
copying and pasting via the middle mouse button. The SECONDARY and
CLIPBOARD selections are less frequently used by application programs.
This program operates on the PRIMARY selection unless otherwise speci-
fied.

By default, this program outputs the selection without modification if
both standard input and standard output are terminals (ttys). Other-
wise, the current selection is output if standard output is not a ter-
minal (tty), and the selection is set from standard input if standard
input is not a terminal (tty). If any input or output options are given
then the program behaves only in the requested mode.

If both input and output is required then the previous selection is
output before being replaced by the contents of standard input.

Input options
-a, --append
append standard input to the selection. Implies -i.
-f, --follow
append to selection as standard input grows. Implies -i.
-i, --input
read standard input into the selection.

Output options
-o, --output
write the selection to standard output.

Action options
-c, --clear
clear the selection. Overrides all input options.
-d, --delete
Request that the current selection be deleted. This not only
clears the selection, but also requests to the program in which
the selection resides that the selected contents be deleted.
Overrides all input options.

Selection options
-p, --primary
operate on the PRIMARY selection (default).
-s, --secondary
operate on the SECONDARY selection.
-b, --clipboard
operate on the CLIPBOARD selection.
-k, --keep
Do not modify the selections, but make the PRIMARY and SECONDARY
selections persist even after the programs they were selected in
exit. (Conventionally, the CLIPBOARD selection is persisted by a
separate special purpose program such as xclipboard(1)). Ignores
all input and output options.
-x, --exchange
exchange the PRIMARY and SECONDARY selections. Ignores all input
and output options.

X options
-d displayname, --display displayname
specify the server to use; see X(1).

-t ms, --selectionTimeout ms
Specify the timeout in milliseconds within which the selection
must be retrieved. A value of 0 (zero) specifies no timeout
(default).

Miscellaneous options
-l filename, --logfile filename
Specify the file to log errors to when detached. (Default
$HOME/.xsel.log)
-n, --nodetach
Do not detach from the controlling terminal. Without this
option, xsel will fork to become a background process in input,
exchange and keep modes.
-h, --help
display usage information and exit
-v, --verbose
Print informative messages. Additional instances of -v raise the
debugging level, ie. print more information.
--version
output version information and exit

NOTES
There is no X selection buffer. The selection mechanism in X11 is an
interclient communication mediated by the X server each time any pro-
gram wishes to know the selection contents, eg. to perform a middle
mouse button paste. In order to implement modification of the selec-
tion(s) (in input, keep and exchange modes) this program detaches from
the terminal, spawning a child process to supply the new selection(s)
on demand. This child exits immediately when any other program takes
over the selection(s), eg. when the user next selects some text in a
terminal window or by running xsel -c.

STANDARDS
xsel conforms to the Inter-Client Communication Conventions Manual Ver-
sion 2.0 (ICCCM2).

SEE ALSO
X(7), Xserver(1), xset(1), xclipboard(1), xpaste(1)

AUTHOR
Conrad Parker , July 2001

参考URL 感謝です。
xsel - コマンドラインからXセレクションを操作する

画像処理はImageMagickできまりかも

読了までの目安時間:約 3分

最近は、為になる記事の他に画像もホームページに投稿して、分かりやすく親しみやすいページにする事が求められています。

一眼レフで撮った大きな画像を一括で指定した画像サイズに変換したり、画像をぼかしたり画像に指定した色で縁を付けたり、画像の一部分を切り出したり、色々と画像処理をしたい事が増えました。

そんな画像処理を簡単に処理してくれるフリーのソフトが ImageMagickです。

Wikipediaから

ImageMagick(イメージマジック)は画像を操作したり表示したりするためのソフトウェアスイートである。GIF、JPEG、JPEG 2000、PNG、PDF、Photo CD、TIFF、DPXなど100種類以上の画像ファイルフォーマットに対応している。GPL互換でより制限が緩い独自ライセンスが適用されている。

convertコマンド
 フォーマット変換
 画像サイズの変換
 解像度の指定
 GIFアニメーション作成
 画像の結合
 アンチエイリアスを切る
 複数のTIFF画像からPDFファイルを作成
 画像の一部を切り取る
などの処理を簡単にできます。他に display、import、mogrify、montage、animateと identifyコマンドがあります。

$ convert -geometry 50% hoge.jpg hogehalf.jpg
$ convert -flop hogehalf.jpg hogerev.jpg

参考URL 感謝です。
 具体的な使い方は ImageMagickImageMagickメモ のページに書かれています。

● mogrify コマンドは、一括変換する時に使用します。mogrify - 画像ファイルの一括変換
のページに使い方の例が書かれています。

● 影付き文字について
ImageMagickとPHPで、画像からはみ出した影付き文字列を描画する
影のある風景 奥行きのある空間
Image Magickで文字を描く

Linux ファイル・システム用コマンドのまとめ

読了までの目安時間:約 3分

Linuxでよく使われるファイル操作コマンドの簡単なまとめが「UNIXプログラミング環境」の36ページに書かれているので、しっかり覚えて使いこなせるようになりましょう。

一般的なファイル・システム用コマンド

ls
 現在のディレクトリのなかにある全ファイル名の法事
ls filenames
 指定したファイル名のみの表示
ls -t
 最新のファイルから順に表示
ls -l
 詳しい情報の表示。 ls -lt も同様
ls -u
 最近使ったファイルから順に表示。 ls -lu、ls -lut も同様
ls -r
 逆の順に表示。 -rt、 -rlt も同様

ed filename
 指定したファイルの編集
cp file1 file2
 ファイル1をファイル2に複写する。すでにファイル2が存在するときにはその内容は上書きされる。
mv file1 file2
 ファイル1の名前をファイル2にする。すでにファイル2がそん竿するときにはその内容は上書きされる。
mv file1 file2
 ファイル1の名前をファイル2にする。すでにファイル2が存在するときにはその内容は上書きされる。
rm filenames
 指定したファイルの削除、削除したファイルは復活できない。
cat filenames
 指定したファイルの内容を表示する。
pr filenames
 ヘッダをつけて表示する。1ページ66行
pr -n filnames
 n段組みに表示する。
pr -m filenames
 指定した複数のファイルを平行して表示する (複数カラム)

wc filenames
 それぞれのファイルの行数、ワード数文字数を数える。
wc -l filenames
 それぞれのファイルの行数を数える。
grep pattern filenames
 指定したパターンと一致した行を表示する。
grep -v pattern files
 指定したパターンと一致しない行を表示する。
sort filenames
 英字順に行単位でソートする。
tail filename
 ファイルの最後から10行を表示する。
tail -n filename
 ファイルの最後のn行を表示する。
tail +n filename
 n坂めの行からファイルを表示する。

cmp file1 file2
 最初に違いのあった場所を表示する。
diff file1 file2
 2つのファイルの違いをすべて表示する。

これらのコマンドを組み合わせて、データ処理やログ解析を効率良く行います。

ls でディレクトリの中身をリスト表示する

読了までの目安時間:約 37分

ls は、指定されたディレクトリあるいはファイルに関する情報を表示します。
[box_b]

$ ls [directory]

directory を省力するとカレントディレクトリを表示します。[/box_b]

ls コマンド (manコマンドによる表示)

名前
ls, dir, vdir - ディレクトリの中身をリスト表示する

書式
ls [options] [file...]

POSIX オプション: [-CFRacdilqrtu1]

GNU オプション (簡略形式): [-1abcdfghiklmnopqrstuvxABCDFGHLNQRSUX] [-w
cols] [-T cols] [-I pattern] [--block-size=SIZE] [--classify]
[--color[={none,always,auto}]] [--file-type] [--full-time] [--for-
mat={across,commas,long,single-column,verbose,vertical}] [--human-read-
able] [--indicator-style={none,file-type,classify}] [--quot-
ing-style={c,clocale,escape,literal,locale,shell,shell-always}]
[--show-control-chars] [--si] [--sort={none,extension,size,time,ver-
sion}] [--time={atime,access,ctime,status,use}] [--help] [--version]
[--]

説明
プ ログラム ls は、最初にディレクトリでない引き数 file をリスト表示する
。それから、ディレクトリである引き数について、それぞれのディレクトリ に
あ るリスト表示可能なすべてのファイルを表示する。オプション以外の引き数
が何もない場合、デフォルトの引き数として ‘.’ (現在のディレクトリ) を仮
定 する。 -d オプションは、ディレクトリをディレクトリでない引き数として
扱わせるようにする。ファイル名が ‘.’ で始まっていなければ、そのファイル
は 表示される。 ‘.’ で始まる名前のファイルでも、-a オプションが指定され
ていれば表示される。

それぞれのファイルリスト (ディレクトリでないファイルのリストと各ディ レ
ク トリ内のファイルのリスト) は、現在のロケールにおける文字の順序に従っ
て個別にソートされる。 -l オプションが指定された場合、リスト中の全フ ァ
イ ルの合計サイズを表示する要約行が各リストの前に付加される。このサイズ
は選択されているブロックサイズを単位とする数値になる。

出力は標準出力に対して行われ、 -C オプションで複数列出力が要求されな い
限 り 、1 行に 1 エントリである。しかし、端末に対する出力では、出力が 1
列または複数列のどちらになるかが定められていない。オプション -1 と -C
は、それぞれ 1 列出力と複数列出力を強制させるために使用される。

POSIX オプション
-C ファイルを複数列でリスト表示する。垂直方向にソートする。

-F ディレクトリ名の後に ‘/’ を、FIFO の名前の後に ‘|’ を、実行可能
なファイル名の後に ‘*’ をそれぞれ付加する。

-R サブディレクトリがあれば、再帰的にリスト表示する。

-a ‘.’ で始まる名前のファイルをリスト表示に含める。

-c ソート (-t) やリスト表示 (-l) のとき、修正時刻ではなく状態変更時
刻を使う。

-d ディレクトリの中身を表示せず、他のファイルと同じようにディレクト
リ名をリスト表示する。

-i ファイルのシリアル番号 (i-node 番号) をファイル名の出力の前に 置
く。

-l ファイルのモード・リンクの数・所有者名・グループ名・ (バイト単位
の) サイズ・タイムスタンプ・名前を (1 列形式で) 書き出す。デフォ
ルトでは、表示されるタイムスタンプは最終修正時刻である。オプショ
ン -c と -u のときは、他の 2 つのタイムスタンプを選択する。デ バ
イススペシャルファイルの場合、通例として、サイズを表示する場所が
デバイスのメジャー番号とマイナー番号に置き換えられる。

-q ファイル名の中の非表示文字をクエスチョンマークで出力する。 (端末
への出力では、このオプションをデフォルトにすることが許されている
。)

-r ソートの順序を逆にする。

-t 表示されるタイムスタンプでソートする。

-u ソート (-t) やリスト表示 (-l) のとき、修正時刻ではなく最終アクセ
ス時刻を使う。

-1 出力を 1 列にする。

GNU 詳細
標準出力が端末の場合、出力は (垂直方向にソートされて) 複数列になる。

dir (d という名前でもインストールされる) は ‘ls -C’ と等しい。つまり、
デフォルトとして、ファイルは垂直方向にソートされて複数列でリスト表示 さ
れ る。 vdir (v という名前でもインストールされる) は ‘ls -l’ と等しい。
つまり、デフォルトとして、ファイルは長い形式でリスト表示される。

GNU オプション
-1, --format=single-column
1 行に 1 ファイルをリスト表示する。標準出力が端末でない場合の デ
フォルトである。

-a, --all
‘.’ ではじまるファイルを含め、ディレクトリ中のすべてのファイルを
リスト表示する。

-b, --escape, --quoting-style=escape
ファイル名の中の非表示文字を表すため、バックスラッシュとアルファ
ベ ットのシーケンスやバックスラッシュと 8 進数のシーケンスを用い
る。これらのシーケンスは C 言語で使われているものと同じである。

-c ディレクトリの内容をファイルの状態変更時刻 (inode の ‘ctime’) で
ソ ートする。長いリスト表示形式が使われる (-l オプションの) 場合
、修正時刻ではなく状態変更時刻が表示される。

-d, --directory
ディレクトリの中身を表示せず、他のファイルと同じようにディレクト
リ名をリスト表示する。

-f ディレクトリの中身をソートせず、ディスク上にある順番にリスト表示
する。このオプションは -a も有効にする 。 -f よ り 前 に -l,
--color, -s が指定された場合、それらのオプションは無効になる。

-g 無視される。Unix との互換性のためにある。

-h, --human-readable
そ れぞれのサイズについて、例えばメガバイトなら M といったサイズ
文字を付加する。 10 の累乗ではなく 2 の累乗を用いるので 、M は
1,048,576 バイトを表す。 10 の累乗にしたいときは -H または --si
オプションを使うこと。

-i, --inode
それぞれのファイルについて、ファイル名の左に inode 番号 (ファ イ
ルシリアル番号やインデックス番号とも呼ばれる) を表示する。 (この
番号が、あるファイルシステム上のそれぞれファイルを他と重ならない
ように区別する。)

-k, --kilobytes
ファイルサイズがリスト表示される場合は、キロバイト単位で表示する

-l, --format=long, --format=verbose
ファイル名に加えて、ファイルタイプ・アクセス権・ハードリンクの数
・所有者名・グループ名・バイト単位のサイズ・タイムスタンプ (他の
時刻が選択されなければ、修正時刻) を表示する。ファイルの時刻が 6
カ 月以上前または 1 時間以上先の場合、タイムスタンプには時刻のか
わりに年が入る。

リスト表示される各ディレクトリについて、ファイ ル 表 示 の 前 に
‘total blocks’ という行を置く。ここで、 blocks はディレクトリ内
の全てのファイルによって使用されるディスク容量の合計である。デフ
ォルトでは 1024 バイトブロックが用いられるが、この値は上書きする
ことができる。計算された blocks では、それぞれのハードリンクが別
個に数えられている。これはバグだという議論もある。

リスト表示されるアクセス権はシンボルモードの仕様と同じであるが、
ls は複数のビットを各アクセス権のセットの 3 文字目に組み入れてい
る。

s setuid ビットまたは setgid ビットが設定されていて、さらに
対応する実行ビットが設定されている場合。

S setuid ビットまたは setgid ビットが設定されているが、対応
する実行ビットが設定されていない場合。

t sticky ビットとその他のユーザーに対する実行ビットがともに
設定されている場合。

T sticky ビットは設定されているが、その他のユーザーに対する
実行ビットが設定されていない場合。

x 実行ビットは設定されているが、上のどれも適用されていない
場合。

- その他。

-m, --format=commas
ファイル名をコンマとスペースで区切って、それぞれの行にできるだけ
多く詰め込み、横にリスト表示する。

-n, --numeric-uid-gid
所有者のユーザ名・グループ名のかわりに数字の UID と GID をリスト
表示する。

-o 長い形式でのディレクトリのリスト表示をするが、グループ情報は表示
しない。 --format=long --no-group を用いるのと同じである。このオ
プションは他のバージョンの ls との互換性のために提供された。

-p, --file-type, --indicator-style=file-type
ファイルタイプを示す文字を各ファイル名に加える。 -F と似ているが
、実行可能ファイルにはマークしない。

-q, --hide-control-chars
ファイル名の中の非表示文字の代わりにクエスチョンマークを表示する
。出力が端末、プログラムが ls の場合のデフォルトである。

-r, --reverse
ディレクトリの中身を逆順にソートする。

-s, --size
それぞれのファイルのディスク割り当て量をファイル名の左に表示する
。これはファイルによって使用されるディスクの総量である。この大き
さは普通はファイルのサイズよりいくらか大きいが、ファイルがホール
(穴) を持っている場合は小さくなることもある。

各ファイルの割り当て量は 1024 バイトブロック単位でファイル名の左
に表示される。しかし、このブロックサイズは上書きされるかもしれな
い。

-t, --sort=time
アルファベット順ではなく修正時刻 (inode の ‘mtime’) でソートする
。最も新しいファイルが最初にくる。

-u 修正時刻ではなく最終アクセス時刻 (inode の ‘atime’) でディレクト
リの中身をソートする。長いリスト表示形式が使われる場合、修正時刻
ではなく最終アクセス時刻が表示される。

-v, --sort=version
バージョン名とバージョン番号でソートする。バージョンの一番低いも
の が最初にくる。デフォルトのソートのように動作するが、10 進の数
字のシーケンスは、インデックス番号またはバージョン番号として数値
的に扱われる。ゼロを前にもつ数値部分は小数として扱われる。

ls -1 ls -1v
bar-1.gz bar-1.gz
bar-100.gz bar-2.gz
bar-12.gz bar-12.gz
bar-2.gz bar-100.gz
foo-1.007.gz foo-1.007.gz
foo-1.012b.gz foo-1.01a.gz
foo-1.01a.gz foo-1.012b.gz

-w, --width cols
スクリーンの幅を cols 文字と仮定する。可能ならばターミナルドライ
バからデフォルトの値を採用する。それが不可能な場合には、環境変数
COLUMNS が設定されていればその値を使う。設定されていない場合のデ
フォルトは 80 文字である。

-x, --format=across, --format=horizontal
ファイルを複数列でリスト表示する。水平方向にソートする。

-A, --almost-all
ディレクトリ内の ‘.’ と ‘..’ 以外のすべてのファイルをリスト表 示
する。

-B, --ignore-backups
コマンドラインで指定した場合を除いて、‘~’ で終わるファイルをリス
ト表示しない。

-C, --format=vertical
ファイルを複数列でリスト表示する。垂直方向にソートする。標準出力
が端末のときのデフォルトである。 dir と d ではこのオプションが常
にデフォルトになっている。最も少ない行でなるべく多くのファイルを
表示するため GNU ls は可変幅の列を使う。

-D, --dired
長いリスト表示 (-l) と一緒に使われた場合、メインの出力の後に以下
のような追加の行を表示する:

//DIRED//
BEG1 END1 BEG2 END2 ...

BEGn と ENDn は符号なし整数で、リスト出力における各ファイル名 の
始めと終わりのバイト位置を記録したものである。このオプションを使
うと、ファイル名にスペースや改行といった普段使わない文字が含まれ
て い る 場合でも、 Emacs でファイル名を探すのが (ファンシー検索
(fancy searching) を使わなくても) 簡単になる。

ディレクトリが再帰的にリスト表示される (-R オプションの) 場合 、
各サブディレクトリの後に以下ような行を出力する:

//SUBDIRED//
BEG1 END1 ...

最後に、以下のような行を出力する。

//DIRED-OPTIONS// --quoting-style=WORD

ここで WORD はクォートのスタイルである。

-F, --classify
--indicator-style=classify と同じ。

-G, --no-group
長い形式でのディレクトリのリスト表示の場合に、グループ情報の表示
をさせない。

-H, --si
それぞれのサイズについて、例えばメガバイトなら M といったサイ ズ
文字を付加する (SIとは国際単位系のことで、これらの文字を接頭辞と
定義している)。 2 の累乗ではなく 10 の累乗を用いるので、 M は
1,000,000 バ イ ト を 表 す。 2 の累乗にしたいときは -h または
--human-readable オプションを使うこと。

-I, --ignore=pattern
コマンドラインで与えられない限り、シェルパターン pattern (注:正
規表現とは異なる) にマッチする名前のファイルはリスト表示しない。
シェルと同様に、ファイル名の先頭にある ‘.’ は pattern の始めにあ
るワイルドカードにはマッチしない。たとえば、

lightside:~% ls --ignore=’.??*’ --ignore=’.[^.]’ \
--ignore=’#*’

で は、 1 つ目のオプションが ‘.’ で始まる 3 文字以上の長さの名前
をリストから除外する。また、2 つ目のオプションが ‘..’ 以外の ‘.’
で 始 ま る 2 文字の名前を除外する。さらに、3 つ目のオプションが
‘#’ で始まる名前をリストから除外する。

-L, --dereference
シンボリックリンクそのものではなく、参照しているファイルの情報を
リスト表示する。

-N, --literal
ファイル名中の非表示文字の変換を行わない。

-Q, --quote-name, --quoting-style=c
フ ァイル名をダブルクォートで囲む。さらに、非表示文字を C 言語で
使われている形式に変換して表示する。

-R, --recursive
すべてのディレクトリの中身を再帰的にリスト表示する。

-S, --sort=size
アルファベット順でなく、ファイルサイズでディレクトリの中身をソー
トする。最も大きいファイルが最初に表示される。

-T, --tabsize cols
タ ブストップの幅を cols 文字分と仮定する。デフォルトは 8 文字分
。 ls は効率をよくするために出力中の可能な場所でタブ を 使 う 。
cols がゼロの場合、タブをまったく使わない。

-U, --sort=none
ディレクトリの中身をソートせず、ディスク上にある順番にリスト表示
する (-U と -f の違いは、-f オプションが他のオプションを有効にし
た り無効にしたりする点にある)。非常に大きなディレクトリをリスト
表示する場合、このオプションは特に有用である。なぜなら、ソートを
しないことにより著しく速くできるからである。

-X, --sort=extension
デ ィレクトリの中身をファイル拡張子 (最後の ‘.’ の後につづく文字
列) のアルファベット順にソートする。拡張子のないファイルは最初に
ソートされる。

--block-size=SIZE
環境変数の値を上書きして、ブロックサイズを SIZE に設定する。

--color[=when]
ファイルタイプを区別するための色づけの有無を指定する。色は環境変
数 LS_COLORS を用いて指定される。この変数の設定法についての情 報
は dircolors(1) を参照すること。 when は省略できる。以下のいずれ
か 1 つを指定することもできる:

none まったく色づけしない。これがデフォルトである。

auto 標準出力が端末の場合のみ色づけする。

always 常に色づけする。 --color を指定して when に何にも指定しな
いのは --color=always と等しい。

--full-time
時刻に関する情報を標準の省略形式ではなく完全な形式でリスト表示す
る。時刻の表示形式は date(1) のデフォルトと同じ。この形式は変 更
で き ないが、時刻の文字列を cut(1) で取り出し、結果を ‘date -d’
に渡すことができる。

時刻の出力に秒単位の情報を含んでいるので、このオプションはとても
有 用である。 (Unix ファイルシステムは、四捨五入した秒単位までの
タイムスタンプしか持たないので、このオプションはタイムスタンプに
あ るすべての情報を表示する。) 例えば、Makefile でファイルを正し
く再生成してくれない場合にこのオプションが役立つ。

--indicator-style=WORD
各ファイル名にファイルタイプを示す文字を付加する。付加される文字
は WORD に依存する:

none ファイルタイプを示す文字を付加しない。これがデフォルトの
動作である。

file-type
ディレクトリに ‘/’ を、シンボリックリンクに ‘@’ を、 FIFO
に ‘|’ を、ソケットに ‘=’ を付加する。通常のファイルには
何もつけない。 -p と --file-type に等しい。

classify
file-type と同じであるが、さらに実行可能ファイルには ‘*’
をつける。 -F と --classify に等しい。

--quoting-style=WORD
出力されるファイル名をクォートするために、 WORD で指示されるスタ
イルを使用する。 WORD は次のいずれかでなければならない:

literal
ファイル名をそのまま出力する。これがデフォルトの動作で あ
るが、将来のバージョンでは shell がデフォルトになるかもし
れない。

shell ファイル名がシェルのメタキャラクタを含む場合や、シェル に
よ くわからない出力を引き起こさせるかもしれない場合には、
ファイル名をクォートする。

shell-always
通常はクォートを必要としないファイル名に対しても、クォ ー
トを行う。

c C 言語における文字列の形式でファイル名をクォートする。 -Q
と --quote-name に等しい。

escape c と同じであるが、ファイル名を囲むダブルクォート文字を 省
略する。 -b と --escape に等しい。

locale c 形式と似ているが、 "このように" 適切なロケール固有のク
ォートシンボルを使う。

clocale
c 形式と似ているが、 ‘このように’ 適切なロケール固有の ク
ォートシンボルを使う。

--quoting-style オ プ シ ョ ンのデフォルトの値は環境変数 QUOT-
ING_STYLE で指定することができる。

--show-control-chars
ファイル名の中の非表示文字をそのまま出力する。出力が端末でないか
、プログラムが ls でない場合はデフォルトである。

--time=atime, --time=access
--sort=time または -t と一緒に使われると、 -u (atime でソートす
る) と等しくなる。普通に時刻を表示するオプションと一緒に使われる
と、各ファイルの最終修正時刻ではなく最終アクセス時刻を表示する。

--time=ctime, --time=status, --time=use
--sort=time または -t と一緒に使われると、 -c (ctime でソート す
る) と等しくなる。普通に時刻を表示するオプションと一緒に使われる
と、各ファイルの最終修正時刻ではなく inode の最終変更時刻を表 示
する。

GNU 標準オプション
--help 標準出力に使用方法のメッセージを出力して正常終了する。

--version
標準出力にバージョン情報を出力して正常終了する。

-- オプションリストの終りを示す。

ブロックサイズ
デ フ ォルトの出力ファイルブロックサイズは 1024 バイト (POSIXLY_CORRECT
が設定されているときは 512 バイト) である。この値は以下の環境変数のどれ
か を 設 定 す る こ と で 変 更 で き る。また、これらの環境変数の値は
--block-size=SIZE がオプションに与えられると無視される。

優先順位:
LS_BLOCK_SIZE, BLOCK_SIZE, POSIXLY_CORRECT.

これらの変数の値は、数字でも human-readable でも si でもよい。数字の 後
には、何倍であるかを指定するサイズ文字と、通常のバイトを選択する B また
は 10 進の「商業用」バイトを選択する D を続けて も よ い 。 た と え ば
、‘BLOCK_SIZE=1KB’ は ‘BLOCK_SIZE=1024’ に等しく、 ‘BLOCK_SIZE=1KD’ は
‘BLOCK_SIZE=1000’ に等しい。

以下の文字が認識される (また --human-readable と --si オプションで表 示
されるときに用いられる)

k キロ: --human-readable なら 2^10 = 1024、 --si なら 10^3 = 1000

M メガ: 2^20 = 1,048,576 または 10^6 = 1,000,000

G ギガ: 2^30 = 1,073,741,824 または 10^9 = 1,000,000,000

T テラ: 2^40 = 1,099,511,627,776 または 10^12 = 1,000,000,000,000

P ペ タ: 2^50 = 1,125,899,906,842,624 ま た は 10^15 =
1,000,000,000,000,000

E エクサ: 2^60 = 1,152,921,504,606,846,976 ま た は 10^18 =
1,000,000,000,000,000,000

Z ゼ タ: 2^70 = 1,180,591,620,717,411,303,424 または 10^21 =
1,000,000,000,000,000,000,000

Y ヨタ: 2^80 = 1,208,925,819,614,629,174,706,176 また は 10^24 =
1,000,000,000,000,000,000,000,000

環境変数
変 数 LS_BLOCK_SIZE, BLOCK_SIZE, POSIXLY_CORRECT は出力ファイルブロック
サイズの選択を決定する。変数 COLUMNS は (10 進の整数表現を含んでいる 場
合) 、 (-C オプションで使われる) 出力の列の幅を決定する。ファイル名は複
数列での出力にあわせるために短くされたりはしない。変数 QUOTING_STYLE は
出力のクォートのスタイルを決定する。変数 LS_COLORS は使用される色を指定
するために使われる。変数 LANG, LC_ALL, LC_COLLATE, LC_CTYPE, LC_MES-
SAGES, LC_TIME が通常の意味を持つ。変数 TZ は ls によって書き出される時
刻の文字列のためのタイムゾーンを与える。

バグ
BSD システムでは、HP-UX システムから NFS マウントしたファイルに対して、
-s オプションでは正しい値の半分の値を表示してしまう。 HP-UX システムで
は、BSD システムから NFS マウントしたファイルに対して、 ls は正しい値の
2 倍の値を表示してしまう。これは HP-UX の欠陥によるもので、HP-UX の ls
プログラムにも影響を及ぼしている。

準拠
POSIX 1003.2

関連項目
dircolors(1)

注意
このページは fileutils-4.1 パッケージの ls コマンドについて説明したもの
で ある; その他のバージョンでは少し違いがあるかもしれない。修正や追加は
aeb@cwi.nl, aw@mail1.bet1.puv.fi, ragnar@ragnar-hojland.com 宛にメー ル
で連絡してください。プログラムのバグについては bug-fileutils@gnu.org へ
報告してください。

Google Apps for Business 独自ドメインで運用する DNSの設定

読了までの目安時間:約 4分

linuxサーバを管理している私としては、クラウドに関しても経験する必要があるので、試しにGoogle Apps for Business を1年間・3ユーザ(合計 1,8000円/年)で試してみる事にしました。

Google Apps for Businessの契約をするとビジネス向け Gmail(25GB)、Googleカレンダー、Googleドキュメント、Googleグループ、GoogleサイトそしてGoogleビデオが使えるようになります。

Google Appsを導入するメリット、デメリットについて検証しながら考えていきます。

独自ドメインでGoogle Apps を運用する場合、はじめにDNSの設定をする必要があります。

DNSの設定。

        IN  MX 10   ASPMX.L.GOOGLE.COM.
        IN  MX 20   ALT1.ASPMX.L.GOOGLE.COM.
        IN  MX 20   ALT2.ASPMX.L.GOOGLE.COM.
        IN  MX 30   ASPMX2.GOOGLEMAIL.COM.
        IN  MX 30   ASPMX3.GOOGLEMAIL.COM.
        IN  MX 30   ASPMX4.GOOGLEMAIL.COM.
        IN  MX 30   ASPMX5.GOOGLEMAIL.COM.

@       IN      A       123.456.789.999
srv     IN      A       123.456.789.999
www     IN      A       123.456.789.999
ftp     IN      A       123.456.789.999
gmail   IN      CNAME   ghs.google.com.
google  IN      CNAME   ghs.google.com.
site    IN      CNAME   ghs.google.com.
docs    IN      CNAME   ghs.google.com.
cal     IN      CNAME   ghs.google.com.
googleffffffffABCDEFGXXX IN CNAME google.com.

メールサーバをGmailに移行する最大のメリットは、スパム対策ではないでしょうか?
独自サーバだと空メールでユーザの登録や解除する仕組みを簡単に作れますが、Google Appsの場合はどうなんでしょうか?
メールログを管理したい場合はApps Cool For Google Appsなどの商品を購入する必要がありそうです。

Apps Cool For Google AppsTM プライス

標準入力、標準出力、標準エラー出力 そして リダイレクトとパイプについて

読了までの目安時間:約 3分

shell から起動されるプログラムには、標準入力、標準出力、標準エラー出力という入出力が用意されています。

● 標準入力
通常、キーボードに割り当てられています。ファイルを読み込み、それに何らかの処理を行うプログラムの多くは、処理対象ファイルを指定しない場合は、標準入力を処理対象とします。

● 標準出力
通常、画面に割り当てられています。プログラムの計算結果・処理結果は標準出力に現れます。

● 標準エラー出力
通常、画面に割り当てられています。エラーメッセージやプログラムの起動メッセージなどの計算結果・処理結果意外のメッセージは標準エラー出力に現れます。
[box_b]何も指定しなければ、標準入力はキーボード、標準出力と標準エラー出力は画面になります。
キーボードや画面もファイルになります。 [/box_b]
● リダイレクト
標準入力、標準出力、標準エラー出力をファイルに切替える操作をリダイレクトといいます。

● パイプ
パイプはあるプログラムの標準出力を別のプログラムの標準入力に接続する機能です。
パイプを使うには、2つのコマンドラインの間を"|"で接続します。あるコマンドの出力を別なコマンドの入力として用いるための手段がパイプです。

● バッククオート
あるコマンドの出力をコマンドラインの一部として使うため機能です。

リダイレクトおよびパイプの記号一覧

 記号 : 意味
< : 標準入力リダイレクト > :標準出力リダイレクト (上書き)
>! :標準出力リダイレクト (上書き、 noclobber 無視)
>& :標準出力および標準エラー出力リダイレクト (上書き)
>'! :標準出力および標準エラー出力リダイレクト (上書き、 noclobber 無視)
>> :標準出力リダイレクト (追加)
>>! :標準出力リダイレクト (追加、 noclobber 無視)
>>& :標準出力および標準エラー出力リダイレクト (追加)
>>&! :標準出力および氷上んエラー出力リダイレクト (追加、 noclobber 無視)
| :パイプ (標準出力)
|& :パイプ (標準出力および標準エラー出力)

参考にさせていただいたページ ありがとうございます。
図解:標準入力、標準出力、標準エラー出力、パイプとは ?

無料メルマガ登録
最近の投稿