コマンドラインは、GUI を使用せずにコンピュータを制御する方法です。このユニットでは、コンピュータを操作するための基本的なコマンドについて学習します。
重要ポイント
- 生徒はコマンドを使ってパソコンの中を移動します。
- 生徒はファイルやフォルダを作成、移動、コピー、削除します。
コマンドラインとは
ほとんどのユーザーは、グラフィカル ユーザー インターフェース(GUI)を使用してパソコンを操作します。GUI は通常、マウスまたはタップに依存して、アイコン、ボタン、スクロールバーなどのウィンドウを操作します。
コマンドラインは、パソコンの代替ビューです。「シェル」、「ターミナル」、「bash」、「テキスト インターフェース」と呼ばれることがあり、コマンドラインは次のとおりです。
- ユーザーがコマンドを入力するコンピュータ プログラムを操作する手段です。次に例を示します。
open README.txt
- マウスを使わずにパソコンを操作できます。
- ファイルとディレクトリを作成、読み取り、更新、操作、削除する非グラフィックな方法:
mv README.txt readme.txt
GUI とコマンドラインは同じものです。コンピュータを操作するさまざまな方法です。
コマンドラインを使用するタイミング
デベロッパーがよく使用するコマンドライン インターフェースです。
- プログラムやオペレーティング システムをより簡潔に管理できるようになります。なぜでしょう。すべての処理は同じウィンドウで行われるため、マウスを使って項目を見つけて操作するよりも手間が省けます。
- コマンドを制御するためのオプションを簡単に提示できます。なぜでしょう。GUI のメニューにはいくつかのオプションがあります。コマンドラインには数百のコマンドがあり、コマンドに数文字追加するだけで、さまざまな操作を実行できます。次に例を示します。
ls
基本リストファイルls -a
すべてのファイル(通常は非表示のファイルを含む)を一覧表示するls -l
各ファイルに関する情報を示す長いリストls -R
再帰的、ディレクトリの内容のリストls -la
すべてのファイルの長いリスト- 大量のファイルへの複雑な操作が簡単になります。
for i in *.png; do pngtogif $i `echo $i | sed s/png/gif/`; done
- これにより、オペレーティング システム(シェル プログラム)をプログラミングできます。上記の例は、ファイル名が
.png
で終わる画像を変更する目的で設計された非常にシンプルなシェル プログラムです。
コマンドラインの実際の動作
コマンドライン コマンドの各部
すべてのコマンドは、次の 3 つの部分で構成されています。
- コマンド(またはユーティリティ)は常に最初に表示されます。
- 使用するユーティリティに応じて、フラグは省略可能です。フラグは常に -(マイナス)で始まります。
- 引数とは、コマンドを動かすための情報、つまり必要な情報です。多くの場合、ファイル名です。
フレーム処理
コンテキストと目的
コマンドラインは、マウスや GUI(グラフィカル ユーザー インターフェース)を使用せずにコンピュータを操作する方法です。Apple Computer は、クリック可能なアイコンとフォルダを使用してマシンの構築を開始するまで、コンピュータを操作するにはコマンドラインしかありませんでした。
デベロッパーがコマンドラインを使用するのは、GUI よりはるかに速くて強力なため、何度もクリックする手間を省くことができるためです。このコマンドラインを使用すると、パソコンでのほぼすべての操作を実行できます。
端末が非常にシンプルなインターフェースであるため、ネットワーク リンクを介してリモートでコンピュータに接続する必要がある場合に、GUI よりも大きなメリットがあります。これは、旅行などでデベロッパーが頻繁に行う作業です。
このレッスンでは、ファイルとディレクトリの作成、フォルダの移動、ディレクトリの変更、フォルダの内容の一覧表示など、コンピュータを操作するための基本的なコマンドについて学習します。
学習目標
生徒は
- ターミナルを使用してファイルやフォルダを移動する
- フォルダの内容を一覧表示する
- コマンドラインでファイルやフォルダを作成する
- ファイルやフォルダを移動する
- ファイルやフォルダをコピーする
- ファイルやフォルダを削除する
Google Cloud
ターミナルへのアクセス
セクション内の構成と目的
ターミナルは、オペレーティング システムにコマンドライン インターフェース(CLI)を提供します。テキストベースの指示をコンピュータに直接与えることができます。
それには、使用しているシステムに基づいてターミナルを起動する必要があります。
ターミナルが起動すると、パソコンのホーム ディレクトリ(パソコンに付けた名前)で起動します。ホーム ディレクトリはチルダ~
で表されます。
ターミナルの中ではディレクトリはフォルダと同じです(このディレクトリは「ディレクトリ」と呼ばれることもあります)。
ディレクトリの変更
セクション内の構成と目的
ターミナルでパソコンに話しかけて、目的の操作を伝えるには、共通の言語を使用する必要があります。コマンドラインは、bash スクリプト言語で記述されたコマンドについて理解します。コマンドは、英単語の略語や略語です。
作業ディレクトリの印刷(pwd
)
端末でナビを利用する場合は、現在地を正確に把握することが重要です(これは実際の生活に直接反映されます。どこかに行くには、まず現在地を把握する必要があります)。
# See your current location - abbreviation for 'print working directory'
pwd
使用可能なファイルとディレクトリを一覧表示する
作業ディレクトリ内には、アクセスできるファイルが複数あるはずです。通常は、利用可能なアイテムを判断するにはアイコンなどの視覚的な合図を使用しますが、ファイルやフォルダの場所を推測しているだけでは、パソコンの操作は困難です。コマンドラインでは、特定のコマンドを使用して、特定の作業ディレクトリや任意の場所からアクセスできるものを一覧表示します。
現在のディレクトリ内にあるファイルまたはフォルダを確認するには、ls
コマンド(リストの略称)を使用してコンテンツのリストビューを表示します。
# See files and folders in current location - abbreviation for 'list'
ls
作業ディレクトリを変更
一覧にないファイルまたはディレクトリにアクセスする必要がある場合は、作業ディレクトリを変更してアクセスしやすくすることができます。
新しいディレクトリ(フォルダ)に移動するためのコマンドラインへの指示は、cd
の後に(同じ行に)新しいフォルダのパスとして続きます。
現在ディレクトリ(作業ディレクトリのサブフォルダ)内にあるディレクトリに移動する場合は、コマンド cd
の後にフォルダ名を指定します。
# Change your current working directory (current location)
# Abbreviation for 'change directory'
cd Documents
ホームの ~ ディレクトリから始めることもできます。
# Add a `~/` to begin from the home directory.
cd ~/Downloads
ディレクトリを変更した後でホーム ディレクトリに戻す必要がある場合は、~
を使用して自宅に直接移動するか、..
を使用して 1 つ上のレベルに移動します。
# Option 1: navigate directly to the home directory
cd ~
# Option 2: navigate back one level
cd ..
cd ..
は 1 つ上のレベルの階層(上位の階層)に戻るだけなので、これまでにそのディレクトリを 3 回(下位の 3 レベル)変更した場合は、cd ..
を 3 回使用してホームに戻る必要がありますが、cd ~
を使用する必要があるのは 1 回だけです。
ミニチャレンジ
ls
を使用して、現在のディレクトリの内容を確認します。- ホーム ディレクトリに戻り、
ls
を使用してホームフォルダの内容を表示します。 - ホーム ディレクトリ内にあるいずれかのフォルダの名前を選択して、この新しいフォルダに移動します。
- list コマンドを使用すると、内部の内容を確認できます。
ヒント: tab
でオートコンプリート
cd
コマンドでディレクトリを変更すると、入力を 1 回誤るとコマンドが正しく実行されません。ただし、tab
キーを使うと、現在のディレクトリ内にある使用可能なディレクトリ名が自動的に表示されます。「cd Documents
」と入力するのではなく、「cd Do
」と入力して tab
キーを押すと、コマンド cd Documents/
がオートコンプリートされます(末尾の /
は省略可能ですが、宛先がディレクトリであることが示されます)。
このオートコンプリートは、動作を効率化するだけでなく、機能しないときは貴重な情報を提供します。タブボタンでオートコンプリートが表示されない場合は、次の 3 つのよくある問題のいずれかが原因の可能性があります。
- 移動先のディレクトリには、現在の作業ディレクトリからアクセスできません。
Documents
とDownloads
など、類似した名前のディレクトリが 2 つあり、どの名前が必要かオートコンプリートに判断するための十分な情報が提供されていません。再度tab
キーを押すと、入力した名前と一致する可能性のあるディレクトリのリストが表示されます。次に、もう少し入力して(一致する項目が 1 つだけになるように)tab
をもう一度押します。- 単語の前半にタイプミスがすでに入力されています。
タブを使用してコマンドをオートコンプリートする習慣を早く身につけると、コマンドが機能しないことに不満を抱くような状況に対処しやすくなります。
親ディレクトリと子ディレクトリ
ディレクトリとファイルは、互いに子関係と親関係を持つことができます。directory_b
が directory_a
の内側の場合、directory_b
は directory_a
の子と呼ばれます。directory_a
はその後、directory_b
の親と呼ばれます。3 つ目のアイテム my_file
が directory_b
の内部にある場合は、directory_b
の子および directory_a
の孫とみなされます。
このような関係は、多くの場合、以下のようなテキストの図が付いたフォーラムで示されます。
directory_a/ directory_b/ my_file
ディレクトリ名は末尾が /
で、ファイル名がそうではないことに注意してください。この階層的な組織は、一般的にファイル システムのツリー構造と呼ばれます。
兄弟
同じ階層に複数のファイルまたはフォルダがある場合は、兄弟と呼びます。例: file_b
と file_c
が directory_a
の内部にある場合、それらは兄弟です。
テキスト図は次のようになります。
directory_a/ file_b file_c
file_b
と file_c は兄弟であるため、同じ量のインデントになります。
File Paths
これは、親子と兄弟の関係の両方を含む、より複雑なテキスト図です。
north_america/ united_states/ new_york/ new_york_city/ manhattan queens staten_island bronx brooklyn california/ mountain_view los_angeles illinois/ chicago mexico/ mexico_city
この例では、new_york_city/
はディレクトリ名ですが、パス(~/north_america/united_states/new_york/new_york_city/
へのアクセス方法)も存在しています。
ディレクトリを new_york_city/,
に変更するには、名前を使用して段階的に移動するか、パスを使用して 1 つのコマンドでそこまで移動できます。
# Option 1: in four steps, using directory names.
cd ~ # navigate home, where these folders are located
cd north_america/
cd united_states/
cd new_york/
cd new_york_city/
# Option 2: in one step, using the path.
cd ~/north_america/united_states/new_york/new_york_city/
ナビゲーション コマンドの概要
# See your current location - abbreviation for 'print working directory'
pwd
# Change to a new location - abbreviation for 'change directory'
cd ~/Downloads
# Navigates into a child directory called `some_directory`
# Only works if `some_directory` is a child of the current directory
cd some_directory
# Navigates into the parent of the current directory
# `..` is shorthand for parent.
cd ..
# Will take you back home
cd
ミニチャレンジ
pwd
を使用して、現在のフォルダを確認します。- 別のディレクトリに移動して、新しい場所を確認します。
- もう一度試してください。新しいコマンドを使用すると、現在地およびこのディレクトリ内のファイルを表示できます。
ファイルを作成する、ディレクトリ
セクション内の構成と目的
デベロッパーは、コードを使用してファイルを作成する必要があります。これらのファイルを整理するには、ファイルを保存できるフォルダとディレクトリを作成する必要があります。
ファイルやフォルダを作成する前に、ターミナルでの位置を把握しておきます。
# See your current location.
pwd
ファイルを作成するには、コマンド touch
の後にファイル名を入力します。
# `touch` creates a new file.
touch style.css
ファイルを作成する場合、ファイル拡張子を追加してタイプを指定します。ファイル形式の例:
.js
: JavaScript ファイルとして作成します.html
さんが HTML ファイルを作成します.css
が CSS ファイルを作成する.md
がマークダウン ファイルを作成する
ファイル名にはスペースを含めないでください。
# make a file - this will create a file in the current folder
touch my_text_file.txt
# make a file - this will create a file on the desktop
touch ~/Desktop/my_new_style_sheet.css
複数のファイルを作成する
名前の間にスペースを入れることで、一度に複数のファイルを作成できます。
# make multiple files - this will create multiple files in the current folder
touch my_new_js_file.js my_new_html_file.html my_second_html_file.html
ディレクトリの作成
ディレクトリ(またはフォルダ)を作成するには、コマンド mkdir
(コマンドの「make directory'」の略)を使用します。
# make a folder - this will create a directory in the current folder
mkdir my_new_folder
# make a folder - this will create a directory on your desktop
mkdir ~/Desktop/my_new_desktop_folder
複数のディレクトリを作成する
各名前の間にスペースを入れることで、複数のフォルダを一度に作成できます。
# make multiple folders - this will create multiple folders in the current
# directory
mkdir folder_one folder_two folder_three
ミニチャレンジ
- 新しいファイルを作成します。
- 1 つのコマンドで複数のファイルを作成します。
- 新しいディレクトリを作成します。
- 新しいディレクトリをいくつか作成します。コマンドは 1 つだけでもかまいません。
- ディレクトリの操作やファイルとフォルダの作成に関する知識をもとに、デスクトップでファイルとフォルダを使って「family_tree'」を作成します。
移動 &コピー
ファイルの移動とディレクトリ
セクション内の構成と目的
コマンドラインでファイルやフォルダを移動できますが、次の 3 つを必ず指定する必要があります。
- ここでは、
mv
コマンド(move の略)を使用します。 - 移動するファイルまたはフォルダの名前を使用して、移動コマンドを実行します。
- 移動先のファイルの名前を参照します。
たとえば、次のようなファイル構造があるとします。
my_child_folder/ my_parent_folder/
ご覧のとおり、レイアウトは適切ではなく、親と子にする場合に兄弟であることがわかります。次のコマンドを使用します。
# move a directory - this will move the folder `my_child_folder` into the
# folder named `my_parent_folder` that is in the current folder
mv my_child_folder/ my_parent_folder/
最終的な構造は次のようになります。
my_parent_folder/ my_child_folder/
mv
コマンドのその他のバリエーションは次のとおりです。
# move a directory - this will move the folder `my_folder` into the file named
# `my_desktop_folder` that is located on the Desktop
mv my_folder ~/Desktop/my_desktop_folder
# move a file - this will move the file `my_file.txt` into the file named
# `my_folder` that is in the current folder
mv my_file.txt my_folder
# move a file - this will move the file `my_file.txt` into the file named
# `my_desktop_folder` that is located on the Desktop
mv my_file.txt ~/Desktop/my_desktop_folder
警告: mv
は、構文 mv old_name new_name
を使用してファイル名を変更するコマンドでもあります。存在しないディレクトリにファイルを移動した場合や、正しいスペルで指定しなかった場合は、ファイル自体が移動ではなく名前が変更されます。
ミニチャレンジ
- 5 つのテキスト(.txt)ファイルを作成します。
- 新しいディレクトリを作成します。
- 作成した 5 つのファイルをこのフォルダに移動します。
- フォルダを作成し、この新しいフォルダを別のフォルダ内に移動します。
ファイルのコピーとディレクトリ
セクション内の構成と目的
ウェブアプリを作成する際に、ファイルを複製できます(2 つの類似したウェブページを最初から作成する場合、最初からやり直す必要はありません)。cp
(コピー)コマンドの構文は mv
構文と非常によく似ています。
ファイルのコピー
copy コマンドは次の 3 つの部分から構成されます。
- コマンド
cp
- コピーの略語 - コピーするファイルの名前
- コピーの名前(同じフォルダにいる場合)、または場所と名前(別のフォルダに移動している場合)。
# Copy a file named `my_file.txt` to a file called `my_file_copy.txt`
# The copy will be located in your Documents folder.
cp my_file.txt ~/Documents/my_file_copy.txt
# Copy a file named `my_file.txt` to a file called `my_file_copy.txt`.
# Since no directory was specified, this will occur within the same folder.
cp my_file.txt my_file_copy.txt
コピーをコピー元と同じ名前にする場合は、ファイル名のないコピー場所を指定します。
# Copy a file named `my_file.txt` to your Documents folder.
# The destination ends with a directory, so the copy will have the same name.
cp my_file.txt ~/Documents/
同じ名前のファイルが多数あると混乱する可能性があるため、この方法は本当に必要な場合にのみ使用してください。
ディレクトリをコピーする
フォルダだけでなく、その中のすべてのコピーが必要になるため、フォルダやディレクトリのコピーは少し複雑になります。
- コマンド
cp -R
(copy recursive の略)。空のフォルダと空でないフォルダの両方に対して使用します。 - ソース名(移動するフォルダまたはファイル)
- コピーの名前(同じフォルダにいる場合)、または場所と名前(別のフォルダに移動している場合)。
警告: コピーの名前を指定するときに、そのファイルまたはフォルダを以前に作成していない場合は、コピーの作成時に作成されます。コピー コマンドを実行する前に作成したファイルによって、ファイルに以前あったものはすべて上書きされます。
# copy a directory named `my_folder` from your Desktop folder to a folder
# called `my_folder_copy` in your Documents folder
cp -R ~/Desktop/my_folder ~/Documents/my_folder_copy
# copy a file named `my_file.txt` from your Desktop folder to your Documents
# folder
cp -R my_folder my_folder_copy
注: cp -R
の -R
コンポーネントはフラグと呼ばれます。フラグは常にダッシュで始まり、コマンドと一緒に使用されることで、そのコマンドの実行方法を具体的に指示できます。
ミニチャレンジ
my_original.txt
という名前のファイルを作成します- 同じフォルダに新しい名前の
my_original.txt
のコピーを作成します。 - 新しいディレクトリを作成します。
- そのディレクトリのコピーを作成し、新しい名前を付けます。
- ステップ 2 でコピーしたファイルをコピーし、ステップ 4 でコピーしたディレクトリに配置します。
ファイルおよびフォルダの削除
セクション内の構成と目的
コマンドラインでファイルやフォルダを削除できますが、完全に削除することはできません。
ファイルを削除する
ファイルを削除するには、コマンド rm
(remove の略)の後にファイル名を使用します。
# delete a file in the working directory
rm unwanted_file.txt
# delete a file not in the working directory
rm ~/Desktop/unwanted_file.txt
空のディレクトリを削除する
空のディレクトリを削除するには、コマンド rmdir
(remove directory の略)の後にフォルダの名前を指定します。
# delete an empty folder
rmdir empty_directory
# delete an empty folder
rmdir ~/Documents/my_files/empty_directory
空のディレクトリを削除する
空でないフォルダを削除するには、フォルダ内のコンテンツを削除するようコンピュータに指示する rm
コマンドの後に、フラグ -R
(recursive の略)を設定する必要があります。簡単な方法としては、すべてのデベロッパーが強制的にフラグ -Rf
を削除するフラグがあります(そうしないと、一部の子ファイルとフォルダの削除を求めるメッセージが表示されることがあります)。
# delete a folder which contains other files or folders
rm -R directory_which_isnt_empty
# delete a folder which contains other files or folders
rm -R ~/Downloads/directory_which_isnt_empty
警告: rm
コマンドの使用は、ゴミ箱やメールの削除セクションとは異なります。これらのファイルは簡単には復元できません。この方法でファイルを削除する場合は、特に注意してください。
ミニチャレンジ
- 4 つのファイルを作成します。
- 2 個のファイルを削除します。
- フォルダを作成します。
- 別のフォルダを作成し、このフォルダ内にファイルを作成します。
- 両方のディレクトリを削除します。
このラボのコードは、GitHub からダウンロードした受講者リポジトリ内の次のフォルダにあります。command-line/labs/around-the-world
背景
海外の学期が間近に迫って、ヨーロッパ旅行の計画を立て始めたとき...
近い将来、本格的な生活を 3 か月間行う予定があるので、週末の旅行を最大限に活用しましょう。
幸いなことに、ゼロから始めず、友達が学期中のお気に入りのアクティビティをいくつか提供してくれています。一部のファイルが混在しています...
コマンドラインを使えば、今すぐ問題を解決できます。
タスク
すべての都市が正しい国にあり、それぞれの都市フォルダに適切な記念碑があることを確認してください。アムステルダムに到着したらエッフェル塔を探そう!
確信が持てる場合は、GUI を非表示にし、コマンドラインで直接確認するようにしてください。この作業中は、世界中のフォルダに移動しますが、フォルダやファイルを参照する場合は絶対パスを使用する必要があります。
すべて正しい位置にあることを確認したら、今後数か月以内にコマンドを実行しましょう。新しい都市や国、記念碑についてブレインストーミングし、ファイルツリーに追加する必要があります。
これで、あなたはパソコンの公式な話し方を学びました。次のステップに進みましょう。拡張機能の拡張機能...
拡張部
- すべてのファイルをミキシングしてから、好みの都市にファイルを追加します。そこで、同じ都市でファイルを再度整理します。
- 以下で紹介している楽しいコマンドライン ゲームをお試しください
Terminus Game
Advanced Game(Google が対応) - スターウォーズの大ファンですか?コマンドラインで
telnet towel.blinkenlights.nl
を実行して Enter キーを押します。(最近のバージョンの MacOS では、telnet
コマンドがデフォルトでインストールされていません。代わりに、コマンドnc towel.blinkenlights.nl 23
を使用できます)。
このラボのコードは、GitHub からダウンロードした受講者リポジトリ内の次のフォルダにあります。command-line/labs/bashing-away-repetition
毎日のコマンドラインの使用量を減らしましょう。よかったです。
背景
プログラマーが嫌いなものがあると、それは繰り返されます。コンピュータ サイエンティストの仕事は、可能な限り多くの作業をコンピュータに任せることです。bash スクリプトを記述することで、コマンドラインの使用を効率化できます。
まず、bash スクリプトとは何ですか。
ご質問ください。ありがたいことに、友人の Ryan Chadwick がコマンドラインのチュートリアルを見つけるのに最適な場所に来てくれました。
Bash スクリプトを使用すると、一連のアクションを定義できます。これらのコマンドは、コマンドを自分で入力する必要はありません。特定のタスクが頻繁に実行される場合や、反復的な場合、スクリプトが役立つ場合があります。
繰り返しない場合それが私が話している内容です。
チュートリアル
まず、スクリプトを実行するには、コンピュータに権限を付与する必要があります。これを行うには、次のコマンドを実行します。
chmod 755 myScript.sh
それでは最初のプログラムを作成しましょう。myScript.sh
にアクセスします(コマンドラインからファイルを開くことができるかどうかを確認します)。ファイルの末尾に次の行を追加します。
echo "Hello World"
次に以下のコマンドを実行します。
./myScript.sh
。** TA DA ** ターミナルに「Hello World」と出力されます。
bash スクリプトに記述したものはすべて、ターミナルに入力したかのように動作します。拡張機能を使用する前に、もう 1 つの例を見てみましょう。まず、スクリプト用のファイルを作成します。このファイルは任意の名前にできますが、拡張子は .sh
にする必要があります。次に、chmod 755
と入力し、ターミナルでスクリプトの名前を入力して Enter キーを押して、スクリプトの実行権限を付与します。新しい bash スクリプトを開始するたびに、この 2 つの手順を行っていることを確認する必要があります。
イントロ チャレンジ
では、新しいフォルダを作成するスクリプトを作成してみましょう。新規フォルダを作成するコマンドm
で始まり、kdir
で終わる単語を思い浮かべれば、正しい方向に進んでいるはずです。新しいフォルダを作成するコマンドを記述し、新しい .sh
ファイルに適切な名前を指定して、ターミナルで実行します。
問題がなければ、後述の他の課題に進みます。まだ混乱している場合は、世界中のラボを振り返り、新しい国や都市のフォルダをどのように作成したかを考えてください。
上記でリンクしたチュートリアルを積極的に活用し、Google のスキルを磨いていきましょう。次の処理を実行するスクリプトを作成して実行します。
主なタスク
- 上記で作成したファイルに、作成中のフォルダに移動するコマンドを追加します。(ディレクトリの変更にはどのコマンドを使用しますか)。
- 日付には、新しいフォルダ名が表示されます。たとえば、「&\」というフォルダを作成します。
2017-12-07my_super_cool_folder
- 出力先: 現在のディレクトリ: " の後に作業ディレクトリが続き、さらにこのディレクトリ内の全リストを表示" に続けて現在のディレクトリの内容を入力します。
- bash スクリプトに入力を行い、その入力文字列に基づいてファイルを作成します。ラボで先ほどリンクしたチュートリアルで、[変数] セクションに優れた例をいくつか紹介しています。
- ユーザーに名前を尋ねて印刷した後、「はじめまして」こちらに名前を挿入
- ユーザーに詳細情報の提供を求め、それに合わせたカスタム メッセージを作成します。
コンテキスト
コマンドライン(またはターミナル)は、グラフィカル ユーザー インターフェース(GUI)と同様に、コンピュータ オペレーティング システム(OS)と直接的なやり取りを行いますが、ナビゲーションから新しいファイルの作成、スクリプトの実行まで、テキスト コマンドを使用しています。このコマンドラインは、ファイルを開いたり、Google App Engine の使用時に開発環境を開始したりするために使用されます。
コマンドラインの実際の動作
ターミナルへのアクセス
Mac のショートカット:
- Command+Space キーを押して Spotlight を開きます。
- スポットライト検索で「Terminal」と入力します。
ターミナルの操作
# See your current location - abbreviation for 'print working directory'.
pwd
# Change to a new location - abbreviation for 'change directory'.
cd /Users/jsmith/Downloads
# Navigate into a child directory called `some_directory`. This only works if
# `some_directory` is a child of the current directory.
cd some_directory
# Navigate into the parent of the current directory. `..` is shorthand for parent.
cd ..
# Return home.
cd
# Change directories to a folder called `my_folder` that is within the current
# directory.
cd my_folder ```
#### File Path Shorthand `~`
The `~` is generally short for "home". Home can be configured to mean different
things for different users and across different operating systems, but in the
example above, for a Mac user named "jsmith", the `~` is short for that user's
home directory: `/Users/jsmith`.
This means that `~/Downloads` and `/Users/jsmith/Downloads` are the same for
this user. But starting with a `~` allows us to specify absolute file paths
(agnostic of your current working directory, and starting at the root `/`)
without having to write out a full path each time.
### <a id="view"></a>Viewing the Contents of Folders
```bash
# See files and folders in current location - this is an abbreviation for 'list'.
ls
ファイルとフォルダの作成
ファイルの作成
# Make a file - this will create a file in the current folder.
touch my_text_file.txt
# Make a file - this will create a file on the Desktop.
touch ~/Desktop/my_new_style_sheet.css
# Make multiple files - this will create multiple files in the current folder.
touch my_new_js_file.js my_new_html_file.html my_second_html_file.html
フォルダの作成
# Make a folder - this will create a directory in the current folder.
mkdir my_new_folder
# Make a folder - this will create a directory on your Desktop.
mkdir ~/Desktop/my_new_desktop_folder
# Make multiple folders - this will create multiple folders in the current
# directory.
mkdir folder_one folder_two folder_three
ファイルの移動とフォルダ
ファイルの移動
# Move a file - this will move the file `my_file.txt` into the folder named
# `my_folder` that is in the current folder.
mv my_file.txt my_folder
# Note that this will rename the file instead of moving it if the destination
# folder does not yet exist. Read below for more details on renaming.
# Move a file - this will move the file `my_file.txt` into the folder named
# `my_desktop_folder` that is located on the Desktop.
mv my_file.txt ~/Desktop/my_desktop_folder
フォルダの移動
# Move a directory - this will move the folder `my_child_folder` into the
# folder named `my_parent_folder` that is in the current folder.
mv my_child_folder my_parent_folder
# Move a directory - this will move the folder `my_folder` into the folder
# named `my_desktop_folder` that is located on the Desktop.
mv my_folder ~/Desktop/my_desktop_folder
引越しサービスの名前変更について
mv
は、ファイルやフォルダの名前の変更に使用したコマンドと同じであることに注意してください。
# Rename a file from `old_name.txt` to `new_name.txt`.
mv old_name.txt new_name.txt
ファイルのコピーとフォルダのコピー
ファイルのコピー
# Copy a file named `my_file.txt` from your Desktop folder to your Documents
# folder.
cp ~/Desktop/my_file.txt ~/Documents
# Copy a file named `my_file.txt` to a file called `my_file_copy.txt` within
# the same folder.
cp my_file.txt my_file_copy.txt
フォルダのコピー
# Copy a directory named `my_folder` (and its contents) from your Desktop
# folder to a folder called `my_folder_copy` in your Documents folder.
cp -r ~/Desktop/my_folder ~/Documents/my_folder_copy
# Copy a directory named `my_folder` (and its contents) from the current
# working directory to a folder called `my_folder_copy` in the current working
# directory.
cp -r my_folder my_folder_copy
ファイルおよびフォルダの削除
ファイルの削除
# Delete a file in the current working directory.
rm unwanted_file.txt
# Delete a file using its exact location and name.
rm ~/Desktop/unwanted_file.txt
フォルダを削除する
# Delete an empty folder.
rmdir empty_directory
# Delete a folder which contains other files or folders.
rm -r directory_which_isnt_empty
ヒントとアドバイス
- 不要な場合であっても、コマンドラインを使用して練習します。使い続けるほど、精度が向上します。
tab
キーを押すと、ファイルまたはフォルダの名前がオートコンプリートされます(大文字と小文字は区別されます)。- 一致するファイルまたはフォルダが 1 つしかない場合は、オートコンプリートされます。
- 一致するファイルまたはフォルダが複数ある場合は、Tab キーを 2 回押して、残りの一致ファイルのリストを表示します。
- 上矢印と下矢印でコマンド履歴が循環するため、コマンドを再入力する必要がありません。
clear
ターミナル ウィンドウをクリアします。これで以前の作業がすべて保持されます。上にスクロールすると表示できます。reset
を使用してターミナルを再起動します。これにより、以前の作業が画面にとどまることはありませんが、ターミナルが予期しない方法で動作し始めた場合に複数の問題が解決される場合があります。option
+arrow
キーを押してカーソルを単語単位で移動します。
ベスト プラクティスの概要
cd
、cd ..
、またはcd <folder name>
を使用してターミナルをナビゲートします。ls
を使用してフォルダの内容を表示します。touch
を使用してファイルを作成し、mkdir
を使用してフォルダを作成します。mv <item to move> <destination>
を使用してファイルやフォルダを移動します。cp <item to copy> <destination>
を使用してファイルやフォルダをコピーします。rm <item to remove>
を使用してファイルやフォルダを削除します。
問題 1
現在の作業ディレクトリの特定には、何を使用しますか。
pwd
ls
cd
mkdir
touch
問題 2
現在の作業ディレクトリから 2 つ上のレベルに昇格するにはどうすればよいでしょうか。
mv ~
cd ../..
mv up/up
cd ^(2)
問題 3
どのコマンドを使用してファイル名を変更しますか。
mv
cd
ls
python
rename
問題 4
コマンド mv script.py
でエラーがスローされるのはなぜですか?
- 「
script.py
'」は無効なファイル名であるためです。 - これは、「
mv
」コマンドの後には他の情報を追加することができないためです。 - これは質問です。エラーはスローしません。
- ファイルの移動にはターゲットと宛先の 2 つ以上の引数が必要なため
問題 5
cd ~
コマンドの機能
- 作業ディレクトリをホーム ディレクトリに変更します。
- 前のコマンドを繰り返します。
- アルゴリズムを使用して、現時点で最も便利なコマンドを決定します。
- エラーをスローします。
Question 6
タブを使用してファイル名をオートコンプリートする理由として当てはまらないものは、次のうちどれですか。
- 時間を節約できるから。
- スペルミスの排除に役立つから。
- 必要な処理能力が少ないためです。
問題 7
新しいデベロッパーが「my script.py
」というファイルを作成しようとしても、コマンド touch my script.py
が機能しないのはなぜですか?
- これは、
touch
で新しいファイルを作成できないためです。 .py
は有効なファイル拡張子ではないため。- これは、ファイルを 1 つだけ作成するのではなく、「
my
」と「script.py
」という 2 つのファイルを作成するためです。 - コマンドラインから新しいファイルを作成することはできないからです。
問題 1
現在の作業ディレクトリの特定には、何を使用しますか。
pwd
問題 2
現在の作業ディレクトリから 2 つ上のレベルに昇格するにはどうすればよいでしょうか。
cd ../..
は 2 つ上のレベルに移動します(各 ..
は 1 つ上のレベルを表します)。
問題 3
どのコマンドを使用してファイル名を変更しますか。
mv
は、ある場所から別の場所へのファイルの移動に使用されます。また、ファイル名の変更にも使用できます。
問題 4
コマンド mv script.py
でエラーがスローされるのはなぜですか?
mv
コマンドには、ソースファイルと宛先ファイルの 2 つの引数が必要です。
問題 5
cd ~
コマンドの機能
作業ディレクトリがホーム ディレクトリに変更されます。特殊文字 ~ は、現在のユーザーのホーム ディレクトリを識別するために使用されます。別のユーザー名「~user2」をホームフォルダを指定することもできます。
Question 6
タブを使用してファイル名をオートコンプリートする理由として当てはまらないものは、次のうちどれですか。
処理能力が低いため、不正解です。tab
では、オートコンプリートするファイル名を検索するフォルダをスキャンするために、(ほとんど無視できるほどの)処理能力を必要としますが、時間の節約になり、プロセス中のスペルミスを回避できます。
問題 7
新しいデベロッパーが「my script.py
」というファイルを作成しようとしても、コマンド touch my script.py
が機能しないのはなぜですか?
1 つではなく 2 つのファイルが作成されます。touch
コマンドを実行すると新しいファイルが作成されます。ターミナル スペースでは、ファイル名に含める文字ではなく区切り文字が使用されます。ファイル名は完全に使用しないことをおすすめしますが、使用する必要がある場合は、ファイル名を二重引用符で囲んでください。
touch "my script.py"
問題 1
ディレクトリを変更するためのターミナル コマンドは次のとおりです。
move
mkdir
pwd
cd
問題 2
現在の作業ディレクトリの親フォルダに移動するには、どのコマンドを実行しますか。
cd up
cd .
cd ..
cd ~
問題 3
ファイルの作成に使用するコマンドはどれですか。
touch
mkdir
create
pwd
問題 4
index.html
と style.css
という 2 つのファイルを作成するコマンドは次のうちどれですか。
touch index.html, touch style.css
touch index.html, style.css
touch index.html style.css
touch index.html + style.css
問題 5
ファイルやフォルダの名前の変更には、どのコマンドを使用しますか。
rename
move
mv
rm
Question 6
フォルダに対して機能する必要がある rm
コマンドと cp
コマンドは何ですか。
-f
-r
-x
-d
問題 7
projects
を ~/Documents
に移動して Projects
に変更するには、空白のままにする必要があるコマンドはどれですか。
cd ~
mv projects ~/Documents
# fill in the blank here
mv projects Projects
pwd
cd projects
mv ~ projects
cd ~/Documents
ls
Question 8
次のコマンドを実行します。
rm -r projects
projects
という名前のファイルを削除するprojects
というフォルダを削除します。projects
という名前のファイルの名前を変更する- 現在のディレクトリで
projects
を検索します
問題 1
ディレクトリを変更するためのターミナル コマンドは次のとおりです。
ディレクトリを変更するためのターミナル コマンドは cd
です。コマンド自体は &change の略です。
問題 2
現在の作業ディレクトリの親フォルダに移動するには、どのコマンドを実行しますか。
親フォルダに移動するコマンドは cd ..
です。
問題 3
ファイルの作成に使用するコマンドはどれですか。
ファイルを作成するコマンドはtouch
です。
問題 4
index.html
と style.css
という 2 つのファイルを作成するコマンドは次のうちどれですか。
コマンド touch index.html style.css
によって 2 つのファイルが作成されます。カンマは不要で、この方法で任意の数のファイルをスペースで区切って作成できます。
問題 5
ファイルやフォルダの名前の変更には、どのコマンドを使用しますか。
「移動」の略で、ファイルやフォルダの移動に使用できますが、mv
はファイルやフォルダの名前の変更にも使用できます。
Question 6
フォルダに対して機能する必要がある rm
コマンドと cp
コマンドは何ですか。
rm
および cp
のコマンドでは、フォルダに対して機能するための -r
フラグが必要です。-r
フラグは「recursive」を表し、その中のファイルとフォルダに対してコマンドを再実行します。
問題 7
projects
を ~/Documents
に移動して Projects
に変更するには、空白のままにする必要があるコマンドはどれですか。
cd ~
mv projects ~/Documents
# fill in the blank here
mv projects Projects
最初にホーム ディレクトリに移動するため、最終的なコマンドを正しいディレクトリで実行するには、cd ~/Documents
を実行する必要があります。
Question 8
次のコマンドを実行します。
rm -r projects
このコマンドはファイルまたは projects
というフォルダを削除します。これは -r
または再帰フラグで呼び出されるためです。このフラグがない場合、このコマンドは該当する名前のファイルのみを削除します。