Linux/2005-S04
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
* 第4回 印刷とシェルスクリプト [#xa50848f]
** 目次 [#pf8747f0]
#contents
** 印刷(プリンタの設定) [#z690aa69]
*** ftpによるダウンロード [#i24f3144]
印刷の演習をする前に、印刷するファイルがないと困ります。...
ここで用いるftpはコンピュータ間でファイルを転送するために...
- http://nile.ulis.ac.jp/2kou/docs/ftp.html
- http://www.yk.rim.or.jp/~inukai/unix/ftp_usage.html
+ 演習室のマシン x1.educ.tamagawa.ac.jp に自分のアカウン...
ftp x1.educ.tamagawa.ac.jp
+ 自分のホームディレクトリを見て下さい.
-- ディレクトリの一覧と移動は、それぞれ「ls」と「cd」で可...
+ 適当なファイルをサーバ(x1)に置いたり,取り寄せたりして...
-- ファイルの取得と送信は、それぞれ「get」と「put」で行え...
+ その他、ftpのなかで「help」とタイプするとコマンド一覧が...
-- bye, ls, cd, mkdir, lcd, get, put, mget, mput のコマン...
+ 演習室のマシンから、自分のC言語のプログラムをいくつかダ...
+ ここでダウンロードしたプログラムは、以下でテスト印刷に...
【おまけ】 telnetの使い方:昨年の実験では、Mac OSでtelnet...
telnet x1.educ.tamagawa.ac.jp
*** PostScript [#hc5af468]
演習室のプリンタはPostScript(PS)というプリンタ言語で書...
そのひとつがa2ps.pl (これの意味はASCIIからPSへ変換する - ...
+ 「a2ps.pl」で検索し、ソフトウェアを入手します。
-- 自分のマシンの適当なディレクトリにファイルを保存してく...
+ a2ps.plをインストールします。
-- インストール方法は、「a2ps.pl インストール」で調べると...
-- 必要ならば、a2ps.plの1行目を説明の通りに書きかえます。
-- 必要ならば、chmodコマンドでファイルに実行許可を与えま...
+ 先ほどダウンロードしたC言語のソースファイル(例:prog1....
./a2ps.pl prog1.c > prog1.ps
-- 上記コマンドの意味がちゃんと理解できますか?
+ できあがったPSファイルを画面で確認してください。
gv prog1.ps
- ちなみに、PSファイルの中身の記述がどんなものかは、その...
more prog1.ps
*** プリンタの設定 [#o99d40d2]
演習室には沖データのPostScriptプリンタが設置されています...
192.168.61.10
です.このプリンタでファイルが印刷できるように設定します。
+ 作業はスーパーユーザで行います。
+ pingコマンドで,このプリンタから応答があることを確認し...
ping 192.168.61.10
+ 沖データのサイトには詳細な設定の方法が書いてあります....
-- http://www.okidata.co.jp/support/unix/4_install.html#a08
-- ただし,この説明のままではなく、以下の変更が必要です。
-- /usr/spool というのを全部 /var/spool に書き替えてくだ...
-- (1) の printcap ファイルは次のようします。
lp:\
:rm=192.168.61.10:\
:sd=/var/spool/lpd/microline:\
:lf=/var/spool/lpd/microline/errors:
-- (4), (5) のディレクトリ名は
/var/spool/lpd/microline/
としてください.
+ /etc/printcapの設定が済んだら,次のコマンドでlpdを再起...
/etc/rc.d/init.d/lpd restart
+ 最後に、一般ユーザに戻って下さい。
*** 印刷のテスト [#wea38943]
+ 以上の設定が終わったら、先ほど作ったPSファイルをテスト...
lpr ファイル名.ps
+ 印刷状況はlpqというコマンドで確認できます.印刷を取り消...
+ 沖データのサイトの説明が間違っていたりするので、たぶん...
きないと思います./etc/printcapの設定などを見直してくださ...
-- インターネット上にあるprintcapの設定方法情報なども役に...
+ うまく印刷できたら,''印刷できた紙に手書きで、番号と漢...
*** 印刷の仕組み [#da034497]
みなさんのマシンでは,プリンタと交信して印刷をつかさどるl...
ps -aux | grep lpd
とタイプしてみて下さい.動いていることが確認できましたか...
プリンタの設定は,/etc/printcapというファイルに書かれます.
man printcap
とすると説明が読めます.さきほどやった設定の意味を再確認...
印刷状況はlpqというコマンドで確認でき、印刷を取り消すには...
/usr/sbin/lpc
とタイプします.使い方はlpcの中でhelpと打ってみて下さい.
** シェルスクリプト [#wc18894a]
*** 参考になるページ [#n5bbe26f]
- http://warp.syns.net/10/
- http://www.stackasterisk.jp/tech/systemManagement/bash0...
- http://www.ybi.co.jp/koike/src/BSH.htm
- http://www.atmarkit.co.jp/flinux/rensai/theory08/theory...
- http://www.elect.chuo-u.ac.jp/tsuki/~tsun/lang/sh/
- http://www.ep.sci.hokudai.ac.jp/~inex/y2002/1101/1101_s...
*** シェルスクリプトとは? [#b444b564]
シェルにおける一連のコマンド操作をプログラムとしてファイ...
+ テキストエディタで、以下の内容のファイルを作成する。
#! /bin/sh
echo "---start---"
ps -aux | grep X
echo "----end---"
+ ファイルを、psxという名前で保存する。
+ 次のようにタイプして、psxを実行可能にする。
chmod 755 psx
+ psxを実行する。どのようになりましたか?
./psx
つまり、以上のようにすると、コマンドラインで「./psx」と打...
なお、1行目の「#! /bin/sh」はシェルスクリプトを実行するシ...
*** シェル変数 [#dcce2ab8]
シェルスクリプトの中では(中でなくても)、変数を使うこと...
- 変数への代入は、「変数名=値」とする。
- 変数の値の参照は、頭にドルマークをつけて「$変数名」とす...
- 下記はシェルスクリプトの例。
#! /bin/sh
msg="This is a pen."
echo $msg
- コマンドライン引数は、「$*」という特殊な変数で得られる。
#! /bin/sh
echo $*
- コマンドライン引数を1ずつ取り出したいときには、「$1」「...
#! /bin/sh
echo $3 $2 $1
- キーボードから文字列を読み込むには、readというコマンド...
#! /bin/sh
read str
echo $str
- コマンドの実行結果を変数に代入するには、「`」(バックク...
#! /bin/sh
lsout=`ls -la`
echo $lsout
*** 制御構造 [#e5514378]
シェルスクリプトの中では、各種制御構造が使えます。
- if
if 条件文
then
条件文と一致した場合の処理
fi
if 条件文
then
条件文と一致した場合の処理
else
条件文と一致しなかった場合の処理
fi
-- 実際にはifは、たいてい [ ] というコマンドと一緒に使い...
#! /bin/sh
read key
if [ "$key" = "y" ]
then
echo "YES!"
else
echo "NO!"
fi
-- コマンド [ ] の詳しい説明は、「man test」で調べること...
- while
while 条件文
do
条件文と一致した時の処理
done
-- シェルスクリプトの例。
#! /bin/sh
key="y"
while [ "$key" = "y" ]
do
echo -n "continue? (y/n) "
read key
done
echo "end."
- for
for 変数 in リスト
do
リストの項目を1つずつ変数に代入して処理
done
-- シェルスクリプトの例。
#! /bin/sh
for i in 1 2 3 4 5 6 7 8 9 10
do
echo $i
done
- case
case 文字列 in
パターン1) パターン1に一致した時の処理 ;;
パターン2) パターン2に一致した時の処理 ;;
esac
*** 課題(シェルスクリプト) [#p3b9fbfc]
以下のような手順を実現するシェルスクリプトを作成し、(添...
- メールアドレスの「@」はコピーしないで、半角文字で打ち...
+ 画面に「I am an iMac!」と表示するシェルスクリプト。
-- 実行例
$ ./imac ← たとえば imac という名前のシェルスクリ...
I am an iMac! ← 実行結果。
-- ヒント: echo
+ コマンド引数で指定したディレクトリに、C言語のソースファ...
-- 実行例
$ ./findc prog ← prog というディレクトリを調べる。
prog/test1.c ← 実行結果。見付かったファイルが列挙され...
prog/test2.c
prog/test3.c
-- ヒント: find, 引数の取り出し($1)
+ キーボードからの入力を求め、それが「L」だったら「LEFT」...
-- 実行例
$ ./asklr ← シェルスクリプトの実行。
Input L or R ? ← 「L」か「R」を入力するように要求してく...
R ← ユーザが「R」と入力。
RIGHT ← 結果表示。
-- ヒント: read, if
+ コマンドの引数で与えられた複数の文字列をたてに表示する...
-- 実行例
$ ./vecho yamada takeuchi nakamura shiozawa gogo!
yamada
takeuchi
nakamura
shiozawa
gogo!
-- ヒント: for, 引数の取り出し($*)
** 第3回レポート [#v503dff0]
【問1】 以下のような動作をするシェルスクリプトを作成しな...
+ コマンド引数で与えられたファイルを、誰からも読めなくす...
-- 実行例
$ ./secret himitsu.txt
+ C言語のソースファイル(拡張子が .c のファイル)を全部つ...
-- 実行例(リダイレクト(>)が不要にしてもよい)
$ ./cmerge > cfiles.txt
+ 「I am an iMac!」と表示するシェルスクリプトを改良して、...
-- 実行例
$ ./hi
Hi! My name is a01.cad.eng.tamagawa.ac.jp.
+ ユーザが「stop」と入力するまで、時刻を表示し続けるシェ...
-- 実行例
$ ./dateloop ← シェルスクリプト...
2005年 5月 11日 水曜日 11:44:01 JST ← 時刻を表示して入...
← ただ [Enter] を...
2005年 5月 11日 水曜日 11:44:05 JST
aaaa ← 適当な文字や、
2005年 5月 11日 水曜日 11:44:36 JST
123 ← 適当な数字を入れ...
2005年 5月 11日 水曜日 11:44:40 JST
stop ← 「stop」と入力す...
+ コマンドラインで指定した月(複数)のカレンダを表示する...
-- 実行例
$ ./mcal 4 5 ←コマンドの入力。4月と5月を指定。
April 2005 ←以下、結果出力。4月と5月のカレン...
Su Mo Tu We Th Fr Sa
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
May 2005
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
【問2】 以下の言葉をすべて使って、UNIXのサーバについて簡...
- サーバ
- クライアント
- lpd
- ftpd
- httpd
- inetd
- デーモン(daemon)
- ps
- サーバのログ
- syslog
以上
【提出期限】
- 次回実験開始まで(開始後のものは受け付けない)。
【提出方法】
- hi-shiozawa@adms.tamagawa.ac.jp に電子メールで提出(Li...
-- メールアドレスの「@」はコピーしないで、半角文字で打ち...
【PC演習室】
- 演習室のPCからも、Linuxに大学のサーバにログインして、Li...
- Cygwinというソフトを使うと、WindowsでもUNIXのシェルやコ...
-- http://www.cygwin.com
-- http://www.sixnine.net/cygwin/
- 実験の時間中に終わらなかった場合には、途中経過を大学の...
-- http://mails.educ.tamagawa.ac.jp
【注意事項】
- この実験に限らず、レポートでは自分の名前を最初に書くこ...
- である調(「だ」「である」)を用い、ですます調(「です...
終了行:
* 第4回 印刷とシェルスクリプト [#xa50848f]
** 目次 [#pf8747f0]
#contents
** 印刷(プリンタの設定) [#z690aa69]
*** ftpによるダウンロード [#i24f3144]
印刷の演習をする前に、印刷するファイルがないと困ります。...
ここで用いるftpはコンピュータ間でファイルを転送するために...
- http://nile.ulis.ac.jp/2kou/docs/ftp.html
- http://www.yk.rim.or.jp/~inukai/unix/ftp_usage.html
+ 演習室のマシン x1.educ.tamagawa.ac.jp に自分のアカウン...
ftp x1.educ.tamagawa.ac.jp
+ 自分のホームディレクトリを見て下さい.
-- ディレクトリの一覧と移動は、それぞれ「ls」と「cd」で可...
+ 適当なファイルをサーバ(x1)に置いたり,取り寄せたりして...
-- ファイルの取得と送信は、それぞれ「get」と「put」で行え...
+ その他、ftpのなかで「help」とタイプするとコマンド一覧が...
-- bye, ls, cd, mkdir, lcd, get, put, mget, mput のコマン...
+ 演習室のマシンから、自分のC言語のプログラムをいくつかダ...
+ ここでダウンロードしたプログラムは、以下でテスト印刷に...
【おまけ】 telnetの使い方:昨年の実験では、Mac OSでtelnet...
telnet x1.educ.tamagawa.ac.jp
*** PostScript [#hc5af468]
演習室のプリンタはPostScript(PS)というプリンタ言語で書...
そのひとつがa2ps.pl (これの意味はASCIIからPSへ変換する - ...
+ 「a2ps.pl」で検索し、ソフトウェアを入手します。
-- 自分のマシンの適当なディレクトリにファイルを保存してく...
+ a2ps.plをインストールします。
-- インストール方法は、「a2ps.pl インストール」で調べると...
-- 必要ならば、a2ps.plの1行目を説明の通りに書きかえます。
-- 必要ならば、chmodコマンドでファイルに実行許可を与えま...
+ 先ほどダウンロードしたC言語のソースファイル(例:prog1....
./a2ps.pl prog1.c > prog1.ps
-- 上記コマンドの意味がちゃんと理解できますか?
+ できあがったPSファイルを画面で確認してください。
gv prog1.ps
- ちなみに、PSファイルの中身の記述がどんなものかは、その...
more prog1.ps
*** プリンタの設定 [#o99d40d2]
演習室には沖データのPostScriptプリンタが設置されています...
192.168.61.10
です.このプリンタでファイルが印刷できるように設定します。
+ 作業はスーパーユーザで行います。
+ pingコマンドで,このプリンタから応答があることを確認し...
ping 192.168.61.10
+ 沖データのサイトには詳細な設定の方法が書いてあります....
-- http://www.okidata.co.jp/support/unix/4_install.html#a08
-- ただし,この説明のままではなく、以下の変更が必要です。
-- /usr/spool というのを全部 /var/spool に書き替えてくだ...
-- (1) の printcap ファイルは次のようします。
lp:\
:rm=192.168.61.10:\
:sd=/var/spool/lpd/microline:\
:lf=/var/spool/lpd/microline/errors:
-- (4), (5) のディレクトリ名は
/var/spool/lpd/microline/
としてください.
+ /etc/printcapの設定が済んだら,次のコマンドでlpdを再起...
/etc/rc.d/init.d/lpd restart
+ 最後に、一般ユーザに戻って下さい。
*** 印刷のテスト [#wea38943]
+ 以上の設定が終わったら、先ほど作ったPSファイルをテスト...
lpr ファイル名.ps
+ 印刷状況はlpqというコマンドで確認できます.印刷を取り消...
+ 沖データのサイトの説明が間違っていたりするので、たぶん...
きないと思います./etc/printcapの設定などを見直してくださ...
-- インターネット上にあるprintcapの設定方法情報なども役に...
+ うまく印刷できたら,''印刷できた紙に手書きで、番号と漢...
*** 印刷の仕組み [#da034497]
みなさんのマシンでは,プリンタと交信して印刷をつかさどるl...
ps -aux | grep lpd
とタイプしてみて下さい.動いていることが確認できましたか...
プリンタの設定は,/etc/printcapというファイルに書かれます.
man printcap
とすると説明が読めます.さきほどやった設定の意味を再確認...
印刷状況はlpqというコマンドで確認でき、印刷を取り消すには...
/usr/sbin/lpc
とタイプします.使い方はlpcの中でhelpと打ってみて下さい.
** シェルスクリプト [#wc18894a]
*** 参考になるページ [#n5bbe26f]
- http://warp.syns.net/10/
- http://www.stackasterisk.jp/tech/systemManagement/bash0...
- http://www.ybi.co.jp/koike/src/BSH.htm
- http://www.atmarkit.co.jp/flinux/rensai/theory08/theory...
- http://www.elect.chuo-u.ac.jp/tsuki/~tsun/lang/sh/
- http://www.ep.sci.hokudai.ac.jp/~inex/y2002/1101/1101_s...
*** シェルスクリプトとは? [#b444b564]
シェルにおける一連のコマンド操作をプログラムとしてファイ...
+ テキストエディタで、以下の内容のファイルを作成する。
#! /bin/sh
echo "---start---"
ps -aux | grep X
echo "----end---"
+ ファイルを、psxという名前で保存する。
+ 次のようにタイプして、psxを実行可能にする。
chmod 755 psx
+ psxを実行する。どのようになりましたか?
./psx
つまり、以上のようにすると、コマンドラインで「./psx」と打...
なお、1行目の「#! /bin/sh」はシェルスクリプトを実行するシ...
*** シェル変数 [#dcce2ab8]
シェルスクリプトの中では(中でなくても)、変数を使うこと...
- 変数への代入は、「変数名=値」とする。
- 変数の値の参照は、頭にドルマークをつけて「$変数名」とす...
- 下記はシェルスクリプトの例。
#! /bin/sh
msg="This is a pen."
echo $msg
- コマンドライン引数は、「$*」という特殊な変数で得られる。
#! /bin/sh
echo $*
- コマンドライン引数を1ずつ取り出したいときには、「$1」「...
#! /bin/sh
echo $3 $2 $1
- キーボードから文字列を読み込むには、readというコマンド...
#! /bin/sh
read str
echo $str
- コマンドの実行結果を変数に代入するには、「`」(バックク...
#! /bin/sh
lsout=`ls -la`
echo $lsout
*** 制御構造 [#e5514378]
シェルスクリプトの中では、各種制御構造が使えます。
- if
if 条件文
then
条件文と一致した場合の処理
fi
if 条件文
then
条件文と一致した場合の処理
else
条件文と一致しなかった場合の処理
fi
-- 実際にはifは、たいてい [ ] というコマンドと一緒に使い...
#! /bin/sh
read key
if [ "$key" = "y" ]
then
echo "YES!"
else
echo "NO!"
fi
-- コマンド [ ] の詳しい説明は、「man test」で調べること...
- while
while 条件文
do
条件文と一致した時の処理
done
-- シェルスクリプトの例。
#! /bin/sh
key="y"
while [ "$key" = "y" ]
do
echo -n "continue? (y/n) "
read key
done
echo "end."
- for
for 変数 in リスト
do
リストの項目を1つずつ変数に代入して処理
done
-- シェルスクリプトの例。
#! /bin/sh
for i in 1 2 3 4 5 6 7 8 9 10
do
echo $i
done
- case
case 文字列 in
パターン1) パターン1に一致した時の処理 ;;
パターン2) パターン2に一致した時の処理 ;;
esac
*** 課題(シェルスクリプト) [#p3b9fbfc]
以下のような手順を実現するシェルスクリプトを作成し、(添...
- メールアドレスの「@」はコピーしないで、半角文字で打ち...
+ 画面に「I am an iMac!」と表示するシェルスクリプト。
-- 実行例
$ ./imac ← たとえば imac という名前のシェルスクリ...
I am an iMac! ← 実行結果。
-- ヒント: echo
+ コマンド引数で指定したディレクトリに、C言語のソースファ...
-- 実行例
$ ./findc prog ← prog というディレクトリを調べる。
prog/test1.c ← 実行結果。見付かったファイルが列挙され...
prog/test2.c
prog/test3.c
-- ヒント: find, 引数の取り出し($1)
+ キーボードからの入力を求め、それが「L」だったら「LEFT」...
-- 実行例
$ ./asklr ← シェルスクリプトの実行。
Input L or R ? ← 「L」か「R」を入力するように要求してく...
R ← ユーザが「R」と入力。
RIGHT ← 結果表示。
-- ヒント: read, if
+ コマンドの引数で与えられた複数の文字列をたてに表示する...
-- 実行例
$ ./vecho yamada takeuchi nakamura shiozawa gogo!
yamada
takeuchi
nakamura
shiozawa
gogo!
-- ヒント: for, 引数の取り出し($*)
** 第3回レポート [#v503dff0]
【問1】 以下のような動作をするシェルスクリプトを作成しな...
+ コマンド引数で与えられたファイルを、誰からも読めなくす...
-- 実行例
$ ./secret himitsu.txt
+ C言語のソースファイル(拡張子が .c のファイル)を全部つ...
-- 実行例(リダイレクト(>)が不要にしてもよい)
$ ./cmerge > cfiles.txt
+ 「I am an iMac!」と表示するシェルスクリプトを改良して、...
-- 実行例
$ ./hi
Hi! My name is a01.cad.eng.tamagawa.ac.jp.
+ ユーザが「stop」と入力するまで、時刻を表示し続けるシェ...
-- 実行例
$ ./dateloop ← シェルスクリプト...
2005年 5月 11日 水曜日 11:44:01 JST ← 時刻を表示して入...
← ただ [Enter] を...
2005年 5月 11日 水曜日 11:44:05 JST
aaaa ← 適当な文字や、
2005年 5月 11日 水曜日 11:44:36 JST
123 ← 適当な数字を入れ...
2005年 5月 11日 水曜日 11:44:40 JST
stop ← 「stop」と入力す...
+ コマンドラインで指定した月(複数)のカレンダを表示する...
-- 実行例
$ ./mcal 4 5 ←コマンドの入力。4月と5月を指定。
April 2005 ←以下、結果出力。4月と5月のカレン...
Su Mo Tu We Th Fr Sa
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
May 2005
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
【問2】 以下の言葉をすべて使って、UNIXのサーバについて簡...
- サーバ
- クライアント
- lpd
- ftpd
- httpd
- inetd
- デーモン(daemon)
- ps
- サーバのログ
- syslog
以上
【提出期限】
- 次回実験開始まで(開始後のものは受け付けない)。
【提出方法】
- hi-shiozawa@adms.tamagawa.ac.jp に電子メールで提出(Li...
-- メールアドレスの「@」はコピーしないで、半角文字で打ち...
【PC演習室】
- 演習室のPCからも、Linuxに大学のサーバにログインして、Li...
- Cygwinというソフトを使うと、WindowsでもUNIXのシェルやコ...
-- http://www.cygwin.com
-- http://www.sixnine.net/cygwin/
- 実験の時間中に終わらなかった場合には、途中経過を大学の...
-- http://mails.educ.tamagawa.ac.jp
【注意事項】
- この実験に限らず、レポートでは自分の名前を最初に書くこ...
- である調(「だ」「である」)を用い、ですます調(「です...
ページ名: