Linuxコマンドライン入門

導入

注意: このチュートリアルのインタラクティブなターミナルは現在無効になっています。インタラクティブな学習体験を向上させるために作業しています。このチュートリアルを使用してコマンドラインを学び、Linuxコマンドを練習することはできますが、コンピューターのターミナルまたは仮想マシンを使用する必要があります。

今日、多くの人々が、デスクトップやラップトップのコンピューター、スマートフォン、タブレットに慣れています。これらは、グラフィカルユーザーインターフェース(GUIとも呼ばれる)を持ち、アプリ、ウェブ、ファイル(ドキュメントや写真など)をビジュアルな体験でナビゲートできます。Windows、macOS、Linuxオペレーティングシステムは、それぞれがデスクトップ環境のバリエーションを提供しています(たとえば、フォルダーやファイルの画像など)、ドロップダウンメニューを備えており、これらはすべて、コンピュータープログラム、アプリケーション、および自分自身のメディアにアクセスできます。

GUIは多くのユーザーにとって直感的なコンピューターの使用方法である場合がありますが、しばしば機械上の最大の権限を提供してくれず、ソフトウェアやファイルのインストール、変更、削除など、コンピューター全体の管理アクセスを妨げることがあります。さらに、GUIは主に視覚的なため、すべてのユーザーにとってアクセスしやすいとは限りません。

GUIのない個人用コンピューターやリモートクラウドサーバーをナビゲートする方法の1つが、テキストベースのターミナルまたはコマンドラインインターフェース(CLI)を介して行う方法です。

ほとんどのコンピューターのオペレーティングシステムには、ターミナルインターフェイスが存在し、ターミナルエミュレーターはタブレットやスマートフォン向けのアプリとしても利用可能です。ターミナルは、ユーザーにより高い管理者アクセス、環境のカスタマイズ能力の向上、およびプロセスの自動化の機会を提供します。また、クラウドサーバーなどのリモートコンピューターにアクセスする能力も提供します。

このチュートリアルでは、ターミナル環境に新しいユーザー向けに、ブラウザ内の埋め込みウェブターミナルを使用してコマンドラインインターフェースの基本を提供します。下に起動できます。すでにターミナルに慣れている場合は、代わりにLinuxターミナルの紹介チュートリアルを参照することをお勧めします。このチュートリアルを完了すると、Linux(またはmacOS)コンピューターやサーバーでターミナルを使用する方法が理解できるはずです。

ターミナルウィンドウの理解

新しいコンピューターやスマートフォンにアクセスできるようになると、おそらくそれを起動して利用可能なアプリケーションをチェックし、デバイスをカスタマイズしてニーズに合わせる方法を確認したいと思うでしょう。同様に、ターミナルを使用してコンピューターに慣れることができます。

このブラウザウィンドウで起動したインタラクティブターミナルは、ブラウザウィンドウの下部に白い四角形を表示します:

ターミナルを起動していない場合は、このチュートリアルの冒頭にあるボタンをクリックして起動してください。

インタラクティブブラウザターミナルには、ドル記号$と点滅するカーソルが表示されます。ここで、ターミナルに対して何をするかを入力し始めます。

起動したターミナルはUbuntu 20.04ターミナルです。 Ubuntuは、元々Unixオペレーティングシステムをベースとした人気のあるLinuxディストリビューションです。 macOSオペレーティングシステムもUnixに基づいています。このガイドで使用する埋め込みターミナルと同様に機能するLinuxまたはmacOSマシンでこのチュートリアルを読んでいる場合、オペレーティングシステムにターミナルがあるはずです。

これらのUnix(または*nixベースの)オペレーティングシステムの多くでは、プロンプトの末尾の記号は$シンボルまたは#シンボルであり、次のような意味があります:

  • $またはドル記号 — 通常のユーザーとしてログインしています
  • #またはハッシュタグ/ポンドシンボル — 昇格された特権を持つユーザーとしてログインしています

