序章


コマンドラインに慣れることは、Linuxサーバープラットフォームのパワーを活用するための最初のステップです。 これは、この環境内で実行する可能性のある基本的にすべてのサーバー関連のアクティビティの必須の前提条件でもあります。

多くのツールにはグラフィカルな代替手段がありますが、コマンドラインの学習は、ほとんどのGUI(グラフィカルユーザーインターフェイス)では不可能な方法で、効率、速度、および柔軟性を操作できるスキルです。

私たちは皆どこかから始めなければならないので、この記事では非常に基本的なこと、つまりシステムをナビゲートしてそこに何があるかを見つける方法について説明します。

前提条件


この記事は非常に基本的なものであるため、事前の知識はあまりありません。 ただし、探索を開始するには、VPSインスタンスにログインする必要があります。 これを行うために使用できるオプションは、自宅で使用しているオペレーティングシステムによって大きく異なります。

新しいDigitalOceanドロップレットを作成すると、パスワードが電子メールで送信され、新しいサーバーにアクセスするためのIPアドレスが与えられます。 リンクされた記事を使用して、VPSに接続する方法を学びます。

  1. ssh root@your_IP

もう1つのオプションは、DigitalOceanコントロールパネルの右上隅にある[コンソールアクセス]ボタンを使用することです。 これにより、Webブラウザウィンドウに直接仮想端末セッションが作成されます。

あなたがpwdでどこにいるかを見つける


この時点で、Linuxマシンにログインする必要があります。 次のようなものが表示される可能性があります。

root@your_hostname:~# 

これはプロンプトです。 ここでコマンドを入力します。

しかし、それだけではありません。 また、サーバーのファイルシステムの特定の場所にいます。 サーバーのファイル階層内のどこかに常にいることになります。これは、入力したコマンドの動作に影響を及ぼします。

これは、ローカルコンピューターでファイルブラウザーを開く場合と似ています。 さまざまなフォルダをクリックして、ファイルシステムのさまざまな場所に移動できます。 ファイルブラウザの編集メニューに移動すると、現在の特定のフォルダ内のアイテムに適用されるいくつかのオプションがある場合があります。

コマンドラインは、同じアイデアをテキストで表現したものにすぎません。

では、ファイルシステムのどこにいるのでしょうか。 プロンプト自体に1つの手がかりがあります。 直前 # また $ プロンプトの最後に文字が表示されます(これは、ログインしているユーザーによって異なります)。チルダ文字(〜)が表示されます。 これは「ホーム」ディレクトリの略です。

ホームディレクトリは、ユーザーのファイルが保存される場所です。 〜文字はこのディレクトリの省略形です。

ファイルシステムのどこにいるかを確認する別の方法は、次のコマンドを使用することです。 pwd. これが最初のコマンドになります!

これらの文字を端末に入力して、Enterキーを押します。

pwd

/root

The /root directoryは、root(管理)ユーザーのホームディレクトリです。 別のユーザーとしてログインしている場合は、代わりに次のように表示されます。

  1. pwd
出力
/home/your_username

このチュートリアルでは、どのユーザーにログインしているかは関係ないため、どちらの出力でも問題ありません。

lsで見回す


これで、現在どのディレクトリにいるかがわかります。 しかし、このディレクトリに何があるかをどうやって知るのでしょうか?

次のコマンドを使用して、現在のディレクトリにあるファイルとディレクトリをサーバーに問い合わせることができます。 ls. 今すぐコマンドプロンプトで入力してください。

ls

これにより、コマンドプロンプトに戻るだけで、情報は表示されません。 コマンドは失敗しましたか? いいえ、成功しました。現在のディレクトリにファイルやフォルダが見つかりませんでした。

いくつかのテストファイルを作成して、その方法を確認しましょう ls このディレクトリにファイルがある場合に動作します。 これを入力して、いくつかのファイルを作成します。

touch file{1..5}

これにより、現在のディレクトリにfile1、file2、…、file5という5つのファイルが作成されます。

