goo

top・prstat・glance

稼働率の高いプロセスを表示するコマンド。

あぁもう、同じUNIXなのになんでこうなんだか(苦笑)

コメント ( 0 ) | Trackback ( 0 )

cronとsu

cronの設定の書き方の例を追加。
suでコマンドを実行することが出来るのを知ったので追加。

知ってるコマンドだと思っても、他の人がやっている事を見るのは勉強になる^^

コメント ( 0 ) | Trackback ( 0 )

Teraterm文字化け直し

Teraterm上でバイナリファイルをうっかり表示して文字化けしてしまった場合に元に戻す方法をメモ。
こうなった場合、今までは諦めて新しいTeratermを起動してたから、嬉しい(笑)
コメント ( 0 ) | Trackback ( 0 )

続#!

#!について、コマンドの指定にフルパス以外も試してみたら、ダメだった。
あと、引数を付けてみたら、期待通りに処理された。

てな訳で、関連してawkのメモも修正。(関係ないけどchmodもちょっと修正)

(「テキストファイルが#!で始まっている時に 指定されたコマンドで実行されるなら、バイナリファイル(コンパイルされた実行ファイル)の先頭も#!なのか」と思って見てみたら、全然違った。他のUNIXはどうか知らないが、0x7fのコード(つまりdel)だった。これならテキストファイルとの違いは一目瞭然だなw)

コメント ( 0 ) | Trackback ( 0 )

シェルの先頭の#!

シェルスクリプトの先頭行に「#!/bin/sh」とよく書くけど、あれの意味が初めて分かった

今まで「シェルの種類」を書くものだと思ってた。シェルにはshだのkshだの色々あるから。
実は、実行権限の付いたテキストファイルを直接実行するときに「そのファイル(自分自身)を どのコマンドを使って実行するか」を指定するものらしい。
(だから、shコマンドの引数としてスクリプトファイルを指定する場合には、先頭行に書いたシェルの種類の指定は意味なかったんだなぁ。そこに付けた「-x」オプションが無視された(ように思えた)のも同じ理由か。「#」から始まる行は単なるコメントだし)

そんでもって、主要な使い道がシェルのスクリプトだから/bin/shとか/bin/kshとか書かれているのをよく目にしていただけであって、実はどんなコマンドでも出来るみたいだ。
と言ってもtailとかに使ってもあまり意味は無いので(爆)、awkとか、ある程度プログラムが書ける(=スクリプト)ファイルで使う想定なんだろうな〜。

コメント ( 0 ) | Trackback ( 0 )

awkのプログラムを標準入力から

awkもUNIXの御多分にもれず、ハイフンで標準入力からプログラムが指定できた
でも$の扱いだけは気をつける必要あり。
コメント ( 0 ) | Trackback ( 0 )

シェルのリダイレクトの間違い

UNIXのリダイレクトの「2>&1」と「>ファイル」の順序の間違いに気付かされたので、あわてて訂正。
そうかー、そういう理由だったのかー。直感的には分かりづらいっすね。

DOSのリダイレクションはどうかな、と思ったら、UNIXと同じ順番らしい。こっちは合ってた。

コメント ( 0 ) | Trackback ( 0 )

awk(と懐かしのC)

awkのメモを作成。
ついでに、UNIXコマンド一覧の「ファイル内容関連」を、ファイル内容の表示関連と編集関連に分割。awkは編集関連ね。
…編集と表示って、意外と区別が付けづらいなー…。


awk。大学時代に、情報工学科のyaccとlexの実習としてawkのインタープリターをC言語で作ったなぁ。(だから四則演算クラスなんてものも、あまり違和感無く作れた)
しかしその割に、awkの文法の細かい所は結構忘れてしまった(苦笑) まぁ使ってないと忘れるよなー。「BEGIN」を見て、そんなものがあったなー!!と懐かしかった(爆)

awkの文法や関数はC言語に似てるんだけど、printfはC言語より柔軟なので、実装するのは意外と面倒だったり。なにせ変数は数値でも文字列でも扱えるので、%dや%s等の書式を、C言語のvsprintfなんかにそのまま渡すわけにはいかない。結局自分で書式を解釈してやらないといけないんだよねー。
ついでに「\n」もC言語ではプリプロセッサーが解釈するから、awkインタープリターでは自作しないといけない。

おお、そういえば、あの頃はローカル変数の宣言に「auto」を付けてたなぁ。
「static」「extern」「auto」のそれぞれの直後にタブを入れると、タブが8桁なら、変数名の桁がぴったり並ぶので綺麗かと。そうなるとregisterはちょっと長いので、#defineしてみたり。
つーか、今どきregister宣言なんか使わねー(爆)

コメント ( 0 ) | Trackback ( 0 )

touch

UNIXのtouchのオプションをメモ。
これでタイムスタンプが変え放題(笑)

それからfindコマンドの-followオプションを追加。
これが無いと、シンボリックリンクがディレクトリに対して張られている場合に、そのディレクトリの中が検索対象にならない。

コメント ( 0 ) | Trackback ( 0 )

iconvのコードセットコンバーター作成方法

iconv用の文字コードの新しい変換パターン(コードセット・コンバーター)を作る、geniconvtblというコマンドの使用方法をメモ。
コマンドの使用方法というよりは、その元となるソースファイルの文法のメモ。

Solarisのページには コードセット・コンバーターを「容易に作れる」と書いてあるけど、具体的なソースファイルの書き方については載っていない(嘆)
とは言っても、ソース自体のサンプル(?)は存在しているので、見よう見まねでなんとか理解できた(と思う)。
ぱっと見た感じではC言語風なんだけど、独自の言語だ。丹念に見ていけば、文法の種類は限られている。

#includeは本当にC言語のヘッダーファイルを読み込んでいるっぽいが、iconv_openとかのC言語の関数が在るので、それと親和性が高いのだろう。

mapをずらずら書く程度なら、iconvを使わずに 自分で変換プログラムを作ったって大差ない気がしないでもないけど、ファイル入出力とかを考えなくて済む分、geniconvtblを使ってもいいかも。

コメント ( 0 ) | Trackback ( 0 )
« 前ページ 次ページ »