#author("2024-11-17T20:54:53+09:00","default:k1rou","k1rou") #author("2024-11-17T20:56:10+09:00","default:k1rou","k1rou") *Linuxの入出力 [#ldc6a6d0] *入出力の基本 [#e9e10385] -連続実行 --<command1>; <command2>; -並列実行 --<command> & *パイプ [#f7b70d4a] **パイプライン [#yf05e691] -<command1> | <command2> ※コマンドの実行結果(標準出力)を別のコマンドの標準入力に渡す <command> | grep <keyword> <command> | tee <file-name> ※コマンドの実行結果を画面表示とファイル出力する cat <csv-file> | sort -k <column-number> ※指定した列でソートする ps aux | less ※コマンドの実行結果をテキストファイルビューアで見る **tee コマンド [#f2231eda] -標準入力を標準出力とファイルに出力する。 *リダイレクト(リダイレクション) [#x8200f15] -標準出力/標準エラー出力/標準入力 **基本 [#j0722b38] -コマンドの実行結果(標準出力)をファイルに出力 --<command> > <file> ※上書 --<command> >> <file> ※追記 -コマンドの実行結果(標準出力と標準エラー出力の両方)をファイルに出力 --<command> >& <file> ※上書 --<command> >>& <file> ※追記 -コマンドへの標準入力をファイルとしてコマンドを実行 --<command> < <file> -特定の文字列が現れるまで入力を続ける(ヒアドキュメント) --<command> << <string> --例:EOF+[Enter]が入力されるまでキー入力を受ける cat << EOF ※入力内容は画面に出力 cat > <file> << EOF ※入力内容はファイルに出力 **出力先にファイルディスクリプターを指定 [#e9d0c6cf] -ファイルディスクリプター --0 -標準入力 --1 -標準出力 --2 -標準エラー出力 --n -任意の入出力先 -コマンドの出力先:標準出力 -->&1 echo "tdout" >&1 -コマンドの出力先:標準エラー出力 -->&2 echo "tderr" >&2 **出力のパターン [#b6ae04af] -画面:標準出力と標準エラー出力の両方を出力 --何も指定しない sh ./test.sh -画面:標準出力と標準エラー出力の両方を出力(ファイル:標準出力を出力) --tee を使う sh ./test.sh | tee file.log -ファイル:標準出力と標準エラー出力の両方を出力(画面:何も出力しない) --標準出力と標準エラー出力の出力先にファイルを指定 --"&>"を使う sh ./test.sh &> file.log --"2>&1"を使う sh ./test.sh > file.log 2>&1 ※上書き sh ./test.sh >> file.log 2>&1 ※追記 -ファイル:標準出力を出力(画面:標準エラー出力を出力) --標準出力先にファイルを指定 --">"または"1>"を使う sh ./test.sh > file.log sh ./test.sh 1> file.log -ファイル:標準エラー出力を出力(画面:標準出力を出力) --標準エラー出力先にファイルを指定 --"2>"を使う sh ./test.sh 2> file.log -出力を破棄 --出力先に"/dev/null"を指定 --標準出力を破棄(画面:標準エラー出力を出力) sh ./test.sh > /dev/null sh ./test.sh 1> /dev/null --標準エラー出力を破棄(画面:標準出力を出力) sh ./test.sh 2> /dev/null --標準出力と標準エラー出力の両方を破棄(画面:何も出力しない) sh ./test.sh &> /dev/null sh ./test.sh >/dev/null 2>&1 *Linuxコマンド [#j94f6598] **echo [#g054a53c] -環境変数や指定した文字列を標準出力に出力する -echo $[変数名] echo $abc ※変数を解釈(変数値を出力) echo '$abc' ※シングルクォーテーション →文字列と解釈(変数を解釈しない) echo "$abc" ※ダブルクォーテーション →変数を解釈(変数値を出力) echo '$abc' ※バックスラッシュ →コマンドと解釈(変数値をコマンドとして実行) -echo -e ※エスケープシーケンスを解釈する echo -e \\n ※改行文字の指定方法1 echo -e "\n" ※改行文字の指定方法2 echo -e '\n' ※改行文字の指定方法3 -echo -E ※エスケープシーケンスを解釈しない(default) -echo -n ※末尾を改行しない **tee [#p4ac261a] -標準入力を標準出力とファイルに出力する。 -<command> | tee <filename> ※コマンドの実行結果をファイルに出力するとともに、標準出力(デフォルトは画面)に出力する tee -a ※ファイルに追記する **xargs [#qabdb477] -標準入力から受け取った文字列を引数に指定して、与えられたコマンドを実行する -使い方例 ls | xargs rm find . -type f -name <keyword> | xargs rm **read [#r7395cea] -標準入力からの入力を読み込んで変数に格納する -標準入力からの入力を1行読み込んでシェル変数に格納する read <変数名> *参照 [#ya3c9aad] -[[Linuxコマンド]] -[[Linuxの環境変数]]