#環境に表示されるユーザーは、rootユーザーとしても知られており、デフォルトでスーパーユーザーまたは管理者と見なされます。

以下は、ブラウザーターミナル内での目的に関するもので、通常のユーザーとしてログインしていますが、sudoコマンドを使用して管理者権限も持っています。これは一時的なターミナルなので、タイプした内容はすべて終了後に破棄されます。同様に、クラウドサーバーでは、何か問題が発生した場合はサーバーを破壊して新しく作り直すことができます。

注意してください:ローカルコンピュータのターミナルで作業する場合は、管理者としてターミナルで行う変更が使用中のコンピュータに永続的な変更を加える可能性があるため、より注意が必要です。

この時点で、ブラウザで起動されたターミナルを使用して、ローカルコンピュータで入力することを開始できます。テキストは点滅するカーソルに表示されます。次のセクションでここで入力できる内容について学びます。

ディレクトリに慣れる

ターミナルでの作業は、コマンドを入力して開始します。コマンドは、ユーザーがコンピュータに何を行うかを伝える命令です。コマンドを入力した後、ターミナルでENTERまたはRETURNを押して、コンピュータに指示を実行する準備ができたら実行します。

以下のコマンドを入力して、ENTERを押してください。または、マウスでそのコードブロックにカーソルを合わせると、関連するリンクをクリックするか、起動された対話型ターミナルで実行するようにお願いすることもできます。

  1. pwd

このコマンドを実行すると、以下の出力が表示されます:

Output
/home/sammy

このpwdコマンドは、「present working directory」を意味し、現在のファイルシステム内の場所を示します。

この例では、ディレクトリ(またはフォルダー)/home/sammyにいます。これはユーザーsammyに対応しています。特権を持つユーザーであるrootでログインしている場合、ディレクトリは/rootとなります。パーソナルコンピューターの場合、このディレクトリはコンピューターの所有者の名前になる場合があります。Sammy Sharkのコンピューターでは、プライマリユーザーディレクトリとして/sammyまたは/sammy-sharkまたは/home/sammyがあるかもしれません。

現在、このディレクトリは空です。このチュートリアルを進める中で作成するファイルを格納するディレクトリを作成しましょう。例えば、filesと呼ぶことができます。

これを行うには、「make directory」という意味のmkdirコマンドを使用します。コマンドを入力した後、フォルダーの名前を書く必要があります。これにより、コマンドに値が渡され、このディレクトリを作成するためにコマンドが実行されます。この値(フォルダーの名前)は引数として知られており、コマンドに与えられる入力です。自然言語の文法に精通している場合、引数はコマンドの動詞によって作用される対象と考えることができます。

新しいディレクトリfilesを作成するには、次のように記述します。ここで、mkdirがコマンドであり、filesが引数です:

  1. mkdir files

このコマンドを実行すると、新しい行が点滅するカーソル付きの新しい行を除いて、出力は受け取りません。この新しい行がターミナル上にあると、次のコマンドの準備ができています。

内容のリストとアクセス権の理解

まだ新しいディレクトリに関する具体的なフィードバックを受け取っていないため、現在の作業ディレクトリの内容について詳しく学ぶためのコマンドを使用します。lsコマンド(「list」という意味)を使用して、ディレクトリ内のファイルをリスト化して、新しいディレクトリが実際に存在することを確認できます。

  1. ls

出力を受け取ると、filesディレクトリがあることを確認する出力が得られます:

Output
files

これにより、現在の作業ディレクトリに含まれるものについて一般的な情報が得られます。さらに詳細を知りたい場合、フラグと呼ばれるものを使用してlsコマンドを実行できます。Linuxコマンドでは、フラグはハイフン-と文字で書かれ、コマンドに追加のオプション(およびより多くの引数)を渡します。この例では、-lフラグを追加します。このフラグは、lsと組み合わせると、コマンドに長いリスト形式を使用するオプションを使用したいことを示します。

次のようにこのコマンドとフラグを入力します:

  1. ls -l

ENTERを押すと、ターミナルに次の出力が表示されます:

