Cd、pwd、およびlsを使用してLinuxサーバー上のファイルシステムを探索する方法

提供:Dev Guides
移動先:案内検索

序章


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

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

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

前提条件


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

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

ssh root@your_IP

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

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


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

root@your_hostname:~# 

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

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

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

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

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

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

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

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

pwd

/root

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

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

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

追加した--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

これは、以前は表示されなかったいくつかのファイルを示しています。 -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は現在のディレクトリの内容を一覧表示します。 ただし、コマンドの最後に、内容を表示したい任意のディレクトリの名前を渡すことができます。

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

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が追加情報なしで行うことは、ホームディレクトリへの変更です。 すでにホームディレクトリにいるので、コマンドで実行することは何もありません。

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

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

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

結論


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