ハードウェア技術者のスキルアップ日誌

某家電メーカーの技術者がスキルアップのために勉強したことを記録するブログです

Linuxコマンドまとめ③

Linuxの知識の整理 3回目。今回はbashの設定、パーミッション、プロセス管理、テキスト処理などについてです。
コマンドだけでなく、Linuxそのものに関するものも含まれていますが、早速まとめていきたいと思います。

bash

bashの設定は~/.bashrcというファイルに記載する
bashの起動時にこのファイルが読み込まれる
※変更する際はバックアップを取っておくことを推奨

環境変数

環境変数の表示      printenv
環境変数の設定      export <変数名> = <値>

ファイル、ディレクトリのパーミッション

ls -l を実行すると以下のように表示される

ãls -l linuxãã®ç»åæ¤ç´¢çµæ

一番左の以下のような記述がファイル、ディレクトリのパーミッションを表す。

f:id:masashi_k:20190615231918p:plain
f:id:masashi_k:20190615231515p:plain

ファイルモード変更      chmod <数値> <ファイル名>
 ※数値は与えたい権限に沿って以下のように算出する

f:id:masashi_k:20190615232057p:plain

プロセス・ジョブ

プロセスの表示

ターミナルで実行しているプロセスだけ表示             ps
ユーザーが実行中の全てのプロセスを表示                 ps xf
システムで動作しているすべてのプロセスを表示      ps ax

ジョブの切り替え・終了

コマンドの一時停止                                   Ctrl + z    ※Vim等のアプリケーション実行中
ジョブ一覧の表示                                       jobs -l
ジョブの切り替え(フォアグラウンドへ)    fg %<ジョブ番号>
ジョブの切り替え(バックグラウンドへ)    bg %<ジョブ番号>
 ※初めからバックグラウンドで処理させる場合、コマンドの後ろに&を追加
ジョブの終了(フォアグラウンドの処理)    Ctrl + c
ジョブの終了(バックグラウンドの処理)    kill %<ジョブ番号>
プロセスの終了                                          kill <プロセスID>

リダイレクト・パイプライン

入力をFILEにする                                           < FILE
出力をFILEに書き出す                                    > FILE
出力をFILEに追記                                           >> FILE
エラー出力をFILEに書き出す                         2> FILE
エラー出力をFILEに追記                                2>> FILE
出力、エラー出力を共にFILEに書き出す       > FILE 2>&1
コマンド1の出力をコマンド2で処理              <command1> | <command2>

テキスト処理

sortコマンド

ファイル内のデータを並び替える  ※フィルタとして使用した場合は出力結果を並び替え
  sort [オプション] [ファイル名]

  sort -n    数値順にソート
  sort -r     逆順にソート
  sort -k    キー指定(何個目の要素について並び替えるかを指定)
  sort -u    重複を省いてソート

diffコマンド

ファイル同士の差分を表示する
  diff [オプション] [比較元ファイル] [比較先ファイル]

表示方法
  <範囲1> a <範囲2>      範囲1の後に範囲2の内容を追加
  <範囲1> c <範囲2>      範囲1の内容を範囲2の内容に変更
  <範囲1> d <範囲2>      範囲1を削除

  diff -s       ファイルが違うかのみチェック

grepコマンド

ファイルから検索パターンに合う行を抽出
  grep [オプション] [検索パターン] [ファイル名]
 
※and条件はパイプラインで後ろにつなぐ
   検索パターンには正規表現を使用可能
   参考サイト:
https://www.gadgety.net/shin/tips/unix/regexp.html

  grep -i         大文字、小文字を区別しない     
  grep -v        一致しないものを検索
  grep -n        結果に行番号付与
  grep -l         結果にファイル名のみ表示
  grep -r         ディレクトリ内も検索範囲に入れる
  grep -E        拡張正規表現を使用