「新しいLinuxの教科書」12章 + react-hooksの学習
6/30 学習分
学習内容
12章 テキスト処理のコマンドについて
- sortコマンド
- 標準入力を
行単位
で、並び替え、結果を標準出力へと出力するためのコマンド。 sort {ファイル名などの入力}
の形で使用する(アスキーコードの順番で並ぶ?)
- 標準入力を
補足
コマンドのオプションとして、
-n
で数字順、-r
で逆順、-k {数字}
で「何番目の単語に対してソートするかの指定」が紹介されていた
- uniqコマンド
行単位
での重複を消すためのコマンド。ただし、連続した行
に対してしか使えないため、一般的にはsortコマンド
の後で使用するuniq {ファイル名などの入力}
の形で使用する
補足
sortには
-u
オプションが用意されており、これをつけるとuniq
と同じことができる
-
cutコマンド -
標準入力に対し、行ごとの単語単位
で、値を削除するためのコマンド?(曖昧)cut {ファイル名などの入力}
の形で使用する
-
ファイル内の文字をこれが行ごとの単語単位
で取り出すコマンド(名前忘れた)cut
コマンドでした- 行の中で、単語の区切りを判定するための文字と何番目の単語を取り出すかを指定することで、それだけ取り出せる(ex. csvであれば
,
を指定する) {コマンド名} {区切りの文字} {取り出す番号(複数可)} {ファイルなどの入力}
{コマンド名} -d {区切りの文字} -f {取り出す番号(複数可)} {ファイルなどの入力}
の形で使用する
- 行の中で、単語の区切りを判定するための文字と何番目の単語を取り出すかを指定することで、それだけ取り出せる(ex. csvであれば
-
trコマンド行ごと文字列
の内容を確認し、指定した文字と置き換えるコマンド(名前忘れた)名前の通り入力を確認し、その中の指定の単語を別の指定した単語と置き換える(ex. 小文字のアルファベットを大文字に置き換える)- これだけ、ファイル指定はできない
(純粋な標準入力に対してのみ実行可能)。純粋な標準入力に対してじゃなくて、「純粋なフィルタとして実装されている」
だった {コマンド名} {指定した文字} {置き換えたい文字}
tr {置換前文字} {置換後文字}
の形で使用する
漏れていた項目
- wcコマンド
- ファイルの行数、単語数、バイト数を数えるコマンド
wc {ファイル名}
の形で使用する- よく使われるオプションは、
-l
で、行数のみを表示したいときに使う。- tailコマンド
- ファイル(標準入力?)の末尾から指定した行数標準出力へと出力するコマンド(デフォルトは10)
tail {ファイル名}
の形で使用し、-f
オプションをつけると、ジョブがフォアグラウンドで動き続ける => ファイルに追記があったとき、追記内容を標準出力へと出力するようになる
react-hooksについて
-
createContext
とuseContext
- プロバイダーで囲んだ子以下の要素内で、共有する値を作成/使用するためのもの
- コンテキストの作成:
createContext("ContextName")
- プロバイダーの利用と値の設定:
<ContextName.Provider value={"shared value"}>子要素</ContextName>
- 値の使用:
value = useContext("ContextName")
-
useReducer
- stateの状態を管理するためのもの
- useReducerの使い方: 「reducer関数」, と「initialState」を引数として渡すと、「現在のstate」と「dispatch関数」が返される関数
=> 一般的にはconst { state, dispatch } = useReducer(reducer, initialState)
の形で使用する - initialStateについて: stateの初期値にしたい値を渡す
- reducer関数について: 「現在のstate」と「action」を引数として受け取り、それらを用いて「次のstateの値」を決定し、戻り値として返す関数のこと。
=> これは自分で定義する必要がある
=>ex.(state, action) => { const nextState = action === "Add" ? state + 1 : state; return nextState }
- dispatch関数について: この関数の引数に
action
を渡すことで、reducer関数
の中身が実行される。
=> ex.const state = dispatch("Add") // => (現在のstateの値が1であれば)2となる
-
useReduer
xuseContext
の利用- useReducerの
dispatch関数
と現在のstateの値
をuseContextの値として持つことで、擬似reduxのようなことができる
- useReducerの
-
useMemo
- 関数の結果をキャッシュしておくもの。
=> 第一引数に対象となる関数を、第二引数に配列の形でstateを渡すことで、stateの値が変化した時だけ関数を実行し、変化していない場合はキャッシュした値を返す - 使い方:
const memo = useMemo(() => { sleep(500000); return 'お疲れ様でした' }, [state])
- 関数の結果をキャッシュしておくもの。
-
useCallback
- 子要素にproprsとして渡している関数に対して定義することで、結果をキャッシュし、無駄なレンダリングを防ぐためのもの
=> 引数はuseMemo
と同様の形 - 使い方: 定義の方法は
useMemo
と同じ。定義の対象が違う
- 子要素にproprsとして渡している関数に対して定義することで、結果をキャッシュし、無駄なレンダリングを防ぐためのもの
-
React.memo
その他感想など
細かいコマンド名について忘れていることが多いんですが、これは何度も使ううちに覚えていくし、使わないコマンドについては覚えてもあまり意味がないので、とりあえずあまり気にせず行きます
react-hooksの学習は、本当に基本的な使い方の部分だけ分かってきました
ただ、まだほとんど実践をしていないということもあり、自分としても身についたとは言えないので、上と同じく何度も使うことでしっかりと落とし込みたいです。