##Linuxとは
OSの一種、コンピュータを動かすための基本ソフト。
サーバー用や開発用に使われている
####Linuxカーネル
中核となるソフトウェア。
####Linuxディストリビューション
カーネルに色々なソフトウェアを組み合わせて使いやすくしたもの。
####シェル
LinuxのCLI を提供するソフトウェア。
ユーザーとカーネルの仲介役。
#####コマンドを入力すると実行結果が出力される
①ユーザーがプロンプトにコマンドを打つ
②シェルが入力された名前のコマンドを探す
③Linuxカーネルが見つかったコマンドを実行する
④シェルが実行結果を画面に表示
ターミナルとシェルは別。ターミナルの中でシェルが動いている。
#####ディレクトリ
ファイルを格納する仕組みのこと
###ショートカットキー
コマンド | 内容 |
---|---|
command + a | 行の先頭に移動 |
command + e | 行の最後に移動 |
command + h | カーソルの左を1文字削除 |
command + d | カーソル部分を1文字削除 |
command + w | カーソル位置の単語を削除 |
command + u | カーソル位置から行頭まで削除 |
command + k | カーソル位置から行末まで削除 |
command + y | 最後に削除した内容を挿入 |
command + c | 実行中のコマンドを強制終了 |
command + l | 画面の消去 |
command + s | 画面表示のロック |
command + q | 画面表示ロックの解除 |
Tab | コマンドやパスの補完 |
command + p,または↑ | 一つ前の履歴を見る |
command + n,または↓ | 一つ後の履歴を見る |
###主要なディレクトリ
ディレクトリ | 役割 |
---|---|
/bin | 一般ユーザー及び管理ユーザーの両方が使用するコマンドの実行ファイルを格納 |
/dev | デバイスファイルを格納 |
/etc | 設定ファイルを格納 |
/home | ホームディレクトリが配置される |
/sbin | 管理者向けのコマンドの実行ファイルを格納 |
/tmp | 一時的なファイルを格納 |
/usr | 各種アプリケーションとそれに付随するファイルを格納 |
/var | 変化するデータを格納 |
##各種コマンド
###cd
ディレクトリを移動するコマンド
$ cd [ディレクトリ]
ディレクトリ | 意味 |
---|---|
カレントディレクトリ 「.」 | 現在自分がいるディレクトリ |
親ディレクトリ 「..」 | 一つ上の階層のディレクトリ |
ホームディレクトリ 「~」 | 「/home/ユーザー名」ディレクトリ |
ルートディレクトリ 「/」 | 「/」ディレクトリ |
###pwd
カレントディレクトリ(自分がいるディレクトリ)を表示するコマンド
$ pwd
###ls
ファイルやディレクトリの一覧を表示するコマンド
$ ls [ディレクトリ・ファイル名]
#拡張子がhtmlのファイル一覧を表示
$ ls *.html
index.html home.html job.html
#zから始まり4文字で終わるファイルの表示
$ ls /bin/z???
/bin/zcat /bin/zcmp /bin/znew
#ファイルの詳細情報の表示
$ ls -l
#隠しファイルも含めた全てのファイルの表示
$ ls -a
#ファイルの種別を表示
# ls -F
###mkdir
ディレクトリを作成するコマンド
$ mkdir <作成するディレクトリ>
#深いディレクトリを一度に作成
$ mkdir -p test/2021/08
###rmdir
空のディレクトリを削除するコマンド
$ rmdir <ディレクトリ名>
###--help
コマンドのヘルプメッセージを表示
$ <コマンド> --help
###man
コマンドのマニュアルを表示
$ man <調べたいコマンド>
#キーワードから検索
$ man -k move
###cat
ファイルの中身を表示するコマンド
$ cat <ファイル名>
#ファイルの詳細情報を表示
$ cat -n <ファイル名>
#複数のファイルをまとめて表示
$ cat <ファイル名> <ファイル名>
###less
ファイルの中身をスクロール表示する
$ less <ファイル名>
#####<スクロールの操作>
コマンド | 内容 |
---|---|
スペースキー, f | 一画面下にスクロール |
b | 一画面上にスクロール |
j | 一行下にスクロール |
k | 一行上にスクロール |
q | lessコマンド終了 |
/<文字列> | 下方向に向かって検索 |
?<文字列> | 上方向に向かって検索 |
n | 次の検索結果に移動 |
N | 前の検索結果に移動 |
###touch
空のファイルを作成
$ touch <新規ファイル名1> <新規ファイル名2>
###rm
ファイル・ディレクトリを削除するコマンド
$ rm <ファイル名1> <ファイル名2> //複数削除可能
#ディレクトリも併せて削除
$ rm -r <ディレクトリ名>
#ファイルを削除する際に警告文を表示しない
$ rm -f <ファイル名>
#ファイルの削除前に確認
$ rm -i <ファイル名>
###mv
ファイルの移動、ファイル名を変更するコマンド
$ mv <移動元> <移動先>
#ファイル名を変更
$ mv <旧ファイル名> <新ファイル名>
#ファイルを移動
$ mv <ファイル名> <ディレクトリ名>
#上書きする前に確認する
$ mv -i <旧ファイル名> <新ファイル名>
###cp
ファイル・ディレクトリをコピーするコマンド
$ cp <コピー元> <コピー先>
#ファイルをコピー
$ cp <ファイル名> <ファイル名>
#ファイルをディレクトリ内にコピー
$ cp <ファイル名> <ディレクトリ名>
#上書き前に確認する
$ cp -i <ファイル名> <ファイル名>
#ディレクトリをコピーする
$ cp -r <ディレクトリ名> <ディレクトリ名>
###ln
リンクを張るコマンド
$ ln [オプション] <リンク元のファイル> <リンク名>
#ハードリンクを張る
$ ln <ファイル名> <ファイル名>
#シンボリックリンクを張る
$ ln -s <ファイル名> <ファイル名>
###find
ファイルを検索するコマンド
$ find <検索開始ディレクトリ> <検索条件> <アクション>
$ find . -name README.md -print
#ファイル名を指定してファイルを検索。ファイル名の大文字小文字は区別する。
$ find . -name README.md
#ワイルドカードが使える。*を使うときは"で囲う
$ find . -name '*.html' -print
#ファイル名を指定してファイルを検索。ファイル名の大文字小文字は区別しない。
$ find . -iname readme.md
#通常ファイルの検索
$ find . -type f -print
#シンボリックリンクの検索
$ find . -type l -print
#ディレクトリの検索
$ find . -type d -print
#複数の検索条件を指定。-aは省略可能。
$ find . -type d -a -name images -print
###リダイレクト
#入力リダイレクト(キーボードの代わりにファイルから入力する機能)
$ cat < /etc/hosts
#出力リダイレクト(コマンドの実行結果をファイルに保存)
$ ls > output.txt
$ cat > output.txt
#エラー入力のリダイレクト(エラー結果をファイルに保存)
$ ls /hoge 2> error.txt
#出力とエラー出力をまとめる
$ ls / /hoge > output.txt 2>&1
#リダイレクトで追記
$ echo Hello! >> output.txt
###/dev/null
入力先として指定しても何も返さず、出力先として指定してもデータは消え何も表示されないファイル。
#入力先として指定、入力先が何もない状態となる
$ cat < /dev/null
#出力先として指定、結果が何も表示されない
$ ls / > /dev/null
###パイプライン
複数のコマンドを連携させる機能。
コマンド | コマンド
$ ls /bin | less
$ ls /bin | grep systemd | less
###chmod
ファイルやディレクトリのパーミッションを設定
$ chmod [ugoa] [+-=] [rwx] <ファイル名>
$ chmod u+r file
#数値で指定
$ chmod <8進数の数値> <ファイル名>
$ chmod 755 file
記号 | 内容 |
---|---|
u | 所有者の権限 |
g | グループの権限 |
o | その他のユーザーの権限 |
a | 全ユーザーの権限 |
+ | 権限の追加 |
- | 権限を削除 |
= | 記述した権限にする |
パーミッション | 数値 |
---|---|
r(読み取り) | 4 |
w(書き込み) | 2 |
x(実行) | 1 |
###sudo
スーパーユーザーとしてコマンドが実行可能
管理者権限を持つユーザーがスーパーユーザー
$ sudo <コマンド>
###ps
実行中のプロセスを表示するコマンド
$ ps [オプション]
#全ユーザーのプロセスを、詳細情報を合わせて表示
$ ps aux
###jobs
現在のジョブの一覧を表示するコマンド
$ jobs
###fg,bg
ジョブをフォアグラウンド、バックグラウンドにするコマンド
$ fg %<ジョブID>
$ bg %<ジョブID>
###kill
ジョブやプロセスを終了させるコマンド
$ kill %<ジョブID>
$ kill %<プロセスID>