Linuxコマンドを連続して使う

2018年8月13日月曜日

種類
- ; (セミコロン)
- &(アンパサント)
- &&(アンパサントアンパサント)
- |(パイプ)
- ||(パイプパイプ)

使用例
コマンド1が終了したらコマンド2を実行する(実行結果に関わらず)
コマンド1が異常終了しても、コマンド2は実行されます
使い方
コマンド1 ; コマンド2 
使用例1. 5分後にdateコマンドを実行する
# sleep 5m ; date

コマンド1を実行しつつコマンド2も実行する
バックグラウンドでコマンド1を実行しつつ、コマンド2も実行できます
使い方
コマンド1 & コマンド2
使用例1. /home/egawa/egawa.shを実行しログを出力しつつ、viでegawa.txtを編集する
# sh /home/egawa/egawa.sh >> /var/log/egawa.log & vi /home/egawa/egawa.txt

コマンド1が正常終了したらコマンド2を実行する
コマンド1が正常終了したときのみ、コマンド2が実行されます
使い方
コマンド1 && コマンド2
使用例1. /home/egawaにディレクトリ移動ができたら、egawa.txtを作成する
# cd /home/egawa/ && touch egawa.txt
使用例2. ダウンロードしてきたtar.gzを解凍後、ディレクトリへ移動
# tar zxf xxx-2.x.tar.gz && cd xxx-2.x
使用例3. 何かのパッケージをソースからインストールする
# ./configure && make && make install

コマンド1の結果をコマンド2に渡して実行
コマンド1の結果をコマンド2へ渡して結果を出力します
使い方
コマンド1 | コマンド2
使用例1. ps auxで実行中のプロセスを出力し(ターミナルには出力されない)、その中からキーワードhttpdにマッチする行を出力する
# ps aux | grep httpd

コマンド1が異常終了したらコマンド2が実行される
コマンド1が異常終了したときのみ、コマンド2が実行されます
使い方
コマンド1 || コマンド2
使用例1. /home/egawa/abcにディレクトリ移動ができなかったら、/home/egawa/abcディレクトリを作成する
(使用例だと、ディレクトリがなかった場合エラーが出力されるが、その結果としてディレクトリが作成される)
# cd /home/egawa/abc || mkdir /home/egawa/abc

パーティション テーブル形式

2018年8月9日木曜日

MBR(MS-DOS Master Boot Record) は、10M バイト HDD 時代の IBM PC 用に 1980 年代初期に誕生しました
MBR は、記憶装置の先頭 512 バイトに位置し、ブートローダーとパーティション テーブルを持っています
ブートローダーは 446 バイトを占め、パーティション テーブルは 64 バイトを使用します
最後の 2 バイトは、ブート シグネチャを格納しています
MBR は最大 4 つの基本パーティションを保持し、各基本パーティションは 1 つの拡張パーティションを保持できます
各拡張パーティションは、複数の論理パーティションに分割されています
Linux は、理屈としては無限個の論理パーティションを管理できます
古い Linux では、カーネルが扱えるデバイス数に制限があったため、63 個の IDE パーティションと 15 個の SCSI パーティションに制限されていました
現在は、Udev がデバイス番号を動的に管理しているため、そのような制限はありません
MBR は、小さく柔軟性に欠けるため、その制限を避けるさまざまなワークアラウンドが考えられました
Logical Block Addressing (LBA) もそのひとつで、もともとのシリンダー、ヘッド、セクター (CHS) を使用したアドレッシングの制限を越えるために考え出されました
昔のハードディスクはブロック サイズが 512 バイトであるため、パーティション サイズが 2T バイトに制限されていました
子パーティション サイズの制限を 16T バイトに拡張するため、セクター サイズを 4096 バイトに拡張する所謂ハックがサポートされたのです


