ゼロからわかる Linuxコマンド200本ノック
―基礎知識と頻出コマンドを無理なく記憶に焼きつけよう!

[表紙]ゼロからわかる Linuxコマンド200本ノック ―基礎知識と頻出コマンドを無理なく記憶に焼きつけよう!

紙版発売
電子版発売

A5判/400ページ

定価2,640円(本体2,400円+税10%)

ISBN 978-4-297-13425-9

電子版

→学校・法人一括購入ご検討の皆様へ

書籍の概要

この本の概要

Linux OSの操作に必要なLinuxコマンドは,無味乾燥と感じられるものも多く,覚えづらさに悩まされる初学者も多いようです。本書では,Linux操作の効率を高めるため,覚えてしまったほうが効率が良い,実務における頻出コマンドと,コマンド操作に関連する重要事項だけを厳選して取り上げます。

習得のためのアプローチとして「200本ノック」というスタイルを採り,「Linuxの頻出コマンドをやさしく学び,長期記憶に焼きつけて忘れないようにする」ため,次のようなコンセプトで構成しました。

  • コマンドやオプションの「由来」をできる限り解説
  • 「なぜ?」「そもそも?」がわかるように,丁寧にかみ砕いて解説
  • 「200問」の演習問題で記憶に「こびりつける」

Linuxコマンドは,エンジニアとして必須ながら,一度学んでしまえばとても長い間使える「超高コスパ」の知識です。本書を通して,長期記憶に焼き付けて一生モノのスキルを手に入れましょう。

こんな方におすすめ

  • Linux初学者の方
  • とくに,Linux コマンドが覚えられずに悩んでいる,Linux コマンドを毎回検索している,Linux コマンドを「なんとなく」で使っているという方

目次

  • はじめに
  • なぜノックで効率的な学習ができるのか?
  • 本書の構成・本書の取り組み方

第1章 Linuxの基本

  • 1.1 Linuxとは
    • OS(Operating System)とは
  • 1.2 Linuxカーネルとは
  • 1.3 Linuxディストリビューションとは?
  • 1.4 Linux OSとサーバー
    • サーバーとは
    • IaaSとは
  • 1.5 GUIとCLI
  • 1.6 なぜLinuxコマンドを学ぶ必要があるのか?
  • 1.7 物理マシンと仮想マシン
  • 1.8 環境構築
    • なぜUbuntuなのか
    • VirtualBoxのインストール
    • VirtualBoxのインストールに失敗した場合
    • Ubuntuのダウンロード
    • VirtualBoxで仮想マシンの作成
    • Ubuntuのインストール
    • ログインと初回起動時の設定
    • rootユーザー(スーパーユーザー)の設定
    • 画面サイズをウィンドウサイズに合わせる方法
    • 仮想マシンの終了方法
  • コラム CentOSのサポート終了について
  • 1.9 Linuxを学びやすくする3つの観点
  • 章末ノック 問題

第2章 ファイルとディレクトリ

  • 2.1 Linuxのディレクトリ構成
    • ルートディレクトリ
    • カレントディレクトリ
  • 2.2 カレントディレクトリを表示する pwdコマンド
    • パス
    • ホームディレクトリ
  • 2.3 絶対パスと相対パス
    • 絶対パスと相対パスの使い分け
  • コラム パスの長さと依存
  • 2.4 ディレクトリの中身を一覧表示する lsコマンド
    • コマンドの引数
    • コマンドのオプション
  • 2.5 カレントディレクトリを変更する cdコマンド
  • 2.6 Linuxの歴史
    • UNIX系OS
    • Linuxの誕生
  • コラム リーナス・トーバルズについて
  • 2.7 標準規格
    • 標準規格のメリット
  • 章末ノック 問題

第3章 シェルとコマンドラインの基本

  • 3.1 シェルと端末
    • 端末とは
  • 3.2 シェルの種類とログインシェル
    • シェル変数
    • ログインシェルとは
    • シェルの種類
  • 3.3 プロンプトとコマンドライン
  • コラム 用語を丁寧に使う
  • 3.4 コマンドが実行される流れ
  • 3.5 OSと抽象化
    • OSは抽象化の層からなる
  • コラム その他の抽象化の例
  • 3.6 コマンドラインの基本操作
    • カーソル移動
    • 文字の削除
    • 入力補完機能
    • コマンド履歴とhistoryコマンド
  • 3.7 コマンドのオプション
    • オプションの種類
    • 引数を持つオプション
  • 3.8 l sコマンドの主なオプション lsコマンド
    • 隠しファイルも含めて表示する -a,-Aオプション
    • 詳細情報を含めて表示する -lオプション
    • ファイル種別を末尾に含めて表示する -Fオプション
    • 引数に指定したディレクトリ自体を表示する -dオプション
    • オプションの注意点
  • 3.9 コマンドの調べ方 manコマンド
    • コマンドのヘルプメッセージを表示する --helpオプション
  • コラム Linuxコマンドという用語について
    • コマンドのマニュアルを表示する manコマンド
  • コラム マニュアルを日本語化する方法
  • コラム 学習の継続が最優先
  • 章末ノック 問題

