はじめに
この記事はlinux初学者向けに基本コマンドをまとめています。
私も初学者で勉強中です。
各見出しを利用場面にしているので、こんな時に使いたい、と思った見出しがあれば見てみてください。
ディレクトリについて
コマンド紹介の前に、ディレクトリについて解説します。
ディレクトリとは、WindowsやMac OSで言うところの「フォルダ」です。
CUIで操作する場合、ディレクトリの移動もコマンドで操作を行います。
このコマンドは後ほど解説します。
ディレクトリの移動コマンド
ディレクトリの移動を行いたい場合に利用します。
cd ディレクトリ
オプションを指定することも可能ですが、
基本的にcdコマンドはオプションをつけずに使います。
例)フォルダ構成を以下の通りとします。
/ (ルートディレクトリ)
┣home
┃┗user
┃ ┗practice
┗other
カレントディレクト(=現在の場所)がhomeであり、ここから/user/practice に移動したい場合、以下のように指定します。
$ cd user/practice
相対パスとは?
カレントディレクトリからのパスを示したもの
このほか、同じuser/practiceに移動したい場合は、下記のように示すこともできます。
$ cd /home/user/practice
絶対パスとは?
ルートディレクトリ(/)からのパスを示したもの
ルートディレクトリとは?
linuxの場合、ディレクトリは1つの大きなツリーとなります。
(WindowsやMacの場合、Cドライブ、Dドライブなどドライブごとで複数ツリーができる)
ツリーの開始となるディレクトリがルートディレクトリです。
特殊なディレクトリの指定方法
ディレクトリを指定する際、通常の指定方法ではなく特別な指定ができる場合があります。
以下の通りです。
記号 | 指定ディレクトリ |
---|---|
/ | ルートディレクトリ |
~ | ホームディレクトリ (/home/ユーザー のディレクトリ) |
. | カレントディレクトリ |
.. | 親ディレクトリ (カレントディレクトリのひとつ上のディレクトリ) |
カレントディレクトリを表示する
カレントディレクトリを表示したい時に使用するコマンドです。
自分がどこにいるのかわからなくなった場合などに使用します。
$ pwd
基本的にpwdコマンドはオプションをつけずに使います。
ファイル・ディレクトリの中身を見る
ファイル・ディレクトリの中身を確認したい時に使用するコマンドです。
$ ls オプション ファイル名(もしくはディレクトリ名)
ファイル名(もしくはディレクトリ名)を指定しない場合は、カレントディレクトリの中身を表示することができます。
- オプションコマンド一覧
コマンド | 操作 |
---|---|
a | 隠しファイルも含めて表示する |
l | ディレクトリやファイルの権限など詳細情報も含めて表示する |
F | ファイルの種別を表示する※ |
t | 更新時間の降順でソートして表示する |
r | 通常と逆順でソートして表示する |
※ディレクトリには末尾に/が付き、通常のファイルでは末尾に*が付くなどわかりやすくなっています。
ディレクトリを作成する
ディレクトリを作成したい時に使用するコマンドです。
$ mkdir オプション ディレクトリ名
ディレクトリ名の指定は必須です。
下記のようなコマンドはNGです。
$ mkdir
ファイルを作成したい際のコマンドは、こちら。
ディレクトリを削除する
ディレクトリを削除したい時に使用するコマンドです。
$ rmdir オプション ディレクトリ名
ディレクトリの作成時同様に下記のようなコマンドはNGです。
$ rmdir
ディレクトリの中身が存在する場合、rmdirコマンドでディレクトリの削除はできません。
中身ごとまとめてディレクトリを削除したい際のコマンドは、こちら。
ファイルの中身を確認する
テキストファイルなど、中身を確認したい際に使用するコマンドです。
$ cat オプション ファイル名
- オプションコマンド一覧
オプション | 操作 |
---|---|
n | 中身を表示する際に先頭に行番号をつけて表示する |
ファイルの中身をスクロールで確認する
テキストファイルで1画面での確認が大変だったりする場合、
スクロールで確認できるようにするコマンドです。
$ less オプション ファイル名
- スクロール状態での移動コマンド
コマンド | 操作 |
---|---|
j | 一行下に移動 |
k | 一行上に移動 |
b | 一画面分上に移動 |
f, スペース | 一画面分下にスクロール |
q | lessコマンドを終了 |
j,k,qはvimのコマンドと同じと考えると馴染みのある人は覚えやすいかもしれません。
vimに関してはこちら
ファイルの最後を確認する
ファイルの末尾の内容を確認したい時などに使用します。
$ tail オプション ファイル名
- オプションコマンド一覧
コマンド | 操作 |
---|---|
n | 末尾からの行数を指定して出力 |
c | 末尾からのバイト数を指定して出力 |
ファイルのタイムスタンプを更新する・ファイルを作成する
すでにファイルが存在している場合はファイルのタイムスタンプを更新し、
ファイルが存在しない場合は、空のファイルを新規作成します。
$ touch ファイル名
例)test.txt といったファイルを新しく作りたい場合は、
$ touch test.txt
で実行します。
ファイルのタイムスタンプ更新も同様のコマンドで行えます。
ファイルを削除する
ファイルの削除を行いたい場合に使用するコマンドです。
$ rm ファイル名
rmコマンドは使ったタイミングで即時削除されるため要注意
rmコマンドはファイル削除用コマンドなので
$ rm ディレクトリ名
このようなディレクトリ削除はできません。
ディレクトリを削除したい場合、
コマンド | 操作 |
---|---|
r | 削除するディレクトリの中身ごと削除する |
このオプションを付与すると削除できるため、
ディレクトリを削除する場合はこちらのコマンドか、
$ rm -r ディレクトリ名
で実行し、削除します。
ファイルの中身がある場合もまとめて削除されるため、要注意。
ファイル削除時に確認したい場合は、
$ rm -i
で実行します。
ファイルを移動する、ファイル名の変更をする
- ファイルの移動は
$ mv オプション ファイル名 移動先パス
で移動できます。
- ファイル名の変更は
$ mv オプション 変更前のファイル名 変更後のファイル名
で変更できます。
- オプションコマンド一覧
コマンド | 操作 |
---|---|
i | 操作を行う前に確認する |
f | 確認を行わずに強制的に実行する |
ファイルのコピーをする
$ cp コピー元ファイル名
ファイル名をコピー元と別名でコピーしたい場合は、
$ cp オプション コピー元ファイル名 コピー先のファイル名
で実行します。
ファイルが存在する場合、上書きされるため要注意。
- オプションコマンド一覧
コマンド | 操作 |
---|---|
i | 操作を行う前に確認する |
r | ディレクトリに対して操作する※ |
p | 元ファイルの情報を引き継いで保存を行う(更新日時など) |
※rmコマンドをディレクトリに対して行う際のrオプションと同じです。オプションにrを付与せずディレクトリをコピーしようとするとエラーになります。
リンクを作成する
-
リンクとは?
リンクには ハードリンク と シンボリックリンク の2種類があります。 -
ハードリンク
ファイル名に対して使います。ディレクトリに対しては使えません。 -
シンボリックリンク
ディレクトリに対しても使えます。 -
リンクの使い方
よくアクセスするファイルやディレクトリのパス名が長い場合、毎回入力するのは大変なのでリンクを作成して作成したリンク名で簡単にアクセスできるようにします。
$ ln 元ファイル名 リンク名
$ ln -s 元ファイル名 リンク名
シンボリックリンクは、ハードリンクの実行コマンドに-sオプションを付与します。
ファイル、ディレクトリを検索する
$ find 検索開始場所 検索条件 検索後のアクション
で検索できます。
例)ルートディレクトリから検索を開始して、text.txtのファイル名と一致するファイルが存在する場合、ファイルのパスを表示する。
としたいときは下記のコマンドで実行します。
$ find / -name text.txt -print
ファイルのパーミッション(権限)を変更する
$ chmod 変更する権限 変更アクション パーミッション ファイル名(もしくはディレクトリ名)
例)ディレクトリ practiceに全ユーザーに対して読み取り権限のみを付与する場合
chmod a=r practice
- 変更する権限について
所有者か、全ユーザーかなどの対象を指定します。下記4種類です。
コマンド | 対象 |
---|---|
u | 所有者のみ |
g | グループのみ |
o | その他ユーザーのみ |
a | 全てのユーザー |
- 変更アクションについて
権限を指定した状態に変更します。下記3種類です。
コマンド | アクション |
---|---|
+ | 権限を追加 |
- | 権限を削除 |
= | 指定した権限のみにする |
- パーミッションについて
ファイルの所有者(オーナー)やその他のユーザーなどで権限を設定できます。権限は下記3種類です。
コマンド | 権限 |
---|---|
r | 読み取り(read) |
w | 書き込み(write) |
x | 実行(exe) |
上記コマンドはそれぞれを8進数で表現し、コマンドでの設定時にも8進数の値を利用することができます.
権限 | 8進数表記 |
---|---|
r | 4 |
w | 2 |
x | 1 |
ファイルの所有者(オーナー)を変更する
ファイルには作成時のユーザーをファイル所有者として設定されて保存されます。
ファイル所有者を変更したい際は以下のコマンドを実行します。
$ chown 変更後の所有ユーザー名 変更したいファイル名(もしくはディレクトリ名)
※ユーザー権限を変更する場合、root権限でないユーザーで実行すると権限なしで実行できません。
実行する権限に気をつけましょう。
実行中プロセス一覧表示する
現在実行されているプロセスを一覧表示します。
$ ps オプション
オプション一覧
コマンド | 操作 |
---|---|
a | 実行ユーザー以外の全ユーザーのプロセス |
u | 詳細情報も表示する |
x | psコマンド実行ユーザーのプロセス |
psコマンドはオプション付与時にハイフンをつけないので要注意
プロセス・ジョブを終了する
- プロセスIDで指定する場合
$ kill プロセスID
- ジョブ番号で指定する場合
$ kill %ジョブ番号
例)プロセスIDが1047、ジョブ番号が2の場合
$ kill 1047
もしくは、
$ kill %2
で終了できます。
まとめ
基本的なコマンドでも数が多く、オプションなどを含めると覚えるのは大変です。
少しずつ実際にコマンドを実行してみて覚えていきましょう。
私の場合、コマンド実行前にどのような結果になるかを想像してから実行すると、覚えが速くなります。