Linuxの基礎コマンドをまとめていく
今回Linuxについて学んだので、基礎コマンドをまとめていきます。
Linuxではフォルダのことをディレクトリと呼ぶようですが同じ意味です。
cd - ディレクトリの移動
<例> $ cd Desktop
カレントリディレクトリ:.
親ディレクトリ:..
ホームディレクトリ:~
ルートディレクトリ:/
<補足>
カレントディレクトリ:今現在作業しているディレクトリのこと。
親ディレクトリ:1つ上のディレクトリ。
ホームディレクトリ:ユーザーがログインしてた時の最初のディレクトリで、ここからデスクトップなどにいける。
ルートディレクトリ:コンピューターシステムの最上位のディレクトリで、システムが持つ最初のディレクトリ。
pwd - 今現在のディレクトリの場所を表示
<例> $ pwd
ls - ディレクトリの中身を表示
<例> $ ls
今いるディレクトリの中身を表示してくれます。
mkdir - ディレクトリの作成
<例> $ mkdir hoge
rmdir - ディレクトリの削除
<例> $ rmdir hoge
hogeというディレクトリが削除されます。
※中に隠しファイルを含め、ファイルが残っているとエラーが出力されます。
中身が残っている状態で消したい場合は次に出てくるrm
コマンドで削除するとよいです。
rm - ファイルを削除する
rmコマンドはオプションを併用して使用することができます。
<基本構文> rm [オプション] <削除するファイル名>
<例> $ rm hoge.txt
よく使うオプション
-r
: ディレクトリ内にファイルが残っていても削除する。
-f
: ファイルを削除する際に警告文を表示しない。
-i
: ファイルの削除前に確認をする。
cat - ファイルの中身を表示する
<基本構文> $ cat [オプション] <ファイル名>
<例> $ cat /etc/hosts
よく使うオプション
-n
: 行番号を表示
less - ファイルの中身を表示する
膨大な量が表示されているとき一画面に収まらないときなどに使用する。
<基本構文> less [オプション] <ファイル名>
<使用例> $ less /etc/vimrc
スクロール画面での操作方法は
スペース
orf
: 一画面下にスクロール
b
: 一画面上にスクロール
j
: 1行下にスクロール
k
: 1行上にスクロール
q
: lessコマンド終了lessコマンド内でファイルを検索する
/<文字列>
: 下方向に向かって検索
?<文字列>
: 上方向に向かって検索
n
: 次の検索結果に移動
N
: 前の検索結果に移動
tail - 最終行から数行表示する
$ tail <ファイル名> <ファイル名2> # 複数ファイルを指定する時は半角スペースで指定できる。
特にオプション指定をしなかった場合、ファイルの最後から10行表示される。
オプションについて
-c
: 出力する文字数を指定する。
-n
: 出力する行数を指定する。
-q
: ファイル名を表示しない。
・複数ファイルを指定した場合、ファイル名が上に表示されるのを表示させないオプションである。
-v
: ファイル名を常に表示する。
・単体ファイル指定だとファイル名が表示されないので表示させたいときはこのオプションを使う。
-f
: ファイルの追記を監視する。
touch - 空のファイルを作成する
<基本構文> touch <新規ファイル名1> <新規ファイル名2>
半角スペースをあけて複数ファイルを作成することができます。
また、作成するディレクトリに同じファイル名が存在するときはタイムスタンプが更新されます。
mv - ファイルの移動、ファイル名の変更
<基本構文> mv [オプション]<移動元> <移動先>
<例> # dirというディレクトリと、fileを作成します。 $ mkdir dir $ touch file # ファイル名を変更(file → file1) $ mv file file1 # ファイルを移動(fileをdirディレクトリの中へ移動) $ mv file1 dir/ # 1つ上の階層へ移動する $ mv file1 ../dir
cp - ファイル・ディレクトリをコピー
<基本構文> cp [オプション] <コピー元> <コピー先>
<例> # fileという名前のファイルをnew_fileという名前でコピーする $ cp file new_file # ファイルをディレクトリ内にコピー $ cp file dir
よく使うオプション
-i
: 上書きする前に確認をする。
$ cp -i file new_file
-r
: ディレクトリコピーする。
※-rオプションを使用しないとエラーが出る。
$ cp -r dir new_dir
ln - リンクを貼る
- ハードリンク
1つのファイルに対して複数の名前をつけることができる。 - シンボリックリンク
あるファイルを参照する形でリンクをつけるので、元ファイルが削除されるとファイルを参照することができなくなる。
<基本構文> $ ln [オプション] <リンク元> <リンク名> # オプションを使用しないとハードリンクになる。
-s
: シンボリックリンクを張る。
$ ln -s file1 file2
find - ファイルを検索する
<基本構文> $ find <検索開始ディレクトリ> <検索条件> <アクション> $ find <.> <-name README.md> <-print>
<例> $ find . -name README.md -print
.がカレントディレクトリを指すので、オプション-name
でREADME.mdというファイルを探して-print
でパスを表示してくださいという意味になります。
オプションについて
-name
: ファイル名を指定してファイルを検索。ファイル名の大文字小文字は区別します。
*(ワイルドカード) = 任意の文字列に一致します。
? = 任意の1文字に一致します。
# シングルコーテーション(')で囲う必要があります。 $ find . -name '*.html' -print (.htmlというファイルを探してパスを表示します。)
-iname
: ファイル名を指定してファイルを検索。ファイル名の大文字小文字は区別しない。
-type
: ファイルの種別で検索
# -type f は通常ファイル $ find . -type f -print # -type l はシンボリックリンク $ find . -type l -print # -type d はディレクトリ $ find . -type d -print
chmod - ファイルやディレクトリのパーミッションを設定する
パーミッションとは?
ユーザーに対して権限が与えられており、誰でもファイルを編集したりすることができるわけではありません。中にはシステムの根幹に関わる大切なファイルを間違って削除してしまわないように、ユーザーに対して制限をかけています。
<基本構文> chmod [ugoa] [+-=] [rwx] <ファイル名>
ここでの記号について以下表にまとめました。
記号 | 内容 | 記号 | 内容 | 記号 | 内容 |
---|---|---|---|---|---|
u | 所有者の権限 | + | 権限を追加 | r | 読み取り専用 |
g | グループの権限 | - | 権限を削除 | w | 書き込み専用 |
o | その他のユーザーの権限 | = | 記述した権限にする | x | 実行 |
a | 前ユーザーの権限 |
<例> $ chmod u+r file # fileに対して所有者の読み取り権限を追加
chown - ファイルの所有者やグループを変更する
chown [オプション] ユーザー[:グループ] ファイル名
# ユーザー所有者とグループ所有者を変更 $ chown root:root file # ユーザー所有権のみ変更 $ chown root file
ファイルやディレクトリの所有者やグループを変更できるコマンドです。 所有者とグループを同時に変更する場合はコロンで繋げる。
オプションについて
-c
: 所有権が変更された場合、詳細を表示する。
-f
: エラーメッセージを表示しない。
-h
: 指定したファイルがシンボリックリンクの場合、シンボリックリンクのみ所有権を変更する。
-R
: 指定したディレクトリとそのディレクトリ以下のファイルの所有権を再起的に変更する。
-v
: 所有者変更の詳細を表示する。
ps - プロセスを表示する
プロセスとは実行中のプログラムのことを指します。コマンドを実行すると実行ファイルをメモリに格納してメモリ上でCPUがプログラムを実行します。
<基本構文> $ ps [オプション]
<例> $ ps PID TTY TIME CMD 39 pts/0 00:00:00 ps 1390 pts/0 00:00:00 bash
この1行ずつがプロセスであり、PIDがプロセスIDを指し、CMDが実行中のコマンドです。
kill - ジョブやプロセスを終了させるコマンド
kill [オプション] %<ジョブID> kill [オプション] <プロセスID>
<例> $ kill %1 $ kill 4559
画面上で動いている(フォアグラウンド)処理や、バックグラウンドで動いている処理などを終了させることができる。
終わりに
基礎コマンドでもたくさんありました。このほかにもありますし、組み合わせて実行となるとまだまだ覚えることは多いですが、引き続き学習を進めていきたいと思います。