Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
情報科学リテラシー
2020年5月26日海谷治彦
1
Macでの受講について
• 情報の学生に貸与されているPCを想定しているため,オフィシャルには,マックは推奨していません.
• ただ,受講者本人でツール等の面倒が見られるなら,マックでも結構です.
• Windowsと異なる部分について,「Macでは・・・」という解説は原則的に授業では行いません.
• ファイルシステムの階層構造やツールがWindowsと異なる場合
があるので,提出する演習の場合,なんとなく似たものを提出してくれれば結構です.
• プログラミングの演習の場合はマックでも全く同じものが提出できるはずです.
• 個別のQ/Aについては,馬谷先生がMacユーザーなので,相談にのってくれそうです.
• 一応,了承はとってある. 2
目次
• いままでで理解・修得できている(はずの)こと
• コマンドプロンプト• ファイルシステムの移動と操作
• エクスプローラーとの同期の確認
• コマンドやアプリの呼び出し
• テキストエディタ• ワープロとの違い
• 日本語入力
3
これまでに理解・修得してること
1. PCをネットにつないでログインできる.
2. GUIを使いアプリを起動できる.GUI(Graphical User Interface) メニューやアイコン等
3. ファイルシステムの構造が理解・操作できる.
• 少なくとも自身のホームディレクトリまわりは理解できている.
4. アプリとプロセスの違いがなんとなくわかってる.
5. zipアーカイブの意味と展開方法を理解できている.• アーカイブの作成方法は当面わからなくてもよい.
4
Windowsで重要なフォルダ• C:¥Users¥r202003123ab¥
• ユーザー r202003123ab 特有のファイルが以下におかれる.
• 一般にホームディレクトリと呼ばれるがWindowsではホームパス• より厳密にはホームドライブとホームパスをつなげたもの.
• C:¥Users¥r202003123ab¥Downloads¥• ユーザー r202003123ab がブラウザ等経由でダウンロードされたファイルがおかれる.
• C:¥Users¥r202003123ab¥Desktop¥• r202003123ab のデスクトップ
• C:¥Program Files¥• 多くのアプリがこのフィルダ以下におかれる.
• 一般ユーザーは内部の修正はできない.
• C:¥emacs¥ そして C:¥MinGW¥• 本授業に特化したアプリ群があるフォルダ.標準的なWindowsには無い.
5
復習
ホームについて
• ホームディレクトリは,
C:¥Users¥r202003123ab¥
ではなく,
C:¥Users¥山田太郎(r202003123ab)¥
であるようだ,要は名前が入ってる・・・
• 正直,センスを疑うけど,マイクロソフトや大学がこのように決めたようなので仕方ない・・・
• パスのようなコンピュータが扱う文字列にカッコや日本語を含めるとか,わりとサイアクな判断だと思うが.
6
ファイルシステムのイラスト説明
7
PC (コンピュータが管理するファイルシステム全体)
Cドライブ (通常,OSが入ってるメインのディスク)
Eドライブ (ココではUSBメモリ)
Users
kaiya
Public
Program Files
emacs 本授業特有
MinGW 本授業特有
7-Zip
unzip60win.zip
unzip60win.zip
DownloadsDesktop
mingw.bat
mingw.bat
復習+
srcunzip60win
特によく使う部分
8
Cドライブ (通常,OSが入ってるメインのディスク)
Users ユーザーと表記されてる
kaiya
Downloads
Desktop
srcunzip60win
r202003123a 等,自分のユーザー名
ダウンロードしたものは,大抵,ここに保存される.
デスクトップにおいたファイルはココにある.
各自に作ってもらったもの.ある意味,この授業に特化したフォルダ
必要に応じて,フォルダを作ってもらう.本日は,projects というフォルダを作って.
アプリの呼び出し法
1. エクスプローラーからアプリのファイルを探してクリック.
2. コルタナ等で検索して選択.
3. デスクトップやメニューにある参照アイコン(ショートカット)をクリック.
4. データのファイルを選択し,右クリックからアプリを選択.
5. コマンドプロンプトからファイル名を指定.• 今回
9
復習
コマンドプロンプト
• アプリのファイル名を入力して,Enterを押すと,アプリを起動できるユーザー・インタフェース(UI).
• アプリでは無い組み込み命令もいくつかある.
• 現在,注目しているフォルダを可視化してくれている.
• フォルダ移動を含むフォルダ操作,ファイル削除やコピー等を行なうことができる.
• 一般的な呼び出し方: コルタナ等から cmd.exe を検索.• 多分,cmd で見つかる.
• Power shell というより高機能なものもあるが,あまり流行ってないので本講義では用いない.
10
11
コマンド・インタプリター色々• Windowsのコマンドプロンプトを含め,文字でアプリ名を受け取って,それを実行する類のUIを,一般には,Command Interpreter と呼ぶ.
• コマンドを解釈する者(物?)という意味.
• Macを含むUNIX/Linux系OSでは,コマンドインタプリターは割りとポピュラーなツール(下図).
• ターミナル(端末)やシェル(shell)とも呼ばれる.
• 尚,Androidにも存在する.まぁ,ネタツールだが.右図.
• ネット経由で他のマシンに侵入する際によく使う.
12
msys.bat は使わない
• 貸与PCだとデスクトップに msys(.bat) というのがあるかもしれませんが,コレは使いません.
• Windows上でLinuxのシェルを模倣するUIとなっているため,初心者は混乱するからです.
• ファイルシステムもLinux風に見えるように細工がしてあり,本来のWindowsのファイルシステムをよく理解してないと混乱します.
• ただ,使い勝手は慣れれば,こっちのほうが良いのですが・・・
13
コマンドプロンプトの利点
• コマンドプロンプトのプロセスで作業しているフォルダが可視化されている.
• 一般に現在作業中のフォルダ(ディレクトリ)と呼ぶが,単に作業フォルダと呼ぶことにする.
• Current Working Folder/Directory (CWD)
• コマンドプロンプトから呼び出される他のアプリは,原則,作業フォルダの場所を継承する.
• ファイルやフォルダをアプリ間で共有しやすい.
• アプリ実行時にオプションを指定することができる.• ファイル名の指定も含めて.
• 実行したアプリの履歴を覚えているので,繰り返し実行するときに楽.
14
リアルなオプション指定の実例
15
二から三行で一個のコマンドとなっている.
最後のgcc
コマンドは,四行分のオプションを持つ.
16
プログラムの開発の流れ
プログラミング手作業エディタを使用
コンパイル機械が理解できる表現に自動変換
実行生成されたアプリを使用
(ソース)プログラム(ソースコードhoge.c 等)
アプリケーション (実行ファイル)(ロードモジュールa.exe 等)
hoge.c a.exe
gcc
復習
プログラム開発の特徴
• 複数のアプリを使う.• プログラムの記述,アプリへの変換,実行のテスト
• アプリを繰り返し実行する.• 一発でアプリへの変換が成功しないための繰り返し.
• 実行テスト結果が期待通りでないための繰り返し.
• アプリ間で同じファイルや作業フォルダを使う.• プログラム: 記述アプリ(エディタ)と変換アプリで共有
• 作成したアプリ: 変換アプリ(gcc)と実行テストで共有
• コマンドプロンプトが開発に適している.
17
参考: GUIからアプリを呼ぶ場合
• 一般的に,当該アプリのプロセスの作業フォルダがどこであるかが明示されていない.
• メニュー等から調べればわかる場合はある.
• 大抵は,そのアプリがインストールされているフォルダ.
• しかし,アプリ自身の設定や設計によって作業フォルダは変わる.
• よって,どこが作業フォルダとなるかの予想がつかない.
• 結果として,複数のアプリでファイルや作業フォルダを共有するのがGUIでは割りと面倒.
• 開発に必要なアプリを統合したアプリ(IDE)は存在するが,その紹介は別の授業で.
18
今後のプログラム開発等の規定
• 開発するアプリ毎にフォルダを分けてください.• このフォルダをプロジェクトとこの授業では呼びます.
• 自身のホームディレクリ下に projects フォルダを作り,その下に,個々のプロジェクトをおいてください.
• 前回の演習で作った src フォルダはダウンロードしたサンプル等をおくことにしましょう.
• プロジェクトの名前は基本,こちらで指定します.
ダメなこと
• Desktop/Downloads下に適当にファイル,プロジェクトのフォルダやファイルを羅列する.
19
実際にコマンドプロンプトを使う
• 本来は cmd.exe を実行しますが,
• この授業では,配布した mingw.bat を使ってください.
• 自分のホームが表示されているか確認.
• ホームじゃない場合,cd %HOMEPATH% エンターと打ってください.
• 基本,コマンド名もしくはアプリ名を入れてエンターを押す.
20
mingw.bat の配置
• デスクトップに配置してください.
• まぁ,ショートカットでもいいんですけど,Downloads に実体があってのショートカットは,いただけないと思う.
• 後に詳細は話しますが,次週以降のプログラム開発のためのアプリ(gccやemacs)をコマンドプトンプトから検索できるような設定を仕込んであります.
• PC全体にこの設定を追加することもできますが,あえて,そうでない方法にしました.
21
mingw.bat の実行
• これをクリックして実行すると,左のような警告が出てしまいます.
• 実行するためには,「詳細情報」を押して,右の画面のようにして,「実行」を選んでください.
22
ショートカット
• ファイルやフォルダの実体を参照しているだけのアイコン.
• 実体はファイルシステム内の別の場所にある.
• GUIで利用する場合のみに機能する.
• アプリは通常 C:¥Program Files¥ 以下に配置されるので,よく使うアプリのショートカットがデスクトップにあると便利な場合が多い.
• 似た機構として,シンボリックリンク,ジャンクション等があるが,とりあえず,ショートカットのみ知っていればよい.
• 検索「Windows ショートカット シンボリックリンク」等
23
フォルダに関するコマンド 1• dir
• 現在の作業フォルダにあるフォルダとファイルの一覧を表示します.
• cd フォルダ名• 現在の作業フォルダを指定したフォルダに変更します.• フォルダは C:¥users 等の絶対パスと,後述の相対パスで指定できます.
• 貴方自身に許可が無いフォルダには移動できません.
• md フォルダ名• 新たなフォルダを作成します.• フォルダ指定はcdと同様,作成許可もcdと同様.
• rd フォルダ名• 既存のフォルダを削除します.• フォルダが空でないと消せません.• その他はmdと同様です.
24
絶対パスと相対パス
• C:¥Users¥r20201234ab¥や ¥Windows¥ 等,ド
ライブもしくは,ファイルシステムの頂点である ¥ から
フォルダを指定する方法を,絶対パスと呼びます.
• 一方,現在の作業ディレクトリからの相対位置を指定
する方法を相対パスといいます.
• 相対パスの例
• cd child 現作業フォルダの下に child というフォルダ
がある場合は,そこを新しい作業フォルダに変更できる.
• cd .. 現作業フォルダを含む一個上位のフォルダに移動
する.
• cd ..¥sibling¥ 現作業フォルダの隣にある siblingというフォルダに移動する.
25
前ページ例のイメージと操作
26
フォルダに関するコマンド 2• move フォルダ1 フォルダ2
• フォルダ2が存在するなら,フォルダ1をフォルダ2の下に移動する.
• フォルダ2が存在しないなら,フォルダ1をフォルダ2に改名する.
• フォルダ1はファイルでもよい.
• ren フォルダ1 フォルダ2• フォルダ1をフォルダ2に改名する.
• コマンド1も含め,他のアプリが関係するフォルダやファイルを利用中の場合,コマンドの実行ができない.
27
ファイルに対するコマンド• copy ファイル名 パス名
• あるファイルをコピーする.• 同じフォルダ内の場合,異なる名前でコピーするしかない.• 他のフォルダにコピーする場合,同じ名前でもコピーできる.• 権限の無いファイルのコピーや,権限の無いコピー先へのコピーはできない.
• del パス名• ファイル名もしくはパス名で指定されたファイルを削除する.• 権限に関してはcopyと同じ.
• move 移動.フォルダに同じ.
• ren 改名.フォルダと同じ.
• 尚,ファイルの作成や取得はエディタやgcc等のアプリを用いたり,ネットからダウンロードしたりする.
28
例
29
続き
30
ファイルシステムは共有されてる
• ファイルシステムは全プロセスに共有されています.
• よって,コマンドプロンプトでファイルシステムを変更すれば,エクスプローラーや他のアプリから見えるファイルシステムも変わります.
• 逆も真です.
• ちなみに,現在の作業フォルダ以外のフォルダの変更も,権限はあればプロセスは可能である.
• 例: ホームにいて,md ..¥..¥sakana¥ とすれば,¥sakanaフォルダを作成可能.
31
プロセスとファイルシステムの関係例
32
kaiya
Downloads src projects Deskptop
a.zip b.txt
a.c
a.exe
・・・・ ・・・・
このプロセスはDesktopフォルダで作業をしている
¥
Users
r2019ab
Program Files
exp01
・・・・
このプロセスもDownloadsフォルダで作業をしている
このプロセスはDownloadsフォルダで作業をしている
・・・・
・・・・
b.txt を消
しちゃおうかな・・・
他のプロセスの変更は影響する
33
kaiya
Downloads src projects Deskptop
a.zip
a.c
a.exe
・・・・ ・・・・
このプロセスはDesktopフォルダで作業をしている
¥
Users
r2019ab
Program Files
exp01
・・・・
このプロセスもDownloadsフォルダで作業をしている
このプロセスはDownloadsフォルダで作業をしている
・・・・
・・・・
b.txt が見
えなくなりました!
エクスプローラーで操作してもよい
34
要はコマンドプロンプトのコマンドを忘れたら,該当する部分をエクスプローラーで操作すればよい.
演習1• コマンドプロンプトを実行し,最初の作業フォルダが自身のホームであることを確認せよ.
• cd src¥unzip60win を実行し,前回ダウンロードしたアーカイブが指定場所に展開されていることを確認せよ.
• 指定場所に展開されていない場合,move 等のコマンドを使い,指定場所に移動した上で,上記の確認を行なえ.
• 問題1: 上記の作業後に,現在の作業フォルダをホーム(¥Users¥r202003123ab 等)に戻すためのコマンドを答えよ.
• できれば一コマンドが望ましいが複数コマンドの列でもよい.
• 問題2: ホームが現在の作業フォルダだとして,src¥unzip60win¥man¥ の下のファイル一覧を表示するためのコマンドを答えよ.
• これも一コマンドが望ましいが複数コマンドの列でもよい.
• 解答はファイル ex1.txt に書いて,Teams の 0526 にアップしてください.
35
参考 unzip60win下のフォルダ構成
36
アプリはどのように検索されるか?• コマンドプロンプトでは,PATH と呼ばれる値に基づきアプリを検索します.
• しかし,本授業で用いるテキストエディタやコンパイラは初期設定ではPATHに含まれません.
• この初期設定の変更もできますが,本授業では行ないません.
• そこで,mingw.bat を用います.• 中で暫定的にPATHを更新している.
37
38
プログラムの開発の流れ
プログラミング手作業エディタを使用
コンパイル機械が理解できる表現に自動変換
実行生成されたアプリを使用
(ソース)プログラム(ソースコードhoge.c 等)
アプリケーション (実行ファイル)(ロードモジュールa.exe 等)
hoge.c a.exe
gcc
再掲載
本授業での開発に使うアプリ• (テキスト)エディタ
• emacs 40年以上前からあるエディタ.
• 多数のOSでの稼動実績がある.
C:¥emacs¥bin¥runemacs.exe
• Visual Studio Code 昨今流行りのエディタcode.exe 等 (%HOMEPATH%¥AppData¥Local¥Programs¥の下)
• コンパイラ
• gcc GNUというプロジェクトで開発されたコンパイラ.
• 多数のOSでの稼動実績がある.
¥MinGW¥bin¥gcc.exe
• その他,MinGWには,Linux/UNIXで使われるコマンドも入っており,それらも利用可能.
• 別に利用しなくてもよいが,Windowsのコマンドより便利なものが多い.
• 教員の多くがこちらのほうが詳しいため,ついついデモでつかってしまうかも.
39
テキストエディタとは?
• 純粋に文字データの列としての文書を作成するためのアプリ.
• ただし,改行文字や空白文字等は扱うことができる.
• ワードプロセッサ(ワープロ,MSワード等)と違い,以下のような機能はない.
• ページレイアウトの設定,ページサイズや縦横長等.
• 文字の大きさ,種類,色の変更や,下線等の飾り.
• 段落の字下げや箇条書き.
• 図表の挿入.
40
何故,エディタを使うのか?
何故,ワープロを使わないのか?
• ワープロは人間が読む本や小冊子(レポート等)を作るためのアプリである.
• レイアウトや文字修飾等の見た目も重要.
• 一方,これから開発するプログラムは,コンパイラ(gcc)が読むためのデータである.
• 冊子上でのレイアウトや修飾は無意味.
• その代わり,プログラミング言語の特徴を強調する必要がある.
• これらの強調は手動でつけるのではなく,エディタが文法を認識して,自動でつけてくれる.
• エディタとワープロは似てはいるが,成果物の読者が異なるのである.
41
リアルなプログラム例
42
アプリ unzip.exe を構築するには,このファイルを含む153個のファイルが必要.総行数は約8万2千行.
復習
基本的な使い方 emacs• 起動 runemacs ファイル名
• 文字を入力すれば文字が入る.
• カーソルキーで入力位置が変わる.• 実は他の方法のほうが一般的.
• カーソル位置の前の文字を消す [back space]• カーソル位置の文字を消す ^D
• コントロールを押しながらDを押すの意味
• ファイルを保存する ^X^S• 終了する ^X^C• その他,メニューから呼び出せる機能もある.
43
画面例
44
TIPS 1 emacs• emacs起動時に,以下のように画面は上下に分かれていて,半分使えない状態となっている.
• これを解消するには,自分が文書をうつ側をクリックし,^X1 (コントロールをおしならがX 次に 1をうつ)で上側のみになる.
• 尚,下側はemacsの詳しい使い方マニュアルになってるので,関心があれば読んでください.
45
TIPS 2 emacs• emacs起動時に,前ページのように画面は上下に分かれていて,半分使えない状態となっている.
• runemacs –no-splash ファイル名
として起動すると,前ページのようなことにはならないようです.
46
日本語入力について
• 他のアプリ同様,[半角/全角]キーで日本語,英文字が切り替わります.
• 日本語は基本,ローマ字入力してください.
• 日本語入力時には空白文字を使わないでください.• いわゆる,「倍角文字」の空白となり,プログラム開発ではトラブルのもととなります.
• 日本語入力のプロパティで倍角の空白を無効にするのがよいのですが,これは好みの問題.
• プログラム開発では,日本語は使わなくても結構です.
• コメント文といわれる注釈も英語で結構です.
47
emacsでの日本語入力の注意
• emacsでは,[半角/全角]で英文字と日本語が切り変わらなくなる障害が出る場合があります.
• その場合,以下のどちらかを行なってください.• emacsのウインドウの位置を移動してみる.
• emacsのウインドウのサイズを変更してみる.
上記で代替,切り替え機能が復活するようです.
48
基本的な使い方 code• あまり癖がないので,カーソルやメニューを使って操作してください.
49
テキストファイルの作り方
• GUIなら先にフォルダにファイルを作ってから,VScode等で開くほうが,楽かもしれない.
• コマンドを使うなら,
code ファイル名
• で現在のフォルダにファイルを作成することができる.
50
保存するファイルを先に指定 (お勧め)• 保存するファイルは先に指定したほうが問題が少ない.
• コマンドプロンプトの場合
code ファイル名
等,起動時にファイル名を指定する.
• GUIの場合,
右クリック > 新規作成 > テキストドキュメント
でファイルを作ってから,プログラムで開く.
• ただし,来週からのプログラミングでは,拡張子まで変
える必要がある.
• .c ファイルを VScode に関連付けするのもよいかも.51
後からファイル名指定
• 以下のようなファイル選択ダイアログで注意深く保存場所と名前を指定しなければならない.
• 保存した場所を忘れるとファイルが行方不明になる.
52
既存ファイルが文字化けした場合
• 下の方の[UTF-8]をクリックして,
• 上のほうに出てくるメニューの[Reopen with Encoding] を選んで,
• [Japanese (Shift JIS)]を選べば,大抵,直ります.
• Shift JIS やら UTF-8 やらの話は後日行いますが,古い,もしくは,既存の文字化けファイルは大抵,Shift JIS です.
53
演習2• 続くページ群にある8つの文書を指定したパスにテキストファイルとして保存せよ.
• 参考までに,これらの文書が,次回作成してもらうプログラムの仕様(問題文)の一部となってます.
• 上記終了後に,自身のホーム下の projects フォルダ内の全てのフォルダとファイルを,zipアーカイブに封入せよ.ファイル名は projects.zip とする.
• projects.zip を提出せよ.
• 提出先は演習1に同じ.
54
文書1• 自身のホームの下の projects¥print01¥spec.txt
55
文書2• 自身のホームの下の projects¥print02¥spec.txt
56
文書3• 自身のホームの下の projects¥print03¥spec.txt
57
文書4• 自身のホームの下の projects¥exp01¥spec.txt
58
文書5• 自身のホームの下の projects¥exp02¥spec.txt
59
文書6• 自身のホームの下の projects¥exp03¥spec.txt
60
文書7• 自身のホームの下の projects¥scan01¥spec.txt
61
文書8• 自身のホームの下の projects¥scan02¥spec.txt
62
zipアーカイブの作成法
• アーカイブに封入したいフォルダを選択し,右クリックで,7zipより,zipに圧縮を選択すれば,作成されます.
63
理解・修得してること (更新版)1. PCをネットにつないでログインできる.
2. GUIを使いアプリを起動できる.
3. ファイルシステムの構造が理解・操作できる.• 少なくとも自身のホームディレクトリまわりは理解できている.
4. アプリとプロセスの違いがなんとなくわかってる.
5. アーカイブの意味と展開方法を理解できている.• アーカイブの作成方法もわかる.
6. コマンドプロンプトを利用できる.• フォルダの位置把握と,移動,操作ができる.
• アプリを利用できる.特にテキストエディタ.
64
参考書
出来れば買って下さい,一般書店,ネット書店等.
• C言語プログラミングレッスン 入門編 第3版SBクリエイティブ ISBN-10: 4797398582 2570円• 新・明解C言語 入門編
SBクリエイティブ ISBN-10: 479737702X 2484円
どちらか一冊で結構です.
65
本日は以上
流れ解散です
66