前書き
Linuxシステムの操作経験があまりない場合は、コマンドラインからオペレーティングシステムを制御する可能性に圧倒される可能性があります。 このガイドでは、基本を理解できるように努めます。
このガイドでは、Linuxシステムを効果的に使用するために知っておく必要があるすべてを網羅しているわけではありません。 ただし、将来の調査のための適切な出発点を提供する必要があります。 このガイドでは、他のガイドに進む前に知っておく必要がある最低限の情報を提供します。
前提条件と目標
このガイドに従うには、Linuxサーバーにアクセスする必要があります。 サーバーへの初めての接続に関する情報が必要な場合は、our guide on connecting to a Linux server using SSHをフォローできます。
また、ターミナルがどのように機能するか、Linuxコマンドがどのように見えるかについての基本的な理解が必要になります。 This guide covers terminal basicsなので、端末を初めて使用する場合はチェックしてください。
このガイドのすべての資料は、通常の非ルート(非管理)ユーザーアカウントで実現できます。 このタイプのユーザーアカウントを構成する方法については、ディストリビューションの初期サーバーセットアップガイド(Ubuntu 14.04、CentOS 7)に従ってください。
開始する準備ができたら、SSHを使用してLinuxサーバーに接続し、以下に進みます。
ナビゲーションと探査
あなたが習得する必要がある最も基本的なスキルは、ファイルシステムを動き回り、あなたの周りに何があるかを知ることです。 このセクションでは、これを可能にするツールについて説明します。
「pwd」コマンドで現在地を見つける
サーバーにログインすると、通常、ユーザーアカウントのhome directoryにドロップされます。 ホームディレクトリは、ユーザーがファイルを保存してディレクトリを作成するために取っておくディレクトリです。 これは、完全な支配権を持つファイルシステム内の場所です。
ホームディレクトリがファイルシステムの他の部分との関係でどこにあるかを見つけるには、pwd
コマンドを使用できます。 このコマンドは、現在いるディレクトリを表示します。
pwd
次のような情報を取得する必要があります。
/home/demo
ホームディレクトリはユーザーアカウントにちなんで名付けられているため、上記の例は、demo
というアカウントでサーバーにログインした場合の値です。 このディレクトリは、/home
というディレクトリ内にあります。このディレクトリ自体は、「root」と呼ばれますが、単一のスラッシュ「/」で表される最上位ディレクトリ内にあります。
「ls」でディレクトリの内容を見る
現在のディレクトリを表示する方法がわかったので、ディレクトリの内容を確認する方法を示します。
現在、上で見たホームディレクトリにはあまり見るものがないので、もっと人口の多い別のディレクトリに移動して探索します。 端末に次のように入力して、このディレクトリに移動します(ディレクトリの移動の詳細については、次のセクションで説明します)。 その後、pwd
を使用して、正常に移動したことを確認します。
cd /usr/share
pwd
/usr/share
新しいディレクトリに移動したので、中身を見てみましょう。 これを行うには、ls
コマンドを使用できます。
ls
adduser groff pam-configs
applications grub perl
apport grub-gfxpayload-lists perl5
apps hal pixmaps
apt i18n pkgconfig
aptitude icons polkit-1
apt-xapian-index info popularity-contest
. . .
ご覧のとおり、このディレクトリにはmanyのアイテムがあります。 コマンドにオプションのフラグを追加して、デフォルトの動作を変更できます。 たとえば、すべてのコンテンツを拡張形式で一覧表示するには、-l
フラグを使用できます(「長い」出力の場合)。
ls -l
total 440
drwxr-xr-x 2 root root 4096 Apr 17 2014 adduser
drwxr-xr-x 2 root root 4096 Sep 24 19:11 applications
drwxr-xr-x 6 root root 4096 Oct 9 18:16 apport
drwxr-xr-x 3 root root 4096 Apr 17 2014 apps
drwxr-xr-x 2 root root 4096 Oct 9 18:15 apt
drwxr-xr-x 2 root root 4096 Apr 17 2014 aptitude
drwxr-xr-x 4 root root 4096 Apr 17 2014 apt-xapian-index
drwxr-xr-x 2 root root 4096 Apr 17 2014 awk
. . .
このビューは多くの情報を提供しますが、そのほとんどはかなり珍しいように見えます。 最初のブロックは、ファイルの種類(最初の列が「d」の場合、アイテムはディレクトリ、「-」の場合、通常のファイル)と権限を示します。 空白で区切られた後続の各列には、ハードリンクの数、所有者、グループ所有者、アイテムサイズ、最終変更時刻、およびアイテムの名前が示されます。 これらのいくつかについては別の機会に説明しますが、今のところ、ls
の-l
フラグを使用してこの情報を表示できることを知っておいてください。
hiddenファイルとディレクトリを含むすべてのファイルのリストを取得するには、-a
フラグを追加します。 /usr/share
ディレクトリには実際の隠しファイルがないので、ホームディレクトリに戻ってそのコマンドを試してみましょう。 引数なしでcd
と入力すると、ホームディレクトリに戻ることができます。
cd
ls -a
. .. .bash_logout .bashrc .profile
ご覧のとおり、このデモには、特別なインジケーターである.
と..
とともに3つの隠しファイルがあります。 ここにあるように、多くの場合、構成ファイルは隠しファイルとして保存されます。
ドットエントリとダブルドットエントリの場合、これらは関連するディレクトリを参照する組み込みの方法ほど正確なディレクトリではありません。 単一のドットは現在のディレクトリを示し、二重のドットはこのディレクトリの親ディレクトリを示します。 これは次のセクションで役立ちます。
「cd」を使用してファイルシステム内を移動する
前のセクションでls
のいくつかのプロパティを示すために、すでに2つのディレクトリ移動を行いました。 ここでコマンドをよく見てみましょう。
次のように入力して、/usr/share
ディレクトリに戻ることから始めます。
cd /usr/share
これは、absolute pathを指定してディレクトリを変更する例です。 Linuxでは、すべてのファイルとディレクトリは最上位のディレクトリの下にあります。これは「ルート」ディレクトリと呼ばれますが、先頭のスラッシュ「/」で参照されます。 絶対パスは、この最上位ディレクトリに対するディレクトリの場所を示します。 これにより、ファイルシステム内の任意の場所から明確にディレクトリを参照できます。 すべての絶対パスmustはスラッシュで始まります。
別の方法は、relative pathsを使用することです。 相対パスは、currentディレクトリに関連するディレクトリを参照します。 階層内の現在のディレクトリに近いディレクトリの場合、これは通常簡単で短くなります。 現在のディレクトリ内の任意のディレクトリは、スラッシュなしで名前で参照できます。 次のように入力すると、現在の場所から/usr/share
内のlocale
ディレクトリに移動できます。
cd locale
同様に、現在のディレクトリのパスの後に来るパスの部分を提供することにより、相対パスで複数のディレクトリレベルを移動できます。 ここから、次のように入力して、en
ディレクトリ内のLC_MESSAGES
ディレクトリにアクセスできます。
cd en/LC_MESSAGES
戻るには、現在のディレクトリの親に移動するために、前に説明した特別な二重ドットインジケーターを使用します。 たとえば、現在、/usr/share/locale/en/LC_MESSAGES
ディレクトリにいます。 1レベル上に移動するには、次のように入力します。
cd ..
これにより、/usr/share/locale/en
ディレクトリに移動します。
以前に見た、常にホームディレクトリに戻るショートカットは、ディレクトリを指定せずにcd
を使用することです。
cd
pwd
/home/demo
これらの3つのコマンドの使用方法の詳細については、our guide on exploring the Linux filesystemを確認してください。
ファイルを表示する
最後のセクションでは、ファイルシステムをナビゲートする方法について少し学びました。 さまざまなディレクトリでls
コマンドを使用すると、おそらくいくつかのファイルが表示されます。 このセクションでは、ファイルの表示に使用できるさまざまな方法について説明します。 一部のオペレーティングシステムとは対照的に、Linuxおよびその他のUnixライクなオペレーティングシステムは、システムの大部分をプレーンテキストファイルに依存しています。
ファイルを表示する主な方法は、less
コマンドを使用することです。 これは、ファイルのページをスクロールできるため、「ページャー」と呼ばれるものです。 前のコマンドがすぐに実行されてコマンドラインに戻りましたが、less
は実行を継続し、終了するまで画面を占有するアプリケーションです。
/etc/services
ファイルを開きます。これは、システムが認識しているサービス情報を含む構成ファイルです。
less /etc/services
ファイルはless
で開かれ、ターミナルウィンドウの領域に収まるドキュメントの部分を確認できます。
# Network services, Internet style
#
# Note that it is presently the policy of IANA to assign a single well-known
# port number for both TCP and UDP; hence, officially ports have two entries
# even if the protocol doesn't support UDP operations.
#
# Updated from http://www.iana.org/assignments/port-numbers and other
# sources like http://www.freebsd.org/cgi/cvsweb.cgi/src/etc/services .
# New ports will be added on request if they have been officially assigned
# by IANA and used in the real-world or are needed by a debian package.
# If you need a huge list of used numbers please install the nmap package.
tcpmux 1/tcp # TCP port service multiplexer
echo 7/tcp
. . .
スクロールするには、キーボードの上下の矢印キーを使用できます。 1つの画面全体(情報に値する)をページダウンするには、スペースバー、キーボードの[Page Down]ボタン、またはCTRL-f
ショートカットのいずれかを使用できます。
上にスクロールするには、「PageUp」ボタンまたはCTRL-b
キーボードショートカットのいずれかを使用できます。
文書内のテキストを検索するには、スラッシュ「/」の後に検索語を入力します。 たとえば、「メール」を検索するには、次のように入力します。
/mail
これにより、ドキュメントが前方に検索され、最初の結果で停止します。 別の結果を得るには、小文字のn
キーを入力します。
n
前の結果に戻るには、代わりに大文字のN
を使用します。
N
less
プログラムを終了したい場合は、q
と入力して終了できます。
q
このセクションではless
ツールに焦点を当てましたが、特定の状況で役立つファイルを表示する方法は他にもたくさんあります。 cat
コマンドはファイルの内容を表示し、すぐにプロンプトに戻ります。 head
コマンドは、デフォルトで、ファイルの最初の10行を表示します。 同様に、tail
コマンドは、デフォルトで最後の10行を表示します。 これらのコマンドは、他のプログラムへの「パイピング」に役立つ方法でファイルの内容を表示します。 この概念については、今後のガイドで説明します。
これらのコマンドが/etc/services
ファイルをどのように異なる方法で表示するかを自由に確認してください。
ファイルとディレクトリの操作
前のセクションで、ファイルを表示する方法を学びました。 このセクションでは、ファイルとディレクトリを作成および操作する方法を示します。
「タッチ」でファイルを作成する
多くのコマンドとプログラムがファイルを作成できます。 ファイルを作成する最も基本的な方法は、touch
コマンドを使用することです。 これにより、指定した名前と場所を使用して空のファイルが作成されます。
まず、ホームディレクトリにいることを確認する必要があります。これは、これがファイルを保存する権限を持っている場所だからです。 次に、次のように入力して、file1
というファイルを作成できます。
cd
touch file1
これで、ディレクトリ内のファイルを表示すると、新しく作成されたファイルを確認できます。
ls
file1
既存のファイルでこのコマンドを使用する場合、コマンドはファイルが最後にアクセスおよび変更された時間にファイルシステムが保存するデータを更新するだけです。 これは現時点ではあまり役に立ちません。
複数のファイルを同時に作成することもできます。 絶対パスも使用できます。 たとえば、ユーザーアカウントの名前がdemo
の場合、次のように入力できます。
touch /home/demo/file2 /home/demo/file3
ls
file1 file2 file3
「mkdir」でディレクトリを作成します
touch
コマンドと同様に、mkdir
コマンドを使用すると空のディレクトリを作成できます。
たとえば、ホームディレクトリ内にtest
というディレクトリを作成するには、次のように入力します。
cd
mkdir test
次のように入力することで、ディレクトリwithinをexample
というtest
ディレクトリにすることができます。
mkdir test/example
上記のコマンドが機能するには、test
ディレクトリがすでに存在している必要があります。 特定のディレクトリパスを構築するために必要なディレクトリを作成する必要があることをmkdir
に通知するには、-p
オプションを使用できます。 これにより、1つの手順でネストされたディレクトリを作成できます。 次のように入力すると、some/other/directories
のようなディレクトリ構造を作成できます。
mkdir -p some/other/directories
このコマンドは、最初にsome
ディレクトリを作成し、次にその中にother
ディレクトリを作成します。 最後に、これら2つのディレクトリ内にdirectories
ディレクトリを作成します。
「mv」を使用したファイルとディレクトリの移動と名前変更
mv
コマンドを使用して、ファイルを新しい場所に移動できます。 たとえば、次のように入力して、file1
をtest
ディレクトリに移動できます。
mv file1 test
このコマンドでは、移動するすべてのアイテムと、最後に移動する場所を指定します。 特別なドット参照を使用して現在のディレクトリを参照することにより、そのファイルbackをホームディレクトリに移動できます。 ホームディレクトリにいることを確認してから、コマンドを実行する必要があります。
cd
mv test/file1 .
これは最初は直感的ではないように思われるかもしれませんが、mv
コマンドはrenameファイルおよびディレクトリにも使用されます。 本質的に、移動と名前の変更は、既存のアイテムの場所と名前を調整するだけです。
したがって、test
ディレクトリの名前をtesting
に変更するには、次のように入力します。
mv test testing
Note:Linuxシステムが特定の破壊的なアクションを妨げることはないことを理解することが重要です。 ファイルの名前を変更し、alreadyが存在する名前を選択した場合、前のファイルは、移動するファイルによってoverwrittenになります。 誤って上書きしてしまった場合、以前のファイルを復元する方法はありません。
「cp」を使用したファイルとディレクトリのコピー
mv
コマンドを使用すると、ファイルまたはディレクトリを移動または名前変更できましたが、複製することはできませんでした。 cp
コマンドは、既存のアイテムの新しいコピーを作成できます。
たとえば、file3
をfile4
という新しいファイルにコピーできます。
cp file3 file4
mv
操作とは異なり、その後file3
は存在しなくなりますが、file3
とfile4
の両方があります。
Note:mv
コマンドと同様に、操作のターゲットとして使用しているファイル名に注意しないと、ファイルをoverwriteすることができます。 たとえば、上記の例でfile4
がすでに存在している場合、そのコンテンツは完全にfile3
のコンテンツに置き換えられます。
ディレクトリをコピーするには、コマンドに-r
オプションを含める必要があります。 これは、ディレクトリとディレクトリのすべてのコンテンツをコピーするため、「再帰的」の略です。 このオプションは、ディレクトリが空かどうかに関係なく、ディレクトリで必要です。
たとえば、some
ディレクトリ構造をagain
という新しい構造にコピーするには、次のように入力します。
cp -r some again
既存の宛先が上書きにつながるファイルとは異なり、ターゲットがexisting directoryの場合、ファイルまたはディレクトリはターゲットにintoコピーされます。
cp file1 again
これにより、file1
の新しいコピーが作成され、again
ディレクトリ内に配置されます。
「rm」および「rmdir」を使用したファイルとディレクトリの削除
ファイルを削除するには、rm
コマンドを使用できます。
Note:rm
のような破壊的なコマンドを使用するときは、細心の注意を払ってください。 これらのアクションに「元に戻す」コマンドはないため、重要なファイルを誤って永久に破壊する可能性があります。
通常のファイルを削除するには、それをrm
コマンドに渡すだけです。
cd
rm file4
同様に、emptyディレクトリを削除するには、rmdir
コマンドを使用できます。 これは、問題のディレクトリに何もない場合にのみ成功します。 たとえば、testing
ディレクトリ内のexample
ディレクトリを削除するには、次のように入力します。
rmdir testing/example
non-emptyディレクトリを削除する場合は、rm
コマンドを再度使用する必要があります。 今回は、-r
オプションを渡す必要があります。これにより、ディレクトリのすべてのコンテンツとディレクトリ自体が再帰的に削除されます。
たとえば、again
ディレクトリとその中のすべてを削除するには、次のように入力します。
rm -r again
繰り返しになりますが、これらは永続的なアクションであることを繰り返す価値があります。 入力したコマンドが実行するものであることを完全に確認してください。
ファイルを編集する
現在、ファイルをオブジェクトとして操作する方法はわかっていますが、実際にファイルを編集してコンテンツを追加する方法は学習していません。
nano
コマンドは、最も単純なコマンドラインLinuxテキストエディターの1つであり、初心者にとって最適な出発点です。 これは、使用中は端末全体を占有するという点で、上記のless
プログラムと多少似ています。
nano
エディターは、既存のファイルを開いたり、ファイルを作成したりできます。 新しいファイルを作成する場合は、nano
エディターを呼び出すとき、または後でコンテンツを保存するときに、ファイルに名前を付けることができます。
次のように入力して、file1
ファイルを開いて編集できます。
cd
nano file1
nano
アプリケーションは、ファイル(現在は空白)を開きます。 インターフェースは次のようになります。
GNU nano 2.2.6 File: file1
[ Read 0 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Page ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where Is ^V Next Page ^U UnCut Text ^T To Spell
上部に、アプリケーションの名前と編集中のファイルの名前があります。 中央には、現在空白のファイルのコンテンツが表示されます。 下部に沿って、エディターの基本的なコントロールを示すいくつかのキーの組み合わせがあります。 これらのそれぞれについて、^
文字はCTRL
キーを意味します。
エディター内からヘルプを表示するには、次を入力します。
CTRL-G
ヘルプの参照が終了したら、CTRL-X
と入力してドキュメントに戻ります。
必要なテキストを入力または変更します。 この例では、次の2つの文を入力します。
Hello there.
Here is some text.
作業を保存するには、次のように入力します。
CTRL-O
これは文字「o」であり、ゼロではありません。 保存するファイルの名前を確認するように求められます:
File Name to Write: file1
^G Get Help M-D DOS Format M-A Append M-B Backup File
^C Cancel M-M Mac Format M-P Prepend
ご覧のとおり、下部のオプションも変更されています。 これらはコンテキストに依存します。つまり、何をしようとしているかによって変化します。 file1
がまだ書き込みたいファイルである場合は、「ENTER」を押します。
さらに変更を加え、ファイルを保存してプログラムを終了する場合、同様のプロンプトが表示されます。 新しい行を追加してから、次のように入力してプログラムを終了します。
CTRL-X
変更を行った後に保存していない場合は、行った変更を保存するかどうかを尋ねられます。
Save modified buffer (ANSWERING "No" WILL DESTROY CHANGES) ?
Y Yes
N No ^C Cancel
「Y」を入力して変更を保存し、「N」を入力して変更を破棄して終了するか、「CTRL-C」を入力して終了操作をキャンセルします。 保存することを選択した場合、以前に受け取った同じファイルプロンプトが表示され、同じファイルへの変更を保存することを確認します。 Enterキーを押してファイルを保存し、エディターを終了します。
cat
プログラムを使用して内容を表示するか、less
プログラムを使用してファイルを開いて表示することにより、作成したファイルの内容を確認できます。 less
で表示した後、ターミナルに戻るにはq
を押す必要があることに注意してください。
less file1
Hello there.
Here is some text.
Another line.
特定のガイドで参照されている可能性のある別のエディターは、vim
またはvi
です。 これは非常に強力な高度なエディターですが、非常に急な学習曲線が付属しています。 vim
またはvi
を使用するように指示された場合は、代わりにnano
を使用してください。 vim
の使用方法を学びたい場合は、guide to getting started with vimをお読みください。
結論
ここまでで、Linuxサーバーを回避する方法と、使用可能なファイルとディレクトリを確認する方法についての基本的な理解が得られました。 また、ファイルを表示、コピー、移動、または削除できる基本的なファイル操作コマンドについても知っておく必要があります。 最後に、nano
テキストエディタを使用した基本的な編集に慣れている必要があります。
これらのいくつかのスキルがあれば、他のガイドを続けて、サーバーを最大限に活用する方法を学ぶことができます。 次のガイドでは、how to view and understand Linux permissionsについて説明します。