Output
total 4 drwxr-xr-x 2 sammy sammy 4096 Nov 13 18:06 files

ここでは、2行の出力があります。最初の行はこのディレクトリに割り当てられたコンピュータメモリブロックを参照しており、2行目はほとんどがファイルのユーザー権限を参照しています。

やや人間に読みやすい出力を得るために、-hまたは--human-readableフラグを渡すこともできます。これにより、メモリサイズが人間に読みやすい形式で表示されます。一般的に、1つのハイフン-は1文字のオプションを示し、2つのハイフン--は言葉で書かれたオプションを示します。一部のオプションは両方の形式を使用できることに注意してください。複数のオプションをコマンドに組み込むこともできます。-lhのようにフラグを連結します。

たとえば、以下の2つのコマンドは異なる書き方をしていますが、同じ結果が得られます:

  1. ls -lh
  1. ls -l --human-readable

両方のコマンドは、次の出力を返します。出力は上記のものと類似していますが、メモリブロックのコンテキストがより大きくなっています:

Output
total 4.0K drwxr-xr-x 2 sammy sammy 4.0K Nov 13 18:06 files

出力の最初の行には、4Kのコンピュータメモリがフォルダに割り当てられていることが示されています。2行目の出力には、さらに多くの詳細が含まれており、それについて詳しく説明します。カバーする情報の一般的な高レベルの参照は、以下の表に示されています。

File type Permissions Link count Owner Group File size Last modified date File name
d rwxr-xr-x 2 sammy sammy 4.0K Nov 13 18:06 files

ディレクトリの名前であるfilesは、出力の2行目の末尾にあります。この名前は、出力行で説明されている/home/sammyユーザディレクトリ内の特定のアイテムを示しています。ディレクトリに別のファイルがある場合、そのファイルの詳細が別の出力行に表示されます。

行の先頭には、文字とダッシュのリストがあります。それぞれの文字の意味を解説していきましょう:

Character Description
d directory (or folder) — a type of file that can hold other files, useful for organizing a file system; if this were - instead, this would refer to a non-directory file
r read — permission to open and read a file, or list the contents of a directory
w write — permission to modify the content of a file; and to add, remove, rename files in a directory
x execute — permission to run a file that is a program, or to enter and access files within a directory

最初のdrwx文字では、最初の文字dfilesアイテムがディレクトリであることを意味します。これがディレクトリ以外のファイルである場合、この文字列はハイフンで始まります。-rwx、最初のハイフンは非ディレクトリファイルを示します。次の3つの文字rwxは、ディレクトリfilesの所有者の権限を表し、ディレクトリfilesがファイルの所有者によってread、written、executedされることを意味します。これらの文字のいずれかがハイフンに置き換えられた場合、所有者はその文字で表される権限の種類を持っていないことを意味します。まもなくファイルの所有者を特定する方法について説明します。

出力の次の3文字はr-xで、filesディレクトリのgroup権限を表します。この場合、グループには読み取りおよび実行権限がありますが、書き込み権限はありません。w-に置き換えられています。まもなくグループを特定する方法について説明します。

最初の文字列の最後の3文字、r-xは、マシンにアクセスできるその他のグループの権限を表します。この場合、これらのユーザーグループも読み取りおよび実行ができますが、書き込みはできません。

出力の中の数字2は、このファイルへのリンクの数を示しています。Linuxでは、リンクはユーザーがファイルシステムをナビゲートするのを助けるためのショートカットを作成する方法を提供します。このファイルを作成したとき、Linuxはファイルへの絶対リンクと、相対パスを使用してユーザーがナビゲートできるようにするためのファイルへの自己参照リンクを作成するためのバックグラウンド作業を行いました。次のセクションで絶対パスと相対パスについて説明します。

