<?xml version="1.0" encoding="UTF-8" ?><rdf:RDF 
  xmlns="http://purl.org/rss/1.0/"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xml:lang="ja">
  <channel rdf:about="http://w.atwiki.jp/ozuka/">
    <title>備忘録</title>
    <link>http://w.atwiki.jp/ozuka/</link>
    <atom:link href="https://w.atwiki.jp/ozuka/rss10.xml" rel="self" type="application/rss+xml" />
    <atom:link rel="hub" href="https://pubsubhubbub.appspot.com" />
    <description>備忘録</description>

    <dc:language>ja</dc:language>
    <dc:date>2012-02-15T01:04:39+09:00</dc:date>
    <utime>1329235479</utime>

    <items>
      <rdf:Seq>
                <rdf:li rdf:resource="https://w.atwiki.jp/ozuka/pages/2.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/ozuka/pages/21.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/ozuka/pages/13.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/ozuka/pages/19.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/ozuka/pages/22.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/ozuka/pages/16.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/ozuka/pages/1.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/ozuka/pages/14.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/ozuka/pages/18.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/ozuka/pages/3.html" />
              </rdf:Seq>
    </items>
	
		
    
  </channel>
    <item rdf:about="https://w.atwiki.jp/ozuka/pages/2.html">
    <title>メニュー</title>
    <link>https://w.atwiki.jp/ozuka/pages/2.html</link>
    <description>
      **メニュー
-[[TOP]]
#region(UNIX)
UNIX
-[[UNIX(コマンド)]]
-[[UNIXのシェル/コマンドの実行]]
-[[bashrc]]
-[[vi]]
#endregion
-[[エクセル]]
-[[JavaScript]]
-[[TeraTerm]]
-[[test]]

----
-[[未整理]]

