関連サイト
本書の関連ページが用意されています。
内容紹介
そもそもUNIXは、AT&Tベル研究所(当時)のデニス・リッチーらによって、1969年より開発が始められたOSである。その後、AT&Tでのリリースから分岐しUCB(カルフォルニア大学バークレー校)からBSD UNIX(以後、BSD)がリリースされ、商用・非商用含めて多数の亜種が生まれている。AIX, Solaris, HP-UX, Mac OS X(現在の正式名称はOS Xだが、わかりやすくするために本書ではMac OS Xと表記する)などは認証を受けたUNIXである。FreeBSD, NetBSD, OpenBSDなどのBSD系フリーUNIXは認証こそ受けていないが、BSDの後継である。
一方Linuxは、UNIXとは別に独自に開発されたOSであり、UNIXライクなOSではあるものの歴史的にも認証的にもUNIXとは呼べない。しかし現在一般には広く普及しているUNIXライクOSである。
本書を執筆するにあたり、コマンドの実行などの具体例については対象OSを限定する必要があった。そこで、BSDの後継であるFreeBSDと、広く使われているLinuxディストリビューションのうち、Ubuntuを対象とすることにした。
言及する内容については、正直選別に困った。たとえば図を書く方法1つとっても、昔からあるツールと最近のツールではできることが大きく異なる。sedやawkを知らなくても、pythonかrubyを知っていればたいていの場面では困らない。
われわれは「いかにUNIX的であるか」を基準に選択することにした。UNIX的なオペレーションとは、CUI(CLI:Command Line Interfaceとも言う)でコマンドを駆使して行うものである。結果として、GUIベースのツールや、新しいツールの網羅ができず、新しいツールに興味津々の若い読者には、物足りない内容になってしまったかもしれない。
新しいツールの使い方に興味を持つ読者は、次々と現れる新しい書籍を読んでいただきたい。本書はそれらの書籍とは衝突しない。
古典的なUNIXのコマンドラインインターフェイスは、UNIXが作られて以来40年以上の間、使われ続けてきたのである。温故知新ともいうし、まずは古きをたずねてみてはいかがであろうか?
本書が対象とする読者は以下のような人である。
- 情報系の学部2年生レベルのUNIX講義の内容を学びたい人。
- 情報系の大学で学んだものの、ほとんどUNIXの教育を受けないまま、IT業界に就職することになった人。
- 就職して2~3年になるが、先輩から「こんなことも知らないのか」と叱咤されることがあるエンジニア。
UNIX業界のITエンジニアとして仕事を始めると、現場には大きく2種類の仕事があることがわかると思う。1つはUNIXで動作するソフトウェア(場合によってはUNIXカーネルそのもの)を開発する仕事。もう1つは、UNIX上で動作するソフトウェアを使って環境やサービスを構築し、それを運用する仕事である。
現在では両者はほぼ分業されているが、1990年代以前からUNIXの仕事をしている人にとって、両者はどちらもできて当たり前のことであった。ソフトウェアを開発する人も、自分たちのサーバやネットワークは自力で構築して運用しなければならない。運用構築系の仕事をする人も、ソフトウェアに不具合があったら自力でデバッグまでしなければならない。その際に、カーネルの解析が必要になる場合もある。
本書では、開発と環境構築運用の両方の内容をカバーしようと試みた。それが「UNIX的なやりかた」だと考えるからである。
もし、読者の中に、今の自分がどちらかの知識しか持っていないと感じる人がいたら、ぜひ不足している知識の底上げに本書を利用していただきたい。
本書の目的は、「底上げ」にあるのだから。
(「はじめに」より)
書誌情報
- 著者: 木本雅彦, 松山直道, 稲島大輔, 株式会社創夢(監修)
- 発行日: 2018-06-29 (紙書籍版発行日: 2018-06-29)
- 最終更新日: 2018-06-29
- バージョン: 1.0.0
- ページ数: 248ページ(PDF版換算)
- 対応フォーマット: PDF, EPUB
- 出版社: アスキードワンゴ
対象読者
これからUNIXの仕事を始める人、そして現在UNIXの仕事をしている人
著者について
木本雅彦
1972年生。東京工業大学大学院情報理工学研究科博士課程修了。博士(理学)。2003年より株式会社創夢に勤務。カーネルドライバ開発から、ネットワークアプリケーション、Webアプリケーション開発までの幅広いレイヤーをこなす。普段はFreeBSDをメインの生活環境として使う。また、2007年より小説家としての執筆活動も行う。主な著作に「くあっどぴゅあ」(ファミ通文庫)、「星の舞台からみてる」(ハヤカワ文庫JA)、「人生リセットボタン」(PHP研究所)などがある。UNIX技術者と小説家の両方の経験を活かし、ASCII.Technologies上で、IT業界小説「株式会社初台アーバンギルド」を連載していた。
松山直道
1964年東京生まれ。株式会社創夢創業メンバー兼現取締役。WIDEプロジェクトに初期から参加しており、主にインターネット関連の研究活動等に従事。特にIPv6関連技術の研究開発や普及を推進するコミュニティにおいて積極的に活動している。またルータ等ネットワーク関連機器類の開発業務にも携わる。社内のCISO(最高情報セキュリティ責任者)を務める。自宅のネットワークは、10年以上前から/29と/48のデュアルスタック。日本UNIXユーザ会幹事。
稲島大輔
1982年生まれ。2007年より株式会社創夢に勤務。組み込み機器へのブートローダ・カーネルの移植から、ネットワークプロトコルの実装など、主に低位層から中位層の業務を担当。趣味では関数型言語でアプリを作ったりすることの方が多い。UNIX環境としては2014年現在でもデスクトップ・サーバともにNetBSDを常用。pkgsrcを気に入っている。
株式会社創夢
1984年創立。創立以来一貫して、UNIXとインターネットを事業の主軸においている。JUNET時代には創夢を経由してネットに接続する企業も多かった。かつてはX11R5のマニュアルを出版するなど、X Window Systemに力を入れていた時期もあった。エンジニアが作ったエンジニアのための会社であり、エンジニアが楽しく仕事ができる環境を作るというビジョンを持っている。事業範囲はUNIXの移植、デバイスドライバの開発、研究用ソフトウェアの開発、サーバ・ネットワークの設計・構築・運用管理など。「普通の会社だとこういう仕事引き受けてくれないんだよなあ」という種類の面倒な仕事を、軽いフットワークと重量級の馬力でさばくのが得意な、特異な会社。
目次
第1部 生活環境編
第1章 ログインログアウト
- 1.1 そもそもログインとは
- 1.2 TELNETによるリモートログイン
- 1.3 SSHによるリモートログイン
- 1.4 ログアウト
第2章 UNIXの基本操作
- 2.1 シェル
- 2.2 リダイレクションとパイプ
- 2.3 UNIXのファイルシステム
- 2.4 基本のファイル操作
- 2.5 パーミッション・オーナーの管理
- 2.6 正規表現
- 2.7 grep
- 2.8 sed
- 2.9 awk
- 2.10 アーカイバ
- 2.11 その他のコマンド
第3章 テキストエディタ
- 3.1 基本のテキストエディタ
- 3.2 限定された環境でのファイル編集
- 3.3 ViとVim
- 3.4 Emacs
第4章 作業の自動化(シェルスクリプト)
- 4.1 シェルスクリプトによる作業自動化の必要性と利点
- 4.2 Bourne shellについて
- 4.3 簡単なスクリプトの作成と実行
- 4.4 シェルスクリプトの実用例
第5章 オンラインマニュアル
- 5.1 オンラインマニュアルを必要とする場面
- 5.2 氾濫する情報の危険性
- 5.3 manコマンド
- 5.4 infoコマンド
- 5.5 ヘルプメッセージ
第6章 セキュリティ
- 6.1 UNIXにおけるセキュリティ
- 6.2 ルート権限の獲得方法
- 6.3 共通鍵暗号と公開鍵暗号
- 6.4 SSHの応用
- 6.5 PGPによる暗号化、電子署名
第7章 UNIXシステム管理
- 7.1 UNIXにおける管理作業
- 7.2 起動とシャットダウン
- 7.3 ユーザとグループの管理
- 7.4 パッケージ管理
- 7.5 TCP/IPネットワーク管理
- 7.6 DNS(名前サービス)
- 7.7 サービスの管理
- 7.8 トラブルシュート
第2部 プログラミング環境編
第8章 UNIXプログラミング環境
- 8.1 プログラミング環境概要
- 8.2 C言語による開発実例
- 8.3 Javaによる開発実例
- 8.4 LL言語による開発実例
第9章 バージョン管理システム
- 9.1 バージョン管理システムとは
- 9.2 バージョン管理システムの種類
- 9.3 バージョン管理システムの使い方
- 9.4 Subversionの使い方
- 9.5 Gitの利用方法
第10章 ソースコードからのドキュメントの作成
- 10.1 はじめに
- 10.2 ドキュメント生成ツールの種類
- 10.3 ドキュメント生成ツールの利用方法
第11章 ソフトウェアライセンス
- 11.1 ライセンスを考慮する理由
- 11.2 オープンソースライセンス
第3部 ネットワーク技術編
第12章 UNIXとネットワーク技術
- 12.1 TCP/IP実装の公開と普及
- 12.2 LANとWAN
- 12.3 ネットワーク端末としてのUNIX
第13章 OSI参照モデル
- 13.1 OSI参照モデル
- 13.2 TCP/IPとOSI参照モデル
第14章 データリンク層
- 14.1 データリンクとは
- 14.2 データリンクの基本
- 14.3 Ethernet
- 14.4 無線LAN
- 14.5 Point-to-Point接続
第15章 IPと関連プロトコル
- 15.1 IPの基本
- 15.2 IPv4とIPv6
- 15.3 IPアドレス
- 15.4 特殊なIPアドレス
- 15.5 ルーティング
- 15.6 関連プロトコル
第16章 TCPとUDP
- 16.1 ポート番号
- 16.2 UDP
- 16.3 TCP
- 16.4 TCPのコネクション
- 16.5 TCPの通信
- 16.6 TCP通信の制御
- 16.7 TCPとUDPの使い分け
第17章 アプリケーションプロトコル
- 17.1 Webアクセス(HTTP/HTTPS)
- 17.2 電子メール(SMTP/POP/IMAP)
- 17.3 リモートログイン(TELNET/SSH)
- 17.4 ファイル転送(FTP/rsync)
- 17.5 ファイル共有(NFS/SMB)
- 17.6 VoIP(SIP/RTP)
- 17.7 システム運用管理(DNS/DHCP/NTP/SNMP)
- 17.8 Xプロトコル
第18章 IP関連の技術
- 18.1 名前解決
- 18.2 IPアドレスの付与
- 18.3 アドレス変換(NAT・NAPT・IPマスカレード)
- 18.4 トラブルシューティング
第19章 ネットワークセキュリティ
- 19.1 ネットワーク上の攻撃
- 19.2 認証システム
- 19.3 通信フィルタとファイヤウォール
- 19.4 通信の暗号化
- 19.5 VPN