数字2の後に、単語sammyが2回表示されます。この出力のこの部分は、filesディレクトリに関連付けられた所有者とグループに関する情報を提供します。この行の最初のsammyのインスタンスは、ディレクトリの所有者を示しており、前に見た権限はrwxです。所有者のsammyユーザーは、sammyユーザーとしてfilesディレクトリを作成し、現在のファイルの所有者です。現在の環境ではsammyユーザーしかいませんが、Unix系のオペレーティングシステムには通常、1つ以上のユーザーが存在するため、ファイルの所有者を知っておくことが役立ちます。

2番目のsammyのインスタンスは、filesディレクトリにアクセス権限を持つグループを示しています。前に見た権限はr-xです。この場合、グループ名は所有者のユーザー名sammyと同じです。実際の環境では、staffadminのような、ディレクトリにアクセスできるその他のグループがオペレーティングシステムに存在する場合があります。

残りの詳細は、マシン上のディレクトリのメモリ割り当てに対する4.0Kと、ディレクトリが最後に修正された日付です(これまで、ただ作成しただけです)。

ファイルシステムと権限に関するこのより大きな理解を持っていると、Linuxターミナル上でファイルシステムを移動できます。

これまでに、ファイルシステム内の現在位置を確認する方法、新しいディレクトリを作成する方法、ファイルをリストアップする方法、および権限を確認する方法を学びました。

次に、ファイルシステム内を移動する方法を学びましょう。新しいディレクトリを作成しましたが、まだメインの/home/sammyユーザーディレクトリにいます。作成した/home/sammy/filesディレクトリに移動するには、cdコマンドを使用し、引数として移動したいディレクトリの名前を渡します。このcdコマンドは、「change directory」の略です。構成は次のようになります:

  1. cd files

再度、新しい行と点滅するカーソル以外の出力は受け取りませんが、先ほど使用したpwdコマンドで現在位置が/home/sammy/filesディレクトリにあることを確認できます:

  1. pwd

以下の出力が表示され、現在の位置が確認されます:

Output
/home/sammy/files

これにより、あなたが/home/sammyユーザーディレクトリの/home/sammy/filesディレクトリにいることが確認されます。この構文はおなじみですか?それは、スラッシュを使ったウェブサイトのURLを思い出させるかもしれません。実際、ウェブサイトもディレクトリ内のサーバーに構築されています。

サーバーの主要なディレクトリに移動しましょう。ファイルシステムのどこにいるかにかかわらず、常にcd /コマンドを使用して主要なディレクトリに移動できます。

  1. cd /

移動したことを確認し、このディレクトリに何があるかを知るために、リストコマンドを実行しましょう。

  1. ls

次の出力が表示されます。

Output
bin boot dev etc home lib lib32 lib64 libx32 media mnt opt proc root run s sbin srv sys tmp usr var

そこにはたくさんのファイルがあります!/ディレクトリは、Linuxサーバーのメインディレクトリであり、通常の「root」ユーザーとは異なります。 /ディレクトリをLinuxマシンの主要な動脈と考えることができます。なぜなら、それにはコンピューターを実行するために必要なすべてのフォルダが含まれているからです。たとえば、sysディレクトリにはLinuxカーネルとシステム情報の仮想ファイルシステムが含まれています。これらのディレクトリの詳細について詳しく知りたい場合は、Linux Foundation documentationを参照してください。

また、すでにいたディレクトリである/homeユーザーフォルダーも存在することに気付くでしょう。/ディレクトリから、/homeにディレクトリを変更してからfilesに戻るか、cdを使用してそのフォルダーに直接戻ることができます。

  1. cd /home/sammy/files

今、pwdを実行すると、出力として/home/sammy/filesを受け取ります。

A file path is the representation of where a file or directory is located on your computer or server. You can call a path to a file or directory in either a relative or absolute way. A relative path would be when we move to a location relative to our current working directory, like we did when we were already in /home/sammy/ and then moved into files/. An absolute path is when we call the direct line to a location, as we did above with /home/sammy/files, showing that we started in the / directory, called the /home/sammy/ user directory and then the nested files/ directory.

