tshizuku03の日記

主にoracleやLinuxコマンドについての記事を載せていきたいと思っています。

ダイレクトロードインサート

別表から大量データをINSERTする場合、APPENDヒントを利用することで、
通常のINSERT処理ではなく、ダイレクトロードインサート処理を実行できます。
このダイレクトロードインサート処理では、バッファ・キャッシュを経由せずにデータを
INSERTすることができ、また最低限のREDO情報のみが生成されるため、通常のINSERT処理よりも
大きくパフォーマンスを改善できる可能性があります。

※注意点
1.ハイ・ウォーター・マーク(HWM)以降のブロックにINSERTされる
→通常のINSERT処理であれば、空ブロックにデータをINSERTすることが可能ですが、
ダイレクトインサートは、HWM以降のブロックにデータがINSERTされる。

2.表単位のロックが獲得される
→通常のINSERT処理はレコード単位でロックが獲得されますが、ダイレクトロードインサート処理では
表単位でロックが獲得されます。

3.ダイレクトロードインサート処理後、トランザクションを完了する必要がある
ダイレクトロードインサート処理の実行直後は、必ずトランザクションを完了させる(COMMIT・ROLLBACK)必要がある

 

基本コマンドとファイル操作4

**tac コマンド
ファイルの内容を最後の行から表示します。

**tee コマンド
標準入力から読み込んだデータを標準出力とファイルの両方に出力します。
実行例
[root@node001 ~]# nl test1.txt | tee test2.txt | head -2
1 aaa
2 bbb
[root@node001 ~]# cat test2.txt
1 aaa
2 bbb
3 ccc
4 ddd


**コマンドを連続実行する「;」「&&」「||」
構文
例1)コマンド1、コマンド2を順々に実行する
$コマンド1;コマンド2
例2)コマンド1が実行できれば、コマンド2を実行する
$コマンド1 && コマンド2
例3)コマンド1が実行できなければ、コマンド2を実行する
$コマンド1 || コマンド2

**grep コマンド
テキストデータないの文字列検索を行う。
構文

>-vパターンに一致しない行を表示する

-n行番号を表示する-lパターンと一致するファイル名を表示-i大文字と小文字を区別しないで検索を行う

 構文
$grep [オプション]検索する文字列パターン[ファイル名]...n

主なオプション説明
-v パターンに一致しない行を表示する
-n 行番号を表示する
-l パターンと一致するファイル名を表示
-i 大文字と小文字を区別しないで検索を行う

実行例

[root@node001 ~]# grep -n aaa test1.txt
1:aaa
[root@node001 ~]# cat test1.txt | grep -i aaa
aaa
[root@node001 ~]# cat test1.txt | grep -l aaa
(標準入力)
[root@node001 ~]# cat test1.txt | grep -v aaa
bbb
ccc
ddd

fff

ppp

[root@node001 ~]# #grep -l[一致するファイル名表示] [ファイル名]
[root@node001 ~]# cat test1.txt
aaa
bbb
ccc
ddd
fff
[root@node001 ~]# grep -l "aaa" *
mylist.txt
test1.txt
test2.txt

 

[root@node001 ~]# find [検索ディレクトリ][ファイル名検索]

[root@node001 ~]# find . -name "test1*.txt"
./test1.txt
./test/test1.txt

 

 **tail [オプション]ファイル名...n

主なオプション説明
-n 行数を数字で指定、末尾のn行部分を表示
-f ファイルの内容が増え続けているものと家庭し、常にファイルの最終部分を読み続けようとする

 

**tr コマンド
標準入力であるキーボードから入力した文字を指定したフォーマットに変換して、
標準出力であるディスプレイに表示することができます。
構文
tr [オプション][文字群1 [文字群2]]

主なオプション説明
-d 文字群1で合致した文字を削除する
-s 文字群1で合致した文字の繰り替えしを1文字に置き換える

 実行例

 [root@node001 ~]# cat test1.txt
aaa
bbb
ccc
ddd
[root@node001 ~]# tr a-z A-Z < test1.txt
AAA
BBB
CCC
DDD

 **tr コマンド
標準入力であるキーボードから入力した文字を指定したフォーマットに変換して、
標準出力であるディスプレイに表示することができます。
構文

tr [オプション][文字群1 [文字群2]]

主なオプション説明
-d 文字群1で合致した文字を削除する
-s 文字群1で合致した文字の繰り替えしを1文字に置き換える

実行例

[root@node001 ~]# cat test1.txt
aaa
bbb
ccc
ddd
[root@node001 ~]# tr a-z A-Z < test1.txt
AAA
BBB
CCC
DDD

**set コマンド
構文
set[オプション][編集コマンド][ファイル名]

