LoginSignup
4
1

More than 3 years have passed since last update.

#Linux shellコマンド概要図鑑

Last updated at Posted at 2020-05-14

基礎を知ろう

「教えられるまま、ターミナルやコマンドを使っていたけどそもそも、何ができるの?
基礎を知れば、作業がもっとできることが広がるのでは…?」

という事で、ターミナルとは?
どんなコマンドがあって何が出来るの?
拙いながらに、調べて結果を議事録に残しています。

🔍ボリュームがあるので、概要を簡単に

ということで、いざ本題へ!🚪

対象者:初心者・コマンド怖い・どんなコマンドあるのか概要を知りたい人
環境:Windows10・Linux・Visual Studio Code


もくじ

  1. ターミナル
  2. デイレクトリ
  3. ssh
  4. たぶん、よく使うコマンド
  5. このコマンド、どこで使う?
  6. 番外編:シェルスクリプト~作成から実行~

本題

ターミナル

https://www.sejuku.net/blog/4202
特別な文字(コマンド)にてパソコンの設定や操作を行う場所

ディレクトリ

  • pass
    ファイルやフォルダ(ディレクトリ)が存在する場所
    例:C:\Users\OWNER
    • カレントディレクトリ
      自分が今いるディレクトリ(フォルダ)
      例:git-repositoryファイルにいるとき 👉 C:\Users\OWNER\git-repository
  • pwd
    https://eng-entrance.com/linux-command-pwd
    今、どの階層にいるのか(カレントディレクトリ)を表示する
    例:/home/vagrant/bootcamp

ssh

別のコンピューターを遠隔で操作する際、送信するファイルなどのデータが他者に読まれぬよう、暗号化する仕組み

たぶん、よく使うコマンド

  • cd
    https://eng-entrance.com/linux-command-cd
    作業するディレクトリを移動するときのコマンド
    例:cd 移動したいディレクトリ・ファイル名

    👀 cdでerror発生した!違う階層にいる可能性が高い…。

    1. cd test 👉 自分がいる階層にtest.txtファイルあるか?
    2. lsで今の階層には何があるのか確認する
    3. 目的のファイルがある階層まで移動する
      または、
      cdコマンドで一気にディレクトリを移動しながらファイルへ飛ぶ
      cd ディレクトリ1/ディレクトリ2/test
  • ls
    https://www.atmarkit.co.jp/ait/articles/1606/27/news018.html
    ファイルの一覧や詳細情報を表示する
    例:ls

  • ls -la
    頭にドットがついたファイル(隠しファイル)を含めたすべてのファイルの一覧と、権限やタイムスタンプなど詳細情報を表示す
    例:ls -la

コマンド実行例
例:drwxrwxr-x  4 vagrant vagrant 4096  5月  4 18:57 .
  drwxr-xr-x 11 vagrant vagrant 4096  5月  3 16:17 ..
  drwxrwxr-x  8 vagrant vagrant 4096  5月  4 18:56 .git
  -rw-rw-r--  1 vagrant vagrant   26  5月  4 18:56 README.md
  -rw-rw-r--  1 vagrant vagrant  866  5月  4 18:58 sheet_shell.md
  drwxrwxr-x  2 vagrant vagrant 4096  5月  4 18:57 shell

このコマンド、どこで使う?

ここからは、よく聞くけど、使い方がいまいちわからないコマンドを軽く紹介。

---どう使う?---
ps aux
  自分以外の実行中プロセスを含めた全てのプロセス一覧を確認
  実行の妨げになるプロセスを見つける

---使用オプション---

  a:ほかのユーザーの端末操作プロセスの表示
  u:ユーザー名・開始時刻・UPU・メモリの使用率などを表示
  x:いま実行しているプロセスを表示

---どう使う?---
top -u ユーザー名
  指定したユーザーのプロセス状況を確認する
top -p プロセスID
  指定したプロセスの状況を確認する
top -d 更新間隔の秒数
  指定した秒数の感覚でtopの内容を更新する

---使用オプション---

  -u:表示するユーザーを名またはIDにて指定
  -p:表示するプロセスをIDにて指定
  -d:表示更新の感覚を秒数指定

---どう使う?---
grep "指定ワード" file_A.txt file_B.txt file_C.txt
  複数のファイルの中から指定ワードを検索する
grep "指定ワード" directoryA/fileA.txt
  他のディレクトリのファイルから指定ワードを検索