さらに、Linuxは相対パスを使用してユーザーがナビゲートするのを支援するためにドット表記を活用しています。単一の.は現在いるディレクトリを表し、二重の..は親ディレクトリを表します。したがって、現在いる場所(/home/sammy/files)から、親の/home/sammyユーザーディレクトリに戻るには、次のようにします:

  1. cd ..

pwdを実行すると、出力として/home/sammyを受け取り、lsを実行すると、filesを出力します。

覚えておくと便利な別の重要なシンボルは~です。これはマシンのホームディレクトリを表します。ここでは、ホームディレクトリはsammyユーザーの/home/sammyと呼ばれますが、ローカルマシンではあなた自身の名前、例えばsammy-shark/となる場合もあります。

どこからでも次のように入力すると、このホームディレクトリに戻ることができます:

  1. cd ~

この時点で、これまでに学んだコマンドを使ってファイルシステムを操作してみてください。次のセクションでは、テキストファイルを操作し始めます。

テキストファイルの作成と変更

今やLinuxファイルシステムの基礎とその操作方法を理解したところで、新しいファイルを作成し、コマンドラインでテキストを操作する方法を学んでいきましょう。

まず、pwdを使用して確認するか、または絶対パスでディレクトリを変更することで、/home/sammyユーザーフォルダー内のfiles/ディレクトリにいることを確認しましょう。

  1. cd /home/sammy/files

次に、新しいテキストファイルを作成します。ここでは、OSを横断して読み取ることができる標準の.txtファイルを作成します。.docファイルとは異なり、.txtファイルは書式設定されていないテキストで構成されています。.txtファイルのような書式設定されていないテキストは、コマンドラインで簡単に使用でき、したがってテキストデータをプログラムで処理する際に使用できます(つまり、テキスト解析を自動化したり、テキストから情報を取得したりする場合など)。

まず、既存のファイルを変更するか新しいファイルを作成できるtouchコマンドを使用します。使用方法は、以下に示すように、touchコマンドを使用して作成したいテキストファイルの名前を引数として渡すことです。

  1. touch ocean.txt

ENTERキーを押すと、新しい行のコマンドプロンプトが表示され、files/の現在の内容をリストアップして作成されたことを確認できます。

  1. ls
Output
ocean.txt

これまでに、作成時点でテキストを含まないocean.txtファイルが作成されました。

テキストで初期化されたテキストファイルを作成したい場合は、Linuxで文字列を表示するために使用されるechoコマンドを使用できます。

コマンドライン上で直接echoを使用して、インターフェイスに私たちの後に繰り返させることができます。 伝統的な最初のプログラム、「"Hello, World!"」は、次のようにechoを使用して書くことができます:

  1. echo Hello, World!
Output
Hello, World!

エコー・オブ・オウィディウスの変身にちなんで、echoコマンドは要求したものを返します。 この場合、それは「Hello, World!」をエコーしました。 ただし、echoコマンド単体では、テキストの値をテキストファイルに保存することができません。 それを行うには、次のように入力する必要があります:

  1. echo "Sammy the Shark" > sammy.txt

上記のコマンドはechoを使用し、次に引用符で囲まれた追加するテキスト、次にリダイレクション演算子>、そして最後に新しいテキストファイルの名前、sammy.txtを入力します。

新しいファイルが存在することを再度lsで確認できます。

  1. ls
Output
ocean.txt sammy.txt

次に、ターミナルにエコーして追加するテキストがsammy.txtに含まれていることを確認できます。これはcatコマンドで行うことができます。 ファイルを連結するのを短縮して、catコマンドはファイルとの作業に非常に便利です。 其の機能の一つはファイルの内容を表示することです。

  1. cat sammy.txt

コマンドを実行すると、次の出力が表示されます:

Output
Sammy the Shark

ocean.txtの空のファイルでcatを実行すると、何も返されません。 そのファイルにテキストがないためです。 この既存のファイルにもechoを使用してテキストを追加できます。 ゾラ・ニール・ハーストンの引用をファイルに追加しましょう。

  1. echo "Some people could look at a mud puddle and see an ocean with ships." > ocean.txt