-[[@wikiご利用ガイド&gt;&gt;http://atwiki.jp/guide/]]

// リンクを張るには &quot;[&quot; 2つで文字列を括ります。
// &quot;&gt;&quot; の左側に文字、右側にURLを記述するとリンクになります


//**更新履歴
//#recent(20)

&amp;link_editmenu(text=ここを編集)    </description>
    <dc:date>2012-02-15T01:04:39+09:00</dc:date>
    <utime>1329235479</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/ozuka/pages/21.html">
    <title>vi</title>
    <link>https://w.atwiki.jp/ozuka/pages/21.html</link>
    <description>
      コマンドモードとインサートモードがある。
vimならビジュアルモードもある。
exコマンドは、コマンドモードから:で実行できる。
いずれのモードでも、ESCによりコマンドモードへ戻る。
ワケがわからなくなったら、とりあえずESC押下と半角入力に戻して
コマンドモードから仕切り直す。

最低限、以下は覚えておきたい。

*コマンドモード
それぞれ、コマンドの前に数値入力により、その回数繰り返す。（語弊があるかも）
全角入力はだめ。半角入力。
----
***カーソル移動
 k 上
 j 下
 h 右
 l 左

 w 次の単語へ
 b 前の単語へ
 0 行頭へ
 $ 行末へ

----
***ページ移動
 control + d 下へ半ページ
 control + u 上へ半ページ
 control + f 下へ1ページ
 control + b 上へ1ページ

----
***行指定で移動
 :行番号 ・・・行番号の行へ
 gg ・・・最上行へ(使えない時は:1)
 G  ・・・最下行へ

----
***削除
 x  ・・・１文字削除
 d  ・・・削除(dwで１単語削除等々。まだつかいこなせていない）
 dd ・・・１行削除

----
***更新
 c ・・・cwでカーソル下から単語末までを更新するインサートモードへ
 r ・・・カーソル下の１文字を次に入力する文字に置き換える

----
***追加（インサートモードへ）
 i カーソルの下からインサートモードへ
 a カーソルの次からインサートモードへ
 o カーソルの下に行追加で、インサートモードへ
 O カーソルの上に行追加で、インサートモードへ

----
***検索
 /[pattern] ・・・次に[pattern]に一致する文字へ
 ?[pattern] ・・・前に[pattern]に一致する文字へ
 n ・・・次の文字へ
 N ・・・前の文字へ

----
*インサートモード
 普通に文字入力する。もちろん、hjklでカーソル移動はできない。
 環境設定ができていれば、全角文字も入力可能。
 ESCでコマンドモードに戻る。

----
*EXコマンド
 コマンドモードから:(コロン)入力でEXコマンド入力となる。
 設定変更やファイル操作、shell実行等が可能。

----
***保存
 :w [file]  ・・・[file]名で保存。[file]省略時は上書き保存。
 :w! [file] ・・・強制保存

***終了
 :q
 :q! ・・・保存せず強制終了
 :wq ・・・[file] [file]名で保存して終了。[file]省略時は上書き保存終了。
 ZZ  ・・・上書き保存終了（コマンドモードのコマンド）

----
***行番号表示
 :set nu[mber]   ・・・行番号表示
 :set nonu[mber] ・・・行番号非表示

----
***エンコード/ファイルフォーマットを指定して再読み込み
 エンコードを指定
 :e ++enc=euc-jp
 :e ++enc=shift_jis
 :e ++enc=utf-8

 ファイルフォーマットを指定
 :e ++ff=dos
 :e ++ff=unix
 :e ++ff=mac

----
***コマンドの履歴
 簡易履歴は
 コマンドモードで↑、↓で過去のコマンド履歴が出る。

 過去のコマンド履歴を表示。
 q: 過去のEXコマンドの履歴
 q/ q? 過去の検索履歴
 どちらも、viコマンドで変更して再実行可能。終了はq:



まだまだあるけど、とりあえずここまで。


----    </description>
    <dc:date>2010-11-08T00:58:07+09:00</dc:date>
    <utime>1289145487</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/ozuka/pages/13.html">
    <title>UNIX(コマンド)</title>
    <link>https://w.atwiki.jp/ozuka/pages/13.html</link>
    <description>
      ***telnet接続でのコマンド

最近わかってきたけど、いろいろなunix系OSの知識が混ざってるな。
その辺、整理できるように、いつかはなりたい。
基本的にsh/bashで確認している。

----
***コマンドのヘルプをみる
 man [command]
 コマンド名が分かっていれば、これで使い方を調べるのが基本。
 ここにメモした内容よりも、その環境のmanを調べるべき。
 jman [command]
 で日本語のヘルプ表示の場合もある（jmanをインストールしていれば）
 少なくとも、うちのmacはこれ。

----
***環境設定の確認
 env

----
***シェル変数の確認
 set

----
***ネットワークインターフェイスの確認
 ifconfig -a 
  -a 停止しているものも含むらしい。要は全部？

----
***各ユーザーのデフォルト設定
 cat /etc/passwd
 （どう見てもコマンドではない・・・。）

----
***ディスクブロックおよびファイル数の確認
 df
  -k 割り当てられているディスクの容量をKバイト単位に出力
  -h 見やすくなる。ただし、正確な値ではない。目安には良い。

----
***ディレクトリの容量調査
 du
  -k ファイルのサイズを1024バイト単位で出力（デフォルトは512バイト）
  -s 各ファイルの合計のみを出力
 ややこしいが、カレントディレクトリ内の各ディレクトリ毎の容量だけを見たいときは
 du -k | egrep &quot;^[^\/]*\/[^\/]*$&quot;
 もっと簡単な方法があるんだろうなぁ。

----
***ユーザー切替
 su - [userid]
 ENTER押下後パスワード入力
 rootで入る場合は[userid]を省略してもよい
  &quot;-&quot;有りで、環境変数も切り替え後ユーザーで読み直す

----
***ユーザー確認
 whoami
 正直、↓のidでいい気がする

----
***ユーザーIDとグループ
 id

----
***現在のpath表示
 pwd

----
***コマンドやスクリプト等のパス確認
 which [command]
 その[command]にpathが通っていれば表示される。
 （表示されれば、そのコマンドは使えると思えばよい？）


----
***ディレクトリ内を一覧表示
 ls [path]
  [path]省略でカンレントディレクトリ内の一覧を表示
 また、[path]の存在確認にも使える。ファイルも指定可能（なければエラーとなる）
  -l 詳細一覧
  -t 時間の降順
  -a 隠しファイルも表示
  -R サブディレクトリ内も再起的に出力

----
***ファイルを表示 一気に最後まで
 cat [file]

----
***ファイルを表示　viみたいな感じでみれる？
 less [file]
  j/k 1行単位移動
  d/u 半ページ単位移動
  f/b ページ単位移動
  / で検索
 等々

----
***ファイルを表示　viで読み取り専用で開く。
 view [file]
 vi -R [file]
 どっちでも一緒。（だよね？）

----
***ファイルを画面ごとに表示
 more [file]
 処理結果をリダイレクトで受け取るとったりする ls -al | more とか
  enter １行進む
  space １ページ進む
  q 終了

----
***コピー
 cp [元ファイル/ディレクトリ] [先ファイル/ディレクトリ]
  -r ディレクトリ内もコピー
  -p タイムスタンプや属性情報等の情報も保持してcopy

----
***ファイル削除
 rm -rf [filename]
  -r ディレクリ内も削除
  -f 削除確認不要
  -i 削除確認を行う.bashrcでalias rm=&#039;rm -i&#039;としておくと安全

----
***ディレクトリ削除
 rmdir [path]
  -r 空ディレクトリでなくても削除
  -f 削除確認をしない
 rm -rでいいような？

----
***数を数える(word count)
 wc
  -l 行数を数える
 grep結果をリダイレクトして数を出したり、
 cat [file] | wc -l でファイルのレコード数を数えたり。。。

----
***ファイル内容比較（DF)
 diff [file1] [file2]
 diff -C 1 [file1] [file2] が使いやすいと教えてもらったが、人それぞれ。

----
***オブジェクトのグループと所有者を変更（スーパーユーザーで実行）
 chown hogehoge:hoge log
 logの所有者をhogeグループのhogehogeに変更

----
***オブジェクトの属性変更
 chmod 755 hoge
 hogeの属性を755に変更
 755は、前から順に「所有者：所有グループ：その他」に付与する権限
 数値は付与したい権限の合計を設定
  1 実行 
  2 書込 
  4 読込 
 だと思う。 755なら、所有者は実＋書＋読、他は実＋読

----
***オブジェクトの属性変更2
 chmod o+r hoge
 hogeの属性のotherにrを追加の意味。
 左はu(user),g(group),o(other),a(all)のいずれかを指定
 真ん中は+(追加),-(削除),=(置き換え)のいずれかを指定
 右はrwxを指定(ls -lで表示されるままの意味）
 [chomod ugo=rwx hoge] = [chmod a=rwx hoge] = [chmod 777 hoge]


----
***[path]の中のファイルを表示。検索もできる。
 find [path]
  -name [pattern]  [pattern]にマッチするファイルのみ表示。ワイルドカードは¥*
  -print ファイル名を表示。省略可能かも
 
----
***grep検索
 grep [pattern] [file]
 [file]の中から、[patterb]に一致する行を出力する。
 他のコマンドと組み合わせて使うといろいろ便利。
 ls -l | grep [pattern]　とか。
 -v [pattern]を満たすものを排除する。
 -n 結果に行番号をつける
 
 正規表現を使いたい場合は
 egrep か grep -e
 どっちが使えるかは環境による。（どっちも使えないかも）

----
***複数のソースの中身をまとめてgrep
 find [dir_path] -name [file_pattern] -print | xargs grep -n [pattern]
 例：カレントフォルダ以降の*.shについて、xxxxを含む列を調査
 find ./ -name *.sh -print | xargs grep -n xxxx

----
***列の抽出(AWK)
 awkというスクリプト言語を使うことで可能。
 ここでは、自分がよく使う、列の抽出について記述。
  awk &#039;{print $1}&#039; hoge    hogeから１列目のみを抽出（区切りはspaceかtab）
  awk &#039;BEGIN{FS=&quot;,&quot;}{print $2 &quot;,&quot; $1}&#039; hoge    hogeをカンマ区切りとみなし、「２列目,１列目」で出力。
  awk -F , {print $2 &quot;,&quot; $1}&#039; hoge   でも同意。ちなみに、FS（-F）はField Separatorという意味。
 awkは、他にも条件分岐や繰り返しも可能。wikipediaの説明が見やすかった。
 ほかにも、「何列目が300以上の行を抽出」なんてことも可能。正規表現による抽出はgrepでよいが、
 数値比較による抽出はこっちかも。

----
***フィールドの抽出
 cut
  -c 文字数指定
  -b バイト数指定
  -f 区切り文字（デフォルトはtab）で区切られたフィールド単位
  -d 区切り文字指定。-f とセットで使用
 例：
 cut -c1-10 &lt;FILE&gt; １文字目から10文字目まで
 cut -d &quot; &quot; -f2 &lt;FILE&gt; 半角空白を区切り文字とし、２フィールド目を抽出


----
***結果をソート
 sort
  -n 数値としてソート
  -k number   numberカラム目をソートキーにする
  -r 逆順でソート
 例：aaa.tmpを、２カラム目の数値列で逆順にソートして標準出力に出す
 sort -nkr 2 aaa.tmp

----
***

----
***tarの作成
 tar -cvf [tarファイル名] [対象のディレクトリ]
 で作成
 tar -tvf [tarファイル名]
 でtarファイルの中身を表示
 tar -xvf [tarファイル名]
 で解凍
 tarファイル作成時に絶対パス指定なら、そのパスに解凍
 相対パスしていないなら、カレントパスから相対パスに従い解凍
 ・・・かな？
 オプションよく知らんが、上記と以下を覚えれば十分っぽい。
 tar -zcvf [tar.gzファイル名] [対象のディレクトリ]
 で作成(gzipにする）
 tar -ztvf [tar.gzファイル名]
 でtar.gzipファイルの中身を表示
 tar -zxvf [tar.gzファイル名]
 で解凍(tar.gzipをいっきに解凍）

----
***gzip
 solarisはtar -zが使えない。（私の環境では使えなかった）
 gzip [file]
 [file]をgzに圧縮する。
 gunzip [file.gz]
 [file.gz]を解凍する。

----
***loggerによるlog出力
 /bin/logger -p local7.crit -i -t &quot;hoge&quot; &quot;hogehoge&quot;
 /etc/syslog.confの設定従いログをはく。
 （あきらかにコマンドではない・・・）
 （ログをはくアプリをシェルで組みたいなら知っておくべき？）

----
***IPレベルの疎通確認
 ping [ip]
 ip先への疎通確認。
 ping -s [ip] [byte]
 [byte]が[ip]に届くかどうか確認したいとき。
 
***IPへのルートを確認する。
 traceroute [ip]
 pingが届かない時、どこまで届いたか確認できる。


----
***リモートシェルを利用した、他のサーバでのコマンド実行。ファイルコピー
リモートサーバの./rhostsに、ローカルサーバのhost名、ユーザー名が記述されていることが条件。

***他のサーバでのコマンド実行
 rsh リモートサーバIPorHOST名 &quot;コマンド&quot;

***他のサーバからファイルコピー
 rcp リモートサーバIPorHOST名:ファイルパス COPY先パス
 逆もOK    </description>
    <dc:date>2010-08-24T10:31:26+09:00</dc:date>
    <utime>1282613486</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/ozuka/pages/19.html">
    <title>UNIXのシェル/コマンドの実行</title>
    <link>https://w.atwiki.jp/ozuka/pages/19.html</link>
    <description>
      リダイレクト
[command1] | [command2]
[command1]の標準出力を[command2]の標準入力とする。

[command1]の標準出力をリダイレクトしてcommand2の標準入力にする。
[command1] | xargs [command2]
こうすると、[command1]の結果を１行ずつ[command2]を実行する。
実際は１行ずつではなく、適当にまとめて実行してくれるとか何とか・・・。


実行結果を捨てる
$ command &gt;/dev/null 2&gt;&amp;1
# 下は間違い
$ command 2&gt;&amp;1 &gt;/dev/null
→標準エラー出力を標準出力のクローンとし、標準出力を/dev/nullのクローンとする。
　→標準出力は/dev/nullになるが、標準エラー出力は標準出力のまま。

shの引数
（どこかのサイトに綺麗にまとまっていたので、それをメモしたもの。）
$# 引数の数。
　「$ ./test.sh a b c」の場合、 $# を参照するとその値は 3 となる。 
　「$ .  test.sh a b c」の場合でも、 $# を参照するとその値は 3となる。 
$@ 全パラメータ。
　「$ ./test.sh a b c」の場合、 $@ を参照するとその値は 「a b c」 となる。 
$*  $@ と基本的に同じ。何が違うんだろう？ 
$0 実行時のコマンド名。
　「./test.sh」と実行した場合には「./test.sh」が、「/home/user/test.sh」と実行した場合には「/home/user/test.sh」が設定される。 
　ただし、「. test.sh」と実行した場合には「-bash」（そのユーザーが実行中のシェル）となった。(MacOS X Leopard)
$1 ～ $n それぞれの引数の値。
　1番目に指定した引数は $1 に、n 番目に指定した引数は $n に設定される。
    10番目以降の引数参照時は ${10} のように中括弧で囲む。

シェルスクリプト実行時の引数
 sh -v
 シェル実行前に、シェルの内容を出力    </description>
    <dc:date>2010-04-27T10:40:57+09:00</dc:date>
    <utime>1272332457</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/ozuka/pages/22.html">
    <title>TeraTerm</title>
    <link>https://w.atwiki.jp/ozuka/pages/22.html</link>
    <description>
      **teratermのタブ化

インストール時に、
Collector
も選択すれば、
タブ化できる。
というか、Collecterでタブ化する。

会社のPCはいつもTeraTermのウインドで溢れているから
ぜひ試してみよう。    </description>
    <dc:date>2010-04-22T23:57:38+09:00</dc:date>
    <utime>1271948258</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/ozuka/pages/16.html">
    <title>bashrc</title>
    <link>https://w.atwiki.jp/ozuka/pages/16.html</link>
    <description>
      サンプル
(前に使っていたもの。一緒に働いてた人からの貰い物です。ありがとうございました。)

#---------------------------------------
# export
#---------------------------------------
# follow bash original
#PS1=&#039;\s-\v\$ &#039;

if [ ! -z $BASH ]; then
	# follow bash only
	PS1=&#039;[\u@\W]\$ &#039;; export PS1;
	stty -istrip
else
	# follow bash / ksh
	PS1=&#039;[$LOGNAME@${PWD##*/}]$ &#039;; export PS1;
	EDITOR=vi; export EDITOR;
fi;

#---------------------------------------
# alias
#---------------------------------------
alias c=&#039;clear&#039;
alias ll=&#039;ls -le&#039;
alias la=&#039;ls -lae&#039;
alias lsd=&#039;ls -lae | sort +5&#039;
alias lss=&#039;ls -lae | sort +4&#039;
alias p=&#039;ps -ef&#039;
alias pp=&#039;ps -ejf&#039;

#
alias ee=&#039;vi&#039;
alias vv=&#039;vi -R&#039;
alias erc=&#039;vi ~/.bashrc&#039;
alias rrc=&#039;. ~/.bashrc&#039;
alias vvm=&#039;view ./makefile&#039;
alias vvsh=&#039;view ./*.sh&#039;
alias vvc=&#039;view ./*.c&#039;
alias vvconf=&#039;view /-/-/-/-/system.conf&#039;

#
alias rm=&#039;rm -i&#039;

#---------------------------------------
# function
#---------------------------------------

hh() {
cat &lt;&lt;__DOC__

hh
hhc
ffind [path] [exp]
ffgrep [path] [exp]
fffgrep [path] [exp-filename] [exp-grep]
today
now
sd 
tzc [filename] [exclude-file]
tzt [filename]
[NA.] tzx [filename]
zipr [filename] [path] {-i [exp]}

__DOC__

alias
echo &quot;&quot;
}

hhc() {
cat &lt;&lt;__DOC__

man [keyword] | col -bfx &gt; hoge.txt
diff -C 1 [file1] [file2]
touch -t YYYYMMDDhhmm.ss [file]

__DOC__
}

ffind() {
#	if [ &quot;$1&quot; == &quot;&quot; ]; then
	if [ -z $1 ]; then
		echo ffind [path] [exp]
	else
		find $1 -type f | grep $2
	fi;
}

ffgrep() {
	if [ -z $1 ]; then
		echo ffgrep [path] [exp]
	else
		find $1 -type f | xargs grep $2
	fi;
}

fffgrep() {
	if [ -z $1 ]; then
		echo fffgrep [path] [exp-filename] [exp-grep]
	else
		find $1 -type f | grep $2 | xargs grep $3
	fi;
}

today() {
	date &#039;+%Y%m%d&#039;
}

now() {
	date &#039;+%Y%m%d-%H%M%S&#039;
}

sd_help() {
cat &lt;&lt;__DOC__

tst /-/-/-/-/tst
bkup $HOME/-/-/bkup
bin /-/-/-/-/bin
conf /-/-/-/-/conf
src /-/-/-/-/src
inc /-/-/-/-/include
lib /-/-/-/-/lib
file /-/-/-/-/file
webap /-/-/-/-/webap
log/-/-/-/-/log
@etc /etc 
@init.d /etc/init.d
@ora $ORACLE_HOME
@ora.bin $ORACLE_HOME/bin
@ora.net $ORACLE_HOME/network/admin

__DOC__
}

sd () {
	case $1 in
	&quot;tst&quot;)		cd /-/-/-/-/tst;;
	&quot;bkup&quot;)		cd $HOME/-/-/-/-/bkup;;
	&quot;bin&quot;)		cd /-/-/-/-/bin;;
	&quot;conf&quot;)		cd /-/-/-/-/conf;;
	&quot;src&quot;)		cd /-/-/-/-/src;;
	&quot;inc&quot;)		cd /-/-/-/-/include;;
	&quot;lib&quot;)		cd /-/-/-/-/lib;;
	&quot;file&quot;)		cd /-/-/-/-/file;;
	&quot;webap&quot;)	cd /-/-/-/-/webap;;
	&quot;log&quot;)		cd /-/-/-/-/log;;
	&quot;@etc&quot;)		cd /etc;;
	&quot;@init.d&quot;)	cd /etc/init.d;;
	&quot;@ora&quot;)		cd $ORACLE_HOME;;
	&quot;@ora.bin&quot;)	cd $ORACLE_HOME/bin;;
	&quot;@ora.net&quot;)	cd $ORACLE_HOME/network/admin;;
	&quot;&quot;)		sd_help;;
	*)
		echo [$1] is unknown!!
		sd_help;;
	esac
}