再試行してみましょう ls それが何をするかを見るためのコマンド:

ls

file1  file2  file3  file4  file5

素晴らしい。 これで、コマンドはホームディレクトリにいくつかのファイルがあることを認識します。

ほとんどのコマンドには、上記のように呼び出すと実行されるデフォルトの動作があります。 ただし、ほとんどのコマンドの動作は、オプションの引数をコマンドに渡すことによっても拡張できます。 これらは「オプション」、「引数」、「フラグ」、または「パラメータ」と呼ばれることがあります。

これらは、コマンドを通じて使用可能なオプション機能をアクティブにする場合もあれば、コマンドの対象となるオブジェクトを指定する場合もあります。

最初の状況から始めましょう。

lsオプションの調査


すべてのコマンドにヘルプオプションが組み込まれているわけではありませんが、多くのコマンドに組み込まれています。 ほとんどの場合、これにアクセスするには、 --help また -h コマンドの最後に。 これを試してみることができます ls 今すぐコマンド:

ls --help

Usage: ls [OPTION]... [FILE]...
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.

Mandatory arguments to long options are mandatory for short options too.
  -a, --all                  do not ignore entries starting with .
  -A, --almost-all           do not list implied . and ..
      --author               with -l, print the author of each file
  -b, --escape               print C-style escapes for nongraphic characters
      --block-size=SIZE      scale sizes by SIZE before printing them.  E.g.,
. . .

これにより、コマンドの正しい使用法に関するガイダンスが得られ、デフォルトの動作を変更するために使用できるオプションがわかります。 左側の列は、コマンドを拡張するために入力する文字を示し、右側の列は、各フラグを説明しています。

The --help 追加したのは、渡すことができるオプションの例です。

興味のあるコマンドで使用できるオプションを見つける別の方法は、マニュアルを確認することです。 これは、次のように入力することで実行されます man 興味のあるコマンドが続きます。 やってみよう:

man ls

矢印キーでページをスクロールし、「q」と入力して終了できます。

ご覧のように、 ls コマンドに渡して動作を変更できるオプションがかなりあります。 いくつか試してみましょう。

ls -l

-rw-r--r-- 1 root root 0 Feb 28 19:45 file1
-rw-r--r-- 1 root root 0 Feb 28 19:45 file2
-rw-r--r-- 1 root root 0 Feb 28 19:45 file3
-rw-r--r-- 1 root root 0 Feb 28 19:45 file4
-rw-r--r-- 1 root root 0 Feb 28 19:45 file5

これにより、同じ5つのファイルが表示されますが、「長い」形式で表示されます。 これにより、所有者(最初の「ルート」)、グループ所有者(2番目の「ルート」)、ファイルのサイズ(0)、ファイルが最後に変更された日付など、ファイルに関する詳細情報が得られます。情報。

別のオプションを試してみましょう:

ls -a

.   .aptitude	   .bashrc  file2  file4  .profile  .ssh
..  .bash_history  file1    file3  file5  .rnd	    .viminfo

これは、以前は表示されなかったいくつかのファイルを示しています。 The -a フラグはと同義です --all 国旗。 これにより、隠しファイルを含む、現在のディレクトリ内のすべてのすべてのファイルが表示されます。

Linuxシステムでは、開始ドットで名前が付けられているすべてのファイルはデフォルトで非表示になっています。 それらは秘密ではなく、誰でも見つけることができます。ファイル管理を容易にするために邪魔にならないようになっています。 を渡すことによって -a 旗、私たちは言うことができます ls これらのファイルも表示します。

複数のフラグをつなぎ合わせるだけで、複数のフラグを渡すこともできます。

ls -l -a

drwx------  4 root root 4096 Feb 28 19:45 .
drwxr-xr-x 23 root root 4096 May  3  2013 ..
drwx------  2 root root 4096 Feb 28 17:19 .aptitude
-rw-------  1 root root 2036 Feb 28 18:20 .bash_history
-rw-r--r--  1 root root  570 Jan 31  2010 .bashrc
-rw-r--r--  1 root root    0 Feb 28 19:45 file1
. . .

