辞書先頭ページへ戻る
Lから始まる情報処理用語
00000308
LAN
00000279
LCD
00000640
LGPKI
00000475
Linux for Macintosh設定体験記
00000476
Linux sh programing
00000506
Linuxカーネルメイク
00000473
Linuxシステム管理(頻度小)
00000480
Linuxシステム管理(頻度大)
00000482
Linuxシステム管理(頻度中)
00000466
Linuxユーザー管理
00000304
Linux一般運用コマンド(頻度小)
00000474
Linux一般運用コマンド(頻度大)
00000481
Linux一般運用コマンド(頻度中)
00000736
LiveConnect
00000431
LMHOSTSファイル
00000503
Look&Fell
00000075
LRU方式
00000126
LSB
00000750
LTE
Local Area Network ローカル・エリア・ネットワーク
閉鎖的な、オフィスや建物の中におけるネットワーク。
一般的に、イーサーネットで接続される。
対語→WAN
Liquid Crystal Display
液晶ディスプレイ
TFT(Thin Film Transistor)
アクティブマトリクス方式を利用している。表示がクリアで現在の主流(製造コストはSTNよりも高い)
STN(Super Twisted Nematic)
単純マトリクス方式を利用している。一般に、製造コストが安いが、表示品質ではTFTに劣る。
LGPKI(Local Government Public Key Infrustracture):地方公共団体組織認証基盤
地方公共団体、住民・企業等との間で行う電子的文書(申請・届出など)のやり取りにおいて、
作成する電子文書等の内容が改ざんされていないかを確認する手段が必要となり、その基盤になっている仕組みのことです。
これにより、LGPKIの証明書が、認証局を運営する各地方公共団体により発行される仕組みになっています。
Mac7500へのLinux PPCインスール日記
◆1. pdisk で、Paertitionを作成し、インストールでマウントを以下のようにした。
scsi0本体 1G
・LinxPCC7500(文字化け)Mac:128Mbyte
・swap:96M /dev/sda6 /swap
・root:817.8M /dev/ /h
scsi1外部 8G 内 2G をLinux
・Mac75
・Mac80
・MacExt /dev/sdb5 /max
・unixsrc /dev/sdb6 /
○上記インストール時のChoos Your OS設定は以下の通り
Kernel Linux PCC Standard
Root device :/dev/sda
Use RAM DISK チェックで More Kernel Argument:『ramdisk_size=8192』
No video Driver チェック
●インストールデフォルト+appache+perlMD5+php3+全ての開発環境
○インストール後のChoos Your OS設定はRoot device :/dev/sdb6 とし、Use RAM DISK チェックを外し、Argumentは空欄にした。
○ネットワーク設定はhostName『mac7500』192.168.0.50 255.255.255.0 default gateway 192.168.0.1 DNS:202.238.95.24
●ユーザー追加:guest:password『anonymous』
Bourneシェル
●コメント
#か始まる1行であるが、先頭行にある『#!○△□』は、○△□のシェルやコマンドを利用してこのソースを実行させることの意味になる。
例:/bin/shで実行させるシェルCGIスクリプト
#!/bin/sh
echo "Content-type: text/html"
echo ""
echo "<html>"
echo "test<br>"
echo "hello<br>hello<br>"
echo "</html>"
●変数への設定、参照
注意点:変数への代入でスペースを空けてはいけない。(変数をシェルスクリプトに引き継ぎたい場合はexportコマンドを使う)
変数参照は、$変数名でよいが、直後に他の文字列を記述する場合は${変数名}と{}で囲む。
文字列の表現は、'〜'と'で囲むものと、"〜"と"で囲む方法がある。"で囲んだ場合は、その中にある変数名で変数参照ができる。
'$br'は変数の展開や置換えなどを行わないが,"$br"は展開や置換えを行う。
#!/bin/sh
echo "Content-type: text/html"
echo ""
echo '<html>'
br="<br>"
echo 'test$br'
echo "hello${br}hello$br"
echo "</html>"
●他のスクリプト(filepath)を実行(プロンプトで実行させた場合と違い、関数定義や変数設定が保持されて、呼び出し側で使える
source filepath [arguments]
または、
. filepath [arguments]
例:次のよううなhead.sh(読み取り属性さえあればよい)が同じディレクトリにあるとする。( htmlstart と、htmlend関数を作って、htmlstartを実行するスクリプト)
br="<br>"
htmlstart(){
echo "Content-type: text/html"
echo ""
echo "<html>"
}
htmlend(){
echo "</html>"
}
htmlstart
上記を呼び出すCGIスクリプトは以下のようになる。
#!/bin/sh
. ./head.sh
echo "test$br"
echo "hello${br}hello$br"
htmlend
●シェルの実行を途中で終了させるコマンド(私はデバックで使う場合がある)
exit
例:次のf03.shのファイルがあるとする。(744の読み取り属性さえあればよい)
f03(){
echo "1"
echo "2"
echo "3"
exit
echo "4"
echo "5"
}
上記を読み込み、その中のf03関数を実行させるCGIスクリプトを以下に示す。
#!/bin/sh
echo "Content-type: text/html"
echo ""
echo "<html>"
. ./f03.sh
f03
echo "<br>"
echo "</html>"
●コマンドライン引数
次のシェルスクリプト(04.sh)があるとする。
#!/bin/sh
echo "<a href=\"$1\">$1</a><br>"
echo "<a href=\"$2\">$2</a><br>"
これは、次のように引数を付けて実行できる。
[public_html]$ ./04.sh aaaa bbbb
<a href="aaaa">aaaa</a><br>
<a href="bbbb">bbbb</a><br>
[public_html]$
04.sh をコマンドラインで実行する時、aaaa とbbbb の引数で実行している。
シェルの中では、コマンドラインに並べたaaaa とbbbbを、それぞれ$1と$2の表現で参照している。
$1や$2はシェル内で使われる特別な変数で、スクリプト実行時の1番目と2番目引数を意味し、9まで扱える。
そして、他にも次のような、特殊変数が存在する。
$# | 引数の個数が記憶される |
$0 | スクリプト実行時の名前が記憶される |
$* | 引数全体が、まとまった文字列として記憶される |
$@ | 引数全体が、まとまった変数(配列のイメージ)で記憶される(for文で1つずつ処理できる) |
$$ | 実行時のプロセス番号が記憶される |
$? | 最後に実行したコマンドの終了ステータス番号が記憶される |
上記スクリプト(04.sh)は、次のように別スクリプト(sh04.cgi)の中から呼び出せる。
#!/bin/sh
echo "Content-type: text/html"
echo ""
echo '<html>'
./04.sh sh01.cgi sh02.cgi
echo '</html>'
呼び出し表現の「./04.sh sh01.cgi sh02.cgi」は、次のように変数cmdに設定後、その変数で実行する2行に置き換えても同じである。
cmd="./04.sh sh01.cgi sh02.cgi"
$cmd
●演算式の表現
文字列型変数しかない。そこで演算は次のような表現になる。ここで使える演算子は、+-/*の四則演算で、演算子の前後には必ず空白を付けなければならない。
let 変数名="演算式を表現する文字列"
また、次のように2つの括弧ではさむ表現で演算することもできる。
変数名=%((演算式の表現))
●条件式
[条件式]と[ ]で囲む形式で表現するが、内部各表現の間には、スペースを設ける必要がある。例⇒[ $1 -ne 5 ]
数値として評価
式の表現 | 意味 | ■ | 式の表現 | 意味 | ■ | 式の表現 | 意味 |
[ 式 -eq 式 ] | = | ■ | [ 文字列 = 文字列 ] | 一致するか | ■ | [ ! 条件式 ] | 条件の否定 |
[ 式 -ne 式 ] | ≠ | ■ | [ 文字列 != 文字列 ] | 一致しないか | ■ | [ 条件式 -a 条件式 ] | 条件のAND |
[ 式 -lt 式 ] | < | ■ | [ 文字列 > 文字列 ] | 順序比較 | ■ | [ 条件式 -o 条件式 ] | 条件のOR |
[ 式 -gt 式 ] | > | ■ | [ 文字列 < 文字列 ] | 順序比較 | ■ | [ -f ファイル ] | ファイルが存在するか |
[ 式 -le 式 ] | ≦ | ■ | [ 文字列 ] | 長さが1以上か | ■ | [ -x ファイル ] | ファイル実行可能か |
[ 式 -ge 式 ] | ≧ | ■ | [ -z 文字列 ] | 長さが0か | ■ | [ ファイルS -nt ファイルX ] | ファイルSの更新時間がファイルXより新しいか |
ファイル属性には、他に w:書き出し可能か、d:ディレクトリか、s:ファイルが存在してサイズが0でないか、などの評価がある。
●ifの一般構文
if [ 条件 ]
then
上記条件判定で実行する部分
elif [ 条件 ] #←この範囲は省略可能
最初の条件以外で、指定する新たな
条件判定が成立した時に実行する部分
else #←この範囲は省略可能
上記いずれの条件でない時の実行部分
(elseが無い場合は、条件実行の範囲になる)
fi #←上記全体のif構文の終了を意味する
例: 引数のJavaクラス名のソースファイルを必要に応じてコンパイルし、エラーがなければ実行するスクリプト『ja』
#!/bin/sh
export LANG=ja_JP.eucJP LANGUAGE=ja unset LC_CTYPE LINGUAS=ja
cpath="-classpath /usr/local/j2sdk1.3:/usr/lib/pgsql/jdbc7.0-1.2.jar:."
cmd="/usr/local/j2sdk1.3/bin/javac $cpath ${1}.java"
errflag=0 #コンパイル時にエラーがあれば1にする
if [ -f "${1}.class" ]
then #クラスファイルが存在する
if [ -f "${1}.java" ] #ソースファイルあり
then
if [ ${1}.java -nt ${1}.class ] #ソースの方の更新が新しい
then
#echo "$cmd をソース更新により実行"
$cmd 2> tmp #コンパイル
if [ $? -ne 0 ] #コンパイルエラー?
then
errflag=1
fi
fi
fi
else #クラスファイルがない?
if [ -f "${1}.java" ] #ソースファイルあり
then
#echo "$cmd の実行で最初の翻訳"
$cmd 2> tmp #コンパイル
if [ $? -ne 0 ] #コンパイルエラー?
then
errflag=1
fi
else
echo "${1}.java がなくてコンパイルできません" > tmp
errflag=1
fi
fi
cmd="/usr/local/j2sdk1.3/bin/java $cpath ${1}"
if [ $errflag -eq 0 ] #コンパイルエラーがなかった?
then
$cmd #Javaを実行
exit 0
else
exit 1
fi
●case 〜esacの条件判定構文
case 変数 in
パターン文字列1)
文
;; #←最後でセミコロンが2つ
パターン文字列2)
文;;
・・・
*) #←上記パターン文字列で一致が無い場合
文;;
esac #caseの終了
例
#!/bin/sh
# 引数がJavaのソースなら翻訳する。それ以外ならJavaクラスとなら実行する。
case $1 in
*.java)
cmd="/usr/local/j2sdk1.3/bin/javac -classpath /usr/local/j2sdk1.3:/usr/lib/pgsql/jdbc7.0-1.2.jar:. ${1}"
echo "$cmd"
$cmd > tmp
cat tmp
;;
*)
/usr/local/j2sdk1.3/bin/java -classpath /usr/local/j2sdk1.3:/usr/lib/pgsql/jdbc7.0-1.2.jar:. $1 ;;
esac #caseの終了
●while文やuntil文の繰り返し
次の構文になり、breakやcontinueが使える。なお、untilは、do 〜doneを実行してから条件を評価するので、最低での1回の繰り返しを行う。
while [条件式]
do
繰り返し対象
done
until [条件式]
do
繰り返し対象
done
例:sh00〜sh05.cgiのリンクを作成する
#!/bin/sh
echo "Content-type: text/html"
echo ""
echo '<html>'
i=0
while [ $i -ne 6 ]
do
echo "<a href=\"sh0${i}.cgi\">sh0${i}.cgi</a><br>"
# let i="$i + 1"
i=$(($i + 1))
done
echo '</html>'
●for文
#!/bin/sh
for V in $@
do
echo "<a href=\"$V\">$V</a><br>"
done
$@は引数全体が、まとまった変数で、forにより繰り返し毎にvへ設定される。これを以下で利用
#!/bin/sh
echo "Content-type: text/html"
echo ""
echo '<html>'
echo '<META HTTP=EQUIV="Content-Type" CONTENT="text/html;charset="EUC_JP">'
cmd="./06.sh `/bin/ls *.cgi`"
#cmd="./06.sh /bin/ls *.cgi"
echo "作成コマンド:${cmd}<br>"
$cmd
echo '</html>'
●変数は、文字列しかないが、変数に記憶した関数を、変数参照の表現で実行できる。
また、逆引用符(``)の参照表現で、中のコマンドが実行し、その結果を文字列に埋め込むことができる。
上記例のcmd変数使い方を参照:`/bin/ls *.cgi`の実行結果が、./06.shに渡される。
その下のコメントの方では、cmd="./06.sh /bin/ls *.cgi" では、/bin/lsと、その実行結果がわたることに注意
●外部コマンドの利用
◇expand fileName
タブを8個の空白に置き換える。「expand -4 fileName」で4個に変更
◇sed
sed 's/AAA/BBB/g' filePath
file内のAAAをBBBに全て置き換えて標準ストリームに出力する。
(gの代わりに数値を指定すると、その回数の出現する個所分だけ置き換えする。)
なお、'~'で指定する文字には\を使って表現しなければならない文字が存在する。
例えば、 『&』の表現は、『\&』としなければならない。
◇awk
awk 'BEGIN{printf("<PRE>\n");}{printf("%s<br>\n",$0);}END{printf("</PRE>\n");}' file
file内の処理を行う前に
BEGIN{printf("<PRE>\n");}の部分を行い、
全ての行に対して{ }を行った後で、最後にEND{printf("</PRE>\n");}の部分を行う。
BEGIN{}と、END{}は省略可能。この例では、$0が行全てを意味するので、各行末に<br>を追加している。
$1,$2 ...で1番目、2番目レコードを意味するシステム変数になってる。C言語と同等のprintf、繰り返し、分岐制御と、高機能コマンドである。
例:上記if例の『ja』スクリプトを利用したCGI実行用スクリプト
#!/bin/sh
param='J10'
meta='<META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=EUC_JP">'
prg='BEGIN{printf("<PRE>\n");}{printf("%s<br>\n",$0);}END{printf("</PRE>\n");}'
./ja $param
if [ $? -eq 1 ]
then #./jaの実行がエラーの場合
echo 'Content-type: text/html'
echo ""
echo '<HTML Lang="ja"><HEAD>'
echo $meta
echo '</HEAD><BODY>'
expand tmp > tmp1
awk $prg tmp1
echo '</BODY></HTML>'
fi
●JavaCGIに使うシェル例
#!/bin/sh
htmlstart(){
echo "Content-type: text/html"
echo ""
echo "<html>"
echo '<HEAD>'
echo '<META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=EUC_JP">'
echo '</HEAD>'
echo '<BODY>'
}
htmlend(){
echo '</BODY>'
echo "</html>"
}
export LANG=ja_JP.eucJP LANGUAGE=ja unset LC_CTYPE LINGUAS=ja
src='J10'
cmd="/usr/local/j2sdk1.3/bin/javac -classpath /usr/local/j2sdk1.3:/usr/lib/pgsql/jdbc7.0-1.2.jar:. ${src}.java"
errflag=0
if [ -f "${src}.class" ]
then #クラスファイルが存在する
if [ -f "${src}.java" ] #ソースファイルあり
then
if [ ${src}.java -nt ${src}.class ] #ソースの方の更新が新しい
then
$cmd 2> tmp #コンパイル
if [ $? -ne 0 ] #コンパイルエラー?
then
errflag=1
fi
fi
fi
else #クラスファイルがない?
if [ -f "${src}.java" ] #ソースファイルあり
then
$cmd 2> tmp #コンパイル
if [ $? -ne 0 ] #コンパイルエラー?
then
errflag=1
fi
else
htmlstart
echo "${src}.java コンパイルできません"
htmlend
exit
fi
fi
cmd="/usr/local/j2sdk1.3/bin/java -classpath /usr/local/j2sdk1.3:/usr/lib/pgsql/jdbc7.0-1.2.jar:. $src `/usr/bin/env`"
if [ $errflag -eq 0 ] #コンパイルエラーがなかった?
then
$cmd
else
expand tmp > tmp1
htmlstart
prg='BEGIN{printf("<PRE>\n");}{printf("%s<br>\n",$0);}END{printf("</PRE>\n");}'
awk $prg tmp1
htmlend
fi
●FDのフォーマット
fdformat /dev/fd0H1440
●カーネルイメージをFDへ書き出す
dd if=/boot/vmlinuz-2.4.2-2 of=/dev/fd0 bs=1k
●FD内のルート / をマウントするパーテーションの指定
/usr/sbin/rdev /dev/fd0 /dev/hda7
●DOS フォーマットのフロッピーへブートファイルをコピーする
〇bootsectへroot パーティション(/dev/hda2)のブートセクタ(512byte)をファイル化する。
dd if=/dev/hda2 of=/bootsect.lnx bs=512 count=1
〇DOSのFDへコピーする。
mount -t msdos /dev/fd0 /mnt
cp /bootsect.lnx /mnt
umount /mnt
●ハードディスクなどのパーティション(論理ディスクに分割した個々のディスク)を確認したり、追加、変更、削除
fdiskコマンドを使います。以下は、確認の -l 指定して使っている例です。
$ fdisk -l
Disk /dev/sda: 61.4 GB, 61492838400 bytes
255 heads, 63 sectors/track, 7476 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes
Disk identifier: 0xdd7fdd7f
デバイス Boot Start End Blocks Id System
/dev/sda1 * 1 2620 21045118+ 7 HPFS/NTFS
/dev/sda2 2621 7475 38997787+ f W95 Ext'd (LBA)
/dev/sda5 2621 7475 38997756 7 HPFS/NTFS
Disk /dev/sdb: 163.9 GB, 163928604672 bytes
255 heads, 63 sectors/track, 19929 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00069a3d
デバイス Boot Start End Blocks Id System
/dev/sdb1 12635 19929 58597087+ b W95 FAT32
/dev/sdb2 1 10942 87891583+ 83 Linux
/dev/sdb3 10943 12634 13590990 5 拡張領域
/dev/sdb5 10943 12634 13590958+ 82 Linux swap / Solaris
$ fdisk /dev/sdb
上記最後で、/dev/sdb を指定し、変更や追加のステップが可能です。
●ランレベル設定について
ランレベルは、一般に0から6の種類があり、この設定で起動するデーモンの種類を一括変更できる仕組みがある。
以下は、Red Hat Linux,Turbo Linux , Vine Linux などSystemV系に対するよくある形式の説明とする。
『/etc/inittab』のファイルで利用するランレベルが判断される。
このファイルの中には、次のような記述があり、0から6の各レベルに関する指定が記憶される。
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
そして、各ランレベルに対応するディクレクトリ『/etc/rc.d/rcランレベル番号.d』が用意されている。(5のレベル例:/etc/rc.d/rc5.d)
そして、このディレクトリ内のシンボリックリンクファイルによって各デーモンの起動、起動が制御される。
シンボリックファイル名の先頭文字が、Sが起動スタート(START)を意味し、Kが停止(Kill)を意味する。
例えばサーバーデーモン起動は、/etc/rc.d/rc5.dの中に、../init.d/httpdへリンクするS85httpdがある。
こうして各ランレベルが決められ、『/etc/inittab』の内容の先頭でランレベル指定いて起動している。
つまり、このランレベルを変更すれば、容易に起動レベルが変更できる仕組みになっている。
ちなみに、ランレベル1が、シングルユーザー用でメンテナンス用に使われる。
ネットワークをが有効になるマルチユーザーモードは3と5で、テキストベースが3、Xベースが5になっている。以下に例を示す。
ランレベル5
『id:5:initdefault:』
ランレベル3
『id:3:initdefault:』
ランレベル設定ユーティリティとして、以下のツールを用意している場合が多い。
X-Window用 『/usr/X11R6/bin/tksysv』
コンソール用 『/usr/sbin/ntsysv』 実行例:/usr/sbin/ntsysv --level 3
●rpm (RedHat Package Manager)コマンドの簡単な使い方
(1)インストール済みのパッケージ一覧の表示。
>rpm -q -a
-q がクエリーモード、-aが全てを意味する。
(2)パッケージの中身を表示
>rpm -qpl postgresql-jdbc-7.0.3-8hl2.ppc.rpm
-q がクエリーモード、p未インストール、lパッケージ内一覧
(3)ファイルの所属パッケージを調べる。
>rpm -qf /usr/X11R6/bin/tksysv
-q がクエリーモード、-aが全てを意味する。
(4)パッケージのインストール
>rpm -ivh postgresql-jdbc-7.0.3-8hl2.ppc.rpm
-i がインストールモード、vベリファイ、hインストール過程を#の羅列で表示
●時刻合わせ dateコマンド
dateコマンドは一般ユーザーでも使えますが、変更はrootのみが可能です。
変更はプロンプトに対して「date MMDDhhmmYYYYss 」と指定します。
MM・・・月
DD・・・日
hh・・・時(24時間表記)
mm・・・分
YYYY・・西暦
ss・・・秒
例を示します 2007年12月28日11時27分の設定例です。(ssは省略しています)
>date 122811572007
●ユーザーパスワード変更
passwd ユーザー名
●指定ユーザーに成り代わる
us ユーザー名
その他、初期に行われるLinuxユーザー管理として、新規グループ、ユーザー作成がある。
●CDROMマウント 一般的にroot権限が必要
>mount -t iso9660 /dev/cdrom /mnt/cdrom
MacのhfsフォーマットCDのマウント
>mount -t hfs /dev/cdrom /mnt/cdrom
○CDROMマウント解除
>umount -n /mnt/cdrom
●起動時のマウントディスクを指定する。
起動時に、/etc/fstabファイルを読み込んで、マウントするのでこのファイルを編集すればよい。/etc/fstabの例を示す。
/dev/hda10 /mac hfs defaults 0 0
/dev/cdrom /mnt/cdrom auto noauto,owner,ro 0 0
/dev/fd0 /mnt/floppy auto noauto,owner 0 0
none /proc proc defaults 0 0
none /dev/pts devpts gid=5,mode=620 0 0
/dev/hda11 swap swap defaults 0 0
/dev/hda12 / ext2 nocheck 1 1
●ディスクの使用量をチェックする。⇒dfコマンドを使う(以下に使用例を示す)
ファイルシステム 1k-ブロック 使用済 使用可 使用率% マウント場所
/dev/hda12 1852776 1492984 265672 85% /
/dev/hda10 99146 25576 73570 26% /mac
●ファイルシステムも検査 fsckコマンドを使う。但し、対象ディスクはアンマウントされていなけければならない。
以下の例は、hda2のハードディスクがチェック対象で、-mオプションで修復なしの指定です。
# fsck -m /dev/hda2
●ユーザー追加(adduserが対話式で、useraddがコマンドライン設定)
/usr/sbin/useradd -g 399 -m -u 3000 -p xxx -c "コメント名前など" yuu
idが399グループに所属し、ユーザー名のディレクトリを持ち、idが3000の『yuu』の名前のユーザーを作成する。
-p xxxでパスワードを付けているが、最終的には/usr/sbin/chpasswdで変更し直す必要がある。
-c "○△□"で、新規ユーザのコメントフィールド指定
-m ホームディレクトリが存在しない場合には、ホームディレクトリを作成する。
他は、デフォルト値を使う。このデフォルト値の表示は次のように行え、他のオプション指定で、デフォルト値を変更しながら追加も可能
/usr/sbin//useradd -D
次のようなシェルで、引数にユーザー名とパスワードを指定することで、同時設定も可能
/usr/sbin/useradd $1
echo $1:$2 > /tmp/$1.dat
/usr/sbin/chpasswd < /tmp/$1.dat
/bin/rm /tmp/$1.dat
○ユーザー削除
/usr/sbin/userdel -r yuu
-rの指定でyuuのホームディレクトリも削除
●ユーザー確認
/usr/sbin/vipw
●オーナーの変更(ファイルやディレクトリに対して)
chown ログイン名 ファイル
●グループの変更(ファイルやディレクトリに対して)
chgrp グループ名 ファイル
●グループ追加:gid(範囲は99以上)グループIDのグループをgroupName(アルファベットより始まる)の名前で作成する。(デフォルトで既存グループのIDよりも大で、最小の数値)
groupadd [-g gid] groupName
例 "3B"のグループ名を399のidで作成する場合は次の通り
/usr/sbin/groupadd -g 399 b3
●グループの確認や確認(直接にファイルを編集)
vi /etc/group
●グループの削除(所属ユーザーやファイルがない場合のみ)
b3のグループを削除
/usr/sbin/groupdel b3
●ユーザーのイニシャルグループを既存グループの別グループに変更する。
usermod -g otherGroupName userName
●ユーザーのに複数のグループへ所属させる。(イニシャルグループ変化なし)
usermod -G groupName1,groupName2,groupName3 userName
例:
/usr/sbin/usermod -G sys,wheel,postgres suzuki
『vi /etc/group』で、確認できる。
●FDのフォーマット
fdformat /dev/fd0H1440
○FD内のルート / をマウントするパーテーションの指定
/usr/sbin/rdev /dev/fd0 /dev/hda7
○DOSのFDへコピーする。
mount -t msdos /dev/fd0 /mnt
cp file /mnt
umount /mnt
○ファイル更新日時を調べる
date -r ファイル名
書式付表示(年月日時:分:秒)
date +%Y%m%d%T -r sh01.cgi
●tarコマンド
x:展開指示、v:メッセージ表示、f:file指示
◇.g または、.gzの展開(gzip 形式で圧縮ファイル)
◇.bz2ファイルの展開(bzip2 形式で圧縮ファイルでgzip 形式より高い圧縮率) cd /usr/local で、
tar jxvf /mnt/cdrom/JDK/1.2.2/ppc/jdk-1.2.2-FCS-linux-ppc-glibc-2.1.3.tar.bz2
この場合は、jdk1.2.2のディレクトリと、その中げ展開で生成される
●ln コマンドによるリンク設定
ハードリンクとソフトリンク(シンボリックリンク)がある。
ソフトリンクが、Windowsシステムのショートカットに相当して、-sオプションをつける。
このオプションを付けないとハードウェアリンクになる。
Unixでは、ファイル実体に複数の名前を持つことができ、この規則に従ってもう一つのい名前を付けるイメージになる。
ハードリンクのどちらか一方を削除しても、付けた名前が残っていればファイル実体が消されることはない。
対して、ソフトリンクの方は、実体を参照するリンクファイルと言う意味で作られる。
リンクファイルを消しても実体が消されないが、リンク元を消すと、リンクしたファイルが使えなくなる。
《例》
カレントディレクトリにある『a.out』にリンクする『a2.out』のソフトリンクを作る場合は次のようになる。
ln -s a.out a2.out
『/usr/bin/perl』にリンクする『/usr/local/bin/perl』のソフトリンクを作る場合は次のようになる。
ln -s /usr/bin/perl /usr/local/bin/perl
●ディレクトリ内のファイルやディレクトリの確認表示
ls
ls -l
このリストで表示される意味は次の通り
drwxrwxrwx はdirectory (u)ownerのrwx, (g)groupのrwx, (o)otherのrwxの順番で並ぶ rwxはread,write,excuteの属性
ls -a
これで、'.'のカレントディレクトリや、'..'の親ディレクトリなどピリオドで始まるファイルも表示
ls -d *.c
上記で、カレントディレクトリにある拡張子がcのファイルを表示します。
-dがないと、サブディレクトリ内も表示対象になる場合が多いようです。
これは、(alias ls 'ls -F')の設定があり、-Fのサブディレクトリ内対象指定になっているからです。
●現在のディレクトリ表示
pwd
●現在のディレクトリの変更
cd ディレクトリ(相対または絶対パス)
●ディレクトリ作成
makdir 作成ディレクトリ
●ファイル内容の確認コマンド
cat ファイル名
●ファイルのコピー
cp コピー元ファイル コピー先ファイル
●ファイルの削除
rm ファイルパス
●ファイルの移動
mv 移動元パス 移動先パス
●directory以下のfileNamePatternのファイルまたはディレクトリを探して表示する。
find directory -name "fileNamePattern" -print
○単にファイルまたはディレクトリをを探す
find / -name ファイル名(正規化表現可能)
よく使う正規化表現 なお正規化表現は/〜/と囲む
例:xyzで始まるファイルをホーム以下で探す
find ~ -name xyz/* -print
○任意のファイルを探す
locate 検索ファイル名
このコマンドは予め root権限で 『locate -u』を実行してデータベースを作成して置かなければならない。
●viエディタ
カーソルを上 | j |
カーソルを下 | k |
カーソルを右 | l |
カーソルを左 | h |
検索 | / |
検索繰り返し | n |
指定行番号へ移動 | 数G |
- | - |
文字列⇒バッファ | y |
行⇒バッファ | yy |
バッファ⇒カーソル前 | p |
バッファ⇒カーソル後 | P |
行番号表示 | set number |
●リディレクションredirection
例
*****List
<
>
>>
|
*****
●属性の変更(上記ファイルやディレクトリのアクセス設定)
chmod ug+w o-w fileNmae オーナーとグループを書き込み可にし、他は書き込み不可にする。
- | file | Directory |
read | 内容をみることができる | ディレクトリにある名前を知ることができる。 |
write | 内容を変更できる(作成/削除は不可) | 内部でファイル作成削除ができる |
excute | コマンドとして実行できる | サーチできる(ディレクトリ内の詳細情報取得) |
●alias
alias
^名前についている実際の処理を確認
alias cp='cp -i'
^cp -iの操作にcpの別名を付けて、この名前でコマンド実行(シェルの組み込みコマンドも含む)できるようにする
unalias エリアス名
^^^エリアス名を削除(unalias -a で全て削除できる。)
●プロセス確認
・ttyを持ち、セッションリーダを除く全てを選択する。
[suzuki@6x86 test]$ ps -al
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
100 S 500 5032 5031 0 69 0 - 588 wait4 pts/0 00:00:00 bash
100 S 500 5088 5087 0 68 0 - 588 wait4 pts/1 00:00:00 bash
000 S 500 5272 5088 0 69 0 - 325 wait_f pts/1 00:00:00 a.out
000 R 500 5313 5032 0 74 0 - 741 - pts/0 00:00:00 ps
[suzuki@6x86 test]$
ここで、Fはプロセスの現在の状態、Sはプロセスの状態(S:Sleeping,R:Ready to run,O:Running,etc)、PIDがプロセスID、PPIDが親のPID、
Cがプロセスが使ったCPU時間のパーセンテージ 、PRIがプライオリティ(大きい数字が低い)、NIがプロセスのnice数、
TTYが端末、TIMEが開始よりプロセスによって使われたCPU時間、COMDがコマンド名になる。
・ デーモンを全て表示させる(制御端末がない)-x 制御端末のないプロセスを選択し、-a プロセスグループに属していないのを除く
ps -ax
・すべてのプロセス
ps -e
・セッション/プロセスグループID付き
ps -j
●ジョブ(ジェルコマンドラインから起動した作業単位)関連(fg,bg,stopのコマンドが用意される。)
・ジョブの表示『jobs』
・バックグランド起動は&をつけて起動する。
./a.out &
・番号3のジョブをフォアグランドジョブにする例(%直後にジョブ番号やジョブ名が使える。ジョブ名はワイルド指定可能)
fg %3
・フォアグランドジョブを中断することが出来ないが、CTRL-Zでバックグランドの中断へ変更できる。
●バックグラウンドやサスペンドのプロセスをフォアグラウンドへ移行(逆にバックグラウンドへ移行する場合はfgを使う):シェル機能
fg プロセス番号
●ファイル内容で検索する。grep
例 /usr/include/*.hの中にある『hostent』の名前を持つファイルパスを列挙させる。
grep -l "hostent" /usr/include/*.h
●自身が所属するグループ名を知るコマンド [ ]は省略可能でその特は、コマンドを実行したユーザーのグループになる。
/usr/bin/groups [ユーザー名]
Javaアプレットと、ブラウザ内のJavaScriptと連係動作機能です。
例えば Javaスクリプトにおいて、同一HTMLのアプレットの名前の後ににドットを書き、
続けてアプレット内のpublicメソッドを呼び出す記述が可能です。
なお、ORACLE Sun のJavaのラインタイム1.6.0_23より、
これまで使えてきたJavaScriptからJavaアプレット内のメソッド呼び出しに
サーバーと通信する部分が含まれると、セキュリティ例外が起きるようになってしまいました。
回避する方法はありますが、IE8のブラウザデフォルト設定で使えなくなったことは残念です。
IPアドレスとNetBIOS名の対応マップの定義したファイル
存在場所は次の通り
Windows NTでは、%systemroot%\system32\drivers\etc
Windows 98では、%windir%
ルックアンドフィール
名前の通り、『見た目と操作の感じ』を意味する。
ユーザーインターフェイスを、使う側から評価する時に使う表現になる。
Least Signification Bit
最下位ビット
反対→MSB
Long Term Evolution(NTTではSuper3Gと呼ぶ)
第3世代(3G)から第4世代(4G)への橋渡しという意味で「3.9G」とも呼ばれる通信仕様
3G携帯電話との互換性はあまり考慮されておらず、音声通話はデジタルデータに変換されてパケット通信に統合される。
最高で下り100Mbps以上、上り(端末→基地局)で50Mbps以上の高速なデータ通信が可能となる規格。