序章

Linuxシステムでの作業経験があまりない場合は、コマンドラインからオペレーティングシステムを制御する可能性に圧倒される可能性があります。 このガイドでは、基本を理解するように努めます。

このガイドでは、Linuxシステムを効果的に使用するために知っておく必要のあるすべてを網羅しているわけではありません。 しかし、それはあなたに将来の探求のための良い出発点を与えるはずです。 このガイドでは、他のガイドに進む前に知っておく必要のある最低限のことを説明します。

前提条件と目標

このガイドに従うには、Linuxサーバーにアクセスできる必要があります。 サーバーへの初めての接続に関する情報が必要な場合は、SSHを使用したLinuxサーバーへの接続に関するガイドに従ってください。

また、ターミナルがどのように機能し、Linuxコマンドがどのように見えるかについての基本的な理解も必要になります。 このガイドは端末の基本をカバーしているので、端末を初めて使用する場合はチェックする必要があります。

このガイドのすべての内容は、通常の非ルート(非管理)ユーザーアカウントで実行できます。 このタイプのユーザーアカウントを構成する方法については、ディストリビューションの初期サーバーセットアップガイド( Ubuntu 14.04 CentOS 7 )に従ってください。

開始する準備ができたら、SSHを使用してLinuxサーバーに接続し、以下に進みます。

習得する必要のある最も基本的なスキルは、ファイルシステム内を移動し、自分の周りにあるものを把握することです。 このセクションでは、これを可能にするツールについて説明します。

「pwd」コマンドで現在地を見つける

サーバーにログインすると、通常、ユーザーアカウントのホームディレクトリに移動します。 ホームディレクトリは、ユーザーがファイルを保存してディレクトリを作成するために取っておいたディレクトリです。 これは、ファイルシステム内で完全に支配されている場所です。

ホームディレクトリがファイルシステムの他の部分との関係でどこにあるかを調べるには、pwdコマンドを使用できます。 このコマンドは、現在いるディレクトリを表示します。

pwd

次のような情報を取得する必要があります。

/home/demo

ホームディレクトリはユーザーアカウントにちなんで名付けられているため、上記の例は、demoというアカウントでサーバーにログインした場合の値です。 このディレクトリは、/homeというディレクトリ内にあります。このディレクトリ自体は、「ルート」と呼ばれますが、単一のスラッシュ「/」で表される最上位ディレクトリ内にあります。

「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
. . .

ご覧のとおり、このディレクトリには多くのアイテムがあります。 コマンドにいくつかのオプションのフラグを追加して、デフォルトの動作を変更できます。 たとえば、すべてのコンテンツを拡張形式で一覧表示するには、-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フラグで表示できることを知っておいてください。

非表示ファイルとディレクトリを含むすべてのファイルのリストを取得するには、-aフラグを追加します。 /usr/shareディレクトリには実際の隠しファイルがないので、ホームディレクトリに戻ってそのコマンドを試してみましょう。 引数なしでcdと入力すると、ホームディレクトリに戻ることができます。

cd
ls -a
.  ..  .bash_logout  .bashrc  .profile

ご覧のとおり、このデモには、特別なインジケーターである...とともに、3つの隠しファイルがあります。 ここでの場合のように、多くの場合、構成ファイルは隠しファイルとして保存されます。

ドットおよびダブルドットエントリの場合、これらは、関連するディレクトリを参照する組み込みのメソッドほど正確にはディレクトリではありません。 一点鎖線は現在のディレクトリを示し、二重点はこのディレクトリの親ディレクトリを示します。 これは次のセクションで役立ちます。

「cd」を使用してファイルシステム内を移動する

前のセクションでlsのいくつかのプロパティを示すために、すでに2つのディレクトリ移動を行いました。 ここでコマンドを詳しく見てみましょう。

次のように入力して、/usr/shareディレクトリに戻ることから始めます。

cd /usr/share

これは、絶対パスを指定してディレクトリを変更する例です。 Linuxでは、すべてのファイルとディレクトリは「ルート」ディレクトリと呼ばれる最上位のディレクトリの下にありますが、先頭にスラッシュ「/」が1つ付いています。 絶対パスは、この最上位ディレクトリに関連するディレクトリの場所を示します。 これにより、ファイルシステム内の任意の場所から明確な方法でディレクトリを参照できます。 すべての絶対パスはスラッシュで始まる必要があります

別の方法は、相対パスを使用することです。 相対パスは、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つのコマンドの使用方法の詳細については、Linuxファイルシステムの探索に関するガイドを参照してください。

ファイルの表示

前のセクションでは、ファイルシステムをナビゲートする方法について少し学びました。 さまざまなディレクトリで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

