アウトプットの箱庭

基礎から学習しなおしてる現役エンジニアの勉強記録です

新しいLinuxの教科書 13章~20章まで駆け足で進む

2021/07/05学習分
学習内容

13章

  • 正規表現とは
    • 文字列を検索する際に検索条件を表現するために使用される記法のこと
  • メタ文字とは
    • 正規表現の中でも、ただの文字列ではなく特別な意味を持つ文字のことを指す
    • ex. 「.: 一文字(なんでもいい)」、「^: 行の最初」など
  • grepコマンドとは
    • 役割: あるファイルや標準入力に対して使用することで、検索条件にマッチした文字列を含む行だけを標準出力に返すコマンド
    • 使い方: grep オプション 検索条件 ファイル名 or linuxコマンド | grep オプション 検索条件
    • 代表的なオプション:
      =>-n: 行数を表示する
      =>-v: 検索条件にマッチしない行を返す
      =>-i: アルファベットの大文字と小文字を区別しない

14章

  • sedコマンドの役割と使い方は?
    • 役割: 非対話型エディタのStream Editorを起動/実行するためのコマンド
    • 使い方: sed オプション スクリプト ファイル名の形で実行する
      => スクリプトについて: フィールド(適用範囲)とコマンド(エディタで実行すること)で表現される。
    • sedはファイルを編集することはなく、あくまで加工した結果を標準出力へと出力するだけである
  • 非対話型エディタとは何か?
    • 直接操作するのではなく、コマンドを渡すことでテキストに対して処理を行うエディタのこと
  • awkコマンドの役割と使い方は?
    • 役割: sedコマンドと同じような役割だが、できることが高機能になったもの(sedは日対話型エディタだが、awkプログラミング言語のようなもの)
    • 使い方: awk オプション スクリプト ファイル名の形で使用する
      => スクリプトはどのように記述するのか忘れたパターン: {アクション}の2つで構成されている
      => パターンは、アクションを実行する行の条件を指定する(指定しない場合、全行に対してアクションを実行する)
      => アクション: 実際に行に対して行う振る舞いを記述する。代表的なアクションはprint(出力する)

15章

  • シェルスクリプトとは何か?
    • コマンドラインをあらかじめファイル形式にしておいたもの
    • 複数のコマンドを一気に実行することができる
  • シバンとは何か?
    • #!{実行環境} <= これのこと
    • スクリプトを作ったときに、二行目以降に記述されているコマンドをどの実行環境で実行するかを指定するもの
    • ex. test.shというファイルに#!/bin/bashというシバンが記述されていた時、ターミナルで実行するときはtest.shだけで良いが、実際の意味は/bin/bash test.shになる。
  • sourceコマンドによる実行
    • コマンドが記述されたファイルを引数にsourceコマンドを実行すると、現在ログインしているシェルで、それらのコマンドが実行される
    • ファイル自体を実行しているわけではなく、各行のコマンドが順番にコマンドラインに入力されているだけなので、ファイルの実行権限を変える必要はない

16章

  • 変数展開の仕方は?
    • ダブルクォートの中で、${変数名}を使用する
  • 引数の渡し方/受け取り方は?
    • コマンドラインスクリプトを実行する際にスペースを開けて引数を渡す
    • ex. スクリプト名 引数1 引数2など
    • 引数を受け取り際には$ + 番号を使用する($1は1番目の引数. $2は2番目の引数を指す)
    • $0には、実行したコマンド自体が入っている
    • 引数を全て展開するには$@ or $*を使用する。前者は文字列にした時、別々の文字列をして扱われ、後者は一つの文字列として扱われるため、前者が使われることが多い
    • $% $#を使用すると、引数の数がわかる
  • コマンド置換とは何か?使い方は?
    • コマンドの実行結果を文字列をして使用したい時に使う
    • $(コマンド)の形で使用する
  • シェル関数とは何か?どのようにして使うのか?
    • シェルスクリプトの中で定義できる関数のこと
    • 関数名 () { 内容 }の形で定義をし、使用するときは関数名()とする

17章

  • シェルスクリプトの欠点とは何か?
    • 本格的なアプリの開発には向いていない(オブジェクト指向ではないため)
    • 速度が遅い(rubyなどを使った方が早い)
  • localとは?
    • ローカル変数を定義するためのもの
    • 一般的には、シェル関数の中で使用することが多い
  • シェルスクリプト再帰的な呼び出しの方法は?
  • IFSとは何か?
    • フィールド区切りもじのこと。これは引数やオプションを複数個指定する際に、それらを区切るのに使用される
    • bashにおいてはtabスペース改行が指定されている
  • xargsコマンドの使い方は?
    • xargs コマンド名の形で使用することで、標準入力を引数として、引数として私たコマンドを実行できる
    • ex. ls -F | grep -v / | xargs catとすると、カレントディレクトリに存在するファイルの中身をそれぞれcatコマンドで出力することが可能。

