動かないスクリプト
小さなスクリプトを書いて、名前を打つと、マシンは「permission denied(許可されていません)」と答えます。書いたのは自分で、自分のものなのに、断られます。Linux では、どのファイルにも、だれが読めるか、だれが書き換えられるか、だれが実行できるかが決まっているからです。
このレッスンが終わると
メモ
ファイルを実行できる人を変え、ファイルを気をつけて消すことができる。
キーワード
- 権限:ファイルを読む、変える、実行できる人の決まり。
- 所有者:ファイルの持ち主のユーザー。
- グループ:いくつかのファイルを共有するユーザーの、名前の付いた集まり。
- スクリプト:マシンが代わりに実行する、コマンドを書いたファイル。
ウォームアップ:すでに知っていること
メモ
頭の中で答えてみましょう。1. いまいるフォルダーを表示するコマンドはどれですか。2. ファイルの中身を置き換えて、文字を入れる記号はどれですか。3. ファイルとフォルダーは、何が違いますか。
はじめる前に
メモ
このレッスンの上にあるバーのラボを起動を押してください。このラボは、あなた専用の Ubuntu のマシンまるごとです。コンテナよりも、立ち上がるまで少し時間がかかります。実行ボタンを押すと、コマンドが順番にマシンのターミナルへ入力されます。「マシンはまだ起動中です」と出たら、数秒待ってからもう一度押してください。自分で入力と書かれたコマンドは、自然には終わらなかったり、途中で何かを聞いてきたりします。そのときは、バーのターミナルを開くを押して、自分で打ち込みます。
新しいファイルは、まだ実行できない
ls -l の最初の列が権限です。最初の1文字のあとに、rwx が3組並びます。所有者、グループ、それ以外のみんなが、読む(r)、書く(w)、実行する(x)ことを許されているかどうかです。新しいファイルには x がないので、1回めの ./hello.sh は断られます。chmod +x で実行の許可を足すと、2回めは it works と表示されます。
cdここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
echo 'echo it works' > hello.shここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
ls -l hello.shここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
./hello.shここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
chmod +x hello.shここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
ls -l hello.shここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
./hello.shここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
チェック
ヒント
-rw-r--r-- では、だれが書き込めますか。答え: 所有者だけです。グループとそれ以外のみんなは、読むだけです。
いらないものを消す
rm はファイルを消します。rm -rf は、フォルダーとその中のすべてを、確認なしで消します。フォルダー scratch は、消す練習用にあなたのためにつくってあります。最後のコマンドは、中が空になったので、何も表示しません。
rm scratch/old.logここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
rm -rf scratch/cacheここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
ls scratchここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
よくある間違い
注意
ごみ箱のようなものがあって、消したファイルは取り戻せると思っている人がよくいます。スマホやパソコンの画面ではそうですが、サーバーの rm は取り消せません。消えたらそれまでです。rm -rf の前に pwd と ls を実行して、パスを2回読みましょう。パスを間違えたり、スペースの位置を間違えたりした rm -rf が、サーバーをまるごと消したことがあります。
私はだれ?ほかにだれがいる?
whoami は、あなたのユーザー名を表示します。id dev は、このマシンにあるもう1つのアカウントを表示します。あとのレッスンで使います。アカウントごとに自分のファイルがあり、何にさわれるかは権限が決めます。
whoamiここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
id devここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
最後のチェック
ヒント
前に戻らずに答えましょう。1. ファイルを実行できるようにするコマンドはどれですか。2. rwx は何の頭文字ですか。3. rm -rf の前に pwd を確かめるのはなぜですか。答え: chmod +x。読む、書く、実行する。ごみ箱がなく、パスを間違えると取り消せないから。
先生へ
ヒント
このレッスンは VM ラボで進めます。生徒一人ひとりに専用の Ubuntu マシンがあり、実行ボタンはそのターミナルに入力して、表示された結果を見せます。学習のポイント:1. 権限は、ファイルを読む、書く、実行できる人を決めます。chmod +x で実行できるようになります。2. rm は取り消せないので、先にパスを確かめます。 よくある間違い:rm にごみ箱があると思うこと。 必要なもの:ラボとブラウザー。ヒント:rm -rf を押す前に、生徒にパスを声に出して読ませましょう。 このラボにはチェックがなく、採点はしません。提出物がほしいときは、先生が自分で用意してください。