Linux のコマンドは非常に種類が多く、すべてを覚えようとすると心が折れてしまいますが、実際に多用するものはそこまで多くなく、使っているうちに慣れて使いこなすこともできるでしょう。
そこで、本記事では初心者向けに基礎知識から覚えておくべき代表的なコマンド一覧まで紹介します。
Linuxとは?
Linux は簡単に言うと、Mac や Windows などと同様に OS の一種で、コンピュータ全体を管理、制御します。
Linux はフィンランド出身のプログラマ、リーナス・トーバルズ氏によって開発されたオープンソースのOS であり、1991年に最初のバージョンが公開されました。
オープンソースは世界中に公開されている無料のソースコードのことで、無料で誰でも入手でき、中身を書き換えられるということです。
また、再配布も可能なため、公開後から現在まで、世界中のエンジニアたちがボランティアとして発展させ、当初はパソコンでのみ用いられる OS でしたが、いまではサーバやスーパーコンピュータ、携帯電話やテレビなどといった組み込みシステムなど、多様なシステムで使用されたり、さまざまな分野で一気に広がりを見せ、分野によっては主力 OS が Linux となっているものも増えたりと、有用なツールといえます。
OS や Webアプリを開発したい方や組み込み系のエンジニア、データベース関係のITサービス従事者の人におすすめです。
なぜLinuxコマンドを覚える必要があるのか
Linux は Windows や macOS が採用しているマウスで操作する GUI (グラフィカルユーザインタフェース) 方式ではなく、キーボードでコマンド打つことで操作するCUI (キャラクタユーザインタフェース) 方式を採用しています。
そのため、Linux を操作するにはコマンドを打つ必要があるため、最低限の Linuxコマンドは理解しておく必要があります。
Linux はさまざまな開発に用いられており、基本的にコマンドを用いて操作します。
そのため、基本的な Linux のコマンドは習得しておかないと、開発の現場においては不便を強いられます。
頻出Linuxコマンド一覧
まずは、Linux で使用する機会の多いコマンドを紹介していきます。実際にコマンドを入力して動作を確認してみましょう。
ディレクトリ操作
Linuxコマンド | 意味 | 書き方 | コマンドオプション |
ls | ディレクトリ情報を一覧表示する | $ ls | -1:リストを縦に並べる -a:隠しファイルも含めてすべて表示 -h:単位を読みやすい形式で表示 -k:キロバイト単位の表示 -l:ファイル詳細の表示 -m:ファイル名をカンマ区切り表示 -r:逆順で表示 -t:更新時間順に並べる -F:情報の付加 -R:ディレクトリ内容を再帰的に表示 -S:ファイルサイズ順に並べる -X:ファイルを拡張子毎に集約 |
pwd | 現在のディレクトリを表示する | $ pwd | -L: 論理的なディレクトリ名を表示 -P:物理的なディレクトリ名を表示 |
ディレクトリ移動・ファイル操作
Linuxコマンド | 意味 | 書き方 | コマンドオプション |
cd | ディレクトリを移動する カレントディレクトリを変更する | $ cd 移動先ディレクトリ | -L:論理的なディレクトリへ移動 -P:移動先がシンボリックリンクの場合、物理的なディレクトリへ移動 |
mkdir | フォルダを作成する | $ mkdir ファイル名 | -m:作成するディレクトリのパーミッションを設定 -p:必要に応じて親ディレクトリも作成 -v:経過表示 |
touch | ファイルを作成する ファイルのタイムスタンプを変更する | $ touch ファイル名 | -a:最終アクセス日時のみ変更 -c:ファイル作成不可 -d:文字列で指定した日時に変更 -h:シンボリックリンクの場合、リンク先ではなくシンボリックのタイムスタンプを変更 -m:最終更新日時のみ変更 -r:指定したファイルのタイムスタンプと同じ日時に変更 |
cp | ファイルをコピーする | $ cp コピー元.. コピー先 | -b:上書きファイルのバックアップ生成 -f:同じ名前のファイルも強制的に上書き -i:上書前に確認 -n:存在するファイルの上書き制御 -p:元のファイルの属性を保持 -v:実行内容の表示 |
mv | ファイルを移動する ファイル名を変更する | $ mv 移動元..移動先 | -b:上書き・削除されるファイルのバックアップ -f:上書き時、確認メッセージ非表示 -i:上書き時、確認メッセージ表示 -n:移動先に同名ファイルリが存在時、移動不可 -v:詳細を表示 |
rm | ファイルを削除する | $ rm ファイル名 | -d:unlinkでディレクトリを削除 -f:存在しないファイルを無視 -i: 削除前に確認 -r:ディレクトリを再帰的に削除 -v:経過を表示 |
cat | テキストファイルの内容を表示する | $ cat ファイル名 | -b:行番号を追加するが、空白行には追加無 -e:TABを除く全ての非表示文字を表示 -n:行番号を追加 -s:連続した空行を1行に変更 -t:非表示文字を表示 -v:TAB、改行、改ページ以外の非表示文字を表示 -A:全ての非表示文字を表示 -E:行の最後に”$”を表示 |
chmod | ファイルやフォルダのアクセス権限を変更する | $chmod モード ファイル名 モードについて 変更対象 u|所有者 g|グループ o|その他 a|上の3つ全て 変更方法 意味 =|指定した権限にする +|指定した権限を付与する -|指定した権限を除去する 変更する権限 r|読み込み w|書き込み x|実行 (例)u+xとオプションを指定すると「ファイルの所有者」に「実行権限」が付与されます。 | -c:コマンド実行時、変更があったときのみ結果表示 -f:エラーメッセージ表示不可 -v:コマンド実行時、詳細表示 -R:ディレクトリやそこに含まれるもののアクセス権を再帰的に変更 |
chown | ファイル、ディレクトリの所有者を変更する | $chown ユーザ:グループ ファイル名 | -f:エラーメッセージを非表示 -v:コマンドの実行状況を表示 -R:ディレクトリ内の所有者を変更 |
tar | ファイルの圧縮、展開する | アーカイブの作成 $ tar アーカイブ名 ファイル名 | -c:新規アーカイブを作成 -d:アーカイブとファイルシステムを比較 -f:アーカイブファイルを指定 -t:アーカイブ内容の一覧表示 -u:アーカイブファイルを更新 -v:圧縮・展開時に詳細を表示 -x:アーカイブを展開 |
ユーザ管理
Linuxコマンド | 意味 | コマンドオプション |
useradd/adduser | ユーザを新規作成する | -b:ホームディクトリの作成 -d ディレクトリ:ユーザのホームディレクトリ作成 -m:ユーザのホームディレクトリが存在しない場合に作成 -M:ユーザのホームディレクトリ作成不要 |
deluser | ユーザを削除する | -r:ユーザのホームディレクトとメールスプールを同時に削除 |
groupadd | グループを新規作成する | -f:グループが既に存在していた場合、終了 -g グループID:新規作成するグループのグループIDを指定 -o:グループIDが同じグループの作成を許可 -p パスワード:cryptで暗号化されたログインパスワードを利用 -r:システムアカウントを作成 |
groupdel | グループを削除する | -r:既存ユーザーのプライマリグループでも削除 -R ディレクト:chrootするディレクトリ |
chfn | ユーザ情報を変更する | -f:ユーザの名前を設定 -h:自宅の電話番号を設定 -o:オプションを設定 -p:オフィスの電話番号を設定 -r:オフィスの部屋番号を設定 |
システム管理操作
Linuxコマンド | 意味 | コマンドオプション |
free | メモリの空き容量、使用容量を表示する | -b:バイト単位表示 -g:GB単位表示 -h:読みやすい単位で表示 -k:KB単位表示 -m:MB単位表示 |
last | ログイン履歴を一覧表示する | -a:ホスト名を最後の欄に表示 -d:リモートログイン時、ログイン元のIPアドレスをホスト名に変換して表示 -i:リモートログイン時、ログイン元のIPアドレスのまま表示 -t 日時:指定した日時より前のログイン情報を表示 -x:システムのシャットダウンとランレベル変更の記録を表示 -R:hostname欄の表示不要 |
finger | ユーザ情報を表示する | -l:ログイン名、ユーザ名、ホームディレクトリ、シェル、メールを表示 -m:ユーザ検索時、ユーザのフルネームとの比較不要 -s:ログイン名、ユーザ名、端末名、アイドル時間、ログイン時間、オフィス、オフィスの電話番号を表示 |
ネットワーク関連操作
Linuxコマンド | 意味 | コマンドオプション |
route | ルーティングの表示や設定をする | -4:IPv4の情報を表示/操作 -6:IPv6の情報を表示/操作 -e:テーブルの表示にnetstatのフォーマットを使用 -ee:すべての情報を1行表示 -n:名前解決不要 -A ファミリー:アドレスファミリーを指定 -C:FIBの代わりにキャッ-F:カーネルが管理しているテーブルを表示、操作シュを表示、操作 |
ftp | ファイルをFTPで転送する | -d:デバックモードの有効化 -e:コマンド編集・コマンド実行履歴機能を無効化 -g:ファイル名の展開不可 -i:確認プロンプトの非表示 -n:自動ログイン実行を抑止 -v:応答情報を表示 |
ssh | sshでログインする | -1:SSHv1のみを使用 -2:SSHv2のみを使用 -4:IPv4のみを使用 -6:IPv6のみを使用 -a:認証エージェントを転送不可 -c 暗号化方法:通信を暗号化する方法を指定 -f:コマンド実行時、sshをバックグラウンド化 -i IDファイル:接続に使用する公開鍵ファイルを指 -k:GSSAPIによる認証を不許可 -l ユーザ名:接続に使用するユーザ名を指定 -o 設定パラメータ:設定パラメータを指定 -p ポート番号:接続に使用するポート番号を指定 -q ログファイル名:エラーメッセージや診断メッセージを非表示 -v:デバッグメッセージを表示 -x:X11のポートフォワーディングを無効 -A:認証エージェントを転送 -C:全通信を圧縮 -E ログファイル名:エラーを指定したファイルに記録 -F 設定ファイル:設定ファイルを指定 -K:GSSAPIによる認証を許可 -X:X11のポートフォワーディングを有効 -Y:信頼されたX11転送を有効 |
たまに使うLinuxコマンド一覧
Linuxコマンド | 意味 | コマンドオプション |
which | コマンドの保存先を調査する | -a: 環境変数PATHにある全ての実行ファイルを表示 -i:標準入力からエイリアスを読み込み、合致したものを表示 |
type | コマンドの保存先を調査する | -a:実行可能コマンドの全表示 -f:シェル関数を除外 -t: 実行コマンドに応じて「alias」「keyword」「function」「builtin」「file」を表示 -P:実行コマンドのディスク上ファイル名の表示 |
whatis | コマンドの簡単な説明を表示する 単語単位の完全一致検索をする | -c:設定ファイルを指定 -d:デバッグ情報を表示 -l:検索結果を折り返して表示 -r:検索に正規表現を使用 -s リスト:検索対象の章番号を指定 -v:警告メッセージの詳細表示 -w:検索にワイルドカードを使用 -L ロケール:検索時の言語を指定 -M パス:「man」ファイルの検索パスを指定 |
apropos | コマンドをキーワードで検索する 部分一致検索をする | -d:デバッグ情報を表示 -r:検索に正規表現を使用 -l:検索結果を折り返して表示 -s リスト:検索対象の章番号を指定 -v:警告メッセージの詳細表示 -w:検索にワイルドカードを使用 -C:設定ファイルを指定 -L ロケール:検索時の言語を指定 -M パス:「man」ファイルの検索パスを指定 |
find | ファイルを検索する | -amin 分数:指定した分数より前にアクセスされたファイル -anewer ファイル:指定ファイルのアクセス時刻以降にアクセスされたファイル -atime 日数:指定日数より前にアクセスされたファイル -mmin 分数:指定した分数より前に更新されたファイル -mtime 日数:指定日数より前に更新されたファイル -name パターン:ファイル名がパターンと一致するファイルを検索 -newer ファイル:指定ファイルの更新時刻以降に更新されたファイル -path パターン:パスがパターンと一致するファイルを検索 -size サイズ:ファイルサイズが指定したサイズに一致したファイル -type タイプ:ファイルタイプ検索 -H:指定したシンボリックリンクを追跡 -L:すべてのシンボリックリンクを追跡 -P:シンボリックリンクを追跡 |
cal | カレンダーを表示する | -1:今月のカレンダーを表示 -3:先月、今月、来月のカレンダーを表示 -j:1月1日を第1日とする年間通算日を表示 -m:月曜日を週の先頭に表示 -s:日曜日を週の先頭に表示 -y:今年の1年分のカレンダーを表示 |
date | 日付を表示する | -d 日時:現在ではなく、文字列で指定した日時を表示 -rファイル:ファイルの最終変更時刻を表示 -s 日時:システム時刻を指定した日時に変更表示 -u:協定標準時(UTC)を表示、設定 -R:日時をRFC2822形式で表示 |
覚えておくと良いLinuxコマンドの知識
Linux コマンドを使う場合、覚えておくと開発効率の上がる便利な知識がいくつかあります。
便利なLinuxショートカットキー
覚えておくと役に立つショートカットキーを紹介します。必須ではありませんが、これを使うか否かで、作業効率が変わってくるので利用するのがおすすめです。
Linuxショートカットキー | 意味 |
↑ ↓ | コマンド履歴を順に表示 |
tabキー | フォルダやファイル名の予測変換 |
Ctr(control) + a | カーソルを先頭に移動 |
Ctr + e | カーソルを終端に移動 |
Ctr + b | カーソルを一文字戻す |
Ctr + f | カーソルを一文字進める |
Ctr + d | カーソル位置の文字を消す |
Ctr + h | カーソル位置の左側の文字を消す |
Ctr + w | カーソル位置の左側の単語を消す |
Ctr + r | コマンド履歴の中で検索する |
Ctr + c | 実行中のコマンドを中止 |
Ctr + u | 行頭まで削除 |
Ctr + k | 行末まで削除 |
Linux系システムのディレクトリ構造
Linux コマンドを覚えるのであれば、Linux系システムのディレクトリ構造を理解しておくと便利です。
Linuxディレクトリ | 説明 |
/ (root) | ・最上のディレクトリであるルートディレクトリ |
/bin | ・バイナリ(Binary Folder)の略 ・ユーザが使用する実行ファイルが入っているディレクトリ ・cat、chmod、chown、cp、date、echo、ln、ls、mkdirなどのプログラム |
/boot | ・システム起動に必要なファイルが入っているディレクトリ |
/dev | ・デバイス(device)の略 ・ハードウェア機器を表すファイルが保存されるディレクトリ ・ キーボード、マウス、プリンターなどのデバイスをファイル |
/etc | ・Linux設定のファイルが保存されているディレクトリ |
/home | ・ユーザホームディレクトリ ・MacではUsers |
/usr | ・各種コマンドやドキュメント |
/lib | ・カーネルモジュールファイルとプログラムに必要な各種ライブラリファイルを保存しているディレクトリ |
/sbin | ・システム管理者が使用するシステム管理者用コマンドを保存しているディレクトリ |
/var | ・ヴァリアブル(Variable)の略 ・システム運用中に生成されて削除されるデータを保存するためのディレクトリ ・ログファイル、データベースキャッシングファイルなど |
/media | ・リムーバブルメディアのマウントポイント ・/mntディレクトリと区別必要 |
/mnt | ・マウントポイント ・Macの場合Volumes ・/mediaディレクトリと区別必要 |
困ったときのコマンドオプションの調べ方
Linux のコマンドにはそれぞれコマンドオプションが用意されています。
コマンドの使い方やコマンドオプションを調べたい場合、「man」コマンドが便利です。
繰り返しになりますが、Linux コマンドやコマンドオプションすべてを覚える必要はありません。開発現場で活躍するエンジニアでもすべて覚えている人はごく稀で、ほとんどの人は必要になったらその都度調べているのです。使っていくうちに慣れて覚えられるので手を動かして操作してみましょう。