18章

  • tarコマンドの役割と使い方は?
    • ファイルやディレクトリを一つにまとめるアーカイブを行ったり、アーカイブされたファイルを展開する役割を持つ
    • 使い方: tar cf アーカイブ後のファイル名 アーカイブしたいファイル名アーカイブ可能
      => tar xf アーカイブされたファイル名で展開が可能
      => tar cf アーカイブされたファイル名 tar tf ファイル名で、アーカイブされているファイル一覧が閲覧可能
  • gzipコマンドの役割と使い方は?
    • ファイルを圧縮するためのコマンド
    • 使い方: gzip ファイル名で圧縮。
      => gzip -d ファイル名で圧縮されたファイルを元に戻す
      => gzip -c ファイル名で、圧縮されたファイルの中身を標準出力に対して出力することが可能
    • 拡張子は.gz
  • bzip2コマンドの役割と使い方は?
    • gzipと同様に、圧縮するためのコマンド
    • gzipと比べて圧縮率が高いが圧縮/展開に時間がかかる
    • 使い方: bzip2 ファイル名で圧縮<br>=>bzip2 -d ファイル名`で展開。
    • 拡張子は.bz2
  • zipコマンドの役割と使い方は?
    • ファイルをアーカイブし、圧縮までしてくれるコマンド
    • 使い方: zip ファイル名 zip -r 圧縮後のファイル名 圧縮対象で圧縮(-rオプションでディレクトリ内のファイルも圧縮される)
      => unzip ファイル名で展開
    • 拡張子は.zip
    • macwindowsではよく使われるが、linuxではあまり使われない

19章

  • gitとは何か?
  • リポジトリとワークツリーとは?
  • インデックスとリポジトリの反映
    • git addをするとインデックスと呼ばれる一時保存領域に指定したファイルが保存される。
    • git commitをすると、インデックスに存在するファイルがリポジトリへと保存される
  • これ以降は、改めてしっかり勉強することにする

20章

  • パッケージとは?
    • ソフトウェアの実行ファイル、ドキュメント、設定、初期設定のスクリプトなどをまとめたファイルのこと
    • 一般的にパッケージを管理するシステムではこの単位でインストール/アンインストールされる
  • リポジトリとは?
    • パッケージを配布している場所のこと
    • 一般的にはパッケージ管理システムはリポジトリを指定し、そこからパッケージを取得する

その他感想など

この辺りはとりあえず知識として知っていればいいかなということで、

それなりに駆け足で進んだ。

ただし、パッケージ管理システムのgitについてはちゃんとやりたいと思ったので、また後日しっかりと学習することにしたい

「新しいLinuxの教科書」12章 + react-hooksの学習

6/30 学習分

学習内容

12章 テキスト処理のコマンドについて

  • sortコマンド
    • 標準入力を行単位で、並び替え、結果を標準出力へと出力するためのコマンド。
    • sort {ファイル名などの入力}の形で使用する(アスキーコードの順番で並ぶ?)

補足

コマンドのオプションとして、 -n で数字順、-rで逆順、-k {数字}で「何番目の単語に対してソートするかの指定」が紹介されていた

  • uniqコマンド
    • 行単位での重複を消すためのコマンド。ただし、連続した行に対してしか使えないため、一般的にはsortコマンドの後で使用する
    • uniq {ファイル名などの入力}の形で使用する

補足

sortには-uオプションが用意されており、これをつけるとuniqと同じことができる

 

続きを読む

アウトプットに関する考えと、「新しいLinuxの教科書」 7章 ~ 11章の学習記録

6/28 学習分

学習内容

Linux

7章

  • ヤンク・デリート・プットの意味について
    • 「ヤンク = コピー」、「デリート = 切り取り」、「プット = 貼り付け」。
    • 以前のアウトプットで「ヤンク = 貼り付け」と書いたと思うので、勘違いしていた模様
    • linuxには、「削除」という概念はないのか?調べてみる
  • 行の連結
    • 行末にある「改行」を削除し、下の行と現在の行を繋げること
    • コマンドは「shift + j」
  • バイナリファイルとは?
    • 人が直接中身を読むことを想定していないファイルのこと
    • 例: 動画ファイル、コマンドファイル、音声ファイルなど
  • 単語ごとに移動するには?
    • 「前に進む: w」 or 「後ろに進む: b」を入力する

       

続きを読む

"最強の学習法"を学び、早速「新しいlinuxの教科書」で実践してみた 1~6章

6/26 学習分

学習内容

学習法について

  • 検索練習
    • 人は苦労して思いだすことで記憶に定着する => ということで、意図的にその状況を作り出すことで記憶への定着を促す学習法
    • 色々なメリットがあるが、やらないメリットはないのでやることにした

具体的なテクニック

ブレインダンプ法

学んだことを、とりあえずアウトプットしまくることで記憶への定着を図る方法

  • 具体的な実践方法
    • タイミング: しっかりと時間をとって勉強するとき => 勉強時間を30分短くして行う
    • アクション: 勉強後にブログをかく。そのブログ内に、その日に学んだことを自分の言葉でまとめる、
    • => その際に、資料は見ないで思いだす。
    • => 書き出すときには間違っていてもいい
    • => 書き出した後で、再び資料を確認して、忘れていたことや間違っていたことを別の項目としてブログにまとめる

       

続きを読む

 今日からアウトプット

自分が何を学んだかを他の人に知ってもらいたいので、今日からアウトプットすることにしました

 

知ってもらいたい理由ですが、もし転職などする際、少しでも自分のスキルを知ってもらうことで認識の齟齬を防ぐことができるかなあ、と思ったからです

 

どうぞよろしく