序章
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
キーボードショートカットを使用できます。
ドキュメント内のテキストを検索するには、スラッシュ「/」の後に検索語を入力します。 たとえば、「メール」を検索するには、次のように入力します。
これにより、ドキュメントが前方に検索され、最初の結果で停止します。 別の結果を得るには、小文字の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
コマンドを使用して、ファイルを新しい場所に移動できます。 たとえば、次のように入力して、file1
をtest
ディレクトリに移動できます。
mv file1 test
このコマンドでは、移動したいすべてのアイテムを、最後に移動する場所とともに指定します。 特別なドット参照を使用して現在のディレクトリを参照することにより、そのファイルbackをホームディレクトリに移動できます。 ホームディレクトリにいることを確認してから、次のコマンドを実行する必要があります。
cd mv test/file1 .
これは最初は直感的ではないように思われるかもしれませんが、mv
コマンドはファイルとディレクトリの名前を変更するためにも使用されます。 基本的に、移動と名前の変更はどちらも、既存のアイテムの場所と名前を調整するだけです。
したがって、test
ディレクトリの名前をtesting
に変更するには、次のように入力します。
mv test testing
注:Linuxシステムが特定の破壊的なアクションを妨げることはないことを理解することが重要です。 ファイルの名前を変更し、すでにが存在する名前を選択した場合、前のファイルは移動するファイルによって上書きされます。 誤って上書きした場合、前のファイルを復元する方法はありません。
「cp」を使用したファイルとディレクトリのコピー
mv
コマンドを使用すると、ファイルまたはディレクトリを移動または名前変更できましたが、複製することはできませんでした。 cp
コマンドは、既存のアイテムの新しいコピーを作成できます。
たとえば、file3
をfile4
という新しいファイルにコピーできます。
cp file3 file4
mv
操作とは異なり、file3
は存在しなくなり、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
コマンドを使用できます。 これは、問題のディレクトリに何もない場合にのみ成功します。 たとえば、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のパーミッションを表示および理解する方法について説明します。