第4章 ファイル操作のコマンド

  • 4.1 ディレクトリを作成する mkdirコマンド
    • 複数のディレクトリを一括作成
    • 複数階層のディレクトリを一括作成する -pオプション
    • 既存のディレクトリ名を指定した場合
  • 4.2 空のファイルを作成する touchコマンド
  • 4.3 ファイルやディレクトリを削除する rm・rmdirコマンド
    • rmコマンドによるファイルの削除
    • rmコマンドによるディレクトリの削除 -rオプション
    • 削除前に確認メッセージを表示する -iオプション
    • rmdirコマンドで空のディレクトリを削除する
    • 削除のコマンドの注意点
  • 4.4 ファイルの中身を(連結して)表示する catコマンド
    • 行番号付きで表示する -nオプション
    • catコマンドの引数の省略
  • コラム catコマンドの連結機能
  • 4.5 ファイルの一部だけを表示する head・tailコマンド
    • ファイルの監視を行う tail -f
  • コラム head・tailコマンドをフィルタとして使う
  • 4.6 スクロール表示する lessコマンド
    • lessコマンドの検索機能
  • コラム コマンドの出力をスクロール表示する
  • 4.7 ファイルやディレクトリをコピーする cpコマンド
    • コピー先に存在しない名前を指定した場合
    • コピー先にディレクトリを指定した場合
    • 上書きコピー前に確認メッセージを表示する -iオプション
    • ディレクトリをコピーする -rオプション
  • 4.8 ファイルやディレクトリを移動・改名する mvコマンド
    • ファイルやディレクトリの移動
    • 上書き前に確認メッセージを表示する -iオプション
    • 名前の変更
  • 4.9 楽に引数を指定する方法 チルダ展開・パス名展開・ブレース展開
    • ホームディレクトリの簡単な表現 チルダ展開
    • ファイルをパターンでまとめて指定する パス名展開
    • 複数の文字列を生成する ブレース展開
  • 4.10 「~」「*」「{ }」などの文字を展開させずに使う エスケープ
  • 4.11 リンクを作成して別名で呼び出せるようにする lnコマンド
    • 2種類のリンク
    • ハードリンク
    • ハードリンクとrmコマンド
    • シンボリックリンク
    • シンボリックリンクはディレクトリにも作成可能
    • シンボリックリンクの削除
    • 別名を付けるメリット
  • 4.12 ファイルやディレクトリを見つけ出す findコマンド
    • ワイルドカードの使用
    • 条件を組み合わせた検索
  • 章末ノック 問題

第5章 パーミッションとスーパーユーザー

  • 5.1 パーミッションはなぜ必要なのか?
    • フールプルーフな設計
  • 5.2 パーミッションを表示する ls -l
    • オーナーと所有グループ
    • パーミッションの単位
    • パーミッションの読み方
    • ディレクトリのパーミッション
  • 5.3 パーミッションを変更する chmodコマンド
    • シンボルモード
    • 数値モード
    • chmodコマンドの注意点
  • 5.4 スーパーユーザーとは
    • スーパーユーザー(rootユーザー)とは
  • コラム スーパーユーザーの権限が必要な場面
  • 5.5 スーパーユーザーに切り替える suコマンド
    • 一般ユーザーに戻る
    • ユーザーを切り替える suコマンド
  • 5.6 スーパーユーザーとしてコマンドを実行する sudoコマンド
    • suコマンドの問題点
    • sudoコマンドとは
    • sudoコマンドのメリット
    • sudoコマンドの設定
  • 章末ノック 問題

第6章 Vimの基本

  • 6.1 Vimとは
    • Vimのインストール
    • Vimでファイルを開く
    • Vimを終了する
  • 6.2 Vimとモード
    • モードとは何か?なぜ必要なのか?
    • 4つのモード
  • 6.3 コマンドラインモード
    • vimコマンドで新規ファイルを作成する
    • ファイルを上書き保存する
    • ファイルに変更を加えた場合の終了方法
  • 6.4 インサートモード
  • 6.5 ノーマルモード
    • カーソル移動
    • 文字の削除
    • UndoとRedo
  • 6.6 ビジュアルモード
    • 選択範囲のコピー・削除
  • コラム Vimの情報源
  • 章末ノック 問題

第7章 標準入出力の活用

  • 7.1 標準入出力(stdio)とは
    • 入力と出力
    • 標準入出力(stdio)のメリット
  • 7.2 リダイレクト
    • 標準出力のリダイレクト
    • 出力先に既存のファイルが指定された場合
    • 標準エラー出力のリダイレクト
    • 標準出力と標準エラー出力を両方リダイレクト
    • 標準入力のリダイレクト
    • リダイレクトのまとめ
  • 7.3 /dev/null
    • /dev/nullの用途
  • 7.4 パイプライン
    • パイプラインのメリット
  • 章末ノック 問題

