😄

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

2021/01/18に公開

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初心者に取り掛かりやすい内容です!

Discussion