tzc() {
	if [ -z $1 ]; then
		echo tzc [filename] [exclude-file]
	else
		tar cvf - $2 | gzip &gt; $1
	fi;
}

tzt() {
	if [ -z $1 ]; then
		echo tzt [filename]
	else
		gzcat $1 | tar tvf -
	fi;
}

tzx() {
	if [ -z $1 ]; then
		echo tzx [filename]
	else
		#gzcat $1 | tar xvf -
		echo NA.
	fi;
}

zipr() {
	if [ -z $1 ]; then
		echo zipr [filename] [path] {-i [exp]}
	elif [ -z $3 ]; then
		zip -r $1 $2
	else
		zip -r $1 $2 -i $3
	fi;
}    </description>
    <dc:date>2010-04-21T01:15:12+09:00</dc:date>
    <utime>1271780112</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/ozuka/pages/1.html">
    <title>TOP</title>
    <link>https://w.atwiki.jp/ozuka/pages/1.html</link>
    <description>
      **ここは備忘録です。

昨年、プライベートのPCをWindowsからmacに乗り換えました。
また、仕事もWindows系業務SEだったのに、なぜか組込みシステムのUnixサーバの面倒を見るハメに・・・。
そんなわけで、いろいろと勉強し直し中。

でも、もう記憶力で勝負できる年ではないんだ・・・。