主なオプション説明
-i 編集結果を直接ファイルに書き込む
-s/パターン/置換文字列 ファイル各行を対象に、最初にパターンに合致する文字列を置換文字列に変換
-s/パターン/置換文字列/g ファイル内全体を対象に、パターンに合致する文字列を置換文字列に変換
d パターンに合致する行を削除
p パターンに合致する行を表示

 実行例

[root@node001 ~]# sed 's/aaa/AAA/g' test1.txt
AAA
bbb
ccc
ddd
fff
ppp
AAA
[root@node001 ~]# sed -n '/aaa/p' test1.txt
aaa
aaa
[root@node001 ~]# sed '1d' test1.txt
bbb
ccc
ddd
fff
ppp
aaa
 

**wc コマンド
ファイル内のバイト数、単語数、行数を表示するにはwcコマンドを使用します。
構文

wc [オプション][ファイル名]

<table class="table2" border="1">
<tbody>
<tr>
<th><span style="color: #ff0000;">主なオプション</span></th>
<th><span style="color: #ff0000;">説明</span></th>
<tr>
<td>-c</td>
<td>バイト数だけ出力する</td>
</tr>
<tr>
<td>-l</td>
<td>行数だけを出力する</td>
</tr>
<tr>
<td>-w</td>
<td>単語数だけ出力する</td>
</tr>
</tbody>
</table>

 実行例

[root@node001 ~]# wc -l test1.txt
8 test1.txt
[root@node001 ~]# wc -c test1.txt
29 test1.txt
[root@node001 ~]# wc -w test1.txt
7 test1.txt

 **expand コマンド
引数で指定されたファイル内にあるタブをスペースに変換する場合に使用します。
構文
expand [オプション][ファイル名]

主なオプション説明
-i 行頭のタブのみスペースへ変換する
-t 置き換え桁数を指定する

基本コマンドとファイル操作3_ファイル記述子

**file コマンド
ファイルの種類を調べるコマンド

[root@node001 ~]# file test1.txt
test1.txt: ASCII text ###文字コード『ASCII』のテキストファイ
[root@node001 ~]# file test
test: directory     ###ディレクトリ

 

**ファイル記述子
・0番:標準入力
・1番:標準出力
・2番:標準エラー


構文
例1)カレントディレクトリのファイルリストをfile1に格納する
$ls > file1

例2)1>を使用してファイルリストをfile2に格納する(例1と同様)
$ls 1 > file2

例3)file1に、/binのファイルリストを追記して保存する
$ls /bin >> file1

例4)lsコマンドを実行してエラーが出力された場合のみfile3ファイルに格納する
$ls 存在しないファイル 存在するファイル 2 > file3

例5)標準出力、標準エラーの両方をbothファイルに格納する
$ls 存在しないファイル 存在するファイル & > both
以下でも同様の結果を得られる
$ls 存在しないファイル 存在するファイル > & both
$ls 存在しないファイル 存在するファイル 1 > both 2 > &1

 

例6)コマンド1を実行した結果の標準出力、標準エラー出力の両方をbothファイルに格納する
$コマンド1 & > both
以下でも同様の結果を得られる
$コマンド1 > & both

 

例7)file1の内容を標準入力からコマンド1に取り込む
$コマンド1 < file1

 

例8)file1の内容を標準入力からコマンド1に取り込み、コマンド1の標準出力を
コマンド1の標準入力に渡してさらにデータを加工することができます。
$コマンド1 < file1 | コマンド2
実行例

[root@node001 ~]# cat test1.txt
aaa
bbb
ccc
[root@node001 ~]# cat test1.txt | head -2
aaa
bbb
[root@node001 ~]#

 

**dev/null ファイルは特殊なデバイスファイルです。
このファイルに書かれたものは全て消去され、このファイルを読み込むと常に
EOF(End Of File)が帰ります。
実行例
$コマンド > /dev/null 2 > &1
標準出力先を/dev/null とする。標準エラー出力先は、現在の標準出力先(/dev/null)とする

基本コマンドとファイル操作2

LPIC101を勉強しようと思う。基本コマンドとファイル操作第2弾

 

** su コマンド
一時的にアカウントを別のユーザのものに切り替える

** sudo コマンド
事前に管理者から許可されている管理用コマンドを実行する

 

** mv コマンド
ファイルやディレクトリの移動にはmvコマンドを使用します。
mvコマンドの最後の引数に指定されたディレクトリに移動元のファイル(またディレクトリ)が同じ名前で移動します。
構文
mv[オプション]移動元ファイル名...n ディレクトリ名
mv[オプション]移動元ディレクトリ名...n ディレクトリ名

主なオプション説明
-i 移動先に同名ファイルが存在する場合、上書きするか確認する
-f 移動先に同名ファイルが存在しても、強制的に上書きする

 

**ワイルドカード:ファイル名とパターン照合