これはうまく機能しますが、次のようにオプションフラグを折りたたむこともできます。

ls -la

これはまったく同じように機能し、入力が少なくて済みます。

もう1つの興味深いオプションは -R フラグ。ファイルを再帰的にリストします。 ホームディレクトリ内にあるディレクトリのみが非表示になっているため、 -a オプションも:

ls -Ra

    .:
.   .aptitude	   .bashrc  file2  file4  .profile  .ssh
..  .bash_history  file1    file3  file5  .rnd	    .viminfo

./.aptitude:
.  ..  cache  config

./.ssh:
.  ..  authorized_keys

方法を変更する方法がわかったので ls 動作する、「オブジェクト」を変更しましょう ls で動作します。

他のディレクトリでのlsの使用


デフォルトでは、 ls 現在のディレクトリの内容が一覧表示されます。 ただし、コマンドの最後に、内容を表示したい任意のディレクトリの名前を渡すことができます。

たとえば、というディレクトリの内容を表示できます /etc これは、次のように入力することで、すべてのLinuxシステムで使用できます。

ls /etc

acpi			fstab		 magic		  rc.local
adduser.conf		fstab.d		 magic.mime	  rc.local.orig
aliases			fuse.conf	 mailcap	  rcS.d
aliases.db		gai.conf	 mailcap.order	  reportbug.conf
alternatives		groff		 mailname	  resolvconf
anacrontab		group		 mail.rc	  resolv.conf
apm			group-		 manpath.config   rmt
. . .

このディレクトリには多くのファイルがあることがわかります。

スラッシュ(/)で始まるディレクトリパスは、「絶対」パスと呼ばれます。 これは、「/」文字で指定された最上位のディレクトリであるルートディレクトリからディレクトリパスを参照しているためです。

ディレクトリを参照する別の方法は、「相対」パスを使用することです。 これにより、現在のディレクトリに関連するディレクトリが検索されます。 これらのディレクトリ仕様は、スラッシュで始まりません。

現在のフォルダには隠しファイル以外のディレクトリがないので、簡単に説明してみましょう。 また、中にいくつかのファイルを追加します。 これらのコマンドについては、今は気にしないでください。これらのコマンドは、現在アイデアを示すために使用されているだけなので、そのまま入力してください。

mkdir dir{1..3}
touch dir{1..3}/test{A,B,C}

これにより、いくつかのファイルを含むいくつかのディレクトリが作成されます。 通常のディレクトリを見ることができます ls 指図:

ls

dir1  dir2  dir3  file1  file2	file3  file4  file5

「dir1」ディレクトリ内にあるものを確認するために、現在のディレクトリの値の最後に表示するディレクトリを追加することにより、上記のように絶対パスをできますします。 現在のディレクトリを見つけることができます:

pwd

/root

次に、関心のあるディレクトリを最後に追加します。

ls /root/dir1

testA  testB  testC 

しかし、これを行う必要はありません。 次のようにディレクトリに名前を付けるだけで、現在のディレクトリ内のディレクトリを参照できます。

ls dir1

testA  testB  testC

パスの指定をスラッシュで始めない場合、オペレーティングシステムは現在のディレクトリから始まるディレクトリパスを探します。

動き回ります


これまで、ファイルシステムのどこにいるかを把握する方法を学び、 ls 特定のディレクトリ内のファイルに関する情報を検索するコマンド。

しかし、どのように作業ディレクトリを変更するのでしょうか。 作業ディレクトリを変更すると、別の場所からの相対パスを使用できるようになります。 通常、ファイルが含まれているディレクトリのファイルを操作する方が簡単です。

を使用してファイル階層を移動できます cd 指図。 このコマンドは、ディレクトリの変更を表します。

最も基本的な使用法では、次のように入力できます。

cd

これは何もしないように見えます。 実際、そうではありません。 何 cd 追加情報なしで行うのは、ホームディレクトリへの変更です。 すでにホームディレクトリにいるので、コマンドで実行することは何もありません。