だから、学んだこと、覚えたことは
ここにメモしていこう。
間違っていたら直していこう。

そんなページです。    </description>
    <dc:date>2010-04-20T20:27:00+09:00</dc:date>
    <utime>1271762820</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/ozuka/pages/14.html">
    <title>未整理</title>
    <link>https://w.atwiki.jp/ozuka/pages/14.html</link>
    <description>
      整理待ち

c

atoi(文字列ポインタ)
#include &lt;stdlib.h&gt;が必要。
文字列を数値に変換する。
ただし、数値チェックはしない。
atoi(&quot;a&quot;) &gt; 0
atoi(&quot;9a0&quot;) &gt; 9
atoi(&quot;a90&quot;) &gt; 0

exit(数値)
#include &lt;stdlib.h&gt;が必要
戻り値を返して処理を終了する。

printf(&quot;%d%sあいうえお&quot;,数値,文字列ポインタ);
#include &lt;stdio.h&gt;が必要。
標準出力に&quot;&quot;の中身を出力。

sleep(数値)
#include &lt;unistd.h&gt;が必要。
数値秒sleepする。

void *memset(void *buf, int ch, size_t n);
bufの頭からnバイトをch で埋める


char *strcpy(char *s1, const char *s2);
  *s1に*s2をコピー　*s1が*s2の長さ+1(\0の分)であることに注意

