前書き

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

このガイドでは、Linuxシステムを効果的に使用するために知っておく必要があるすべてを網羅しているわけではありません。 ただし、将来の調査のための適切な出発点を提供する必要があります。 このガイドは、他のガイドに進む前に知っておく必要のある最低限のものを提供します。

前提条件と目標

このガイドに従うには、Linuxサーバーにアクセスする必要があります。 サーバーへの初めての接続に関する情報が必要な場合は、https://www.digitalocean.com/community/tutorials/how-to-connect-to-your-droplet-with-ssh [ SSHを使用してLinuxサーバーに接続する]。

また、ターミナルがどのように機能するか、Linuxコマンドがどのように見えるかについての基本的な理解が必要になります。 https://www.digitalocean.com/community/tutorials/an-introduction-to-the-linux-terminal [このガイドは端末の基本をカバーしています]なので、端末を初めて使用する場合はチェックしてください。

このガイドのすべての資料は、通常の非ルート(非管理)ユーザーアカウントで実現できます。 ディストリビューションの初期サーバーセットアップガイド(https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-14-04[Ubuntu 14.04 ]、https://www.digitalocean.com/community/tutorials/initial-server-setup-with-centos-7 [CentOS 7])。

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

ナビゲーションと探査

あなたが習得する必要がある最も基本的なスキルは、ファイルシステムを動き回り、あなたの周りに何があるかを知ることです。 このセクションでは、これを可能にするツールについて説明します。

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

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

ホームディレクトリとファイルシステムの残りの部分との関係を見つけるには、 `+ pwd +`コマンドを使用できます。 このコマンドは、現在いるディレクトリを表示します:

pwd

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

/home/

ホームディレクトリの名前はユーザーアカウントに基づいているため、上記の例は、「+」というアカウントでサーバーにログインした場合の値です。 このディレクトリは、「 / home 」と呼ばれるディレクトリ内にあります。「 / 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
. . .

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

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

別の方法は、*相対パス*を使用することです。 相対パスは、_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/

これら3つのコマンドの使用方法の詳細については、https://www.digitalocean.com/community/tutorials/how-to-use-cd-pwd-and-ls-to-explore-the-fileをご覧ください。 -system-on-a-linux-server [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 +」ショートカットを使用できます。

上にスクロールするには、「Page Up」ボタンまたは「+ 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//file2 /home//file3
ls
file1  file2  file3

「mkdir」でディレクトリを作成します

`+ touch `コマンドと同様に、 ` mkdir +`コマンドを使用すると空のディレクトリを作成できます。

たとえば、ホームディレクトリ内に「+ test +」というディレクトリを作成するには、次のように入力します。

cd
mkdir test

次のように入力して、 `+ 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 +`コマンドはファイルとディレクトリの名前を変更するためにも使用されます。 本質的に、移動と名前の変更は、既存のアイテムの場所と名前を調整するだけです。

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

mv test testing

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

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

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

たとえば、 `+ file3 `を ` file4 +`という新しいファイルにコピーできます。

cp file3 file4

「+ file3 」が存在しなくなる「 mv 」操作とは異なり、「 file3 」と「 file4 +」の両方があります。

注意: `+ 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 +`コマンドを使用できます。 これは、問題のディレクトリに何もない場合にのみ成功します。 たとえば、 `+ testings`ディレクトリ内の + examples`ディレクトリを削除するには、次のように入力します。

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 +`の使用方法を学びたい場合は、https://www.digitalocean.com/community/tutorials/installing-and-using-the-vim-text-editor-on-a-cloud-serverをご覧ください[vimを始めるためのガイド]。

結論

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

これらのいくつかのスキルがあれば、他のガイドを続けて、サーバーを最大限に活用する方法を学ぶことができます。 次のガイドでは、https://www.digitalocean.com/community/tutorials/an-introduction-to-linux-permissions [Linuxのアクセス許可を表示および理解する方法]について説明します。