コマンドの使用方法のより一般的な考え方は次のとおりです。

  1. cd /path/to/directory

この場合には、 /path/to/directory 移動先のディレクトリの場所のパスに置き換える必要があります。 たとえば、ツリーの最上位である単一のスラッシュ(/)で指定された「ルート」ディレクトリに移動するには、次のように入力します。

cd /

:ルートディレクトリ(単一のスラッシュ「/」で指定)は、ルートユーザーのホームディレクトリ(「/ root」にあります)とは異なります。 これは最初は混乱する可能性がありますが、ディレクトリツリーの最上位がファイルシステムルートと呼ばれることを覚えておいてください。

コマンドプロンプトが変更されたことにお気づきかもしれません。

「#」または「$」の直前で、ディレクトリリストがチルダ(ユーザーのホームディレクトリを表す「〜」のような記号)からファイルシステムの「ルート」ディレクトリに変更されました。

を使用して、現在別のディレクトリにいることを確認できます。 pwd もう一度コマンド:

pwd

/

新しいディレクトリのファイルをチェックアウトすることもできます。

ls

bin   etc	  lib	      media  proc  sbin     sys  var
boot  home	  lib64       mnt    root  selinux  tmp  vmlinuz
dev   initrd.img  lost+found  opt    run   srv	    usr

別の場所に移動しました。 それでは、相対パスを使用して新しいディレクトリに移動してみましょう。 というディレクトリがあることがわかります usr このディレクトリ内。 次のように入力して変更します。

cd usr

ご覧のとおり、相対パスを使用できます cd 同じように。 ルートディレクトリに戻るにはどうすればよいですか? 同じように入力できます cd / 以前使用したコマンドですが、別のコマンドを試してみましょう。

相対パスを使用してツリーを上に移動してみましょう。 相対パスを使用して、現在のフォルダーを含むフォルダーをどのように参照しますか?

特別な構文を使用して、現在のディレクトリを含むディレクトリを参照できます。 現在のディレクトリを含むディレクトリは、「親」ディレクトリと呼ばれます。 2つのドット(…)を使用して親ディレクトリを参照できます。

レベルを上げましょう:

cd ..
pwd

/

ご覧のとおり、ルートディレクトリに戻っています。 現在のディレクトリを1つのドットで参照することもできます。

ls .

bin   etc	  lib	      media  proc  sbin     sys  var
boot  home	  lib64       mnt    root  selinux  tmp  vmlinuz
dev   initrd.img  lost+found  opt    run   srv	    usr

これは、この段階ではあまり明確ではない可能性がある多くの状況で役立ちますが、後で簡単に現在のディレクトリを参照できることを理解できます。

前に述べたように、「〜」記号はホームディレクトリを参照します。 これを別のディレクトリパスの開始点として使用して、ホーム内の「dir1」に変更しましょう。

cd ~/dir1
pwd

/root/dir1

これで、パスの最初の部分を置き換えるために「〜」記号を使用して、ホームディレクトリ内のディレクトリに非常に簡単に移動できました。

しかし、ディレクトリを変更する前に何かをするのを忘れて、最新のディレクトリに戻りたい場合はどうでしょうか。 次のように入力すると、前のディレクトリに戻ることができます。

cd -
pwd

/

最後のディレクトリに戻りました。

最後に、ホームディレクトリに戻りましょう。 チルダを切り替えるパスとして使用することで、これを行うことができます。 しかし、あなたはのデフォルトモードを思い出すかもしれません cd パスを追加しない場合は、ホームディレクトリに戻ることです。 代わりにそれを試してみましょう:

cd
pwd

/root

ご覧のとおり、ホームディレクトリに戻りました。

結論


これで、ファイルシステムをかなり探索するために必要なツールが揃うはずです。 ファイルを調査する方法はまだわかりませんが、システム内を簡単にナビゲートし、現在地を追跡し、周囲にあるファイルを確認できるはずです。