char *strcat(char *s1, const char *s2);
  *s1の後ろに*s2を追加

int strcmp(const char *s1, const char *s2);
  *s1と*s2比較　一致すれば0

UNIX ファイルの削除権限
ファイルを削除できるかどうかの権限は、
そのファイルの書込属性ではなく、
親ディレクトリへの書込み属性

oracle sql/plus
テーブルの列名を確認したいときは
desc テーブル名
結構便利

windows エクスプローラー
フォルダの表示をデフォルトにする。
ツール→フォルダオプション
ファイル種類タグからフォルダを選択。
詳細設定からexploreを選択し、既定に設定。
かなり便利    </description>
    <dc:date>2010-04-19T09:38:48+09:00</dc:date>
    <utime>1271637528</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/ozuka/pages/18.html">
    <title>JavaScript</title>
    <link>https://w.atwiki.jp/ozuka/pages/18.html</link>
    <description>
      ----
html内でJavaScriptを使う場合、htmlのヘッダーに
&lt;meta http-equiv=&quot;Content-Script-Type&quot; content=&quot;text/javascript&quot;&gt;
と記述するのが作法

htmlのなかに埋め込む場合
&lt;script type=&quot;text/javascript&quot;&gt;
　ここに記述
&lt;/script&gt;

外部のJavaScriptをhtmlに取り込む場合
&lt;script type=&quot;text/javascript&quot; src=hoge.js&quot;&gt;&lt;/script&gt;

