Linuxコマンドについてのメモ

4 min read読了の目安(約4400字

catコマンドについて

  • concatenate→結合する
  • cat [オプション] <ファイル名>

[-n]
→行番号を表示するオプション

  • 複数ファイルを表示することも可能
    → cat <ファイル名> <ファイル名>

$cat
→キーボードの内容がそのまま表示される
→抜け出すときはctrl+d

lessコマンド

  • catコマンドの類似コマンド
  • こちらもファイルの内容を見ることができる
  • less [オプション] <ファイル名>

→長いファイルの中身を見るときに使用

スクロール操作

[スペースキー,f]
→一画面下にスクロール

[b]
→一画面上にスクロール

[j]
→1行下にスクロール

[k]
→1行上にスクロール

[q]
→lessコマンドを終了

検索の操作

[/文字列]
→下方向に向かって検索

[?文字列]
→上方向に向かって検索

[n]
→次の検索結果に移動

[N]
→前の検索結果に移動

テキストファイルについて

→テキストファイルとは文字列が書かれたファイルのこと

  • テキストファイルは文字コードで定められた文字だけが並んで格納されているファイル
  • 文字コードとは、文字をコンピュータで処理したり通信したりするために、文字の種類に数値を割り振ったもの

バイナリファイルについて

→バイナリファイルとは、画像ファイルや音声ファイル、実行ファイルなど

  • 文字コード以外の数値も含むようなファイルをバイナリファイルと呼ぶ
  • テキスト以外のファイルがバイナリファイルと考えてOK

touchコマンドについて

  • touch <新規ファイル名> <新規ファイル名>...
  • もしファイル名が被っても上書き保存されない

rmコマンドについて

  • rm [オプション] <削除するファイル名1> <削除するファイル名2>...
  • ゴミ箱に行くのではなく本当に削除される

よく使うオプション

[-r]
→ディレクトリも合わせて削除する

ディレクトリの中のファイルやディレクトリもまとめて削除されるので注意

[-f]
→ファイルを削除する際に警告文を表示しない

[-i]
→ファイルの削除前に確認する

mvコマンドについて

  • mv [オプション] <移動元> <移動先>

  • ファイル名を変更
    → $mv file file1 (fileをfile1という名前に変更)

  • ファイルを移動
    → $mv file1 dir/ (file1をdirというディレクトリ内に移動)

オプションについて

[-i]
→変更する前に確認する

cpコマンドについて

  • $cp [オプション] <コピー元> <コピー先>

コピー先のファイルがすでにあると上書きされることを注意

  • $cp file dir (dirディレクトリ内にfileというファイルがコピーされる)

オプションについて

[-i]
→上書きする前に確認する

[-r]
→ディレクトリをコピーする

lnコマンドについて

  • Linuxではファイルに別名をつけることができる→「リンクを貼る」という
  • 種類→ハードリンク・シンボリックリンク
  • $ ln [オプション] <リンク元ファイル名> <リンク名>

ハードリンク
→ $ln file1 file2

[-s]
→シンボリックリンクを張ることができる

ハードリンク→ファイルに複数の名前をつける

  • 1つのファイルの実体に複数の名前をつける機能
  • 元のファイルを削除しても消えない
  • 全てのハードリンクがなくなったときに削除される

シンボリックリンク→リンク先のパス名を記載しただけ

  • リンク先のパス名が書かれた特殊ファイル。リンク先がファイルの実体
  • シンボリックリンクを残したままファイルの実態を削除したり、ファイルの移動すると、ファイルを参照できなくなる

####リンクをどういう時に使うのか

  • 長いパス名を省略したい時
  • 複数バージョンを共存させ最新を区別したい時

findコマンドについて

  • ファイルを検索しよう
  • $find <検索開始ディレクトリ> <検索条件> <アクション>
  • $find . -name README.md -print → -nameとは名前で検索する -printはパス名を表示する

頻度が高い検索条件

[-name]→ファイル名を指定してファイルを検索。大文字小文字区別

  • *→任意の文字列に一致(''で囲む) | ?→任意の一文字に一致する

[-iname]→ファイル名を指定してファイルを検索。大文字小文字区別しない
[-type]→ファイルの種類で検索(-nameと組み合わせる)

  • [-type f]→通常ファイルを検索
  • [-type d]→ディレクトリを検索
    [-a]→複数条件を指定。なお、-aは省略可能
    例1: $find /lib/ -type d -name bin
    例2: $find ~/desktop/ -type f -name ??? -print

標準入出力

  • 標準入力・標準出力・標準エラー出力の3つを合わせて標準入出力と呼ぶ

リダイレクト

  • リダイレクトというのは入出力先を変更する機能
  • 入力のリダイレクト・出力のリダイレクトの二つがある
記号 内容
0> 標準入力
1> 標準出力
2> エラー出力

出力について

  • まとめる場合は、出力をリダイレクトした後に「2>&1」と書く
  • リダイレクトで追記するには [>]→上書き・[>>]→追記する

/dev/nullについて

  • 入力先として指定しても何も返さず、出力先として指定してもデータは消え何も表示されない、スペシャルファイル

パイプラインとは

  • 複数のコマンドを連携させる機能。
  • コマンドの標準出力を別のコマンドの標準入力につなげる

例:$ ls /bin | grep systemd | less
→binの中のディレクトリ名にsystemdが含まれるものをlessで表示する(3つのコマンドの組み合わせ)

パーミッションについて

  • ファイルには全てオーナー(所有者)とグループ(所有グループ)が設定されていて、権限管理されている。
  • 確認するには→$ls -l

パーミッションの記号

記号 内容 数値
r read(読み取り) 4
w write(書き込み) 2
x execute(実行) 1

rwx → 421 → 7
r-x → 41 → 5
r-x → 41 → 5

記号 内容
u 所有者の権限
g グループの権限
o その他のユーザーの権限
a 全ユーザーの権限
+ 権限を追加
- 権限を削除
= 記述した権限にする

chomodコマンドについて

$chmod [ugoa] [+-=] [rwx] <ファイル名>
例:$chmod u+r hoge.txt

権限をrwxr-xr-xにしたい時
$chmod 755 file

通常の指定は相対指定・数値指定は絶対指定

スーパーユーザー

管理者権限を持つ特別なユーザーがスーパーユーザー

コマンド
→$sudo <コマンド>

プロセスについて

  • 実行中のプログラムのことをプロセスという
  • コマンドを実行→実行ファイルをメモリに格納→メモリ上でCPUがプログラムを実行

psコマンド

$ ps [オプション]
psコマンドには多くのオプションがある

aux(オプション)→全ユーザーのプロセスを、詳細情報を合わせて表示
auxはオプションが3つついてる

  1. x:psコマンドを実行したユーザーの全てのプロセス
  2. a:全てのユーザーのプロセス
  3. u:詳細情報を合わせて表示する

→lessで表示させることが多い

ジョブについて

  • まとめて実行されるプロセスの集まりがジョブ。シェルごとに管理される

プロセスは3つ生成される


$ps aux | grep bash | less


ジョブは一つ生成される

  • ジョブは実行するシェルで管理される
  • プロセスはOS全体で統一して管理される

バックグラウンドとフォアグラウンド

  • バックグラウンド→シェルの画面外でコマンドを実行すること
  • フォアグラウンド→シェルの画面内で実行すること

jobsコマンド

$jobs
→ジョブID、実行状況、実行コマンドを表示する

fgコマンド

$fg %<ジョブID>
→ジョブをフォアグラウンドに戻して対話的に操作したい時に使う

bgコマンド

$bg %<ジョブID>
→長い時間がかかる処理をバックグラウンドで実行

killコマンド

$kill [オプション] %<ジョブID>
$kill [オプション] %<プロセスID>

→フォアグラウンドはctrl+cで終了・バッググラウンドのジョブはkillコマンドで終了

実は、killコマンドはシグナルを送信するコマンド
$kill -<シグナル名> <プロセスID>

[-SIGKILL or -9]→最終手段の強制終了のシグナル(本当は使いたくない)

今回、このメモを作成するにインプットした教材

もう怖くないLinuxコマンド。手を動かしながらLinuxコマンドラインを5日間で身につけよう

とてもわかりやすくLinuxについて説明されていて、Linux初心者に取り掛かりやすい内容です!