ターミナルでのコマンドの使い方。(超初心者向け)
初心者向けに書いていますので、概念的に正しくない表記があります。
「コマンド、なんだそれ?」という人向けです。
バスと言うものを使用いたしますので、右記を事前にお読みください。「パスってなに。(超初心者向け)」
練習に使用するファイルをデスクトップに作成してください。このドキュメントでは、削除しても良いように「テキストエディット」アプリケーションで名前はfile1.rtfとfile2.rtfの二つのファイルを使用することとします。
1 コマンドとは。
Mac OS Xでは「コマンド」と言われる、特定の文字を入力することにより、さまざまな処理をすることができます。コンピュータの歴史の中では、かなり古くから存在していました。というよりは、Macに代表されるグラフィカルなユーザインターフェイスが普及するまで、その操作法の主流でした。現在でも、特定のことを効率よく処理する場合に有用です。
「ターミナル」アプリケーションに入力して使います。ものすごくたくさんあります。
このドキュメントでは、そのほんの一部、下記を取り上げます。しかも全ての機能を説明できませんので、ご了承ください。
ls cp sudo
コマンドは、半角英字で書きます。上記のコマンドを説明すると、
lsコマンド ファイルやフォルダの一覧を取得します(Mac OS Xの初期状態では画面に表示されます)。
cpコマンド ファイルやフォルダを複製(コピー)します。パスにより「どれを、どこに」複製するか指示します。
sudoコマンド 管理者権限といわれる「非常に強力」な権限で、他のコマンドを実行する際に使用します。使用するには、管理者のパスワードが必要です。
2 「ターミナル」アプリケーションの起動。
「/Applications/Utilities」に有ります。通常のアプリケーションと同じように起動してください。
MacName:~ UserName$ が表示され、入力待ちの状態になっているはずです。MacNameはシステム環境設定「共有」のコンピュータ名、UserNameはご自分のアカウント名です。
「~(ティルダ)」の文字は「~」(ホームフォルダ)にいます。と、言う意味の表示です。lsコマンドで補足しますので「今はそういうもの」とご理解ください。
コマンドは、
$
の後ろに入力します。と、いうより、ここにしか入力できません。
$ はシェルプロンプトといいます。コマンドを入力するときは下記(赤字部はApple Remote Desktop管理者ガイドバージョン3.3より抜粋)。
たとえば、次のようになります。
$ doit
このコマンドを使うときは、「ターミナル」ウインドウのコマンドプロンプトで、ドル記号なしで「doit」と 入力し、returnキーを押します。
3 まずは注意事項。
使う際に、超初心者の方が、つまづくものの一つに半角スペースの入力ミスがあります。例えば下記が微妙に表示が違うのが分かるでしょうか?
「」
「 」
上の行がスペース無しで、下の行が半角スペース1文字入りです。並べると分かりやすいですがコマンドを入力する際には、非常に見づらいです。しかしながら、その位置には、決まりがあります。
4 コマンドの使い方。
いよいよ本題のコマンドの使い方です。
一番最初の練習にlsコマンドを使用しましょう。このコマンドから始めるには理由があります。なぜなら、このコマンドは書込みをしません。間違ってもファイルを消したりできないので、手始めに一番です。
lsコマンド
lsコマンドは、基本的に下記の使い方をします。
$ ls [オプション] [パス]
では、下記を入力してみて下さい。
$ ls
ずらりとフォルダやファイルが表示されたでしょう。「どこの内容が、表示されたのかな?」と思った方も、いらっしゃるのではないでしょうか。表示されているのは、カレントディレクトリの内容です。カレントディレクトリについては「パスってなに。(超初心者向け)」をお読みください。
次に
$ ls ~/
と入力してみてください。半角スペースの位置に注意です。sの後ろ、「~」の前です。同じ物が表示されたと思います。これが、カレントフォルダの意味です。カレントフォルダがホームでパスも「~」ですから、ホームフォルダを差しています。なので、lsコマンドはフォームフォルダ内の「ファイルやフォルダの一覧」を表示したのです。では、次に下記を入力してみてください。
$ ls ~/Music
ログイン中のミュージックフォルダの中身が表示されたでしょう。このように、パスで指定した場所の一覧を表示します。
次に[オプション]に付いて説明しましょう。ここで、説明するのは、「-l」「-a」です。他にも[オプション]はたくさんあります。慣れたら、ネットで調べてみてください。
「-l」は、より詳しく一覧を表示します。「アクセス権、リンク数、ユーザ、グループ、容量、変更日、ファイル名」が表示されます。
「-a」はFinderで非表示のファイルも表示します。下記を実行してみてください。
$ ls -l ~/Music
$ ls -l -a ~/Music
$ ls -a ~/Music
このコマンドは、フォルダ内の状態を表示するだけですが、使い方によっては、非常に有用です。
cpコマンド
cpコマンドは、基本的に下記の使い方をします。
$ cp [オプション] [コピー元パス] [コピー先パス]
では、file1.rtfをミュージックフォルダにコピーしてみましょう。半角スペースの位置は「~」の前です(ファイルを別のフォルダにコピー)。
$ cp ~/Desktop/file1.rtf ~/Music
次に、file2.rtfをミュージックフォルダのfile1.rtfにコピーしてみましょう(ファイルをファイルにコピー)。
$ cp ~/Desktop/file2.rtf ~/Music/file1.rtf
ファイルをファイルにコピーするというのは、皆さん違和感が無いでしょうか。このコマンドの意味は、ファイルをファイルにコピーしているのでは無くfile2.rtfをfile1.rtfと言う名前でミュージックフォルダにコピーせよと言う意味なのです。
賢明な皆様は、お気づきでしょう。先にコピーした、~/Music/file1.rtfは~/Desktop/file2.rtfで上書きされてしまったのです。
cpコマンドで注意すべきは、
[コピー元パス] [コピー先パス]を間違えない。
コピー先に同じ名前の物があれば、上書きされる。
です。
[オプション]に付いて説明しましょう。ここで、説明するのは、「-p」「-R」です。他にも[オプション]はたくさんあります。慣れたら、ネットで調べてみてください。
「-p」はアクセス権を変更せずコピーします。
「-R」はフォルダをコピーする際に指定します。「再帰的にコピーする」と表現されます。難しそうな用語ですが、やることは、ある意味、単純です。フォルダの中には、フォルダが入っていることがありますよね。それを「片っ端からコピーせよ」という意味なのです。とにかく、フォルダの中にフォルダ、その中にまたフォルダがあっても最後までコピーしていきます。途中で、勝手に止められたら困りますものね。
例えば、(下記のコマンドはいきなり、試してはいけません。試す前に良く理解してから)
$ cp -p -R /Users/Shared ~/
このコマンドは、アクセス権を変更しないで「共有フォルダをログインアカウントにコピーせよ」という意味です。ただし、共有フォルダは、ログインしているユーザ以外からもファイルを保存できるので、アクセス権でエラーが出るかも知れません。Permission deniedと言うエラーがそれです。「アクセス権がない!」と文句を言っています。これをクリアするのが、sudoコマンドです。
cpコマンドは、上手く使えば、緊急のバックアップに使えますね。
たいがいの物は、コピーするcpコマンドですが、エイリアスのコピーには注意して下さい。オプションを指定しない限りエイリアスがコピーされます。
sudoコマンド
sudoとは管理者(Super User)として実行(Do)、実効せよという意味です。Mac OS Xに置いては管理者権限は、絶対的な権限を持っています。
OSに不具合を引き起こさせるを指示するコマンドすら、実行させてしまいます。
OSを起動できなくすることも、使い方によっては簡単にできてしまいます。間違って使えば、恐ろしい結果が待っています。
注意して使ってください。
このコマンドは、単独ではなく、他のコマンドに力を与えるように使います。このコマンドを使用するには、管理者のパスワードが必要です。一度、sudoを実行してパスワードを入力すると、数分以内はパスワードが必要ありません。「間違いを」防ぐためsudo使用後、すぐコンピュータから離れる場合は、せめて「ターミナル」アプリケーションを終了してください。
sudoコマンドは、基本的に下記の使い方をします。
$ sudo [オプション] コマンド
では、下記を実行すると、どうなるか予想できますでしょうか。
$ sudo cp -p -R /Users/Shared ~/
上記のコマンドは、共有フォルダを「管理者権限で」ログインアカウントにコピーします。Permission deniedのエラーはでません。
lsコマンドにも使用できます(lsコマンドは、書き込みを行わないので「覗き見」するだけです)。
もし、lsコマンドでPermission deniedがでたら、sudoを付けて実行してみてください。そして何故、そのエラーが出るのか考えてみてください。