#navi(ソフトウェア基礎I/08)
*出席 [#n63af302]
-https://tarkus.eva.ie.u-ryukyu.ac.jp/moo/
*TeX復習 [#he947b70]
-まとまったTeX入門のページはお待ちください.
--それまで奥村先生の[[TeX Wiki:http://oku.edu.mie-u.ac.jp/~okumura/texwiki/]]の入門などを参考に

**定義 [#u764950e]
:TeXとは| Donald Ervin Knuth が 作った組版システムです.
::TeXの読み方|「テフ」「テック」
:LaTeXとは|Leslie Lamportが,TeXに論文やレポートの作成マクロパッケージを組み込んだ組版システム
::LaTeXの読み方|「ラテフ」「ラテック」
:pTeX, pLaTeX|日本ではアスキーが日本語化した pTeX,pLaTeX が使われます.アスキーでは,これに基づく編集支援システム EWB を (ソースコードの形で)無償配布し,自社の本の製作に利用しています.
**イントロ [#l232887c]
***基本的な手順 [#o3dd27ff]
+texソースファイルを作成.
+texソースファイルをコンパイル→DVIファイルが作成される
+DVIファイルをPDFに変換する.
***具体例 [#p4930676]
sample.tex
#code(tex){{
\documentclass{jarticle}
\title{タイトル}
\author{著者名}
\date{日付}
\begin{document}
\maketitle
ここに本文を記述します.
\end{document}
}}

 % platex sample.tex
 % dvipdfmx sample.dvi
sample.pdfを開いて確認
***数式 [#o168e38e]
sample2.tex

 \documentclass{jarticle}
 \usepackage{amsmath,amssymb}
 \title{タイトル}
 \author{著者名}
 \date{日付}
 \begin{document}
 \maketitle
 
 \[
  \frac{\pi}{2} =
   \left( \int_{0}^{\infty} \frac{\sin x}{\sqrt{x}} dx \right)^2 =
   \sum_{k=0}^{\infty} \frac{(2k)!}{2^{2k}(k!)^2} \frac{1}{2k+1} =
   \prod_{k=1}^{\infty} \frac{4k^2}{4k^2 - 1}
 \]
 
 \end{document}
*シェル(csh)入門(SuperText 上巻 第11章 p.119) [#x28596fa]
**11.1 cshとは [#vb1a9b3f]
シェル
-(1)プロンプトを出力して,コマンドの入力を促す.
-(2)キーボードからの入力(文字)を Enter(Return) が押されるまで蓄える.
-(3)Enter が押されたら,蓄えておいた文字列を空白などで区切ってコマンドの名前と文字列と引数の文字列に分ける.
-- e.g.) 「ps u」としても「ps         u」としても同じ
-(4)コマンドの名前から,その名前のプログラムを見つけ出す.
--詳細は 11.9 にて
-(5)見つけたプログラムを起動し,引数の文字列を渡す.
-(6)特に指定しなければ,シェルは起動したプログラムが終了するまで待つ.
- コマンド名 or ファイル名の補完機能: Tabキー, C^d
***11.1.2 sh と csh [#o4e4d3aa]
- Cシェル: csh, tcsh
--tcshの設定:
---[[MacOSX/tcsh]]
---http://www.ie.u-ryukyu.ac.jp/howto/index.php?Howto%2Ftcshrc
- Bシェル: sh, bash
***11.1.4 cshの説明における「コマンド」という用語の使い方 [#sf109610]
- 「ps コマンド」という場合
- 「ps aux」をコマンドという場合
- 「コマンドライン」という場合

***11.1.5 コマンドライン編集機能 [#ce4024e5]
|キーバインディング|機能|h
|C^a|先頭に移動|
|C^e|最後尾に移動|
|C^f|右に一文字移動|
|C^b|左に一文字移動|
|C^d|カーソルの位置にある文字を消去|
|C^h|カーソル位置の直前(左)にある文字を消去|
|C^k|カーソルの右側全てを消去(バッファにコピー)|
|C^y|バッファに保存されている内容をペースト(貼り付け)|
|C^l|画面全体のクリア|
|C^p|一つ前に入力したコマンドラインを表示|
|C^n|一つ後ろのコマンドラインを表示|
**11.2 I/O リダイレクションとパイプ [#s29db108]
- I/O とは
- コマンドの実行結果を別のコマンドに処理させたい!
- 現在実行中のプロセス数は?
- リダイレクション)ps aux > result ; wc result
- パイプ)ps aux | wc
- 標準入力 stdin
- 標準出力 stdout
- 標準エラー出力 stderr

***11.2.1 リダイレクションとは [#m5d9d84f]
-標準出力をターミナルからファイルに変更
 ps aux > result
-標準入力をターミナルからファイルに変更
 cat < result

練習:
 $ ps aux > psaux.log
 $ cat psaux.log
 $ pr psaux.log
 $ pr psaux.log > psaux2.log
 $ more < psaux2.log
*** 11.2.3 パイプ [#v0458402]
- コマンドの実行結果を標準出力から標準入力に変更
 e.g.) ps aux | wc
 「ps aux」による出力を「wc」への入力に変更

***11.2.5 I/O リダイレクションとパイプの詳細 [#j2dbf6ae]
 「$command > file」
 「$command >> file」
 「$command >& file」
 「( $command > file1 ) >& file2」
 「$command1 | $command2」
 「$command1 |& $command2」
*演習 [#vc06aad7]
- 「ps aux」で全プロセスを出力し,root が実行しているプロセス数を数えよ.リダイレクションを使用する方法と,パイプを使用する方法二通りを考えよ.
--ヒント1:ps aux による出力結果には,root 以外のユーザによるプロセスも含まれている.この中から root の記載されている行のみを探し出し,その行数を数えると「rootが実行しているプロセス数と考えられる.
--ヒント2:次の3行が「test.txt」というファイルに書かれているとする.
 abc
 1 2 3
 abc 1 2 3
--このファイルから「abc」という文字列が含まれている行は
 % grep abc test.txt
として抜き出すことが出来る.
--ヒント3:ファイル内の行数を数えるには
 % wc -l test.txt
とする.
**11.3 変数 [#q459a00d]
- 変数
- 変数名
- 変数の値
- 変数の値を参照
- 変数に値を代入
***11.3.2 シェル変数 [#m0fbd18b]
- set
 set test=123
 echo $test
 unset test

***11.3.3 環境変数 [#m792791e]
- setenv
 setenv test 123
 echo $test
 unsetenv test

***11.3.4 シェル変数と環境変数の違い [#s6f8e023]
- シェル変数はシェル毎に異なるが,環境変数は引き継がれる.
- シェル変数では変数の値にリストが許される
 echo $path[1]
**11.4 メタキャラクタとエスケープ [#m8273271]
- cshが解釈する文字=cshのメタキャラクタ
 >
- メタキャラクタの機能をオフにする=エスケープ
 ?, '', ""
**11.5 ファイル名置換 [#eef542c9]
- main.c と subroutine.c という二つのファイルで動くプログラムを簡単にコンパイルするには?
- * と ?
- [str]

*** 11.5.4 ファイル名補完 [#j29fdf6c]
- 補完できる部分を補完: Esc, Tab
- 補完候補を表示: C^d

**11.6 実行制御 [#j7eacc86]
- フォアグラウンドジョブ
- バックグラウンドジョブ: コマンド実行時に,コマンドライン最後尾に「&」を付ける
- 順次実行
 $command1 ; $command2 ; $command3
- コマンド1が正常終了ならコマンド2を実行
 $command1 && $command2
- コマンド1が異常終了ならコマンド2を実行
 $command1 || $command2
**11.7 ヒストリ機能 [#a3e82da2]
- history
- C^p, C^n もしくはカーソルキーの上下
- !

**11.8 エイリアス機能 [#s7da2e92]
- コマンドに別名を付ける
 alias $name $command-line
- エイリアス設定の表示
 alias
- エイリアスの削除
 unalias $name
- シェルスクリプトではできないエイリアスの応用
- why?) シェルスクリプトでは,新しいシェルを起動してスクリプトを実行する.そのスクリプト内で変更されたシェル変数は,新しいシェルのものであり,元のシェル変数はそのまま保たれているため.
**11.9 コマンドサーチパス [#zff8655d]
- (1)コマンドが「/」を含めば,パス名を指定したものとして,そのプログラムを実行.
- (2)コマンドが組み込みコマンド(cdなど)なら,その組み込みコマンドを実行.
- (3)シェル変数 path を使って,実行可能なファイルがそのパスで指定されたディレクトリ内にあるかを順に探し,最初に見つけたものを実行.
- (4)以上で実行できなければ,コマンドが見つからないという表示「Command not found」を表示.
  which ls
  echo $path

**11.10 ディレクトリスタック [#x9301455]
- pushed /etc
 pushed
 poped

**11.11 資源の制限 [#ved79a1a]
- limit
 limit $resource $value
 unlimit $resource

#navi(ソフトウェア基礎I/08)
*シェル(csh)入門(SuperText 上巻 第11章 p.119) [#x28596fa]
**11.1 cshとは [#vb1a9b3f]
シェル
-(1)プロンプトを出力して,コマンドの入力を促す.
-(2)キーボードからの入力(文字)を Enter(Return) が押されるまで蓄える.
-(3)Enter が押されたら,蓄えておいた文字列を空白などで区切ってコマンドの名前と文字列と引数の文字列に分ける.
-- e.g.) 「ps u」としても「ps         u」としても同じ
-(4)コマンドの名前から,その名前のプログラムを見つけ出す.
--詳細は 11.9 にて
-(5)見つけたプログラムを起動し,引数の文字列を渡す.
-(6)特に指定しなければ,シェルは起動したプログラムが終了するまで待つ.
- コマンド名 or ファイル名の補完機能: Tabキー, C^d
***11.1.2 sh と csh [#o4e4d3aa]
- Cシェル: csh, tcsh
--tcshの設定:
---[[MacOSX/tcsh]]
---http://www.ie.u-ryukyu.ac.jp/howto/index.php?Howto%2Ftcshrc
- Bシェル: sh, bash
***11.1.4 cshの説明における「コマンド」という用語の使い方 [#sf109610]
- 「ps コマンド」という場合
- 「ps aux」をコマンドという場合
- 「コマンドライン」という場合

***11.1.5 コマンドライン編集機能 [#ce4024e5]
|キーバインディング|機能|h
|C^a|先頭に移動|
|C^e|最後尾に移動|
|C^f|右に一文字移動|
|C^b|左に一文字移動|
|C^d|カーソルの位置にある文字を消去|
|C^h|カーソル位置の直前(左)にある文字を消去|
|C^k|カーソルの右側全てを消去(バッファにコピー)|
|C^y|バッファに保存されている内容をペースト(貼り付け)|
|C^l|画面全体のクリア|
|C^p|一つ前に入力したコマンドラインを表示|
|C^n|一つ後ろのコマンドラインを表示|
**11.2 I/O リダイレクションとパイプ [#s29db108]
- I/O とは
- コマンドの実行結果を別のコマンドに処理させたい!
- 現在実行中のプロセス数は?
- リダイレクション)ps aux > result ; wc result
- パイプ)ps aux | wc
- 標準入力 stdin
- 標準出力 stdout
- 標準エラー出力 stderr

***11.2.1 リダイレクションとは [#m5d9d84f]
-標準出力をターミナルからファイルに変更
 ps aux > result
-標準入力をターミナルからファイルに変更
 cat < result
*** 11.2.3 パイプ [#v0458402]
- コマンドの実行結果を標準出力から標準入力に変更
 e.g.) ps aux | wc
 「ps aux」による出力を「wc」への入力に変更

***11.2.5 I/O リダイレクションとパイプの詳細 [#j2dbf6ae]
 「$command > file」
 「$command >> file」
 「$command >& file」
 「( $command > file1 ) >& file2」
 「$command1 | $command2」
 「$command1 |& $command2」
*演習 [#vc06aad7]
- 「ps aux」で全プロセスを出力し,root が実行しているプロセス数を数えよ.リダイレクションを使用する方法と,パイプを使用する方法二通りを考えよ.
--ヒント1:ps aux による出力結果には,root 以外のユーザによるプロセスも含まれている.この中から root の記載されている行のみを探し出し,その行数を数えると「rootが実行しているプロセス数と考えられる.
--ヒント2:次の3行が「test.txt」というファイルに書かれているとする.
 abc
 1 2 3
 abc 1 2 3
--このファイルから「abc」という文字列が含まれている行は
 % grep abc test.txt
として抜き出すことが出来る.
--ヒント3:ファイル内の行数を数えるには
 % wc -l test.txt
とする.
**11.3 変数 [#q459a00d]
- 変数
- 変数名
- 変数の値
- 変数の値を参照
- 変数に値を代入
***11.3.2 シェル変数 [#m0fbd18b]
- set
 set test=123
 echo $test
 unset test

***11.3.3 環境変数 [#m792791e]
- setenv
 setenv test 123
 echo $test
 unsetenv test

***11.3.4 シェル変数と環境変数の違い [#s6f8e023]
- シェル変数はシェル毎に異なるが,環境変数は引き継がれる.
- シェル変数では変数の値にリストが許される
 echo $path[1]
**11.4 メタキャラクタとエスケープ [#m8273271]
- cshが解釈する文字=cshのメタキャラクタ
 >
- メタキャラクタの機能をオフにする=エスケープ
 ?, '', ""
**11.5 ファイル名置換 [#eef542c9]
- main.c と subroutine.c という二つのファイルで動くプログラムを簡単にコンパイルするには?
- * と ?
- [str]

*** 11.5.4 ファイル名補完 [#j29fdf6c]
- 補完できる部分を補完: Esc, Tab
- 補完候補を表示: C^d

**11.6 実行制御 [#j7eacc86]
- フォアグラウンドジョブ
- バックグラウンドジョブ: コマンド実行時に,コマンドライン最後尾に「&」を付ける
- 順次実行
 $command1 ; $command2 ; $command3
- コマンド1が正常終了ならコマンド2を実行
 $command1 && $command2
- コマンド1が異常終了ならコマンド2を実行
 $command1 || $command2
**11.7 ヒストリ機能 [#a3e82da2]
- history
- C^p, C^n もしくはカーソルキーの上下
- !

**11.8 エイリアス機能 [#s7da2e92]
- コマンドに別名を付ける
 alias $name $command-line
- エイリアス設定の表示
 alias
- エイリアスの削除
 unalias $name
- シェルスクリプトではできないエイリアスの応用
- why?) シェルスクリプトでは,新しいシェルを起動してスクリプトを実行する.そのスクリプト内で変更されたシェル変数は,新しいシェルのものであり,元のシェル変数はそのまま保たれているため.
**11.9 コマンドサーチパス [#zff8655d]
- (1)コマンドが「/」を含めば,パス名を指定したものとして,そのプログラムを実行.
- (2)コマンドが組み込みコマンド(cdなど)なら,その組み込みコマンドを実行.
- (3)シェル変数 path を使って,実行可能なファイルがそのパスで指定されたディレクトリ内にあるかを順に探し,最初に見つけたものを実行.
- (4)以上で実行できなければ,コマンドが見つからないという表示「Command not found」を表示.
  which ls
  echo $path

**11.10 ディレクトリスタック [#x9301455]
- pushed /etc
 pushed
 poped

**11.11 資源の制限 [#ved79a1a]
- limit
 limit $resource $value
 unlimit $resource

#navi(ソフトウェア基礎I/08)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS