##基礎を知ろう
「教えられるまま、ターミナルやコマンドを使っていたけどそもそも、何ができるの?
基礎を知れば、作業がもっとできることが広がるのでは…?」
という事で、ターミナルとは?
どんなコマンドがあって何が出来るの?
拙いながらに、調べて結果を議事録に残しています。
🔍ボリュームがあるので、概要を簡単に
ということで、いざ本題へ!🚪
対象者:初心者・コマンド怖い・どんなコマンドあるのか概要を知りたい人
環境:Windows10・Linux・Visual Studio Code
##もくじ
##本題
####ターミナル
https://www.sejuku.net/blog/4202
特別な文字(コマンド)にてパソコンの設定や操作を行う場所
-
ターミナルショートカットキー
http://doi-t.hatenablog.com/entry/2015/03/28/011926
例:Ctrl + c コマンドの強制終了
####ディレクトリ
-
pass
ファイルやフォルダ(ディレクトリ)が存在する場所
例:C:\Users\OWNER
-
カレントディレクトリ
自分が今いるディレクトリ(フォルダ)
例:git-repositoryファイルにいるとき
👉C:\Users\OWNER\git-repository
-
カレントディレクトリ
-
pwd
https://eng-entrance.com/linux-command-pwd
今、どの階層にいるのか(カレントディレクトリ)を表示する
例:/home/vagrant/bootcamp
ssh
別のコンピューターを遠隔で操作する際、送信するファイルなどのデータが他者に読まれぬよう、暗号化する仕組み
- sshの作成から設定まで
https://blog.masahiko.info/entry/2019/06/15/202003
$ssh-keygeにてssh keyを発行し、仮想環境(別のコンピューターで遠隔操作)への接続を行う
👀 リンクはwindowsのsshの設定です
###たぶん、よく使うコマンド
-
cd
https://eng-entrance.com/linux-command-cd
作業するディレクトリを移動するときのコマンド
例:cd 移動したいディレクトリ・ファイル名
👀 cdでerror発生した!違う階層にいる可能性が高い…。-
cd test
👉 自分がいる階層にtest.txtファイルあるか? - lsで今の階層には何があるのか確認する
- 目的のファイルがある階層まで移動する
または、
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
-
mkdir
https://eng-entrance.com/linux-command-mkdir
mkdir:make directory
ディレクトリ(フォルダ)の新規作成を行う
例:mkdir ディレクトリ名
-
touch
https://eng-entrance.com/linux-command-touch
ファイルの新規作成を行う
例:touch ファイル名.拡張子(txt・log・rb...)
-
rm
https://eng-entrance.com/linux_command_rm
rm:remove
ファイルやディレクトリ(フォルダ)を削除する
例:rm ディレクトリ1/ディレクトリ2/ディレクトリ・ファイル名
👀同じディレクトリにファイルがあるとき:rm text.txt
-
mv
https://eng-entrance.com/linux_command_mv
mv:move
ファイルやディレクトリ(フォルダ)の場所移動や名前の変更を行う
例:mv test.txt folder/test.txt
👉 test.txt が folderディレクトリ の test.txt へ -
パイプ
https://qiita.com/b4b4r07/items/77c589f21a99db8bb682
配管みたいにコマンドを接続していくもの
例:コマンド1 | コマンド2
👉 コマンド1の結果をコマンド2が受け取り2つのコマンドを実行する
###このコマンド、どこで使う?
ここからは、よく聞くけど、使い方がいまいちわからないコマンドを軽く紹介。
-
ps
https://eng-entrance.com/linux-command-ps
linux上で今動いているプロセスを一覧表示する
プロセス:実行中のプログラム
https://eng-entrance.com/linux-process
例:ps
---どう使う?---
ps aux
自分以外の実行中プロセスを含めた全てのプロセス一覧を確認
実行の妨げになるプロセスを見つける---使用オプション---
a:ほかのユーザーの端末操作プロセスの表示
u:ユーザー名・開始時刻・UPU・メモリの使用率などを表示
x:いま実行しているプロセスを表示
-
top
https://www.atmarkit.co.jp/ait/articles/1706/30/news018.html
現在実行中のプロセスをCPUの利用率が高い順番で表示
表示内容はリアルタイム更新
例:top オプション
---どう使う?---
top -u ユーザー名
指定したユーザーのプロセス状況を確認する
top -p プロセスID
指定したプロセスの状況を確認する
top -d 更新間隔の秒数
指定した秒数の感覚でtopの内容を更新する---使用オプション---
-u:表示するユーザーを名またはIDにて指定
-p:表示するプロセスをIDにて指定
-d:表示更新の感覚を秒数指定
-
grep
https://26gram.com/linux-grep-command
指定した文字列が含まれる行の検索
例:grep 検索パターン ファイル名
---どう使う?---
grep "指定ワード" file_A.txt file_B.txt file_C.txt
複数のファイルの中から指定ワードを検索する
grep "指定ワード" directoryA/fileA.txt
他のディレクトリのファイルから指定ワードを検索
コマンド | grep 指定ワード
最初のコマンドの結果から指定検索パターンで検索
例:ls -l | grep 指定ワード
👉 今のディレクトリにあるファイルを一覧表示、
表示したファイルから指定したワードが含まれるファイル名を表示
---使用オプション---
-l:検索結果にファイル名のみ表示
-
tail
https://26gram.com/linux-tail-command
ファイルの末尾内容を表示(デフォルトは10行分)
例:tail ファイル名
---どう使う?---
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
https://26gram.com/linux-find-command
ファイルやディレクトリ(フォルダ)を検索
例:find 検索対象 検索条件
---どう使う?---
*(ワイルドカード)を使用したファイル名の指定をすると、キーワードの場所を指定(前とか後とか)
例: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
https://eng-entrance.com/linux-command-chown
ファイルやディレクトリの所有者を変更
例:chown 所有者 ファイル名(ディレクトリ名)
---どう使う?---
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
##参考サイト