クリーム色の背景、色付き表示、高コントラスト、大きな文字のほうが読みやすいですか?配色と文字を選ぶと、すべてのページに一度で反映されます。

無料レッスン

ファイルとシェル

このレッスンのあとで: シェルからファイルとフォルダを扱うことができる。

50分のレッスンコマンド12件毎日使う Linux コマンドのラボ:エンジニアが暗記している30のコマンド

マウスなしで請求書を探す

ネット通販の会社で、サーバに入っている先月の請求書を探すよう頼まれました。

そのサーバには、デスクトップもマウスもありません。あるのは、文字だけの黒い画面と、点滅するカーソルです。

多くのサーバは、こうして使います。短いコマンドを打って、フォルダの中を動き回ります。

このレッスンのゴール

メモ

シェルからファイルとフォルダを扱うことができる。

キーワード

ことばいみれい
シェル打ったコマンドを読んで、実行するプログラム
パスファイルやフォルダの場所を表す住所/home/student/projects
カレントディレクトリ今いるフォルダ
リダイレクトコマンドの結果を、画面ではなくファイルに送ること>>
パイプ1つ目の結果を、次のコマンドに渡すこと|
モード読む、書く、実行する権利を表す文字rw-r--r--

学生が入力するセルは、このプレビューでは空白です。

パスはファイルの住所

シェルは、いつも1つのフォルダの中にいます。これがカレントディレクトリです。何も指定しなければ、コマンドはそこで働きます。

/ で始まるパスは絶対パスです。どこにいても使えます。

/ で始まらないパスは相対パスです。今いるフォルダの中から探します。.. は1つ上のフォルダです。

例: cd で行き着く場所

今いる場所打つコマンド着く場所
/home/studentcd projects/home/student/projects
/home/student/projectscd app/home/student/projects/app
/home/student/projects/appcd ../home/student/projects
/home/student/projectscd /var/log/var/log
/var/logcd projectsエラー: そのフォルダはない

学生が入力するセルは、このプレビューでは空白です。

今どこにいるか

コマンド
pwd

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

ここに何があるか

コマンド
ls

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

2つ下のフォルダへ行く

コマンド
cd projects/app

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

中を見る

コマンド
ls

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

ホームに戻る

コマンド
cd

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

よくある間違い

注意

「cd projects は、どこからでも使える」と考える人が多くいます。実際は、今いるフォルダの中しか探しません。先に pwd で確かめるか、/ で始まる絶対パスを使いましょう。

mkdir、cp、mv はものを変える

mkdir はフォルダを作ります。cp はファイルをコピーします。元のファイルは残ります。

mv はファイルを動かします。同じフォルダで名前だけ変えれば、名前の変更になります。

rm はファイルを消します。サーバにはごみ箱がないので、消したら戻りません。

次の4つを、順に実行しましょう。

フォルダを作る

コマンド
mkdir -p shopfiles

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

ファイルをコピーする

コマンド
cp projects/docs/notes.txt shopfiles/notes.txt

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

コピーの名前を変える

コマンド
mv shopfiles/notes.txt shopfiles/todo.txt

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

フォルダを確かめる

コマンド
ls shopfiles

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

リダイレクトとパイプで組み合わせる

コマンドの結果は、ふつう画面に出ます。リダイレクトを使うと、結果をファイルに送れます。

> はファイルを作り直します。>> はファイルの終わりに足します。

パイプの | は、結果を次のコマンドに渡します。ls | wc -l は、名前を並べて行数を数えます。

ファイルに1行足す

コマンド
echo "order 2043 shipped" >> shopfiles/todo.txt

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

ファイルを読む

コマンド
cat shopfiles/todo.txt

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

フォルダのファイル数を数える

コマンド
ls projects/app | wc -l

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

例: モードを3桁の数字にする

文字所有者グループその他数字
rw-r--r--rw- = 4+2 = 6r-- = 4r-- = 4644
rwxr-xr--rwx = 4+2+1 = 7r-x = 4+1 = 5r-- = 4754
rwx------rwx = 7--- = 0--- = 0700

学生が入力するセルは、このプレビューでは空白です。

3文字を数字にする

コード: python
# 3文字の1組を、数字1つに直します。
group = "r-x"
total = 0
if group[0] == "r":
    total = total + 4
if group[1] == "w":
    total = total + 2
if group[2] == "x":
    total = total + 1
print(total)
# group を "rw-" に変えて、もう一度実行しましょう。

もっと先へ

1つのコマンドで、ホームに a.txt、b.txt、c.txt の3つを作りましょう(touch は名前をいくつでも受け取ります)。

次に、パイプで ls の行数を数え、その数を > で count.txt に書き込みます。cat count.txt が何を表示するか、打つ前に予想しましょう。

このラボとソースについて: 毎日使う Linux コマンドのラボ:エンジニアが暗記している30のコマンド

授業で使いますか?このモジュールを学生に割り当てると、教員用ガイド、自動採点つきの課題、学生ごとのラボを使えます。