LinuCの勉強

パイプリダイレクト

0: 標準入力
1: 標準出力
2: エラー出力
3以降: プロセスが開いたファイル

リダイレクション(標準出力)

出力先を変更する場合

1 > hoge : hogeに標準出力のみを出力
2 > hoge: hogeに標準エラー出力のみを出力
& > both: bothに標準出力,標準エラー出力の両方を出力

リダイレクション(標準入力)

  1. cmd1 < fileA: fileAの内容をcmd1に取り込む
  2. cmd1 < fileA | cmd2: fileAの内容を標準入力からcmd1に
    取り込み出力結果をcmd2に標準入力で渡す。

特殊なファイルや記述

<< here document

cat << eos:指定した文字列が現れるまでの内容を,コマンドの標準入力として扱う。

dev/null

読み込むと常にEOFが返ってくる。


tac

ファイルの内容を最後の行から表示する。


tee

標準入力を別のコマンドとリダイレクトすると同時に,ファイルも格納することが可能。

利用方法

標準入力から読み込んだデータを標準出力とファイルに出力する。

nl /etc/passwd | tee myfile.txt| head -3

パスワードをmyfile.txtに出力すると同時に,先頭3行を表示する。


コマンド同士の結合について

cmd1;cmd2

cmd1実行後,終了コードに関係なくcmd2を実行

cmd1&&cmd2

cmd1の終了コードが0ならば,cmd2を実行

cmd1||cmd2

cmd1の終了コードが0でなければ,cmd2を実行

※ 終了コードは, echo $?で確認可能


grepコマンド

オプション

-v : パターンに一致しない行
-n: 行番号を出力
-l: パターンに一致するファイル名
-i: 大文字,小文字を区別しない


headコマンドに関して

  • デフォルトで10行分出力
  • -100 で100行出力

trコマンド

標準入力から,入力した文字を指定したフォーマットに変換する。

例) 小文字のアルファベットを大文字に変換する。

tr ‘a-z’ ‘A-Z’
キーボード入力: hello
出力: HELLO

例) -dオプションで一致した文字を削除する。

tr -d ‘my’
キーボード入力: My name is yuko
出力: M nae is uko

※ ファイル指定は不可


sedコマンド

  • 単語単位の変換や削除にはsedコマンドを使用する。