ゼロからわかる Linuxコマンド200本ノックー基礎知識と頻出コマンドを無理なく記憶に焼きつけよう!
書籍情報
発売日 : 2023年03月08日
著者/編集 : ひらまつ しょうたろう
出版社 : 技術評論社
発行形態 : 単行本
書籍説明
内容紹介
本書は、「Linuxの頻出コマンドをやさしく学び、長期記憶に焼き付けて忘れないようにする」ために作成されました。本書では、覚えてしまったほうが効率がいい、実務における最頻出コマンドと、コマンド操作に関連する重要事項だけを集中的に学んでいきます。「記憶に焼き付けて忘れない」を実現するために、次のような工夫を凝らしました。コマンドやオプションの「由来」をできる限り解説。「暗記がいらなくなるレベル」の理解を目指した、とことん丁寧な解説。「200問」の演習問題で記憶にこびりつく。本書で紹介する厳選された内容を、しっかりと長期記憶に残すことで、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つの方法の違いとベストな実行方法
- シェルスクリプト置き場にパスを通す
章末ノック 問題
○章末ノック 解答
○なぜノックで効率的な学習ができるのか?
○本書の構成・本書の取り組み方
●第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コマンド」「はじめてのソフトウェアテスト技法」などがあり、ベストセラー多数。
ひらまつ, しょうたろう