----
コメント
 単一行 //
 複数行 /* 〜 */

----
文の終わりは&quot;;&quot;
ただし、&quot;;&quot;がなくても１行として成立する場合は、勝手につくらしい。

----
変数の宣言
 var 変数名;
 数値、文字、オブジェクト等、全てvarでよい。
 初期値を同時に定義するなら
 var 変数名 = 100;
 変数の型は、その中身による。
 数値に文字列を結合すると文字になる。
 var a = 1;   // aは数値の1
 a = a + 1;   // aは数値の2
 a = a + &#039;1&#039;; // aは文字列の&#039;21&#039;
 ちなみに、文字列は「+」で結合できる。

----
比較演算子
 == 値が等しいかどうか評価
 === 値と型が等しいかどうか評価
 != 値が等しくないかどうか評価
 !== 値と型が等しくないかどうか評価
   他は普通（&lt; &gt; &lt;= &gt;= )&lt;&gt;はない。

----
論理演算子
 ! 否定
 &amp;&amp; 論理積
 || 論理和

----
in演算子
 オブジェクトまたは配列内に、指定したプロパティが存在するかどうか

----
typeof演算子
 var a = 0;
 typeof(a);  //この場合、この結果はnumber


----
条件分岐
 if (A == B) {
   〜
 } else if (A == C) {
   〜
 } else {
   〜
 }

 ちなみに、
 x = a &gt; b ? a : b ;
 は
 if ( a &gt; b ){
     x = a;
 } else {
     x = b;
 }
 と同じ

