【一覧表付き】初めてLinux(UNIX)を使うエンジニアが覚えるべき9つのコマンド

【一覧表付き】 初めてLinux(UNIX)を使うエンジニアが覚えるべき9つのコマンド

Tech Noteの読者の中には、「Linux」OSを使う人もいるのではないでしょうか? 今回は、Linux(以下UNIXを含む)を使う必要が出てきた新人エンジニアに向けて、最低限Linuxを操作できるようになるための代表的なコマンドを紹介します。

「UNIX」はLinuxの元となったOSで、現在ではオープンソースであるLinuxを使うケースが多いといわれています。ちなみにこの記事の読者対象である初心者の方は、両者は同じものと理解してもらって問題ありません。記事の最後には、今回紹介したコマンドの一覧表を掲載していますので、ぜひデスクの前に貼って活用してください。

1. はじめに:Linuxで使われるコマンドとは?

WindowsやMACはGUI(Graphical User Interface)と呼ばれ、フォルダやファイルをアイコンなどで示すことで管理を容易にしています。一方LinuxはCUI(Character User Interface)と呼ばれ、基本的な動作をコマンド(文字列)で行います。

図1:LinuxとWindowsの操作方法の違い

図1:LinuxとWindowsの操作方法の違い

一見よく分からない文字列の連続に見えるコマンドも、下記の基本的な入力ルールを知ると、ぐっと身近になります。

  • コマンドは大文字と小文字を区別する
  • コマンドは「コマンド(+オプション+引数)」を記述する
  • オプションはコマンドの操作方法を指し、引数は主にファイルやディレクトリの指示に使われる
  • コマンドとオプション、引数それぞれの間は、全て1つ以上のスペースで区切る
  • オプションは「-」の後に入力し、複数指定する場合は順不同

この基本を把握したら、実際の例を見ていきましょう。

2. Linuxの基本的なコマンド:ディレクトリの移動、確認に使う「pwd」「ls」「cd」

ファイルの編集を行うために、作業中のディレクトリを確認・移動したり、ディレクトリの中身を確認したりする下記の3つのコマンドは、最も使用頻度が高いでしょう。

図2: コマンド「pwd」「ls」「cd」の使用例

図2: コマンド「pwd」「ls」「cd」の使用例

現在作業しているディレクトリを確認するコマンドが「pwd」です。図2では、最初に「pwd」コマンドを入力することで、現在「/var/tmp/test」というディレクトリで作業中であることが分かります。

作業中のディレクトリの中身を確認するコマンドが「ls」です。図2では、2回目に「ls」コマンドを入力して、「/var/tmp/test」というディレクトリの中に「unix」というディレクトリ(ファイル)があることを確認しています。

作業ディレクトリの変更を行うコマンドが「cd」です。図2では、「cd unix」と入力して、「/var/tmp/test」の下の「unix」というディレクトリに作業ディレクトリを変更しています。その後pwdコマンドで、現在の作業ディレクトリが移動し、「/var/tmp/test/unix」に変更されていることが分かります。

4回目には、再び「cd」コマンドを使っています。今度は「cd ..」として1つ上のディレクトリ(つまり 「/var/tmp/test」)に移動しています。Linuxでは、「..」(ピリオド2つ)は上のディレクトリを表します。なお、「cd」というコマンドを引数なしで(つまり「cd」とだけ)使うと、自分のホームディレクトリ(最初ログインしたときのディレクトリ)に戻るので、注意が必要です。

3. Linuxの基本的なコマンド:ファイルのコピー、移動、名前変更に使う「cp」「mv」

次にファイルのコピーや移動に使うコマンドを紹介します。

図3:コマンド「cp」「mv」の使用例

図3:コマンド「cp」「mv」の使用例

ファイルのコピーに使うコマンドは「cp」です。図3では「cp test.txt file.txt」と入力し、「test.txt」というファイルを「file.txt」というファイルにコピーしています。

ファイルの移動に使うコマンドは「mv」です。図3では「mv test.txt test1.txt」と入力し、「test.txt」というファイルを「test1.txt」というファイルに移動しています。この場合は結果として、「test.txt」というファイルの名前を「test1.txt」という名前に変えたことになります。実は、Linuxにはファイル名変更のコマンドはありません。ファイル名を変えたいときは「mv」コマンドを使います。

なお、図3では同じディレクトリ内でファイルのコピーや移動をしています。実際は異なるディレクトリ間で行うことがほとんどでしょう。その場合はコピー(移動)後のファイル名にディレクトリ名を付けます。つまり、「cp test.txt /xxx/test.txt」とすれば、「/xxx」というディレクトリに「test.txt」というファイルをコピーできますし、「cp test.txt ../test.txt」とすれば、作業ディレクトリの1つ上のディレクトリに「test.txt」をコピーできます。

4. Linuxの基本的なコマンド:ファイルの削除に使う「rm」

ファイルの削除に使う「rm」を紹介します。ファイルは、一度削除すると復元できません。十分注意して使いましょう。

図4:コマンド「rm」の使用例