今、ファイルにcatを実行すると、入力したテキストの出力を受け取ります。

  1. cat ocean.txt
Output
Some people could look at a mud puddle and see an ocean with ships.

これまでにテキストファイルを作成し、これらのファイルにテキストを追加しましたが、まだこれらのファイルを変更していません。それを行いたい場合は、コマンドラインテキストエディタを使用できます。VimやEmacsなど、いくつかの人気のある選択肢が存在します。この目的のためには、私たちは探索を始めるために使用できるより複雑でないCLIテキストエディタプログラムであるnanoを使用します。

nanoテキストエディタはnanoコマンドで呼び出すことができます。既存のsammy.txtファイルを編集したい場合は、ファイル名を引数として渡すことで行うことができます。

  1. nano sammy.txt

ファイルがターミナル上で開きます:

sammy.txt
Sammy the Shark

キーボードの矢印キーを使用して、カーソルを行の末尾に移動し、Sammyの視点からいくつかの行を入力します。

: コマンドラインでは、マウスや他のポインタを使用してファイルシステムやファイル内を移動することはできません。テキストファイル内を移動するには、キーボード、特に矢印キーを使用する必要があります。

ファイルが完了したら、次のようになる場合があります:

sammy.txt
Sammy the Shark

Hello, I am Sammy.
I am studying computer science.
Nice to meet you!

ファイルに望むテキストが含まれている場合、ファイルを保存して閉じることができます。ターミナルウィンドウの下部にガイダンスが表示されていることに気付くかもしれません:

^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

現在、このファイルの作業は完了しているため、ファイルをExitしたいと思います。ここで、^記号はキーボードのControlまたはCTRLキーを指し、上記の出力によれば、このキーをXキーと組み合わせて(SHIFTキーを押さずに)ファイルから抜け出す必要があります。これらのキーを一緒に押しましょう:

CTRL x

上記は技術文書ではインラインでCTRL + XまたはCtrl+xとしてよく書かれます。

この時点で、以下のプロンプトが表示されます:

Output
Save modified buffer? Y Yes N No ^C Cancel

保存するには、yキーを押します:

y

以下のようなフィードバックが得られます。

Output
File Name to Write: sammy.txt

CTRL + Cでキャンセルするなどの追加オプションもありますが、ファイルを閉じるのに慣れている場合は、この時点でENTERキーを押してファイルを保存して終了できます。

次に、DigitalOcean Universityの学生のいくつかのファイルを作成したいとしましょう。 files/という名前の新しいディレクトリstudentsを作成します:

  1. mkdir students

次に、sammy.txtを新しいstudents/ディレクトリに移動します。 ファイルの場所を変更するmvコマンドは、moveの略です。 コマンドは、移動したいファイルを第一引数とし、新しい場所を第二引数とします。 以下のどちらの実行も同じ結果をもたらします。

  1. mv sammy.txt students
  1. mv sammy.txt students/sammy.txt

この後のオプションは、ファイル名を変更したい場合に便利です。例えば、mv sammy.txt students/sammy-the-shark.txtのようにします。

さて、lsコマンドを実行すると、現在のディレクトリ(files/)にはocean.txtstudents/ディレクトリしかないことがわかります。では、students/フォルダに移動しましょう。

  1. cd students

他の学生用のテンプレートが必要な場合、sammy.txtファイルをコピーして追加のファイルを作成できます。これにはcpコマンドを使用します。これはcopyの略です。このコマンドはmvコマンドと同様に動作し、最初の引数に元のファイル、2番目の引数に新しいファイルを取ります。Alex the Leafy Seadragon用のファイルを作成します。

  1. cp sammy.txt alex.txt

これで、alex.txtを開いて中身を確認できます。

  1. nano alex.txt

これまでのところ、alex.txtsammy.txtとまったく同じようです。一部の単語を置換することで、このファイルを以下のように変更できます。行全体を削除するには、CTRL + Kを使用できます。

alex.txt
Alex the Leafy Seadragon

Hello, I am Alex.
I am studying oceanography.
Nice to meet you!

