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

無料レッスン

毎日使う Linux 5:ユーザーとほかのマシン

レッスン全文をここで読めます。無料アカウントを作成すると、実際のラボで実践できます。

仮想マシンラボ読了目安 13分コマンド9個

ファイルは、ほかのマシンにある

アプリはデータセンターのサーバーで動いていて、必要な設定ファイルもそこにあります。そのマシンの前に座ることはできません。ネットワークを通ってログインし、見て、そのファイルを自分のマシンにコピーします。すべて1つのターミナルからです。

このレッスンが終わると

メモ

別のユーザーになり、ターミナルからほかのマシンを使うことができる。

キーワード

  • ユーザー:マシンのアカウント。自分のファイルを持つ。
  • sudo:1つのコマンドを、管理者として実行する。
  • ssh:ネットワークを通って、ほかのマシンにログインする。
  • scp:ほかのマシンへファイルをコピーする。
  • サービス:裏で動き続けるプログラム。

ウォームアップ:すでに知っていること

メモ

頭の中で答えてみましょう。1. whoami は何を表示しますか。2. 全員がすべてのファイルを消せてはいけないのはなぜですか。3. プロセスとは何ですか。

はじめる前に

メモ

このレッスンの上にあるバーのラボを起動を押してください。このラボは、あなた専用の Ubuntu のマシンまるごとです。コンテナよりも、立ち上がるまで少し時間がかかります。実行ボタンを押すと、コマンドが順番にマシンのターミナルへ入力されます。「マシンはまだ起動中です」と出たら、数秒待ってからもう一度押してください。自分で入力と書かれたコマンドは、自然には終わらなかったり、途中で何かを聞いてきたりします。そのときは、バーのターミナルを開くを押して、自分で打ち込みます。

自分で入力:別のユーザーになる

ターミナルで su dev と打ち、パスワード DevLab2026 を入力します。パスワードを打っても、画面には何も出ません。whoami と打つと、dev と答えます。exit で戻ります。管理者の root になるには sudo su と打ちます。このラボではパスワードは聞かれず、プロンプトの終わりが # になります。sudo は、1つのコマンドだけを管理者として実行するときにも使います。

ほかのマシンへ:ssh と scp

ssh はほかのマシンでコマンドを実行し、scp はそのマシンへファイルをコピーします。ここでは、ほかのマシンは devbox で、このUbuntu のアカウント dev のことです。鍵があらかじめ用意してあるので、パスワードは聞かれません。最初の1回は、ssh がそのマシンを一覧に加えたと言います。使うコマンドは、本物のサーバーで使うものと同じです。

コマンド
cd

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

コマンド
echo "email Sam" > notes.txt

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

コマンド
ssh dev@devbox whoami

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

コマンド
scp notes.txt dev@devbox:/home/dev

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

コマンド
ssh dev@devbox ls /home/dev

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

自分で入力:ログインして、見て、戻る

ターミナルで ssh dev@devbox と打ちます。プロンプトが変わります。いまはほかのマシンで、dev として打っています。pwd と ls を実行すると、コピーした notes.txt が見えます。exit で戻ります。

チェック

ヒント

ほかのマシンへファイルをコピーするコマンドはどれですか。コピー先はどう書きますか。答え: scp で、コピー先は ユーザー@マシン:フォルダー と書きます。

プログラムを入れ、サービスの面倒を見る

sudo apt install -y tree は、Ubuntu のアーカイブからプログラムを入れます。systemctl はサービスの面倒を見ます。status は様子を見せ、restart は止めてからもう一度始めます。--no-pager を付けると、全部が一度に表示されます。

コマンド
sudo apt install -y tree

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

コマンド
tree projects

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

コマンド
systemctl status lab-web --no-pager

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

コマンド
sudo systemctl restart lab-web

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

自分で入力:vi でファイルを編集する

サーバーによっては、vi しかありません。ターミナルで vi notes.txt と打ちます。まだ文字は打てません。a を押すと、書き足せるようになるので、1行打ちます。Esc を押すと、書き足すのをやめます。そのあと :wq と打って Enter を押すと、保存して終わります。変更を捨てて終わるときは、代わりに :q! と打ちます。cat notes.txt で確かめましょう。

よくある間違い

注意

管理者の root として作業するのが、ふつうのやり方だと思っている人がよくいます。そうではありません。root は何でも警告なしに消せるので、打ち間違いの被害がずっと大きくなります。ふだんは自分のアカウントで作業し、必要な1つのコマンドにだけ sudo を使いましょう。

最後のチェック

ヒント

前に戻らずに答えましょう。1. 1つのコマンドだけを管理者として実行するコマンドはどれですか。2. ssh のセッションから出るには、どうしますか。3. vi で保存して終わるには、どうしますか。答え: sudo。exit。Esc を押してから :wq。

カンニングペーパー

動く: pwd、ls -la、cd、cd -、~。ファイル: mkdir -p、touch、echo >、cat、rm、rm -rf(気をつける)、chmod +x。 読む: tail -n、tail -f、grep、|。探す: find / -name 'x' 2>/dev/null、which、ps -ef | grep x、kill、そのあと kill -9。 マシン: df -h、du -sh *、free -h。アーカイブ: unzip、gzip、gunzip、tar -czf、tar -xzf。Web: wget、curl -s。 人: whoami、su、sudo、ssh ユーザー@ホスト、scp ファイル ユーザー@ホスト:フォルダー。ソフトウェア: sudo apt install -y、systemctl status|restart。エディター: vi(a、Esc、:wq、:q!)。

先生へ

ヒント

このレッスンは VM ラボで進めます。生徒一人ひとりに専用の Ubuntu マシンがあり、実行ボタンはそのターミナルに入力して、表示された結果を見せます。学習のポイント:1. su と sudo で、しばらくのあいだ別の人になります。2. ssh と scp でほかのマシンに届きます。3. apt と systemctl でソフトウェアを入れ、面倒を見ます。 よくある間違い:ずっと root で作業すること。 必要なもの:ラボとブラウザー。ヒント:30のコマンドのうち、付せんに書いておきたいものをクラスで言ってもらいましょう。 このラボにはチェックがなく、採点はしません。提出物がほしいときは、先生が自分で用意してください。

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

授業で教えていますか?これらのレッスンを生徒に割り当て、採点と生徒ごとのラボを使えます。