次のように入力すると、内にディレクトリを作成できます。testディレクトリはexampleと呼ばれます。

mkdir test/example

上記のコマンドが機能するには、testディレクトリがすでに存在している必要があります。 mkdirに、特定のディレクトリパスを構築するために必要なディレクトリを作成する必要があることを通知するには、-pオプションを使用できます。 これにより、ネストされたディレクトリを1つのステップで作成できます。 次のように入力すると、some/other/directoriesのようなディレクトリ構造を作成できます。

mkdir -p some/other/directories

このコマンドは、最初にsomeディレクトリを作成し、次にその中にotherディレクトリを作成します。 最後に、これら2つのディレクトリ内にdirectoriesディレクトリを作成します。

「mv」を使用したファイルとディレクトリの移動と名前の変更

mvコマンドを使用して、ファイルを新しい場所に移動できます。 たとえば、次のように入力して、file1testディレクトリに移動できます。

mv file1 test

このコマンドでは、移動したいすべてのアイテムを、最後に移動する場所とともに指定します。 特別なドット参照を使用して現在のディレクトリを参照することにより、そのファイルbackをホームディレクトリに移動できます。 ホームディレクトリにいることを確認してから、次のコマンドを実行する必要があります。

cd
mv test/file1 .

これは最初は直感的ではないように思われるかもしれませんが、mvコマンドはファイルとディレクトリの名前を変更するためにも使用されます。 基本的に、移動と名前の変更はどちらも、既存のアイテムの場所と名前を調整するだけです。

したがって、testディレクトリの名前をtestingに変更するには、次のように入力します。

mv test testing

:Linuxシステムが特定の破壊的なアクションを妨げることはないことを理解することが重要です。 ファイルの名前を変更し、すでにが存在する名前を選択した場合、前のファイルは移動するファイルによって上書きされます。 誤って上書きした場合、前のファイルを復元する方法はありません。

「cp」を使用したファイルとディレクトリのコピー

mvコマンドを使用すると、ファイルまたはディレクトリを移動または名前変更できましたが、複製することはできませんでした。 cpコマンドは、既存のアイテムの新しいコピーを作成できます。

たとえば、file3file4という新しいファイルにコピーできます。

cp file3 file4

mv操作とは異なり、file3は存在しなくなり、file3file4の両方が使用できるようになります。

mvコマンドと同様に、操作のターゲットとして使用しているファイル名に注意しないと、ファイルを上書きすることができます。 たとえば、上記の例でfile4がすでに存在する場合、そのコンテンツはfile3のコンテンツに完全に置き換えられます。

ディレクトリをコピーするには、コマンドに-rオプションを含める必要があります。 これは、ディレクトリとディレクトリのすべてのコンテンツをコピーするため、「再帰的」を表します。 このオプションは、ディレクトリが空であるかどうかに関係なく、ディレクトリで必要です。

たとえば、someディレクトリ構造をagainという新しい構造にコピーするには、次のように入力します。

cp -r some again

既存の宛先が上書きにつながるファイルとは異なり、ターゲットが既存のディレクトリの場合、ファイルまたはディレクトリはからターゲットにコピーされます。

cp file1 again

これにより、file1の新しいコピーが作成され、againディレクトリ内に配置されます。

「rm」と「rmdir」を使用したファイルとディレクトリの削除

ファイルを削除するには、rmコマンドを使用できます。

rmのような破壊的なコマンドを使用する場合は、細心の注意を払ってください。 これらのアクションには「元に戻す」コマンドがないため、重要なファイルを誤って完全に破棄する可能性があります。

通常のファイルを削除するには、それをrmコマンドに渡すだけです。

cd
rm file4

同様に、 empty ディレクトリを削除するには、rmdirコマンドを使用できます。 これは、問題のディレクトリに何もない場合にのみ成功します。 たとえば、testingディレクトリ内のexampleディレクトリを削除するには、次のように入力します。

rmdir testing/example

空でないディレクトリを削除する場合は、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の使用方法を知りたい場合は、vimの使用を開始するためのガイドをお読みください。

結論

これで、Linuxサーバーを回避する方法と、使用可能なファイルとディレクトリを確認する方法についての基本的な知識が得られたはずです。 また、ファイルの表示、コピー、移動、または削除を可能にするいくつかの基本的なファイル操作コマンドについても知っておく必要があります。 最後に、nanoテキストエディタを使用した基本的な編集に慣れている必要があります。

これらのいくつかのスキルがあれば、他のガイドを続けて、サーバーを最大限に活用する方法を学ぶことができるはずです。 次のガイドでは、Linuxのアクセス許可を表示および理解する方法について説明します。