- 西村 めぐみ, 2021: Linux + コマンド入門 — シェルとコマンドライン、基本の力。技術評論社, 269 pp. ISBN 978-4-297-12024-5.
- 出版社のサイトの本書の補足情報のページ https://gihyo.jp/book/2021/978-4-297-12024-5
2021年に出た A5判横書きのペーパーバック。
Linux で作業をするために、利用できるコマンドをひろく展望した本がほしい。フリーソフトウェアなので、メーカー提供のマニュアルがなく、オンラインドキュメントだけでは不安で、紙の本がほしくなる。しかし、売られている本は 2000年ごろにくらべて減ってしまったと思う。2022年7月に店頭で見たうちでは、本書がいちばんわたしの目的にあっていると思って買った。
Linux の概説からはじめて、一般ユーザーがつかうものもシステム管理者がつかうものもふくめて多数のコマンドがつめこまれている。ディストリビューションはおもに Ubuntu (20.04、日本語環境) をつかって実行結果をしめしている。
折りかえしのあとに目次をつける。
===== 目次 =====
Linux [基本] コマンド Quick リファレンス
はじめに — Linuxを知り、コマンドラインに親しむ
本書の構成
本書の想定読者および前提知識について
動作確認環境について
本書の補足情報について
目次
第1章 Linux とコマンド操作の基礎知識
– 1.1 そもそも Linux とは何だろう
– – いろいろなところで活躍中の Linux
– – Linux の歴史
– – Linux カーネルの誕生
– – ディストリビューション
– – [Column] GNU プロジェクトと「フリーソフトウェア」
– 1.2 学習用の環境を作ろう
– – 仮想マシンを使用するメリット
– – ディストリビューションの選択
– – インストールのポイント
– – [Column] Windows Subsystem for Linux (WSL)
– 1.3 Linux を起動してみよう
– – BIOS / UEFI
– – ブートローダー
– – システムの初期化
– – ログイン
– – シェル
– 1.4 コマンドを入力してみよう
– – 端末エミュレーター
– – プロンプト
– – 端末をクリアしたい場合
– – 中断する
– – 端末が無反応になってしまったら?
– – コマンド名を間違えると、どうなる?
– – オプション
– – [Column] 「もしかして」を表示しているのは 「command-not-found」
– – 引数
– – オプションや引数を間違えるとどうなる?
– – 管理者権限が必要なコマンドを実行する
– – コマンドの使い方を調べる (1)
– – コマンドの使い方を調べる (2)
– – [Column] マニュアルやヘルプのキー表記
– 1.5 コマンドラインの便利な操作
– – 入力内容の修正
– – コマンドラインの再利用
– – コマンドライン入力の補完
– – [まとめ] コマンドラインで使えるキー操作
– – [Column] 「端末」って何だろう?
第2章 ファイルとディレクトリ
– 2.1 Linux のディレクトリツリー
– – ルートディレクトリ
– – ls コマンド
– – /bin と /usr/bin
– – [Column] 日本語のディレクトリ名をアルファベットに変更するには
– 2.2 ディレクトリと「パス」の表し方
– – pwd コマンド
– – cd コマンド
– – ホームディレクトリ
– – 「.」 と 「..」
– – 絶対パス
– – 相対パス
– – [まとめ] ディレクトリを表す記号
– – [Column] 「~」 (チルダ) を使ったパス指定
– 2.3 ファイル操作の基本コマンド 81) ファイルやディレクトリの作成 / 削除
– – mkdir コマンド
– – rmdir コマンド
– – touch コマンド
– – cat コマンド
– – rm コマンド
– – [Column] コマンドの確認メッセージはつねに表示するべき?
– – cp コマンド
– – mv コマンド
– – [Column] カレントディレクトリとプロンプト
– 2.4 ドットファイル
– – ドットファイルとは
– 2.5 ファイルの属性とパーミッション
– – 「ls -l」 コマンド
– – パーミッションの表示
– – stat コマンド
– – chmod コマンド
– – ファイルのパーミッション
– – ディレクトリのパーミッション
– – umask
– – chown / chgrp コマンド
– – [Column] 特別なパーミッション
– 2.6 ハードリンクとシンボリックリンク
– – iノード
– – ハードリンク
– – 「ハードリンク数」の意味
– – ハードリンクの作成と削除
– – シンボリックリンク
– – ln -s コマンド
– – シンボリックリンクの削除
– – シンボリックリンクのコピー
– – ディレクトリのシンボリックリンク
– 2.7 ファイル操作の基本コマンド (2) ファイルを調べる / 探す / 圧縮する
– – ls コマンド
– – file コマンド
– – find コマンド
– 2.8 ファイルの圧縮と伸張
– – 圧縮ファイルとアーカイブの違い
– – gzip コマンド
– – tar -c コマンド
– – tar -t コマンド
– – tar -x コマンド
– – zip / unzip コマンド
第3章 シェル & コマンドライン
– 3.1 シェルの役割
– – シェルの種類
– – ps コマンド
– – ログインシェル
– – プロンプト
– – 環境変数とシェル変数
– – コマンド実行に必要なルール
– – ビルトインコマンド
– – type コマンド
– – コマンドの優先順位
– – パス付きのコマンド実行
– – [Column] 「POSIX」って何だろう?
– 3.2 コマンド入力を助ける操作
– – 補完機能
– – ヒストリ機能
– – エイリアス
– – パス名展開 * ? []
– – 拡張パターンマッチング (9 ? * + @ !
– – ブレース展開 { }
– – チルダ展開 「~」
– – クォート
– – [Column] 引用符と複数行の入力
– 3.3 パイプとリダイレクト
– – パイプ 「|」
– – リダイレクト 「>」
– – 標準エラー出力
– – ヌルデバイス
– – リダイレクトの追加
– – 標準入力のリダイレクト
– – tee コマンド
– – [まとめ] パイプとリダイレクト
– 3.4 複数のコマンドを組み合わせて実行する
– – 複数のコマンドを 1行で事項 ; && || &
– – 実行結果を利用して実行する “ $()
– – xargs コマンド
– 3.5 シェルの設定
– – set / shopt コマンド
– – [まとめ] 環境変数、シェル変数とシェルオプション
– – シェルの設定ファイル
– – source コマンド (ドットコマンド)
– 3.6 zsh 概論
– – zsh のインストールと起動
– – ログインシェルの変更
– – zsh の設定
– 3.7 シェルとシェルスクリプト
– – シェルスクリプト
– – シェルスクリプトを作るには
– – その他のスクリプト言語
第4章 テキスト操作
– 4.1 ファイルを表示する
– – cat コマンド
– – head / tail コマンド
– – more コマンド
– – less コマンド
– 4.2 文字列の検索と正規表現
– – grep コマンド
– – 正規表現
– – 基本正規表現と拡張正規表現
– 4.3 テキストを加工する
– – wc コマンド
– – sort コマンド
– – uniq コマンド
– – tr コマンド
– – diff コマンド
– – patch コマンド
– – sed コマンド
– – awk お万度
– 4.4 テキストエディタ [vi / vim]
– – vi / vim の基本
– – ノーマルモードと挿入モード
– – vi / vim の 起動 & 終了
– – vumtutor の 起動 & 終了
– – vi / vim のおもなコマンド
– – [Column] 親しみやすいテキストエディタ 「nano」
第5章 パッケージ管理
– 5.1 パッケージ管理システム
– – パッケージのインストール
– – 依存関係を解消する
– – リポジトリ
– 5.2 apt コマンド … deb パッケージを操作する (Ubuntu)
– – パッケージのインストールと更新
– – パッケージの削除
– – パッケージの検索と情報の表示
– – パッケージの一覧表示
– – インストール済みのパッケージを更新する
– – リポジトリの追加と削除
– – [Column] Snap パッケージを操作する
– 5.3 dnf / yum コマンド .. rpm パッケージを操作する (CentOS)
– – パッケージのインストールと更新
– – パッケージの削除
– – パッケージの検索と情報の表示
– – パッケージの一覧表示
– – リポジトリの有効化と無効化
– – [Column] ロックファイルの役割
– 5.4 Git と GitHub
– – Git の基礎知識
– – git コマンド
– – [Column] ソースコードからの構築に挑戦
第6章 ユーザーとプロセス
– 6.1 ユーザー管理の基礎知識
– – ユーザー ID と グループ ID
– – ld コマンド
– – システムユーザー
– – passwd コマンド
– – /etc/passwd と /etc/shadow
– – sudo コマンド
– – [Column] CentOS で sudo が使用できない場合
– – su コマンド
– 6.2 ユーザーとグループの追加と削除
– – adduser / useradd コマンド
– – userdel コマンド
– – usermod コマンド
– – chsh コマンド
– – groupadd / groupdel コマンド
– – gpasswd コマンド
– – [Column] 共有ディレクトリで SGID の設定を試してみよう
– 6.3 プロセス
– – ps コマンド
– – プロセスと端末
– – サーバープロセス
– – プロセスの状態
– – プロセスの所有者
– – プロセス ID と プロセスの親子関係
– – top コマンド
– 6.4 ジョブコントロール
– – ジョブコントロールの基礎知識
– – jobs コマンド
– – ジョブの停止と再開
– – [Column] プロセス、スレッド、プロセスグループ、セッション、ジョブ、そしてタスク
– 6.5 シグナル
– – kill コマンド
– – [Column] systemctl の役割と使い方
– – killall コマンド
– – シグナルの種類
– 6.6 デバイスとファイルシステム
– – ファイルシステムの種類
– – フォーマット
– – パーティション
– – ボリューム
– – マウント
– – デバイスファイル
– – lsblk コマンド
– – df コマンド
– – 何がどのようにマウントされているのかを調べてみよう
– – ファイルのマウントとアンマウント
– – [Column] ディスクを柔軟に管理できる LVM [論理ボリュームマネージャ]
第7章 ネットワーク概論
– 7.1 ネットワークの基礎知識
– – TCP/IP
– – TCP/IP の 4つの層
– – IPv4 と IPv6
– – IPv4
– – [Column] IPアドレスとサブネットマスクの歴史
– – IPv6
– – DNS
– – ポート番号
– – NAT と NAPT
– – ファイアウォール
– 7.2 ネットワーク用の基礎コマンド
– – ip a コマンド
– – ip l コマンド
– – ip r コマンド
– – ip n コマンド
– – ping コマンド
– – mtr コマンド
– – nslookup コマンド
– 7.3 SSH
– – SSHサーバーのインストールと設定
– – SSHクライアントからの接続
– – ssh コマンド
– – 公開鍵方式による接続
– – ssh-keygen コマンド
– – ssh-copy-id コマンド
– – [Column] X Window System を SSH経由で動かしてみよう
Appendix コマンドラインで広がる世界
– A.1 WordPress
– – WordPress に必要なパッケージ
– – インストール内容の概要
– – Apache のインストール
– – PHP のインストール
– – MariaDB のインストール
– – WordPress のインストール
– A.2 Python
– – Python のバージョン
– – Python の仮想環境
– – pyenv による仮想環境
– – ライブラリの追加
– A.3 Raspberry Pi
– – Raspberry Pi の基礎知識
– – Raspberry Pi に OS をインストールする
– – Rapsberry Pi に SSH で接続する
索引