Linuxコマンドについてのメモ
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つついてる
- x:psコマンドを実行したユーザーの全てのプロセス
- a:全てのユーザーのプロセス
- 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