ファイルを保存して閉じるには、CTRL + XyENTERを押します。

テキストファイルの作成、編集、コピー、移動に慣れるために、Jamie the Mantis Shrimp、Jesse the Octopus、Drew the Squid、またはTaylor the Yellowfin Tunaのファイルを作成してみてください。

テキストファイルの作成、編集、コピー、移動に慣れたら、次のセクションに進みましょう。

オートコンプリートと履歴

このチュートリアルに組み込まれたインタラクティブなターミナルを含む、コマンドラインの多くのバージョンでは、進行中にコマンドを自動補完したり再利用したりすることができます。これにより、入力時間を節約して素早く移動できます。

catと、作業しているテキストファイルの最初の数文字を入力してみてください。たとえば、cat saと入力します。ファイル名sammy.txtの全体を入力する前に、代わりにTABキーを押します。これにより、ファイル名が自動的に補完され、ターミナルプロンプトに次の内容が表示されます:

  1. cat sammy.txt

これで、ENTERキーを押すと、ターミナルはファイルの内容をコマンドラインに返します。

もう1つのショートカットは、UP矢印キーを押すことです。これにより、最近実行したコマンドをサイクルできます。点滅するカーソルを持つ新しい行で、UP矢印キーを数回押すと、以前のコマンドに簡単にアクセスできます。

ターミナルで行ったすべてのコマンドを再現する必要がある場合は、適切に名付けられたhistoryコマンドでこのセッションの履歴全体を呼び出すこともできます:

  1. history

練習した内容に応じて、30行以上のコマンドが表示され、次の出力から始まります:

Output
1 pwd 2 mkdir files 3 ls 4 ls -l ...

これらのショートカットを習得することは、コマンドラインインターフェイスをより習熟する際のサポートになります。

Webからのファイル操作

インターネットに接続されたコマンドラインインターフェイスで作業する最も興奮する側面の1つは、Web上のすべてのリソースにアクセスでき、それらに自動的にアクションを起こすことができることです。ターミナルを使用すると、資格情報を持つクラウドサーバーに直接アクセスしたり、クラウドインフラストラクチャを管理したり、オーケストレーションしたり、独自のWebアプリを構築したりすることもできます。今のところ、ターミナルでテキストファイルを操作する方法を既に学んでいるので、Webからテキストファイルを取得して使用しているマシンでそのテキストファイルを利用できるようにする方法について説明します。

まず、files/ディレクトリに移動しましょう。

  1. cd /home/sammy/files

ここから、curlコマンドを使用して、Webからデータを個人用のインタラクティブなブラウザのターミナルに転送します。 curlコマンドは、client URL(Webアドレス)の略です。

私たちは、クラウドサーバーにジュール・ヴェルヌの「海底二万里」からの短い文章をアップロードしました。そのファイルのURLをcurlコマンドに渡します。以下に示すように。

  1. curl https://assets.digitalocean.com/articles/command-line-intro/verne_twenty-thousand-leagues.txt

ENTERキーを押すと、パッセージのテキストがターミナルに出力されます(以下に抜粋)。

Output
"You like the sea, Captain?" "Yes; I love it! The sea is everything. It covers seven tenths of the terrestrial globe. ... "Captain Nemo," said I to my host, who had just thrown himself on one of the divans, "this is a library which would do honor to more than one of the continental palaces, and I am absolutely astounded when I consider that it can follow you to the bottom of the seas."

ターミナルウィンドウにテキストを表示することは興味深いですが、ファイルが利用可能ではなく、データの転送のみが行われていることを知っています。ファイルが存在しないことを確認するには、lsを実行してください。

テキストをファイルに保存するには、-Oフラグを使用してcurlを実行する必要があります。これにより、リモートファイルの名前をローカルコピーの名前として出力できます。

  1. curl -O https://assets.digitalocean.com/articles/command-line-intro/verne_twenty-thousand-leagues.txt

ターミナルからファイルのダウンロード完了のフィードバックを受け取ります。

