初心者のためのLinux入門

本ページではこれからLinuxを勉強しようとしているLinux初心者のために、Linuxの超基本的な内容を解説します。

Linuxとは?

LinuxとはOS(オペレーティングシステム)の1つです。OSはコンピュータやスマホを動かすための基本的なソフトウェアのことで、Linux以外のOSにはWindowsやMac OS等があります。

Linuxの大きな特徴としてオープンソースであることが挙げられます。 WindowsやMac OSはそれぞれMicrosoft、Appleが開発しており、一般の利用者の持つ権利を制限することで利益を上げるプロプライエタリソフトウェアです。 一方でLinuxはオープンソースですので、誰でも自由に利用や改変、再配布ができます。

このような特徴もあり、LinuxはWEBサーバーや計算サーバー等のOSとして幅広く活用されています。 インフラエンジニア、社内SE、ソフトウェアエンジニア、データサイエンティスト等、多くの職種でLinuxに触れる機会があるでしょう。

Linuxのインストール

Linuxを勉強するうえで、まずはLinuxの環境の準備が必要になります。いくつか方法がありますが、以下に主な方法を挙げます。

  • ネイティブインストール
    • パソコンに直接Linuxをインストールする方法
  • 仮想化ソフトウェア
    • VirtualBoxやVMware等の仮想化ソフトウェアを使い、通常使用しているOS上に仮想環境を作成する方法
  • WSL
    • Windows上でLinuxを利用するための仕組み

詳しいインストール方法はこちらも参考にしてください。

こちらのLinux学習サービスでは、ブラウザ上で使用できるLinux環境が用意されており、インストール不要で今すぐにLinuxを使い始めることができます。

Linuxコマンドを試してみる

Linuxの準備ができたら実際にLinuxを操作しながら学習していきましょう。

以下の解説はLinux学習サービスの環境に合わせていますので、他の環境で実行する場合には注意してください。

pwdコマンド

まずは、pwdコマンドを例にコマンドの使い方を学んでいきます。pwdコマンドとは、カレントディレクトリ(現在いるディレクトリ)を確認するコマンドです。

コマンドはキーボードを使って入力し、「Enter」キーを押すことで実行されます。

$ pwd /root

本ページでは、「$」の行には入力したコマンド、「$」のない行にはコマンドの出力結果を表示しています。この例では「pwd」と入力して「Enter」を押した結果、「/root」と表示されたということを表しています。

一番左の「/」はルートディレクトリと呼ばれ最上階層のディレクトリを表します。それ以降の「/」はディレクトリもしくはファイルの区切りを表します。 pwdコマンドの結果は「/root」と表示されていますので、カレントディレクトリはルートディレクトリの中の「root」ディレクトリということになります。

lsコマンド

次にlsコマンドを使ってみます。lsコマンドはファイルやディレクトリの情報を表示するコマンドです。以下のようにコマンドを入力すると、カレントディレクトリ内のファイルやディレクトリを一覧表示してくれます。

$ ls data

lsコマンドの結果、カレントディレクトリ(/root)内には、dataというディレクトリが存在していることがわかりました。

cdコマンド1

ディレクトリを移動するにはcdコマンドを使用します。コマンドにどのディレクトリに移動するか教えてあげる必要がありますので、以下のようにcdの後にスペースを空けて、ディレクトリ名を入力してあげます。 このようにスペースを空けてコマンドに与える情報を「引数」と言います。

$ cd data

pwdコマンドを使ってカレントディレクトリが変更できたことを確認できます。

$ pwd /root/data

lsコマンドでディレクトリの中身も確認してみましょう。

$ ls test.fa test.tsv

「test.fa」と「test.tsv」という2つのファイルが存在していることがわかります。

catコマンド

「test.tsv」ファイルの中身を見ていきます。中身を見るには、catコマンドを使用します。「引数」にファイル名を指定します。

$ cat test.tsv

タブ区切りのデータが確認できたかと思います。

cdコマンド2

元いたディレクトリに戻りましょう。これにはいくつかの方法があります。

一つ目は絶対パスを使用する方法です。絶対パスはディレクトリやファイルの場所をルートディレクトリからすべて指示する方法です。