第8章 テキスト処理の基本コマンド

  • 8.1 フィルタとは
  • 8.2 入力の行数や単語数などを出力する wcコマンド
  • 8.3 入力を並べ替えて出力する sortコマンド
    • 指定した列で並べ替える -kオプション
    • 数値順に並べ替える -nオプション
    • 並べ替えて重複を取り除く -uオプション
  • 8.4 入力の重複を取り除いて出力する uniqコマンド
    • 重複回数をカウントする -cオプション
    • テキスト処理の結果を保存する
  • 8.5 入力の文字を置換して出力する trコマンド
    • 複数文字列の置換
    • ファイルの指定方法
    • 文字の削除 -dオプション
  • 8.6 入力から指定した文字列を含む行だけを出力する grepコマンド
    • 正規表現とは
    • 正規表現の種類
  • 8.7 入力から指定した列だけを出力する awkコマンド
    • 区切り文字を指定する -Fオプション
    • 複数の列を指定する・順番を入れ替える
  • コラム sedコマンド
  • 章末ノック 問題

第9章 プロセスとジョブ

  • 9.1 プロセスとは psコマンド
    • プロセスを一覧表示する psコマンド
    • なぜプロセスでプログラムの実行を管理するのか
  • 9.2 psコマンドでよく使うオプション psコマンド
    • psコマンドのBSDオプション
    • 詳細情報付きでプロセスを表示 uオプション
    • 端末を持たないプロセス(デーモン)も含めて表示 xオプション
    • すべてのユーザーのプロセスを表示 aオプション
  • 9.3プロセスの親子関係
    • プロセスが複製によって作成される理由
    • プロセスの親子関係も含めて表示 fオプション
  • 9.4ジョブとは
    • なぜプロセスとジョブのどちらも必要なのか
  • 9.5 ジョブの一覧を表示する jobsコマンド
    • プロセスIDも含めて表示 -lオプション
  • 9.6 フォアグラウンドとバックグラウンド fg・bgコマンド
    • ジョブをフォアグラウンドにする fgコマンド
    • ジョブをバックグラウンドにする bgコマンド
    • バックグラウンドで実行する &
  • 9.7 プロセスとジョブの終了 killコマンド
    • プロセスを終了する
    • バックグラウンドジョブ・停止中のジョブを終了する
    • フォアグラウンドジョブを終了する
  • 9.8 シグナルを送信する killコマンド
    • キー入力でシグナルを送信する
  • 章末ノック 問題

第10章 Bashの設定

  • 10.1 エイリアスを設定する aliasコマンド
    • コマンドを組み合わせてオリジナルのコマンドを作成する
    • 設定されているエイリアスを確認する
  • 10.2 コマンドの種類を確認する typeコマンド
    • コマンドの3種類
    • すべての種類を表示する -aオプション
  • 10.3 コマンドの優先度
    • 元のコマンドを実行したい場合
  • 10.4 シェル変数
    • シェル変数を一覧する setコマンド
    • 役割を持つシェル変数
  • 10.5 環境変数
    • 環境変数を一覧表示する printenvコマンド
    • 環境変数を定義する exportコマンド
    • 環境変数は子プロセスにも受け継がれる
    • 環境変数のメリット
  • 10.6 代表的な環境変数
    • ロケールを設定する LANG
    • コマンドを検索するディレクトリのパス PATH
  • 10.7 Bashの設定ファイル
    • 設定はプロセス固有のもの
    • ~/.bashrcとは
    • ~/.bashrc以外の設定ファイル
  • 章末ノック 問題

第11章 シェルスクリプト入門

  • 11.1 シェルスクリプトとは
    • シェルスクリプトとは
    • シェルスクリプトのメリットと用途
  • 11.2 シェルスクリプトを作成してみよう
    • シバンとシェルスクリプト
    • シェルスクリプトのその他の機能
  • 11.3 シェルスクリプトを実行してみよう
    • シェルスクリプトの3つの実行方法
    • 3つの方法の違いとベストな実行方法
    • シェルスクリプト置き場にパスを通す
  • 章末ノック 問題
  • 章末ノック 解答

著者プロフィール

ひらまつしょうたろう

教育活動をメインに行うソフトウェアエンジニア。京都大学農学部卒業。元塾講師のエンジニアとして,「本質・唯一・効率」をキーワードにプログラミング教育を行う。対面で500人以上,オンラインで5万人以上が受講。ストアカ優秀講座賞受賞。オンライン動画学習サービスUdemyの講座に「もう絶対に忘れないLinuxコマンド」「はじめてのソフトウェアテスト技法」などがあり,ベストセラー多数。