Output
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 2671 100 2671 0 0 68487 0 --:--:-- --:--:-- --:--:-- 68487

ファイルの特定の代替名を使用する場合は、-oフラグを使用して新しいファイルの名前(この場合はjules.txt)を引数として渡すことができます。

  1. curl -o jules.txt https://assets.digitalocean.com/articles/command-line-intro/verne_twenty-thousand-leagues.txt

これで、このファイルを他のテキストファイルと同様に操作できます。catを使用したり、nanoで編集したりしてみてください。

次のセクションでは、いくつかのファイルを整理し、ターミナルを終了します。

ファイルの削除とコマンドの終了

他のコンピュータと同様に、不要になったファイルやフォルダを削除し、使用しているプログラムを終了する必要があります。

例えば、DigitalOcean Universityの学生が卒業し、関連するファイルとフォルダを整理する必要があるとします。 students/ディレクトリにいることを確認してください。

  1. cd /home/sammy/files/students

lsを実行すると、フォルダにはいくつかのファイルがあるかもしれません。次のように:

Output
alex.txt drew.txt jamie.txt jesse.txt sammy.txt taylor.txt

個々のファイルをrmコマンドで削除できます。これはremoveの略です。削除したいファイルを引数として渡す必要があります。

警告: ファイルを削除すると、元に戻すことはできません。ファイルを削除する前に、本当に削除したいかどうかを確認してください。ENTERを押す前に確認してください。

  1. rm sammy.txt

これで、lsを実行すると、sammy.txtがフォルダに存在しないことがわかります。

Output
alex.txt drew.txt jamie.txt jesse.txt taylor.txt

個々のファイルをrmで削除できることがわかりましたが、students/ディレクトリ全体とその内容を削除する場合には効率的ではありません。

ディレクトリを削除するために使用されるコマンドはrmdirです。これはremove directoryの略です。親フォルダーに移動して、そこからstudents/ディレクトリを操作できるようにします(現在いるフォルダーを削除することはできません)。

  1. cd ..

/home/sammy/ユーザーディレクトリから、studentsrmdirを実行できます。

  1. rmdir students

しかし、これは機能しません。次のフィードバックが表示されます:

Output
rmdir: failed to remove 'students': Directory not empty

rmdirは空のディレクトリのみに機能し、studentsディレクトリにはまだファイルが含まれているためです。(ここでは、新しい空のフォルダーを作成し、それにrmdirを試してみることができます。空のフォルダーはrmdirで削除できます。)

ディレクトリ内にまだファイルがある場合、異なるオプションを試す必要があります。 コンピュータサイエンスでは、再帰が頻繁に使用され、反復的に自己参照されるため、主要なアイテムとそのすべての依存関係を呼び出すことができます。 rmコマンドを使用して、主要なstudentsディレクトリとそのすべての内容の依存関係を再帰的に削除できます。 -rフラグを使用し、studentsフォルダを引数として渡します。

  1. rm -r students

この時点で、lsを実行すると、students/が現在のディレクトリにはもう存在せず、それが保持していたファイルも利用できなくなっていることに気付きます。

ターミナルセッションを終了するとき、特にリモートサーバーで作業している場合は、exitコマンドを使用してターミナルを終了できます。 このセッションで達成した内容に満足したら(それを元に戻すことはできないので)、以下の内容を入力してからENTERを押してターミナルを終了できます。

  1. exit

インタラクティブターミナルで、以下の出力が表示され、セッションが終了したことが確認できます。

Output
Session ended

このセッションが完了したら、このページを更新してから新しいターミナルを起動して、別のコマンドを試したり、新しいファイルシステムを探索したりできます。

結論

おめでとうございます! 今、あなたは端末インターフェースの操作方法を知っており、コンピュータやサーバーをより効果的に利用するための道を歩んでいます。

学習を続けるためには、当社のクラウドコンピューティング入門カリキュラムを受講することができます。

Source:
https://www.digitalocean.com/community/tutorials/a-linux-command-line-primer