Amanjackのブログ

プログラミング初心者、FX初心者の成長日記

新しいLinuxの教科書〈書評〉

新しいLinuxの教科書

新しいLinuxの教科書

 

 

新しいLinuxの教科書。 

 

振り返ります。

 

ページ数:425ページ

読書時間:約20時間

 

タイトルを見ればだいたい内容はわかると思いますが、この本はLinuxをあまり知らない方に向けたLinuxの入門書です。上司に「Linuxはどこでも使うから使えるようになっておけ」と言われたのがきっかけで勉強を始めました。初心者なので体系的に学びたいと思い書籍をネットで調べたところ評価が高かった本書を購入しました。

 

Chapter 01 Linuxを使ってみよう

Linuxの概要の説明が簡単にあり、続いてLinuxの環境を構築します。CentOSと言うLinuxのソフトウェアパッケージを使用します。

 

  1. Oracle VM VirtualBoxのインストール
  2. Oracle VM VirtualBox仮想マシンの作成
  3. CentOSイメージファイルのインストール
  4. CentOS 7 のインストール
  5. ログイン、ログアウト、シャットダウンの方法

 

Chapter 02 シェルって何だろう?

シェルとはLinuxカーネルとユーザをつなげるインタフェースとなっているソフトウェアのことです。この章を読んでやっと、今まで疑問だったMacのターミナルとWindowsコマンドプロンプトLinuxの違いが理解できました。

 

  • シェル Linuxカーネルのインターフェースとなっているソフトウェアのこと「sh」「csh」「bash」「tcsh」「zsh」などの種類がある
  • Linuxカーネル CPUやメモリなどのハードウェアに関する管理とコマンド実行やジョブプロセスの管理もしているOSの中核部分の機能のこと
  • ターミナル 入出力するウィンドウ画面を提供するソフトウェアのこと
  • プロンプト シェルに表示されるユーザ名・ホスト名・ディレクトリ・$マークなどのこと

 

Chapter 03 シェルの便利な機能

シェルの基本的な操作方法を学びます。カーソルの移動、カットとヤンク、コマンドの入力方法などの操作方法が通常のOSとはやり方が違うため、覚えることがたくさんあります。習うより慣れないといけない感じです。

 

Chapter 04 ファイルとディレクト

Linuxのファイル構成やファイルに関する基礎知識とディレクトリの移動の仕方などを学びます。

 

 

Chapter 05 ファイル操作の基本

ファイルの作成・コピー・削除などのファイルの操作を学びます。登場するコマンドとオプションが多すぎて覚えきれません(涙)

 

  • mkdir ディレクトリを作成
  • touch ファイルを作成
  • rm ファイルを削除
  • rmdir ディレクトリを削除
  • cat ファイルの内容を表示
  • less ファイルの内容をスクロールと共に表示
  • cp ファイルやディレクトリをコピー
  • mv ファイルを移動
  • ln ファイルやディレクトリのリンクを作成

  

Chapter 06 探す、調べる

ファイルを探す方法や、コマンドを調べる方法を学びます。

 

  • find ディレクトリツリーからファイルを探す
  • locate データベースからファイルを探す
  • --help コマンドのヘルプメッセージを表示するオプション
  • man コマンドのマニュアルを表示
  • which コマンドのパスを表示

 

Chapter 07 テキストエディタ

Linuxの標準エディタのVimに関して学びます。インストールから始まり、起動と終了、ファイルの開き方と保存と終了、カーソルの移動と文字の入力と削除、検索と置換などの基本操作を学びます。このVimもシェルと操作方法が全然違うので覚えるのが大変です💦

 

Chapter 08 bashの設定

シェルの環境を操作し、快適な環境にカスタマイズするためのbashの設定方法を学びます。

 

  • alias コマンドの初期設定にオプションを追加
  • set シェルの設定のオプションをオンオフする
  • shopt setコマンドと同じくシェルの設定のオプションをオンオフするが、設定できるオプションが違う
  • シェル変数 シェルの内部で使用される変数
  • 環境変数 外部コマンドからも値を参照できる変数
  • 組み込みコマンド シェル自体に内臓しているコマンド
  • 外部コマンド シェルの外側であるファイルシステム上に置かれているコマンド

 

Chapter 09 ファイルパーミッション、スーパーユーザー

ファイルパーミッションとはファイルに対するアクセス権限の情報のことです。chmodコマンドでアクセス権限の変更を行います。スーパユーザとは管理者権限を持つ特別なユーザのことで強い権限を持ちます。rootユーザともいいます。

 

Chapter 10 プロセスとジョブ

