unix

Goでシェルもどきを作る

Rubyでシェルもどきを作る - @tmtms のメモ Goの勉強で, 上記の記事の Go版を書いてみました リポジトリ https://github.com/syohex/go-shell-modoki 基本 forkでなくて go routineを使っています. 終了の待ち合わせはチャネルを 用いました. package main i…

rm -rf symlink/して不幸になりたくなければ unlinkを使えばいい

シンボリックリンクをrm -rf symlink/すると不幸になる - かーねる・う゛いえむにっき ですが、ディレクトリを消してしまうというリスクをそもそもなくして しまえばいいですよね。その答えが unlinkコマンドです。 unlinkコマンド ファイルだけ消せる rmコ…

Perlで学ぶ「詳解 UNIXプログラミング」(その11) 第11章 端末入出力

はじめに 「詳解 UNIXプログラミング」の第十一章を示します. 本家 http://d.hatena.ne.jp/atsuoishimoto/20110329/1301324988 11.1 割り込み文字を無効にし、ファイルの終わりの文字を変更する PerlではC言語っぽいインタフェースでなく、OOishなインタフェ…

Perlで学ぶ「詳解 UNIXプログラミング」(その10) 第10章 シグナル

仕事が忙しくなり 4ヶ月ほど放置してましたが、再開. はじめに 「詳解 UNIXプログラミング」の第十章を示します. 本家 http://d.hatena.ne.jp/atsuoishimoto/20110328/1301279230 10.1 SIGUSR1とSIGUSR2を捕捉する簡単なプログラム #!/usr/bin/env perl use …

Perlで学ぶ「詳解 UNIXプログラミング」(その8) 第8章 プロセス制御

はじめに 「詳解 UNIXプログラミング」の第八章を示します。 本家 http://d.hatena.ne.jp/atsuoishimoto/20110324/1300933805 8.1 fork関数の例 forkでは親プロセスと子プロセスのメモリ空間が異なるため グローバル変数も共有しません。これはマルチスレッ…

Perlで学ぶ「詳解 UNIXプログラミング」(その9) 第9章 プロセスの関係

はじめに 「詳解 UNIXプログラミング」の第九章を示します。 9.1 オーファンドプロセスグループの作成 オーファンドとは親のいない状態という意味のようです。 #!/usr/bin/env perl use strict; use warnings; use POSIX; # オーファンドプロセスグループの…

Perlで学ぶ「詳解 UNIXプログラミング」(その7) 第7章 プロセスの環境

はじめに 「詳解 UNIXプログラミング」の第七章を示します。 本家 http://d.hatena.ne.jp/atsuoishimoto/20110322/1300757335 7.1 終了ハンドラの例 Perlには atexitはなく、ENDブロックを使います。 #!/usr/bin/env perl use strict; use warnings; # 終了…

Perlで学ぶ「詳解 UNIXプログラミング」(その6) 第6章 システムデータファイルと情報

はじめに 「詳解 UNIXプログラミング」の第六章を示します。 本家 http://d.hatena.ne.jp/atsuoishimoto/20110318/1300407363 6.1 getpwnam関数 getpwnamは/etc/passwdの内容を取得する関数なのですが、 Perlでの仕様がよくわからない。普通は 7つしかフィー…

Perlで学ぶ「詳解 UNIXプログラミング」(その5) 第5章 標準入出力ライブラリ

はじめに 「詳解 UNIXプログラミング」の第五章を示します。 本家 http://d.hatena.ne.jp/atsuoishimoto/20110317/1300328961 5.1 getc()とputc()を用いて標準出力へコピーする 1章あたりでも書いた気がするけど。 Perlでは putcがありませんので、printを使…

Perlで学ぶ「詳解 UNIXプログラミング」(その3) 第3章 ファイル入出力

はじめに 「詳解 UNIXプログラミング」の第三章を示します。 本家 http://d.hatena.ne.jp/atsuoishimoto/20110310/1299715993 3-1標準入力ファイルがシーク可能で有るかどうかを調べる POSIX::lseekが使えます。 #!/usr/bin/env perl use strict; use warnin…

Perlで学ぶ「詳解 UNIXプログラミング」(その4) 第4章 ファイルとディレクトリ

はじめに 「詳解 UNIXプログラミング」の第四章を示します。 本家 http://d.hatena.ne.jp/atsuoishimoto/20110315/1300142354 4.1 指定したファイルの種類を出力する もっと種類は調べられますが、Python版に合わせています。 詳しくは "man 2 stat"等を参照…

perlで学ぶ「詳解 UNIXプログラミング」(その1) 第1章 概論

はじめに 「詳解 UNIXプログラミング」の第一章を示します。 本家 http://d.hatena.ne.jp/atsuoishimoto/20110307/1299456377 1.1 ディレクトリ内の全てのファイルをリストする opendirと readdirで実現できます。 #!/usr/bin/env perl use strict; use warn…

Perlで学ぶ「詳解 UNIXプログラミング」(その0)

初めに id:atsuoishimotoさんのPythonで学ぶ「詳解 UNIXプログラミング」シリーズで Perlで書いたらどうなるかというのがあれば面白いんじゃないかなと思って書きます。 本は一応持っているのですが、全然読めてないので、 コードは id:atsuoishimotoさんが…

patchが当たるか当たらないかのテスト

最近 2人ほどに教えたのですが、意外に知られていないのではということで メモっておきます。 最近は git等のバージョン管理ツールで基本開発を行なっているので 直接パッチを扱うっていう機会は減っているかと思いますが、それでも たまにありますよね。パ…

tailコマンドの実装を見る。

tailって真面目に作るとどうなるんだろうということが気になったので、 ソースコードを読んでみます。ソースは NetBSD 5.0.2です。 場所は usr/src/usr.bin/tailになります。tail -fとかは考えずに 普通にファイルの終わり n行を表示する場合についてのみ考…

grepのカラー化

lsとかは色がつけられるのに, なんで grepはカラーにできないだって 思っていたら普通にあった。 % grep --colorGNU grepはこれでいけるはずです。aliasしておくと良いでしょう alias grep='grep --color'最近は emacsの lgrepも使うようになったためか, カ…