コマンド | grep 指定ワード
  最初のコマンドの結果から指定検索パターンで検索
  例:ls -l | grep 指定ワード
 👉 今のディレクトリにあるファイルを一覧表示、
  表示したファイルから指定したワードが含まれるファイル名を表示
  
---使用オプション---

  -l:検索結果にファイル名のみ表示

---どう使う?---
tail directoryA/file_A.txt
  他のディレクトリのファイルから末尾内容を表示
tail file_A.txt file_B.txt file_C.txt
  複数のファイルの末尾内容をまとめて表示
tail *.txt
  ファイル名に.txtが含まれるファイルの末尾内容をまとめて表示
tails -f fileA.txt
  ログファイルのように、末尾に情報が追記されるファイルの内容をリアルタイムで監視
tail -n 5 fileA.txt
  ファイルの末尾内容5行のみ表示
   省略:fail -5 fileA.txt
👀リアルタイム更新を終了:Ctrl+C

---使用オプション---

-f:ファイルの内容を監視し、表示結果をリアルタイムで更新
-n:出力する行数を指定

---どう使う?---
*(ワイルドカード)を使用したファイル名の指定をすると、キーワードの場所を指定(前とか後とか)
例:find . -name "shell*"
  先頭にshellを含むファイルをカレントディレクトリから検索
find ディレクトリ名 -name 検索ワード
  指定したディレクトリ内でファイルを検索
  指定したワードの大文字・小文字を区別して検索
    区別しない場合:-iname
find ディレクトリ名 -name 検索ワード -type d
  指定したディレクトリ内でディレクトリを検索
find file_A.txt file_B.txt file_C.txt (-type f)
  複数のファイルを検索する
find ./ -name "*.sh" -exec chmod 755 {} \;
  .shがつくファイル全ての権限を755に変更
find ディレクトリ名 -empty
  指定したディレクトリ内で、空のファイル・ディレクトリを表示
find ディレクトリ名 -ls
  指定したディレクトリ内のファイル情報を表示

---使用オプション---

-empty:サイズ0ファイル、空のディレクトリを検索
-exec:検索結果のファイルに指定したコマンドを実行
-ls:検索結果のファイルの情報を表示
-name:ファイルやディレクトリ名を指定し大文字・小文字を区別して検索
  -iname:ファイルやディレクトリ名を指定し大文字・小文字を区別せず検索
-type:指定したファイル種類に一致するファイルやディレクトリを検索
  -type f:ファイル
  -type d:ディレクトリ
  • chmod
    https://eng-entrance.com/linux-command-chmod
    ファイルやフォルダのアクセス権権限(パーミッション)を設定
    パーミッションは実行・書き込み変更・読み込みの設定が出来る
    例:chmod パーミッション番号 ファイル名
 7 rwx    読み書き実行可
 6 rw-    読み書き可
 5 r-x    読み  実行可
 4 r--    読み可
 3 -wx  書き実行可
 2 -w-    書き可
 1 --x    実行可
 0    --- なし

---どう使う?---
chmod -v 755(仮) file_A.txt | ls -la
  指定したファイルのアクセス権限を変更し、確認する
chmod ユーザー 追加解除 アクセス権限 file_A.txt

ユーザー:
  所有者 u
  グループ g
  その他ユーザー o
  すべてのユーザー a
追加解除:
  追加 +
  解除 -
アクセス権限:
  実行許可 x
  書き込み許可 w
  読み取り許可 r

---使用オプション---

-v:コマンド実行の結果を表示

---どう使う?---
chown -R 所有者名 ./
  カレントディレクトリ下、すべてのファイルやディレクトリの所有者を変更

---使用オプション---

  -R:ディレクトリ内の所有者を変更
  • &&
    https://eng-entrance.com/linux-basic-and
    複数のコマンドを実行(AND制御演算子)
    👀;と&&の違い:&&はコマンド1が成功したらコマンド2を実行する
    例:toush test.txt && ls -la test.txt

---どう使う?---
  複数のコマンド実行したいとき
  コマンド1が成功した後にコマンド2を実行させたいとき

番外編:シェルスクリプト~作成から実行~

  • シェルスクリプトファイルを実行する際の事前準備
    👀作成した.shファイルには、
    ファイル内のスクリプトを実行するための権限がないため、権限を与える必要がある
  $ touch test.sh  <!-- ファイルの作成 -->
  $ chmod 755 test.sh  <!-- ファイルの権限変更 -->
  $ ./test.sh  <!-- ファイルの実行 -->


省略系:作成と権限変更をまとめて実行:touch test.sh && chmod 755 test.sh

参考サイト

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1