エンジニアやっていたら避けられないのが「ターミナル」です。なんとなくcdとlsは使えるけど、パスを通すって言われてもよくわからないし、しょっちゅうアクセス権限で怒られている…そんなわたしにぴったりの、わかりやすいLinuxの入門書でした。
2023年6月現在、kindle unlimitedで0円で読めますね!
全体の感想
6章構成になっていて、各章は1時間ずつ計4時間の項目にわかれています。勉強の計画が立てやすくていいですね。各時間の最後には演習問題もあります(解答解説が本の末尾に載っています)。コマンドライン操作って、とくにワイルドカードやパイプなどはどう使っていいかわからないんですよね…この本は、それぞれのコマンドについて使用例が載っていますし、たとえば「.htmから.htmlに拡張子を変換するにはどうしたらいいか?」のような実用的な例も載っていて、コマンドを使うイメージがわきやすくなっています。
文章も読みやすいですし、各項目の分量も多過ぎず少な過ぎずでとりかかりやすい本だと思います。基本的なコマンドからviエディタ、シェルや環境変数のことまで取り扱っていて、内容も充実しています。
データサイエンティストならば、EC2インスタンスやDockerコンテナはUbuntuで作ることが一般的ですので、やはり基本的なLinuxの知識は必要だと思います。「自分はWindowしか使わないからLinuxは関係ない」とは言えないんですよね…苦手意識がある方でも、この本なら徐々にレベルアップできると思いますし、「ある程度使っているけど、もっと便利なコマンドライン操作があるなら知りたい」という方にとっても参考になるとてもいい本だと思います。
各章の感想
1日目 ようこそコマンドラインの世界へ
1時間目 LinuxなどUNIX系OSってどんなOS?
UNIXの歴史からはじまってちょっとわくわくしますね!Linux開発の中心人物であるリーナス・トーバルズさんって、Gitも開発しているんですね。めちゃくちゃ天才でびっくりします。
2時間目 ターミナル・エミュレータを使ってみよう
ターミナルエミュレータの項目は、まずcalコマンドから入って、「コマンドを入力したらエンターを押すんですよ」というレベルのことからスタートしてくれるので、まったくコマンドラインを触ったことがない人でもついていけるようになっていると思います。
3時間目 ファイルシステムを探検する、4時間目 コマンドラインの操作テクニック
ディレクトリ構造の話があり、ディレクトリ操作に必要な「pwd, cd, ls」コマンドの説明があります。また、cpコマンドの説明もあり、これらコマンドの使用例を見ながらディレクトリ構造についての理解が深まる構成になっています。
2日目 ターミナル・エミュレータを使ってみよう
1時間目 これだけは押さえておきたいシェルの基本操作
使いこなせるととっても便利なワイルドカードについて、使用例とともに説明があります。ワイルドカードを使う上で注意が必要な「ファイル名にワイルドカードの文字が含まれる場合」や「ワイルドカードは先頭のピリオドに一致しない」についても言及があり、初心者がひっかかりそうなポイントが押さえられています。
また、catコマンドを使用して標準出力・標準入力のリダイレクションの説明があります。この辺は本を通して使用例が出てきますので、ここでいまいちしっくりこなくても、本を読むうちに理解できるようになっています。
2時間目 ディレクトリを操作する
rmコマンドと、lsコマンド再び。rmコマンドはやり直しが効かないので、実行するときはいつもちょっとどきどきします…また、UNIXのディレクトリ構造についても説明があり、/devや/etc/、/user/binなど役割のあるディレクトリについて理解が深まります。パスを通すときにこのへんの知識が必要なんですよね。
3時間目 ファイルの移動とコピーについて
mvコマンドとrmコマンドについてです。ワイルドカードを使った事例もあって、すぐに役に立ちそうです。
4時間目 ファイルを別名でアクセスするリンク
リンクの項目はちょっと難しかったです。あまり使ったことがないからというのもあると思いますが…
3日目 テキストファイルを扱うためのノウハウ
1時間目 テキストファイルの中身を表示する
cat, head, tail, lessコマンドを使って、テキストファイルの中身を表示する方法について学びます。ここで再登場するのが2日目1時間目で学んだパイプで、改めてここで説明があることで理解が深まります。また、改行コードや文字コードについての説明もあります。
2時間目 テキストファイルから必要な行を取り出す
よく使うgrep, fgrep, eprepについてです。使用例が多く載っているので、使うイメージがわきやすいです。正規表現、便利なのはわかるんですがなかなか覚えられない…最近はネット上に「正規表現チェッカー」なるサイトが複数あるので、必要になったときは利用しています。
3時間目 viエディタの操作(1)、4時間目 viエディタの操作(2)
2時間にわたってviエディタの操作を取り扱います。viエディタはテキストエディットやメモ帳などのエディタとは使い方がかなり異なるので、慣れないと難しいですよね。まず←↑↓→のカーソルキーが使えないのが…(vimだと使えたはず)2時間で基本的な使い方については説明があるのですが、これは「習うより慣れろ」という感じがします。EC2インスタンス上など、viで編集するしかない場面も時折ありますので、早く慣れておきたいところです。
4日目 より高度なコマンドにチャレンジ
1時間目 やはりマニュアルは大事
コマンドの使い方を調べるman, apropos, whatisコマンド。とはいえ最近はネットで調べると詳しい説明があるのでついついそちらを使ってしまいますね。また、コマンドがどこにあるかを調べるtype, whichコマンドについても。
2時間目 ファイルの場所もコマンドラインで一発検索
find, locateコマンドについてです。ワイルドカードやオプションを使った検索、パイプを使って検索結果を出力する方法など、すぐに役立ちそうな事例が載っています。
3時間目 ファイルの圧縮と解凍
圧縮といえば.zipという感じですが、いろいろなフォーマットがあるんですね。gzip, gunzip, bzip, zcat, bzcat, tarコマンドについて説明があります。
4時間目 複数のコマンドを組み合わせればさらに便利に
パイプ再びです。catやhead, sort,uniqコマンドなど、標準入力と標準出力の両方を使う「フィルタコマンド」について使用例から理解を深めます。また、標準入力を分岐させるteeコマンドや文字の置換・削除を行うtrコマンドの説明もあります。これだけ出てくると、さすがにパイプにも慣れてきますね。
5日目 システム管理の基礎を学ぼう
1時間目 Linuxのユーザ管理
スーパーユーザと一般ユーザについてです。
2時間目 ファイルの安全管理について(1)、3時間目 ファイルの安全管理について(2)
Linux使っていてよく引っかかるのが「permission denied」ですね…chmodコマンドにはよくお世話になっています。アクセス権限の数字(666など)やrwxについても説明があり、「なんとなくchmod 666って入力していたけど、そういう意味だったのか!」とやっと理解できました(遅い)。ファイルのモードについての説明は難しかったです。
4時間目 ファイルやシステムの情報を調べる
ファイルの情報を調べるls, du, fileコマンドやシステムの情報を調べるuname,uptime, freeコマンドについての項目です。
6日目 シェルを活用するテクニック
1時間目 シェルを賢く使う(1)、2時間目 シェルを賢く使う(2)
ダブルとシングルのクォーテーションの使い分けや、エスケープについて使用例から理解を深めます。また、シェル変数についてや、ジョブ・プロセスの管理についても説明があります。
3時間目 シェルスクリプトに挑戦
業務でシェルプログラムを書くことが多く、期待してこの項目を読んだのですが、シェバンとかfor文実行方法とか本当に必要最低限のことしか書かれていなくてちょっとがっかりでした…1日分、せめて2時間分つかって事例を出して説明してほしかったです。誌面の都合上、仕方ないのだと思いますが。
『新しいシェルプログラミングの教科書』という本を購入したので、こちらで勉強しようと思います。
4時間目 シェルの環境を整備する
ここにきてコマンド検索パス、すなわち「パスを通す」話が出ます。これまで、「なんか動かない…調べたコマンドをコピペしよ。」という感じだったのですが、ついにその意味がわかりました(遅い)。エイリアスの設定や~/.bash_profileと~/.bashrcの使い分けについても書かれていて、すぐに役に立ちます。
コメント