プロセスとはメモリ上にある実行中のプログラムのことです。シェルからコマンドを実行して、Linuxカーネルが実行ファイルを読み取りメモリに格納して、メモリの内容に沿ってCPUがプログラムを実行します。

 

ジョブとはシェルから見た処理の単位です。プロセスはLinuxカーネルから見た実行ファイルの単位で、ジョブはシェルから見た実行ファイルの単位です。

 

Chapter 11 標準入出力とパイプライン

コマンドを組み合わせてコマンド同士を連携する仕組みを学びます。

 

  • 標準入力 キーボードからプログラムに働きかける入力のこと
  • 標準出力 プログラムからディスプレイに出力すること
  • 標準エラー プログラムのエラーメッセージを出力すること
  • リダイレクト 標準入出力を変更する機能のこと
  • パイプライン コマンドの出力を別のコマンドに繋ぐ機能のこと
  • フィルタ コマンドから出力した情報を入力として受け取ることができるコマンドのこと

 

Chapter 12 テキスト処理

テキスト処理を行うコマンドを学びます。

 

  • wc バイト数・単語数・行数を数える
  • sort 行を並べ変える
  • uniq 重複した行を取り除く
  • cut 入力の一部を切り出す
  • tr 文字を変換・削除する
  • tail 末尾部分を表示する
  • diff 差分を表示する

 

Cahpter 13 正規表現

正規表現とは文字列を表現する記法のことです。正規表現は他のプログラミング言語やオフィスソフトなどテキスト処理をする上で様々な場所で利用するのでとても重要です。

 

Chapter 14 高度なテキスト処理

sedコマンドとawkコマンドを学びます。sedコマンドは文字列を削除したり置換したりして高度で効率的なテキスト処理を行えます。awkコマンドはsedよりも高度なテキスト処理が行えるコマンドです。

 

Chapter 15 シェルスクリプトを書こう

シェルスクリプトとはコマンドラインを事前に設定しておくファイルのことで、自分でコマンドを組み合わせて作ることができます。シェルスクリプトの作成方法、仕組みなどを学びます。Chapter 15 〜 17はシェルスクリプトに関する説明です。

 

 

Chapter 16 シェルスクリプトの基礎知識

引き続きシェルスクリプトの説明が続きます。プログラミング言語でもおなじみのif文、for文、case文、while文が登場します。

 

  • 変数 プログラミング言語でもよく使う値を格納する入れ物のこと
  • クォーティング ' シングルクォートか " ダブルクォートで囲んでメタ文字の解釈をさせないこと
  • 位置パラメータ コマンドラインから引数を用いて扱う変数のこと
  • シェル関数 処理をひとまとめにする関数のこと

 

Chapter 17 シェルスクリプトを活用しよう

シェルスクリプトに関する最後の章です。日記を書くフォーマットを作るシェルスクリプトや指定したディレクトリのファイルを一覧表示するシェルスクリプトや高機能な検索ができるシェルスクリプトの演習を通して一連の流れを学んでいきます。

 

Chapter 18 アーカイブと圧縮

windowsではアーカイブと圧縮を同時に行いますが、Linuxでは別々に行います。アーカイブとは複数のファイルをまとめて一つにしたファイルのことです。圧縮とはファイルを小さくすることで、ファイルにある様々な冗長性を排除します。

 

  • tar ファイルをアーカイブするコマンド
  • gzip ファイルを圧縮する
  • bzip2 gzipよりも圧縮率が高いが時間が掛かる
  • zip アーカイブと圧縮を同時にするが、Linuxではあまり使われない

 

Chapter 19 バージョン管理システム

バージョン管理システムとはファイルの変更履歴を保存して管理するためのツールです。本章では特に有名なGitを学びます。

 

  • リポジトリ ファイルの変更履歴を保存している場所
  • インデックス コミットする前の段階を保存している場所
  • ワークツリー 現在のファイルを展開している場所
  • リビジョン ある時点での履歴の状態
  • ブランチ リビジョンが枝分かれした履歴の道筋
  • git init リポジトリを作成する
  • git add インデックスにファイルを登録する
  • git commit インデックスにあるファイルをリポジトリに登録する
  • git status 現在のワークツリーの状態を表示する
  • git log 変更の履歴を表示する
  • git diff コミットの情報の差分を表示する

 

おわりに

勉強になり満足感もあり非常に面白かったです。大変わかりやすく読み進めるのに苦労はありませんでした。ただ、この手の技術書を読むときは毎回そうですが読むのに時間が掛かります。本書も例に漏れず理解するのに時間が掛かり読み終えるのが大変でした。