書籍概要

Software Design別冊

UNIX独習への近道

著者
発売日
更新日

概要

長い歴史を持つUnix系システムは,今やつながっていることが当たり前となったネットワークの根幹を支えています。これからのITエンジニアにとって,Unix系システムをある程度使えることは必須と言えます。幸いにしてWindows OS上でも,Windows Subsystem for Linuxというしくみで,Unix系システムが使えるようになりました。学習のハードルが低くなったいまこそ学び時です。

本書の目的は,未知の課題にあたったときに,自力で解決できるようになるための基礎力作りです。ソフトウェアエンジニアやオペレーションエンジニアが開発の仕事で最低限必要になるであろうUnix系システムの知識を厳選してコンパクトにまとめました。手を動かし,ときには失敗を経験しながら技術や知識を修得してください。

こんな方におすすめ

  • 本書の対象は,ソフトウェアエンジニア,オペレーションエンジニアを目指す人です
  • Unixやシェル,コマンドを再確認したい,もっと楽しみたい,ほかにも何かないのか,好奇心を持った人にも読んでいただければと思います

サンプル

目次

第1章 コマンドを使うための基礎知識

  • 1-1 端末アプリケーションの使い方とコマンドの調べ方を学ぼう
  • 1-2 ディレクトリとファイルの構造・属性について知ろう
  • 1-3 プロセスってなんだ? 状態と制御
  • 1-4 ディレクトリやファイルの属性理解がセキュリティの第一歩
  • 1-5 端末アプリケーションをスマートに操作しよう

第2章 ディレクトリとファイルの構造と操作

  • 2-1 ディレクトリを自在に移動してファイルを操作――作成,複製,削除
  • 2-2 ファイル/ディレクトリの移動,リンク,リダイレクトを使ってみる
  • 2-3 ファイルを見つける! まとめる! ディスク管理を覚えよう

第3章 シンプルなコマンドをつないで複雑な処理を実行させる

  • 3-1 コマンドの種類とプロセス,パイプ,リダイレクトのしくみ
  • 3-2 シェルスクリプトへの入り口

第4章 ツール開発や自動化に応用できる文字列操作のノウハウ

  • 4-1 シンプルなツールで簡単なテキスト処理――表示,並べ替え,結合,切り出し
  • 4-2 簡単な文字置換と汎用性の高い文字列演算と正規表現を使ってみる
  • 4-3 sedとawkを使った本格的な文字列操作
  • 4-4 文字列操作のスクリプトで暗号化ツールを作ってみよう

第5章 Web開発やクラウド利用に不可欠なリモート操作とセキュアな接続

  • 5-1 TCP/IPを使ってファイル転送,インターネット上の情報を収集する
  • 5-2 sshの基本的な使い方と認証方式を知ってセキュアな通信
  • 5-3 sshの少し高度な使い方――ポートフォワード,コマンド,トラブルシュート
  • 5-4 sshの応用――ホストベース認証,さらに便利な使い方

第6章 好奇心をかきたてる応用例で楽しみながら学ぼう

  • 6-1 ソースコードからのビルドを体験――ローグとロゴマチック
  • 6-2 シェルスクリプトでゲームを作ってみる
  • 6-3 チャットボットみたいにシェルに話しかけてもらおう
  • Column 1 ディレクトリとファイルのrwx bitsと削除
  • Column 2 MacをUnixワークステーションとして使うために
  • Column 3 WSL――Windows Subsystem for Linuxを利用するために

サポート

ダウンロード

(2018年2月7日更新)

本書で使用しているサンプルファイルは,以下のリンクからダウンロードできます。

ダウンロード
サンプルファイル(unix-selfstudy-DL.zip)

免責:本サンプルを使用することによって,使用者が受けたあらゆる不利益に対して,原著者および技術評論社はその責任を負いません。

正誤表

書籍の内容に誤りのあったことを,本書をお買いあげいただいた読者の皆様および関係者の方々におわびいたします。

(2018年5月11日最終更新)

P.40 「STEP UP!」囲み内

/etc/passwd 注7、/etc/shadow、
/etc/passwd、/etc/shadow 注7

P.40 「STEP UP!」囲み内

/etc/group/etc/gshadow 注8
/etc/group/etc/gshadow 注8

(以下2018年4月13日更新)

P.40 「STEP UP!」囲み内,注7の説明文

※説明文なし
注7 暗号化されたパスワードファイル。

P.40 「STEP UP!」囲み内,注8の説明文

※説明文なし
注8 暗号化されたグループパスワードファイル。

P.40 「STEP UP!」囲み内,注9の説明文

※説明文なし
注9 Directory Service Command Line utility

P.40 本文と脚注

注7
10

(以下2018年2月16日更新)

P.119 パッケージのインストール

$ sudo apt gcc ncurses-dev make automake
$ sudo apt install gcc ncurses-dev make automake

補足情報

(2018年5月21日更新)

P.155 「テキスト中の任意の位置を暗号化するawkスクリプト」の補足

本書で紹介したenc_dec.awkでは,OpenSSLを使用しています。このOpenSSLですが,デフォルトのダイジェストを生成するハッシュ関数が変更されました。

OpenSSL 1.0.2(Ubuntu 16.04)以前およびLibreSSL 2.2.7(macOS 10.13)などでは,MD5がデフォルトです。OpenSSL 1.1.0(Ubuntu 18.04,Kali-Linux-2018.02など)では,SHA256がデフォルトになりました。そのため,暗号化した環境のOpenSSLと復号するOpenSSLのバージョンが異なると,正しく復号できません。

どちらのOpenSSLでも動作するようにするには,enc_dec.awkを以下のように修正してください(スクリプトはこのサイトからダウンロードできます)。

1.1に対応するための変更
enc_dec.awk 変更前

10: action="openssl aes-256-cbc -e -nosalt -base64 -pass pass:"pass
11: ...略...
12: action="openssl aes-256-cbc -d -nosalt -base64 -pass pass:"pass

enc_dec.awk 変更後

10: action="openssl aes-256-cbc -e -nosalt -base64 -md md5 -pass pass:"pass
11: ...略...
12: action="openssl aes-256-cbc -d -nosalt -base64 -md md5 -pass pass:"pass

すでに,1.1で暗号化したデータを旧バージョンでも使うには,「-md md5」という部分を「-md sha256」にします。

なお,OpenSSLのバージョンの確認は,


$ openssl version

でできます。一般的なコマンドと異なり,「-v」や「--version」ではないという点に注意してください。

商品一覧