アウトプットに関する考えと、「新しいLinuxの教科書」 7章 ~ 11章の学習記録
6/28 学習分
学習内容
Linux
7章
- ヤンク・デリート・プットの意味について
- 「ヤンク = コピー」、「デリート = 切り取り」、「プット = 貼り付け」。
- 以前のアウトプットで「ヤンク = 貼り付け」と書いたと思うので、勘違いしていた模様
- linuxには、「削除」という概念はないのか?調べてみる
- 行の連結
- 行末にある「改行」を削除し、下の行と現在の行を繋げること
- コマンドは「shift + j」
- バイナリファイルとは?
- 人が直接中身を読むことを想定していないファイルのこと
- 例: 動画ファイル、コマンドファイル、音声ファイルなど
- 単語ごとに移動するには?
- 「前に進む: w」 or 「後ろに進む: b」を入力する
- 「前に進む: w」 or 「後ろに進む: b」を入力する
8章
- bashの設定ファイル
- オプションについて
set
コマンドと、もう一つある(忘れた)- setコマンド: 引数として
-o
or+o
と 「オプション名」を渡す。前者はオプションをオンにし、後者はオフにする。 - 後者のコマンド: 引数として
-s
or+u
と 「オプション名」を渡す。前者はオプションをオンにし、後者はオフにする。
- 変数について
9章
-
パーミッションについて
- ファイルやディレクトリを「開く」「実行する」「編集する」権限のこと
- 所持ユーザー、グループ、その他のユーザーに分けられ、それぞれ定義されている
- 確認するには、
ls -l
コマンドを使用する - 権限を変更するには、
chmod
コマンドを使用する
=> 使い方:chmod {u, g, o}{+ or -}{x, w, r} ファイル/ディレクトリ名
(これ以外にも8進数3桁を使用するものもあるが、省く)
=> u: 所持ユーザー、g: グループ所属ユーザー、o: その他ユーザー、x: 実行権限、w: 書き込み権限、r: 読み取り権限、+: 権限付与、-: 権限剥奪。
-
sudoとsuについて
- su: ユーザーを変更する(スーパーユーザーにも、一般ユーザーにも変更できる)コマンドで、一般的にはスーパーユーザーへと変更することに使用される
- sudo: 一般ユーザーのままで、「スーパーユーザーの権限を使って」コマンドを実行する際に使用する
- 使い分け: 基本的にスーパーユーザーで操作することは推奨されていないため、一般ユーザーで、場合に応じてsudoを使うことがほとんど
=> スーパーユーザーは、パーミッションを無視して全てのファイルをいじれる
ので、致命的な誤操作をする可能性がある。 - 一般ユーザーがsudoを使えるかどうかは、
/etc/sudoer
の設定によって決まる
=> このファイルをいじるときは、visudoer
コマンドを使用する
10章
-
プロセスについて
- カーネルから見たアプリケーションの実行単位のこと(メモリで実行されているアプリケーション)
- プロセスを見るには、
ps
コマンドを使用する。一般的には、実行中のすべてのプロセスを確認するためにaux
オプションをつけて実行される - プロセスを停止するには、
kill
コマンド + プロセスIDを実行する(強制停止なら-9
)
-
ジョブについて
- シェルから見たコマンドの実行単位のこと(コマンドラインにコマンドを入力して改行を押した単位。)
- ジョブには3つの状態が存在する
フォアグラウンド
: ユーザーが対話的にジョブを操作をし、処理を実行している状態バックグラウンド
: ユーザーが操作しない(画面に映っていない)状態だが、処理が実行されている状態停止
: 画面に映っておらず、処理が"一時的に"止まっている状態。fgに対して「ctrl + z」で停止することが可能jobs
コマンドで、現在のジョブ一覧が確認可能。確認したジョブ(停止したもの)に対してfg
コマンド orbg
コマンド +%ジョブID
とすることで、状態を変更できる- bgのものを終了するには
kill
+%ジョブID
を、fgのものを終了するには 「ctrl + c」を入力する
-
killコマンドについて
- 先ほどから「処理を終了するため」に使用しているが、正確には
プロセスに対してシグナルを送るコマンド
である - 送信するシグナルを変更するには、
kill
+-{1~-15までの数字}
+ プロセスIDの形にする。デフォルトは-15
- 先ほどから「処理を終了するため」に使用しているが、正確には
11章
- 標準入出力について
- 標準入力、標準出力、標準エラーのこの3つをまとめて「標準入出力」と呼ぶ
- それぞれにidのようなものがつけられていて、最初から順に0, 1, 2である。
- 一般的に、標準入力はキーボード入力。標準出力と標準エラーはターミナルへの出力のことを指す。
=> パイプやリダイレクトを使用することで、変更できる
=> 「コマンド名<
ファイル名」とすると、ファイル内の文字が標準入力となる
=> 「コマンド名>
ファイル名」とすると、コマンドの実行結果がターミナルではなくファイル内へ出力される
=> 「コマンド名|
コマンド名」とすると、左のコマンドの実行結果が、右のコマンドの標準入力として渡される。
学習の間違いや漏れ
-
bashの設定ファイルについて
.bashrc
は.bash_profile
から読み込まれているが、.bash_profile
は/etc/profile
から読み込まれている"わけではない".bashrc
は、「非ログインシェル」として起動したときに読み込まれる(bash
コマンドで起動)。.bash_profile
は、起動時というよりはログインした時
に一度だけ読み込まれるもの。
-
sudoについて
- 「ログインユーザー」が「別のユーザーとして」コマンドを実行するときに使用する = スーパーユーザー以外の権限で実行することもできる。
- sudoの実行権限が書かれているファイル名は
/etc/sudoers
(s抜けていた)。このファイルを編集する場合、”スーパーユーザーの権限で”visudo
コマンドを使う。(最後のerはいらない)
-
killコマンドについて
- シグナルは、どうやら15個しかないわけではなく、たくさんあるようです(
kill -l
で確認可能)
- シグナルは、どうやら15個しかないわけではなく、たくさんあるようです(
-
環境変数の出力方法
printenv
コマンド
-
標準入出力について
-
フィルタ
- 標準入力を受け取り、標準出力へと結果を返すコマンドの総称
その他感想など
ジョブという概念は、自分の中でなかなかに革命的だと思った。今後めちゃくちゃ操作が捗りそう。
こういった「パソコンの中の動き」を知ることは好奇心が刺激されるし、同時に仕事にもとても生きるのでとても面白いです。
自分が何を学び、何ができるようになっていったのかを他の人にも見てもらうという意味で、ブログにアウトプットすることを決めた日。
前に伊藤淳一さんの動画で、「周りは自分をそれほど見ていないから、見える化せよ」と話していたのを思い出した。
アウトプットは夜じゃなくて朝することにした
無理に夜出そうとして、寝る時間を削ったり、出さなかった自分に対して自己嫌悪に陥るくらいなら最初からそうしたほうがいい。
自分に合わせて、無理せず確実に続けられる方法を見つけることはすごく大事だと思ってるので。