GPT(GUID Partition Table) は Unified Extensible Firmware Interface (UEFI) 仕様の一部ですが、Linux を使う場合には、GPT パーティションからブートするために EFI BIOS は不要で、旧来の BIOS とともに使用できます
Mac OS X と Windows はさまざまな制限がある必要であれば、Microsoft FAQ か、アップルの Secrets of the GPT を参照すると良いでしょう
GPT には、基本パーティションと論理パーティションの区別はなく、1 種類のパーティションがあるだけです
Gparted の出力を見て下さい Gparted でハードディスクをフォーマットするときに、図 2 のように gpt オプションを指定すると、GPT 形式が使用されます
GPT は MBR と比較して、以下の点で進歩しています
64 ビット ディスク ポインター採用により、最大 264セクターを管理でき、512 バイト セクターのハードディスクの場合は 8Zi バイト、4096 バイト セクターの場合は 8 倍となります
標準で最大 128 個のパーティションをサポートし、オペレーティング システムがそれ以上のパーティションをサポートしていても問題ありません
CHS や、基本、拡張、論理パーティションのようなワークアラウンドは不要です
Windows の場合、柔軟性に欠け、基本パーティションを必要としたため、よく問題となりました
GPT は、パーティション テーブルのコピーをディスクの先頭と最終セクタに格納しておくため、破壊等に強くなっています
GPT は、自分自身とパーティション テーブルの cyclic redundancy check (CRC) チェックサムを計算します
ディスクとパーティションにユニークな ID を付加します

GPT形式でHDDをフォマット
EFIシステムパーティション(ESP)
100MBをFAT32形式でフォーマット

locale-archive

2018年8月3日金曜日

Porteus-v4.0での出来事
locales-all パッケージから日本のロケールを抜きだし
/usr/lib/locale/ja_JP.utf8
に配置
GTKアプリのインターフェイス(メニュー)が日本語にならない終了の際下記のメッセージを吐く
(process:1909): Gtk-WARNING **: Locale not supported by C library.
Using the fallback 'C' locale.

下記コマンドで locale-archiveを作成・・・ locales パッケージ追加("Slackware"系不完全の為)
locale-gen ja_JP.UTF-8
/usr/lib/locale/locale-archive

日本語表示に成った

Porteusの日本語化のおぼえ書きメモ
ロケールの設定
/etc/profile.d/lang.sh

export LANG=ja_JP.UTF-8
#export LC_COLLATE=C

GUI環境で日本語を表示したい場合はLANG変数に「ja_JP.UTF-8」もしくは「ja_JP.utf8」を表記
LANG変数に「LANG=ja_JP.UTF-8 」を適応すると大概のアプリケーションのインターフェイスは日本語表記になる
locales-all パッケージには「ja_JP.utf8」のみ  ん〜

キーボードの設定
x11-xkb-utilsパッケージを追加
/etc/xdg/autostart/setxkbmap.desktop
[Desktop Entry]
Name=setxkbmap
Exec=setxkbmap -model jp106 -layout jp
Icon=
Terminal=false
Type=Application
StartupNotify=true
NoDisplay=true
Categories=Settings;

別な方法
/etc/X11/xorg.conf.d/ディレクトリにはユーザー定義のXの設定ファイルが置かれるので
例えば、/etc/X11/xorg.conf.d/10-keyboard.confを作成
Section "InputClass"
Identifier "system-keyboard"
MatchIsKeyboard "on"
Option "XkbLayout" "jp"
Option "XkbModel" "jp106"
Option "XkbOptions" "grp:alt_shift_toggle"
EndSection

現在のロケール設定を確認
# locale
LANG=ja_JP.UTF-8
LC_CTYPE="ja_JP.UTF-8"
LC_NUMERIC="ja_JP.UTF-8"
LC_TIME="ja_JP.UTF-8"
LC_COLLATE="ja_JP.UTF-8"
LC_MONETARY="ja_JP.UTF-8"
LC_MESSAGES="ja_JP.UTF-8"
LC_PAPER="ja_JP.UTF-8"
LC_NAME="ja_JP.UTF-8"
LC_ADDRESS="ja_JP.UTF-8"
LC_TELEPHONE="ja_JP.UTF-8"
LC_MEASUREMENT="ja_JP.UTF-8"
LC_IDENTIFICATION="ja_JP.UTF-8"
LC_ALL=

システムにインストールされているロケールの一覧
# locale -a
C
POSIX
ja_JP.utf8

環境変数意味
LC_CTYPE 文字の分類および大文字/小文字の変換
LC_NUMERIC 小数区切り文字 (または基数文字)、千の区切り文字、およびグループ化を指定します
LC_TIME 月の名前、曜日、一般的な完全表示や短縮表示など、日付や時刻の書式を指定します
LC_MONETARY ロケールの通貨記号、千の区切り文字、符号の位置、小数点以下の桁数など、通貨の書式を指定します
LC_COLLATE ロケールの照合順序および正規表現の定義を指定します
LC_MESSAGES ロケールのローカライズメッセージの記述言語、および肯定と否定の応答 (yes と no の文字列と表現) を指定します

Copyright © 2010 休眠 | Free Blogger Templates by Splashy Templates | Layout by Atomic Website Templates