図4:コマンド「rm」の使用例

図4では、まず「rm test.txt」として「test.txt」というファイルを削除しています。次に「rm *」として、作業ディレクトリにある全てのファイルを削除しています。「*」はワイルドカードというもので、この場合は全てということを意味します(後でも説明します)。このように「rm *」で簡単に全てのファイルを消せてしまうので、必要なファイルを消してしまわないよう、十分注意してください。

5. Linuxの基本的なコマンド:ディレクトリの作成、削除に使う「mkdir」「rmdir」

ディレクトリの作成、削除のコマンドを紹介します。

図5:コマンド「mkdir」「rmdir」の使用例

図5:コマンド「mkdir」「rmdir」の使用例

ディレクトリ作成に使うコマンドは「mkdir」です。図5では最初に「mkdir dir1」として「dir1」というディレクトリを作成しています。

その後、「rmdir」というコマンドで作成した「dir1」を削除しています。ただし、「rmdir」を使う場合は消す対象のディレクトリが空でなければなりません。つまり、ファイルを含むディレクトリは基本的に「rmdir」では消せません。

この仕様は安全のためには便利な一方、実際には面倒に感じることもあるでしょう。そのときは、先に紹介したファイルを消去するコマンド「rm」に「–r」というオプションを追加した形式「rm –r」で、ディレクトリごと削除できます。ただし、危険なので使うときには十分注意してください。

6. Linuxの基本的なコマンド:ファイルのアクセス権を変更する「chmod」

WindowsやMACは自分専用となる場合が多いですが、Linuxの場合は多数のユーザーで共有して使うことがほとんどです。その場合、自分のファイルをほかのユーザーに見せるかどうか、変更を許可するかどうかを決めておかなければなりません。そのためのファイルのアクセス制御を行うコマンドが「chmod」です。

図6:コマンド「chmod」の使用例

図6:コマンド「chmod」の使用例

実際にこのコマンドを使うのは、他のユーザーからアクセス権の許可を頼まれる場合でしょうから、今回はその例を中心に紹介します。

「ls」コマンドに「-l」というオプションを付けると、ファイルのアクセス権を確認できます。最初の状態では「dirtest」というディレクトリも「file.txt」というファイルも自分以外はアクセス権がなく、ほかのユーザーからは内容を確認できない状態になっています(アクセス権の見方は一覧表を参考にしてください)。

ここで「file.txt」に「chmod a+r」(全てのユーザーにリード権を付与)することにより、全てのユーザーが「file.txt」を参照できるようになります。ディレクトリ「dirtest」も同様に操作しますが、ディレクトリの場合は中身を見るために、「chmod a+x」で実行権限も与えなければなりません。

7. Linuxの重要な概念:絶対パスと相対パス

コピーのコマンド(cp)で触れたとおり、作業ディレクトリ以外のファイルを操作するときには、ディレクトリを入力する必要があります。例えば、ルートディレクトリ(1番上のディレクトリ)の「a-dir」の下の「b-dir」の下の「c-dir」の中の「file.txt」というファイルは、「/a-dir/b-dir/c-dir/file.txt」と記述します。これが絶対パスです。

ただし、これではディレクトリの階層が深くなったときに面倒なので、相対パスという指定の方法も使えます。これは、現在の作業ディレクトリから、1つ上のディレクトリは「../」(ピリオド2つ)と、自分のディレクトリは「./」(ピリオド1つ)と表すものです。

図7:絶対パスと相対パスの書き方

図7:絶対パスと相対パスの書き方

図7では、現在の作業ディレクトリが「/var/tmp/test/unix」です。ここで、「/var/tmp/test/file.txt」というファイルは、1つ上のディレクトリを表す「../」を使って、「../file.txt」とも書けます。また、「/var/tmp/test/unix/dir/file.txt」というファイルは、自分のディレクトリを表す「./」を使って、「./dir/file.txt」とも書けます。

8. Linuxの重要な概念:ワイルドカードと隠しファイル

コマンド「cp」のところでも触れたとおり、「*」を使って全てのファイルを指定できます。「*」はもっと便利な使い方もできて、下の写真の例のように「f*」とすることで、「f」で始まる全てのファイルをコピーすることができます。

Linuxでは「.」(ピリオド)で始まるファイル名が隠しファイルになります。下の写真の例では「.cshrc」というファイルは隠しファイルになるので、普通に「ls」としても存在は確認できません。隠しファイルも見える「-a」オプションを使うと「.cshrc」ファイルと確認できます。

図8:ワイルドカードと隠しファイルの使用例

図8:ワイルドカードと隠しファイルの使用例

今回紹介した9個のコマンドと3つの概念を理解すれば、Linuxにおけるファイル操作で、最低限のことはできるようになります。一覧表では今回紹介したコマンドの使い方とオプションをまとめていますので、慣れるまではこれを見ながら操作するとよいでしょう。また、一覧表には、初心者が困りそうな圧縮ファイルの解凍方法のコマンドも載せてあります。ぜひ活用してください!