今日は Unix! Ubuntu を起動しよう Panda の VDI から接続!
出席を取るので配布した紙に 紙を 横が広い方向にこのようにおいて この方向で大きくかいてください 0.3 or 4 限目 (4/24) 1. 学生番号 2. 名前 を書いて 退出するときに 入口の近くにおいて台の上 に提出 ( 学生番号ははっきりと )
第 3 回情報基礎演習 本日の演習内容 1. テキスト3 章および4 章 UNIX/Linux: ファイルシステム シェル 2. 課題 第 2 回演習と同じくメールによる提出とします
授業資料のダウンロード (1) ブラウザを起動アドレスバーに下記 URL を入力し, Enter キーを押す (2) 以下のアドレスを入力 https://panda.ecs.kyoto-u.ac.jp/x/zrudj1
アドレスバーに下記 URL を入力し, Enter キーを押す https://panda.ecs.kyoto-u.ac.jp/x/zrudj1 授業資料 第 3 回.lzh ファイルをダウンロード 1. 第 3 回.lzh ファイルを左クリック 2. フォルダの参照ボタンをクリック 3. マイドキュメント をクリックし, OK をクリックする
キュメント ショートカットをダブルクリック 第 3 回 フォルダをダブルクリック 3UNIX-1.pdf, 3UNIX-2.pdf, mailformat3.txt 3つのファイルがあることを確認して下さい 教科書 ( 情報基礎演習 ) 3UNIX-2.pdfを参照しつつ, 3UNIX-1.pdf に従って演習を進める課題は3UNIX-1.pdfに記載
デスクトップ / ショートカット Panda : Kyoto University CyberLearningSpace People and Academe KUMOI : メールを利用するとき
Panda に login する
VDI(Virtual Desktop Infrastructure) を使う 4 限目の学生 (1) ここをクリック 3 限目の学生 (2) ここをクリック
VDI にサインイン (1) ここをクリック
VDI にサインイン (2) クリック
VDI で Linux( Ubuntu ) を起動してみよう ここをクリック
(1) Password を入力する (2) OK をクリックし login する
ここをクリック
terminal ここをクリック
Terminal を使う terminal と呼ぶ
UNIX のコマンドの実行 Linux (Unix) にログインしターミナル ( 別称 : コンソール ) を開くと [axxxxxxx@xxx:~]$ カーソル のような文字列が表示される この部分を ( コマンド ) プロンプトと呼ぶ. このプロンプトに対し,UNIX の様々なコマンドを入力することが出来る [Enter] キーを押すと そのコマンドが実行され再びプロンプトが現れるそこに次のコマンドを入力していく 例えば,date というコマンド ( 日付, 時刻を表示させる ) を実行してみる [axxxxxxx@xxx:~]$ date [Enter] Mon Apr 16 11:38:59 JST 2018 [axxxxxxx@xxx:~]$ 今の日付 時刻の出力 注 : 今後 プロンプトは [a... ~]$ 或いは $ のように省略 [Enter] キーを押すの意味 次のコマンドを入力できる状態になる
ユーザインタフェースとしての GUI と CUI GUI = Graphical User Interface ウィンドウやアイコンなどをマウスで操作して キーボードで文字入力を行うタイプの仕組み CUI = Command line User Interface キーボードからコマンドを打ち込んで操作する仕組み Windows や Macintosh などの OS と同様に UNIX (Linux) でも, GUI と CUI が使える. 今日の授業では UNIX (Linux) の CUI での操作に焦点を当てる.
UNIX/Linux システム (OS) を利用するための基本が身につきます 将来, 科学技術計算やホームページ サーバー管理を行なうようになった時には必須となるでしょう 本演習で扱うコマンドの一例 コマンド名 機能 cat テキストファイルの内容を表示 ( catenate ) ls ディレクトリの内容 ( ファイル ) の表示 ( list ) cd ディレクトリの移動 ( change directory ) mkdir ディレクトリの作成 ( make directory ) rm ファイルまたはディレクトリの削除 ( remove ) rmdir ディレクトリの削除 ( remove directory ) mv cp ファイルの他のディレクトリへの移動, またはファイル名の変更 ( move ) ファイルの他のディレクトリへの複写, または異なるファイル名を持つ同一ファイルの作成 ( copy )
コマンドの引数 (1) UNIX のコマンドには date のようにコマンド名を入力するだけで実行出来るものがあるが コマンド名に続けて追加情報を指定する必要があるものも多い たとえば ファイルの内容を画面に表示するコマンド cat は $ cat.bashrc[enter] ここに.bashrc ファイルの内容が表示される の様に コマンド名 (cat) の後に 表示したいファイルの名前を指定する必要がある このような追加の情報を引数と呼ぶ コマンド名と引数の間は 1 つ以上の空白文字 ( スペース ) で区切る
コマンドの引数 (2) cat の例で 別のファイルを表示したい場合には 表示したいファイルの名前を指定する必要がある. まず どのようなファイルが, 今いるディレクトにあるか調べるには $ ls [Enter] ここに このディレクトリに存在するファイルが表示される この中から 例えば.cshrc というファイルを表示させたいとすると $ cat.cshrc [Enter] ここに.cshrc ファイルの内容が表示される ls により表示されたファイルから各自で表示させたいファイルを書く
コマンドの引数 (3) 引数を 2 個 ( 以上 ) 要求するコマンドもある 例えば, ファイルのコピーを作成するコマンド cp は $ cp.bashrc test [Enter] コマンド引数 1 コピー元 引数 2 コピー先 の様に使う これで.bashrc という名前のファイルのコピーが test という名前で作られる
コマンドのオプション (1) コマンドには オプションを指定することで, 動作を変更することが出来るものがある 例えば $ cp -i.bashrc test [Enter] コマンド引数 1 コピー元 オプション 引数 2 コピー先 この場合, オプション -i を付けると コピーがあるファイルを上書きする場合にいいかどうか コンピュータ側が問い合わせてくる y [Enter] あるいは n [Enter] で答える.
オプションの他の例 ls ls コマンド : $ ls -al [Enter] コマンド オプション オプションは覚える必要はない. $ man コマンド名 [Enter] コマンドのオプション (2) ファイルの一覧を表示 意味 -a directory 内のすべてのファイルを表示 -l 詳細情報を表示 でどのようなオプションがあるか調べることができる. ちなみに $ ls -a -l [Enter] $ ls -l -a [Enter] $ ls -al [Enter] $ ls -la [Enter] はすべて同じ 例えば $ man ls [Enter] を行ってみるとわかる. (man は manual の省略に由来 )
1. プロンプトとは ( 以前のページ参照 ) [axxxxxxx~]$ 注 : 今後 プロンプトは [a... ~]$ 或いは $ のように省略 2. カレントディレクトリの表示 ( print working directory ) [axxxxxxx~]$ pwd /home/a00xxxxx ピコピコしているこの部分を含めてプロンプト (prompt) と呼ぶ カレントディレクトリ (current directory) = 今作業しているディレクト = ディレクトリ (a) ディレクトリとは? (directory) ファイルシステムの木構造から理解してみよう ファイルシステムの参考資料 ( 課題の後のページに記載 )
ディレクトリ ファイルの表示 ( list ) [axxxxxxx~]$ ls カレントディレクトリに存在するファイル, ディレクトリが表示される [axxxxxxx~]$ ls l > list.txt [axxxxxxx~]$ mkdir list ディレクトリ ファイルの詳細表示 [axxxxxxx~]$ ls -l drwxr--r-- 1 a00xxx user 96 April 26 18:01 list/ -rw-r--r-- 1 a00xxx user 258 April 26 18:01 list.txt パーミッション 所有者グループサイズ (kb) drwxr-xr-x 所有者 u グループ g その他 o -rw-r--r-- r: w: x: ファイル名一覧の表示ファイルの作成 削除ファイルへのアクセス r: 読出 w: 書込 x: 実行
-rw-r--r-- r: 読出 w: 書込 x: 実行 所有者 u グループ g その他 o [axxxxxxx~]$ ls -l -rw-r--r-- 1 a00xxx user 258 April 26 18:01 list.txt ファイル権限 ( パーミッション ) の変更 ( change mode ) [axxxxxxx~]$ chmod g+w list.txt [axxxxxxx~]$ ls -l -rw-rw-r-- 1 a00xxx user 258 April 26 18:01 list.txt
リダイレクト [axxxxxxx~]$ ls l > list.txt ls l の結果が標準出力 ( 端末 ) ではなく, list.txt ファイルに書き出される cat(catenate) [axxxxxxx~]$ cat list.txt list.txt ファイルの中身が端末に表示される mkdir( make directory ) [axxxxxxx~]$ mkdir text text ディレクトリが作成される
カレントディレクトリの表示 [axxxxxxx~]$ pwd /home/a00xxxxx 別のディレクトリへの移動 ( change directory ) [axxxxxxx~]$ cd text [axxxxxxx~]$ pwd /home/a00xxxxx/text ホームディレクトリへ戻る [axxxxxxx~]$ cd [axxxxxxx~]$ pwd /home/a00xxxxx
ファイル ディレクトリのコピー ( copy files or directories ) [axxxxxxx~]$ cp text1.txt text2.txt text1.txtと同じ内容のファイルtext2.txtを作成する [axxxxxxx~]$ cp text1.txt text text1.txtをtextディレクトリにコピーする ファイル名変更と移動 ( move files or directories ) [axxxxxxx~]$ mv list1.txt list2.txt ファイル名をlist1.txtからlist2.txtに変更する [axxxxxxx~]$ mv text1.txt text text1.txtをtextディレクトリに移動する
ファイル ディレクトリの消去 ( remove files or directories ) [axxxxxxx~]$ rm text1.txt text1.txtファイルを削除する [axxxxxxx~]$ rmdir text textディレクトリを削除する ( 但しディレクトリが空であること ) [axxxxxxx~]$ rm -r text textディレクトリを削除する ( ファイルがあってもOK)
入力したコマンドの履歴の表示 [axxxxxxx~]$ history [Enter] 入力したコマンドの履歴をファイル ( 例えば history.txt) に保存したいとき ( リダイレクトを使う方法 ) [axxxxxxx~]$ history > history.txt [Enter] Linux 中の History.txt を Windows のシステムに移動させたいとき [axxxxxxx~]$ cp history.txt /Nextcloud [Enter] この後 Windows 側でExplorer をクリックし Nextcloud(N:) をクリックすると, history.txtがあるはずです
よく使うコマンドの List コマンド名 $ date $ who $ w $ pwd $ cd directory1 $ cd $ ls $ ls directory1 $ ls a ディレクトリ名 $ ls -l $ cat file1 $ more file2 $ man cmdname1 意味 日付や時間の表示現在ログインしているユーザーの表示同上カレントディレクトリの表示カレントディレクトリを directory1 へ変更カレントディレクトリをホームディレクトリへ変更カレントディレクトリ内のファイルの一覧 directory1 内にあるファイルの一覧全てのファイル ( 隠しファイルも ) を表示詳しい情報も表示 file1 の内容を表示 file2 の内容を 1 ページづつ表示 cmdname1 という名称のコマンドの説明
ファイル操作の例一覧 以下で イタリックの部分は引数 実行時には 実際のファイル名やディレクトリ名で置き換える $ cp file1 file2 $ cp file directory $ mv file1 file2 $ mv file directory $ rm file $ mkdir directory $ rmdir directory file1 をfile2にコピーする file をdirectoryの中にコピー file1 の名前を file2 に変更 file をdirectoryの中に移動 file を消去 directory を作成 directory を消去
キュメント ショートカットをダブルクリック 第 3 回 フォルダをダブルクリック 3UNIX-1.pdf, 3UNIX-2.pdf, mailformat3.txt 3つのファイルがあることを確認して下さい 教科書, 3UNIX-2.pdfを参照しつつ, 3UNIX-1.pdf に従って演習を進める課題は3UNIX-1.pdfに記載
課題の提出方法 history.txt を開く時 : ファイルを右クリック 開く クリック or ファイルを右クリック Edit with Notepad++ を選択 youremail_address ttaniguchi.clalss@cheme.kyoto-u.ac.jp メール本文上をクリックし 左クリック + ドラッグによって必要な部分を 選択してから Ctrl キーと C キーを同時に押す てから Ctrl キーと V キーを 同時に押す 件名を必ず 3 限目 (or 4 限目 ) 情報基礎演習の課題 3 宛先を 3 限目のクラスの学生は ttaniguchi.class@cheme.kyoto-u.ac.jp 4 限目のクラスの学生は ttaniguchi.class2@cheme.kyoto-u.ac.jp としてメールを送信して下さい
課題の提出方法 (3 限目 ) history.txt を開く時 : ファイルを右クリック 開く クリック or ファイルを右クリック Edit with Notepad++ を選択 youremail_address ttaniguchi.clalss@cheme.kyoto-u.ac.jp メール本文上をクリックし 左クリック + ドラッグによって必要な部分を 選択してから Ctrl キーと C キーを同時に押す てから Ctrl キーと V キーを 同時に押す 件名を必ず 3 限目情報基礎演習の課題 3 宛先を 3 限目のクラスの学生は ttaniguchi.class@cheme.kyoto-u.ac.jp としてメールを送信して下さい
課題の提出方法 (4 限目 ) history.txt を開く時 : ファイルを右クリック 開く クリック or ファイルを右クリック Edit with Notepad++ を選択 youremail_address ttaniguchi.clalss2@cheme.kyoto-u.ac.jp メール本文上をクリックし 左クリック + ドラッグによって必要な部分を 選択してから Ctrl キーと C キーを同時に押す てから Ctrl キーと V キーを 同時に押す 件名を必ず 4 限目情報基礎演習の課題 3 宛先を 4 限目のクラスの学生は ttaniguchi.class2@cheme.kyoto-u.ac.jp としてメールを送信して下さい
ファイルシステムについての参考資料
ファイルシステムの木構造 (1) ディレクトリ = 複数のファイルや他のディレクトリを入れておける箱のようなもの注 :Windows や Mac OS でいうところのフォルダ, しかし ディレクトリの呼び名の方が昔からある. Windows にパクられた / home ecsfs1 e2 e3 ルートディレクトリ ユーザ a00xxxxx のホームディレクトリ terminal を起動したら 最初必ず ここにいる. f ecs g a00xxxxx program
2. カレントディレクトリの表示 ( print working directory ) [axxxxxxx~]$ pwd /home/ecsfs1/ecs/a0xx/a00xxxxx これを 絶対パス と呼ぶ 絶対パス :/ から あるディレクトリに到達する 最短の 道筋のこと / ルートディレクトリ home ecsfs3 ecsfs2 ecsfs1 yyyy zzzz ecs ここへの絶対パス /home/ecsf1/ecs/aoxx a0yy a0xx ここへの絶対パス /home/ecsfs3/yyyy a00xxxxx 皆さんのホームディレクトリ
ファイルシステムの木構造 (1) ディレクトリ = 複数のファイルや他のディレクトリを入れておける箱 f home / ecsfs1 ルートディレクトリ ユーザ a00xxxxx のホームディレクトリ今 ここにいるとする ディレクトリの作成の仕方 mkdir 作成したいディレクトリ名 は 一マスあける の意味 a00xxxxx program どんなファイルやディレクトリがあるか知りたい時 例えば,program と言う名前のディレクトリを作成したい場合 [a... ~]$ mkdir program [Enter] [a... ~]$ ls [Enter]
ファイルシステムの木構造 (2) ディレクトリ = 複数のファイルや別のディレクトリを入れておける箱 / ルートディレクトリ ユーザ aooxxxxx のホームディレクトリ f home ecsfs1 カレントディレクリの変更 ( 移動 ) cd 移動する先のディレクトリ名 例えば,program と言う名前のディレクトリに移動したい場合 a00xxxxx [a... ~]$ cd program [Enter] [a... ~]$ mkdir AAAA [Enter] program [a... ~]$ mkdir BBBB [Enter] [a... ~]$ ls [Enter] AAAA BBBB
home / ファイルシステムの木構造 (3) 相対パス : 今いるディレクトリ ( カレントディレクトリ ) から あるディレクトリに到達する道筋のこと 必ずしも最短の道筋とは限らない f ecsfs1 a00xxxxx program Mail AAAA BBBB tanaka 例題 suzuki program の絶対パスは? /home/ecsfs1/aooxxxxx/program aooxxxxxというディレクトリから aooxxxxxx( 自分自身 ) への相対パスは?./ or. aooxxxxxxというディレクトリからの program への相対パスは? program 或いは./program aooxxxxxxというディレクトリからの suzuki への相対パスは? Mail/suzuki 或いは./Mail/suzuki
ファイルシステムの木構造 (4) ドット 1 つ / 絶対パス : / から あるディレクトリに到達する道筋のこと相対パス : あるディレクトリ 1 から あるディレクトリ 2 に到達する道筋のこと home f ecsfs1 a00xxxxx program Mail 〇カレントディレクトリを表す記号. あるいは./ 〇カレントディレクトリの 1 つ上位のディレクトリを.. あるいは./.. で表す. ドット 2 つ AAAA BBBB tanaka suzuki
ファイルシステムの木構造 (8) / home ecsfs2 ecsfs1 ecs cd.. [return] と cd.. cd cd [return] 親ディレクトリに移動する ホームディレクトリに移動 註 : 親ディレクトリは current directory より 1 つ上位の directory の意味 a0yy a0xx a00xxxxx 例 : aooxxxxx というディレクトリにいるとする $ cd.. [Enter] aoxx に移動 $ cd.. [Enter] ecs に移動 $ cd.. [Enter] ecsfs1 に移動 $ cd [Enter] どこにいても自分の home directoryに戻る (aooxxxxx に戻る )
ファイルシステムの木構造 (5) / home f ecsfs1 a00xxxxx program 例題 1: 水色で書かれた構造の directory ツリーを作成せよ Mail $ cd [return] $ cd program $ mkdir CCCC $ mkdir DDDD $ cd CCCC $ mkdir EEEE $ pwd $ cd.. $ cd DDDD $ cd../cccc $ cd [Enter] home directory に移動 program というディレクトリに移動 CCCC という directory を作成 DDDD という directory を作成 CCCC へ移動 EEEE という directory を作成 current directory の絶対パス表示 1 つ上位の directory(cccc) に移動 DDDD へ移動相対パスを使って CCCC へ移動 home directory へ一気に移動 CCCC EEEE DDDD tanaka suzuki 註 : $ cd [return] どの directory からでも home directory に一気に戻れる便利なコマンド.
f home ecsfs1 / ファイルシステムの木構造 (6) 例題 2: 水色で書かれた構造の directory ツリーを作成せよ $ cd $ mkdir molecules $ mkdir molecules/monomer/methylene $ mkdir molecules/monomer/styrene $ mkdir polymer $ mkdir polymer/polystyrene a00xxxxx molecules monomer polymer methylene styrene polystyrene 別の方法 $ cd $ mkdir molecules $ cd molecules $ mkidir monomer $ mkdir polymer $ cd monomer $ mkdir methylene $ mkidir styrene $ cd../polymer $ mkdir polystyrene $ cd [Enter]