🐘 2024/04/28
作成日: 2024/04/28
0

入門モダンLinux

第3章

  • ターミナルはキーボードからの入力に対して画面に出力するもの
  • シェルはターミナル内で動作して、コマンドインタプリタとして動作する
    • echo $0 echo $SHELLで使っているシェルがわかる
      例)bash,sh,chなど
  • 入力ストリームと出力ストリーム両方合わせて入出力ストリームという
    • 標準入力はstdin
      例) cat < text.txt
    • 標準出力はstdout
      例) cat > text.txt
    • 標準エラーはstderr
      例) cat 2> text.txt
  • キーボードからの入力から画面への出力がデフォルト
  • &>でstdoutとstrerrの両方をリダイレクトできる
    • cat &> text.txt
  • 標準出力が不要な場合 > /dev/nullとする
  • アンバサダー(コマンドの最後に&を付ける)はバックグラウンドで実行する
    • cat text.txt &
  • バックスラッシュは改行を行える
    • cat test.txt(.txtは本来ターミナル上なら改行される)
  • パイプは一時ファイルを使わずに現在のプロセスのstdoutから次のプロセスのstdinに渡せる
  • 環境変数はシェル全体の設定
    • envコマンドで一覧を見れる
  • シェル変数は実行中のシェルでのみ有効
    • 子プロセスでは参照できない
  • ジョブ制御ではデフォルトではフォアグランドで実行される
    • フォアグランドをバックグランドへ送るにはCtl + Z
    • fgコマンドでバックグラウンドをフォアグランドへできる
  • echo "test" > text.txtでviを使わずファイルを作成する
  • 追記する場合 echo "seconde" >> text.txtとする
    • 続けてcatで確認したい場合 && cat test.txtとする
  • fishシェル又はzシェルは補完機能などもあり使いやすいみたい
  • ターミナルマルチプレクサで一つのターミナル上で複数の作業を行える
    • 推奨がtmux
    • tmux new -s <セッション名>
    • ctl + b + wでウィンドウ一覧の表示
    • ctl + b + dでセッションをデタッチする
    • tmux attach -t <セッション名>で既存のセッションにアタッチする
  • スクリプトのグットプラクティス
    • 早期失敗で即座にエラーを表示する
    • 機密情報は引数又はAPI呼び出しで取得するようにする
    • 入力値にはデフォルト値を使う
    • 環境の差異をなくすためビルドインコマンドでない場合コマンドが有効であると仮定しない