私のための忘備録①（コマンドラインでの操作・フィルターを使ってのテキストストリーム処理）

##シェル変数
シェル変数＝値
例）LPIC=test

unset→すでに設定されている環境変数やシェル変数を削除する。
例）unset LPIC

## uname
現在使用しているシステムの情報を表示するコマンドはunameです。

##環境変数を一覧できるコマンド
env→全ての環境変数を表示
set→全てのシェル変数と環境変数を表示
printenv→一部または全ての環境変数を表示

![名称未設定02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620109/11a528c3-c032-4fb3-6039-80d24c6b2d47.png)


##export
環境変数と
##tab
tabを使うことで文字補完機能を使用することができる。
tab
1回で文字補完、2回でファイル名を出す。

##manコマンド
Linuxのコマンド設定やファイルのためのオンラインマニュアルページが用意されている
そのマニュアルを参照するためのコマンド
-k キーワードに一部ヒットするコマンドやファイルのmanページを表示
-f キーワードに完全一致するコマンドやファイルのmanページを表示




##プロンプト
Linuxではログインするとシェルが起動しプロンプトが表示される。
プロンプトはシェルがコマンドを受け付ける状態であることを意味している。　
①一般ユーザの時は、＄
②rootユーザの時は#になる（管理者権限の時）

##WCコマンド
ファイル内の文字数や行数を調べるコマンドはwc

nl→ファイルを行番号をつけて表示するコマンド
sort→行単位でファイルの内容をソートするコマンド
fmt→１行あたりのコマンドの文字数を指定（デフォルトでは75文字）　
fmt [-w 文字数] [ファイル名]



##uniq
オプション　-d ソートされているファイルにある重複した行を1行にまとめて表示するコマンド
         -u 重複していない行のみ表示する

pr→ファイルを印刷用に整形するコマンド
（オプション）
→ -l行数　ヘッダ、フッダを含めたページの行数を指定
　-h 文字列　ヘッダに表示されるファイル名を指定した文字列に変更
　＋開始ページ　開始ページ、：終了ページを指定　+1:2



##join
2つのファイルを読み込み、共通するフィールドがある行を結合して表示する→join
オプションに-jがあるけど、これは連結フィールドを指定する。

##unexpand
行頭にある連続したスペースをタブに変換するコマンド。
逆にタブをスペースにしてくれるのはexpend
expendでデフォのままだと、全てのタブをスペース8つ分に変換する。
オプション
-i 行頭のタブのみ変換
-t スペース数　1つのタブで置き換えるスペースの数を指定　-aもしたことになる。
-a　行頭の連続したスペースもタブに変換する

##CR、\r(古いMac)　と　LF、\n（LinuxなどのOS）とCRLF（\r\n）：Windows
PC上でのテキストファイルを使う際は、改行コードという制御符号を意識するのが必要。

例）Windowsのメモ帳で書いたやつをLinuxに使いたい
①テキストファイルの改行コードCR（\r）を取り除く
関係のないやつを取り除くってイメージかな

②




みなさん、そいえば最近メダルが、３枚になったよw
![スクリーンショット 2020-06-24 22.31.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620109/b5f2d9b2-104a-3325-22c4-5ab18594cfe6.png)

引き続きがんばりまーす。


##環境変数
環境変数とはPCが持っている変数のこと
かつ、変数とはPCが持っている値を入れておく箱のこと

①LANG　ロケール（言語設定）
②HOSTNAME　ホスト名
③HOMEログインしているユーザーのホームディレクトリを格納する
④PATH　コマンドやプログラムを検索するディレクトリのリスト、パス指定しなくてもコマンド実行できる
⑤HISTFILE コマンド履歴保存のファイルパス
⑥PWD　カレントディレクトリのパス
⑦HOME　ログインしているユーザのホームディレクトリ
⑧USER　ログインしているユーザを格納する





##メタキャラクタ
？　任意の1文字
＊　0文字以上の文字列
＄　変数

##ファイルを行番号をつけて表示させたい
nl コマンド
-b a空行を含めた全ての行に行番号をつける
-b t空行を除いた行に行番号をつける

cat コマンド
-n空行を含めた全ての行に番号をつける
-b空行を除いた行に行番号をつける

##trコマンド
指定した文字を削除or変換する
※補足でこのオプションに関しては、catの場合でも言えます。
-d 文字1列で指定した文字を削除
-s 文字1列で指定した文字が連続した場合、1文字に置き換える
trは標準出力から飲み受け付けるので、パイプやリダイレクト＜でファイルを指定する必要がある。

##cutコマンド
テキストファイルの各行から指定したフィールドを取り出して表示するにはcutコマンドを使う
-c 文字数　抽出する文字位置を指定
-d 区切り文字　区切り文字を指定（デフォはたぶ）
-f フィールド　抽出するフィールドを指定
※n　n番目のフィールド

##sortコマンド
行単位でファイルの内容をソートする
-f 大文字小文字を区別しない
-r 降順でソート　rなければ基本昇順
-n 数字を文字ではなく、数値としてソート
-b　行頭の空白を無視する
ーk　フィールド　ソート対象をフィールドで指定する
例：-k 3 3番目のフィールドを指定

-t　区切り文字　
例：-t ,　だと、で区切られる。

##splitコマンド
指定した行数でファイルを分割する。
split -500 file hoge で５００行ごとに分割される、且出力ファイルを指定しない場合はaa,abって感じでお尻にもじがついていく

数を指定すればその行数通りに区切ってくれるけど、デフォルトだと1000行で作られる。

##pasteコマンド
複数のファイルを行単位で結合するコマンド
-d オプションで区切り文字が指定できる

##prコマンド
印刷用に整形できるコマンドのこと
ーl　ヘッダフッダを含めたページの行数を指定
-h ヘッダに表示されるファイル名を指定した文字列に変更
＋　開始ページ　：終了ページ

##bash 
過去に入力したコマンドの履歴を記録する機能がある。
history
.bash_history
!番号　と入力すると特定のコマンドを再実行できる。

##tr
指定した文字を削除、変換するコマンド
-d 文字列１で指定した文字を削除する
-s 文字列１で指定した文字が連続した場合、1文字に置き換える。![名称未設定１１１.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620109/8b69ff18-749c-f2c0-d40c-d84d05ee713d.png)

##expand
タブをスペースに変換するコマンド
-i　行頭のタブのみ変換
-t スペース数　1つのタブで置き換えるスペースの数を指定。デフォは８

##uniq
ソートされているファイルに重複した１行をまとめて表示するにはこのコマンド。
-d　重複している行のみを表示
-u　重複していない行のみを表示

##odコマンド
ファイルの内容を８進数や16進数で表示するにはこのコマンドを使用する。
-c ASCII文字またはバックスラッシュ付きのエスケープ文字で表示　＝-tc
-t 出力フォーマットを指定
![名称未設定.22png.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620109/80b0558b-7b2f-1b13-a810-fd238c69d7d3.png)

##fmt
１行あたりの最大文字数を指定してテキストを整形するコマンド
-w　文字数　１行あたりの最大文字数を指定できる。

##tail
ファイルの末尾部分を指定して表示するコマンド
-n 行数　指定した行数をファイルの末尾から表示する
-c バイト数　指定したバイト数をファイルの末尾から表示する
-f ファイルの末尾に追加された行を表示し続ける。

##head 
ファイルの先頭部分を指定して表示するコマンド
-n 行数　ー行数　で指定した行数をファイルの先頭から表示する
-c バイト数　指定したバイト数をファイルの先頭から表示する