$ cd /root $ pwd /root

これで、元いたディレクトリに戻ることができました。ただ、階層が深い場合には絶対パスをすべて記述するのは大変です。

そこで、相対パスを使用します。相対パスは、現在いるディレクトリを起点にして目的のディレクトリやファイルを指示する方法です。

$ cd data $ cd .. $ pwd /root

ピリオド2つ「..」はカレントディレクトリから1つ上の階層を意味しますので、「cd ..」で元いたディレクトリに戻ることができます。

他にも、引数を指定しないでcdコマンドを実行することでも元いたディレクトリに戻ることができます。

$ cd data $ cd $ pwd /root

cdコマンドは引数なしで実行した場合にホームディレクトリに移動するようになっているためです。ホームディレクトリとはログイン直後のディレクトリのことで、この環境では/rootがホームディレクトリですので、この方法でも元いたディレクトリに戻ることができます。

mkdirコマンド

新しいディレクトリを作ってみましょう。mkdirというディレクトリを作成するコマンドに、引数として新しいディレクトリの名前「test」を渡します。

$ mkdir test

これで「test」という名前の新しいディレクトリが作成されました。

lsコマンドを使って新しいディレクトリが作成できたことを確認できます。

$ ls data test

新しく作ったディレクトリに移動しておきましょう。

$ cd test

ディレクトリの中身は空になっています。

$ ls

touchコマンド

新しいファイルを作成してみましょう。touchコマンドはファイルの最終更新日を変更するコマンドですが、ファイルが存在しない場合には新しいファイルを作成します。

$ touch test.txt

これで「test.txt」という名前の新しいファイルが作成されました。

lsコマンドを使って新しいファイルが作成できたことを確認できます。

$ ls test.txt

cpコマンド

ファイルをコピーしてみましょう。cpコマンドの1つ目の引数にコピー元のファイル名、2つ目の引数にコピー先のファイル名を指定します。

$ cp test.txt test2.txt

これで「test.txt」が「test2.txt」にコピーされました。

lsコマンドを使ってコピーされたことを確認できます。

$ ls test.txt test2.txt

2つ目の引数にはディレクトリを指定することもできます。

$ cp test.txt /root/data

/root/dataディレクトリにtest.txtがコピーされました。

$ cd /root/data $ ls test.fa test.tsv test.txt

mvコマンド

ファイル名を変更してみましょう。mvコマンドの1つ目の引数に変更前のファイル名、2つ目の引数に変更後のファイル名を指定します。

$ mv test.txt test3.txt

これで「test.txt」が「test3.txt」という名前に変更されました。

lsコマンドを使ってファイル名が変更されたことを確認できます。

$ ls test.fa test.tsv test3.txt

2つ目の引数にディレクトリを指定することでファイルの移動も可能です。

$ mv test3.txt /root/test

/root/testディレクトリにtest3.txtが移動されました。

$ ls test.fa test.tsv $ cd /root/test $ ls test.txt test2.txt test3.txt

相対パス

cpコマンド、mvコマンドでディレクトリ名を指定する際に絶対パスを指定していましたが、相対パスを指定することもできます。

$ mv test3.txt ..

「..」はカレントディレクトリから1つ上の階層を意味しますので「test3.txt」は/rootに移動します。

$ cd /root $ ls data test test3.txt

/root/testから/root/dataにファイルを移動する際には以下のような書き方もできます。

$ cd /root/test $ mv test2.txt ../data $ cd /root/data $ ls test.fa test.tsv test2.txt

rmコマンド

rmコマンドでファイルやディレクトリを削除することができます。

$ cd $ ls data test test3.txt $ rm test3.txt $ ls data test
引数としてファイル名を渡すとそのファイルを削除することができました。ただし、ディレクトリを削除する場合には、引数として渡すだけではエラーになってしまします。
$ $ rm test rm: 'test' is a directory
ディレクトリを削除するには、以下のようにします。
$ rm -r test $ ls data
このような「-」から始まる文字列のことをオプションと言い、コマンドの機能をカスタマイズすることができます。