Unix 哲学的に考えれば、行を並び替える sort コマンドと重複行を取り除く uniq コマンドは別のコマンドであるべきなように思えます。しかし sort コマンドには -u オプションとして uniq コマンドに相当する機能が組み込まれています。なぜそうなっている(そうなってしまった)のかを「ソフトウェア作法(さくほう)」を参照しながらこの記事で明らかにしたいと思います。 関連記事 Unix哲学「一つのことをうまくやる」は単機能のコマンドを作ることではない 「誰」がuniq機能をsortコマンドに組み込んだ!? 熱烈的な Unix 哲学の信者は「どうせ Unix 哲学を理解しない GNU が便利だと思ってオプションを追加したのだろう」と考えるかもしれません。しかし uniq 機能が組み込まれたのは Version 7 Unix、つまり Unix の開発者が組み込んだのです。これは 1
はじめに コマンドをパイプでつなげた時、各コマンドの間にはいくつかのバッファが存在します。そのバッファについてちゃんと意識しているでしょうか? バッファの存在によって各コマンドの実行には分かりづらい変化があります。そのバッファを知らないと罠にハマってしまう・・・かもしれません。 プロセス間のパイプ通信のバッファ まずプロセス間のパイプ通信に存在しているバッファです。多くのコマンドは行単位でデータを処理しますが、一般的にパイプでつなげた各コマンドはそれぞれ処理速度が異なります。処理がすぐに終わるコマンドもあれば時間がかかるコマンドもあります。各コマンドは並列で動作可能ですが必ずしも並列で動作するわけではありません。 一般論としてパイプライン全体の処理にかかる実時間はパイプでつながったコマンドの中で一番遅いコマンドに足を引っ張られます。いくら並列で動作可能と言ってもデータが到着しなければ処理す
link/unlinkはハードリンクの作成・削除コマンド。シンボリックリンク用ではないしファイルも削除する管理者用コマンド。ShellScriptLinuxシンボリックリンクシェル芸UNIXコマンド はじめに unlink コマンドはハードリンクを削除するコマンドです。コマンド名に link と入っているから勘違いしている人がいるようですがシンボリックリンクを削除するために作られたコマンドではありません。unlink コマンドの反対は link コマンドです。 link コマンドはハードリンクを作成します。その反対なので unlink コマンドはハードリンクを削除するコマンドと言って良いでしょう。リンクを削除してどこからもリンクされなくなったファイルは消えるのでunlink コマンドはファイルも削除します。シンボリックリンクファイルもファイルなので削除されます。 link/unlink は
-y オプションをつける diffに-yオプションをつけるとファイル内容を左右に並べて比較表示してくれました。 差分のある部分は|や>などで目印つきつつ、colordiffなら色がつきます。 ちなみにこの出力をlessに渡すと盛大に文字化けしました。colordiff -y file1 file2 | less -Rとすればよいらしいです。 .colordiffrcで色設定も変更できます。 -y --suppress-common-lines をつける -yオプションにさらに--suppress-common-linesオプションをつけると変更のある行だけを表示してくれます。 思い切りばっさりと関係ない行を消してくれるのですが、こんどは情報が少なすぎる感が・・・。 これに行番号表示できないですかね。 --suppress-common-linesオプションを覚えるのは厳しいので alias
Unixが"."から始まるファイルを表示しないのは、本来の仕様ではなくバグだった。もともとlsコマンドは "." と ".." だけを非表示にするはずだったのだが、KenとDennisはこれを手抜き実装した: if (name[0… https://t.co/OsdhpaGEsg
「MacはLinuxだった」って本当? 「そうだね……」元Mac雑誌編集者は昔語りを始めた:ヤマーとマツの、ねえこれ知ってる?(1/4 ページ) 経歴だけは長いベテラン記者・編集者の松尾(マツ)と、幾つものテック系編集部を渡り歩いてきた山川(ヤマー)が、ネット用語、テクノロジー用語で知らないことをお互い聞きあったり調べたりしながら成長していくコーナー。交代で執筆します。 マツ 「MacはLinuxだった」という趣旨のツイートが話題になっていて、ああそういうこともあったなあ、と思い出したので、ちょっと昔語りしようかなと。茶でも飲みながら。 ヤマー 私は紅茶を用意してきます。 戻ってきました。macOSは何がベースになっているかって話ですよね。 マツ 結論から言っちゃうと、現在のmacOSはUNIX系列のOSではあるけど、Linuxではないです。macOSのベースになっているのはDarwin。
Helpful background for code reading The GNU coreutils has its foibles. Many of these utilities are approaching 30 years old and include revisions by many people over the years. Here are some things to keep in mind when reading the code: Tiny programs - These utilities are small, (mostly) single-source file programs designed to do one thing and do it well. They are not designed for long life or to
Kernel/VM探検隊はカーネルや仮想マシンなどを代表とした、低レイヤーな話題でワイワイ盛り上がるマニアックな勉強会です。植山氏は、制作中のリンカである「mold」について発表しました。全2回。前半は、リンカの概要について話しました。 LLVMのリンカ「lld」オリジナルの作者 植山類氏:植山類です。今僕が作っているmoldというリンカについて発表します。 今回の発表の概要です。リンカが何かを知っている人はそんなにたくさんいないと思うので、まず説明します。次に、「mold」のポイントは速いことなのですが、速いと何がうれしいのかを説明します。そのあと、どれくらい速いのかを説明した上で、どう実現されているのか、概要を紹介します。詳細になると何時間あっても終わらないので、かなりハイレベルな話をします。 自己紹介のスライドを入れていませんが、僕はリンカを何度か作ったことがあって、LLVMのlld
ネットワークレベルでサーバーと通信ができるか確認できる「ping」コマンドは、1983年にUNIXコマンドとして開発されて以来、サーバーの死活監視や通信速度の測定など、あらゆる場所で使われているコマンドです。そんなpingコマンドを開発したマイク・ムース氏は、2000年11月20日にレストランからの帰宅途中、高速道路で玉突き事故に巻き込まれて亡くなっていますが、ムース氏により「ping」コマンド開発秘話が綴られたブログ「The Story of the PING Program」はムース氏の没後20年となる2020年現在も閲覧することができます。 The Story of the PING Program https://ftp.arl.army.mil/~mike/ping.html ムース氏がpingコマンドについて語っているブログはアメリカ陸軍研究所のFTPサーバー「ftp.arl.
アメリカのノキア・ベル研究所がC言語と共に開発し、macOSやLinuxの原型になったOSがUNIXです。そのUNIXを開発したチームが1980年代に、UNIXとは別に開発したOS「Plan 9 from Bell Labs」について、ベル研究所がオープンソースコミュニティのPlan 9 Foundationに著作権を譲渡したことを発表しました。 Plan 9 from Bell Labs in Cyberspace! - Nokia Bell Labs https://www.bell-labs.com/institute/blog/plan-9-bell-labs-cyberspace/ UNIXは世界で初めて高水準言語で設計された革命的なOSであり、さまざまなメインフレームやワークステーション、サーバーのOSとして使われ、インターネットとクラウドインフラストラクチャの基盤となりました
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く