記号説明
? 任意の一文字
* 0文字以上の文字列
[...] []内に含まれる任意の一文字
[!...] []内に含まれない任意の一文字
説明
file.? file.o、file.aが一致
[abc] a、b、cのいづれか。[a-c]と同じ
[!0-9] 0から9以外の文字列
[a-zA-Z0-0] すべてのアルファベット、数字、アンダースコア、ダッシュ

 

**cp コマンド

主なオプション説明
-i コピー先に同名ファイルが存在する場合、上書きするか確認する
-f コピー先に同名ファイルが存在しても、強制的に上書きする
-p コピー元の所有者、タイムスタンプ、アクセス権などの情報を保持したままコピーする
-R コピー元のディレクトリ階層をそのままコピー

 

**tar コマンド
複数のファイルを1つにまとめたデータのことをアーカイブファイルと呼びます。
tarコマンドはアーカイブファイルの管理に使用されます。

構文
tar [オプション]ファイル名またはディレクトリ名・・・n

主なオプション説明
-c アーカイブファイルを作成する
-t アーカイブファイルの内容を表示する
-x アーカイブファイルを展開する
-f アーカイブファイルを指定する
-v 詳細情報を表示する
-j bzip2を経由してアーカイブをフィルタする
-z gzipを経由してアーカイブをフィルタする

 

**dd コマンド
コピー入力あるいは出力にデバイスを指定する場合はddコマンドを使用します。
ddコマンドにはコピー部分の指定をしたり、データ変換を行う機能もあります。
実行例

[root@node001 ~]# dd if=image.iso of=/dev/sdb
if(input File):入力元
of(output File):出力先指定

 

基本コマンドとファイル操作

LPIC101を勉強しようと思う。

まずは、基本コマンドとファイル操作

⚪️シェルはLinuxでOSとユーザーの仲立ちをするユーザインタフェース。
ユーザがコマンドを解釈して、実行するインタプリンタで、ユーザはシェルを通じてOSを扱うことができます。

**シェル変数
設定されたシェルだけが使用される変数です。子プロンプトには引き継がれません。

 

**環境変数
設定されたシェルとそのシェルで起動したプログラムが使用する変数。子プロンプトには引き継がれます。

現在のシェルで定義されているシェル変数の一覧を表示するには、setコマンドを引数なしで実行します。

[root@node001 ~]# echo $LANG
ja_JP.UTF-8
[root@node001 ~]# echo $HISTFILE
/root/.bash_history


 

 

**exportコマンド
環境変数を設定できます。
環境変数は子プロセスとして起動したアプリケーションに引き継がれるので、アプリケーションから利用できる。

また、子プロセスも参照できるようにするコマンドはexportとdeclareコマンドがある。

#変数TESTを子プロセスも参照できるようにする
[root@node001 ~]# export TEST
[root@node001 ~]# declare -x TEST ##-xオプションで環境変数としてエクスポートする

 

**bashシェル
bashではシェル変数PS1はコマンドプロンプト、シェル変数PS2は2次プロンプトとして定義されています。
2次プロンプトは、まだコマンドラインが完了せず、継続行であることを表します。

 

**dateコマンド
現在の日時を設定、変更するコマンドです。

書式説明
%A 曜日 Sunday,日曜日
%B January,1月
%H 00,23
%M 00,59
%c 日時 2016年 3月30日 12時16分30秒
%x 日付 2016年 3月30日

[root@node001 ~]# date +%c
2016年05月03日 14時57分36秒

 

** manコマンド
構文
man [オプション][章]コマンドまたはキーワード

 

** history コマンド
構文
history [オプション][履歴数]

主なオプション説明
-c そのシェルの実行履歴を消去する
-d[履歴番号] 指定した履歴番号のコマンドをそのシェルの履歴から消去する

**シェル変数HISTFILE(bash
bashのシェル変数HISTFILEは、コマンド実行履歴を保存するファイル名を指定します。
デフォルト値は ~/.bash_history です。

[root@node001 ~]# #実行例
[root@node001 ~]# whoami
root
[root@node001 ~]# echo $HISTFILE
/root/.bash_history

 

HTMLのtableタグ

ブログを書く為に、HTMLのtableタグを備忘録として残します。

 列-A列-B
行-1 A-1 B-1
行-2 A-2 B-2
行-3 A-3 B-3

<table class="table2" border="1">
<tbody>
<tr>

    <th> </th><th><span style="color: #ff0000;">列-A</span></th><th>       <span style="color: #ff0000;">列-B</span></th></tr>
<tr>
    <td>行-1</td>
    <td>A-1</td>
    <td>B-1</td>
</tr>
<tr>
    <td>行-2</td>
    <td>A-2</td>
    <td>B-2</td>
</tr>
<tr>
    <td>行-3</td>
    <td>A-3</td>
    <td>B-3</td>
</tr>
</tbody>
</table>