----
繰り返し
 for ( var i = 0 ; i &lt; 100 ; i += 3){
     document.write(i);
 }

 for (;;){
 }
 で無限ループ

 var youbi = [&#039;月&#039;,&#039;火&#039;,&#039;水&#039;,&#039;木&#039;,&#039;金&#039;,&#039;土&#039;,&#039;日&#039;];
 for (var wk in youbi){
     document.write(youbi[wk] + &quot;&lt;br&gt;&quot;);
 }
 で&quot;月&quot;〜&quot;日&quot;まで出力。
 ただし、JavaScriptのこの文は取り出す順番がよくわからない。

 &#039;ループ前に判定（場合によってはwhile内を通らない）
 while (i &lt; 10){
     〜
     i++;
 }

 &#039;ループ後に判定（まず、while内を１度実行してからwhile判定
 do {
     〜
     i++;
 }while (i &lt; 10);

----
多分岐
 switch (a) {
     case 1:
         〜
         break;
     case 2:
         〜
         break;
     default:
         〜
 }
 breakがないと、処理が次のラベルにも入ってしまう。    </description>
    <dc:date>2010-04-18T21:44:37+09:00</dc:date>
    <utime>1271594677</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/ozuka/pages/3.html">
    <title>右メニュー</title>
    <link>https://w.atwiki.jp/ozuka/pages/3.html</link>
    <description>
      **更新履歴
#recent(20)


&amp;link_editmenu2(text=ここを編集)    </description>
    <dc:date>2009-07-05T12:28:24+09:00</dc:date>
    <utime>1246764504</utime>
  </item>
  </rdf:RDF>
