ラベル guide の投稿を表示しています。 すべての投稿を表示
ラベル guide の投稿を表示しています。 すべての投稿を表示

共有ライブラリへのパス

2018年11月27日火曜日

共有ライブラリーのデフォルトでは /lib と /usr/lib にパスが通っている
それ以外のパスを追加したい場合

1.特定アプリの場合
環境変数「LD_LIBRARY_PATH」に設定する
環境変数なので設定した環境変数が参照できるプログラムしか有効にはならない
一時的に設定したい場合は以下のようにする

$ LD_LIBRARY_PATH=/usr/local/lib:/usr/lib; export LD_LIBRARY_PATH
または
$ export LD_LIBRARY_PATH=/usr/local/lib:/usr/lib

すでに「LD_LIBRARY_PATH」に値が設定されており、そこに追加したい場合は、以下のようにする

$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib:/usr/lib

2.システム全体で設定
/etc/ld.so.conf」に設定する
システム全体でライブラリパスを設定したい場合は、/etc/ld.so.confファイルにライブラリへのパスを追記する
ubuntu10.04やFedora14では以下のように書かれており、直接書くのではなく、「/etc/ld.so.conf.d」に置かれた.conf拡張子のファイルを読み込んでいます

$ cat /etc/ld.so.conf
include /etc/ld.so.conf.d/*.conf

なので、同様に通したいパスを書いたXXX.confのようなファイルを追加してもよい
設定ファイル/etc/ld.so.confからキャッシュファイル/etc/ld.so.cacheへキャッシュ化を行います
OSは、検索速度を上げるために、ライブラリパスをキャッシュファイルから検索します
従って、設定ファイルの内容を元にキャッシュファイルを更新する必要があります
# ldconfig

確認
# ldconfig -v

Windows 10でBIOS/UEFIセットアップ画面を確実に開く方法

2018年10月17日水曜日

Windows 10でBIOS/UEFIセットアップ画面を確実に開く方法
USBメモリから起動できるようにするなどのためにBIOSやUEFIのセットアップ画面を表示させたいことがある
しかしWindows 10では起動方法が変更されたため、セットアップ画面を簡単に開けない
Windows OSをクリーンインストールするためにUSBメモリから起動できるようにしたり、仮想化技術を利用するためにIntel VT/AMD-Vなどの機能を有効にしたりするために、BIOSやUEFIのセットアップ画面を開きたい場合がある
ただ、Windows 8.x以降、Windows OSの起動方法が変更になり、再起動時にBIOS/UEFIセットアップ画面を呼び出すキーを押しても、Windows OSが起動してしまい、BIOS/UEFIセットアップ画面が表示されないことも多い

BIOS/UEFIセットアップ画面を呼び出す方法
完全に電源オフから起動がポイント
BIOS/UEFIセットアップ画面を開くには、起動時に特定のキーを押せばよい
しかしWindows 8.1/10で導入された「高速スタートアップ」機能では、前回の状態(シャットダウン直前のメモリやCPUの状態)を「休止状態としてディスクに保存」しておき、「起動時にはその休止状態から復帰」させている
これにより、起動時の初期化処理を省略して、起動を高速化している
高速スタートアップによって、起動が高速化される半面、BIOS/UEFIセットアップ画面を開くためのキー入力を受け付けるタイミングがなくなってしまった
そこで、確実にBIOS/UEFIセットアップ画面を開くためには、一度、完全にシャットダウンしてから起動することで、キー入力のタイミングを得る必要がある
そのためには、[スタート]メニューの[歯車(設定)]をクリックし、[Windowsの設定]画面で[更新とセキュリティ]を選択し、[更新とセキュリティ]画面の左ペインで「回復」を選択、右ペインの「PCの起動をカスタマイズする」で[今すぐ再起動]ボタンをクリックする
PCが再起動し、[オプションの選択]画面が開くので、ここで[PCの電源を切る]を選択する
これで、次回起動時には高速スタートアップがオフの状態で起動する
完全に電源オフにする(1) 完全に電源オフにする(1)
[スタート]メニューで[歯車(設定)]アイコンをクリックして、[Windowsの設定]画面を開く
ここで[更新とセキュリティ]を選択する
完全に電源オフにする(2) 完全に電源オフにする(2)
[更新とセキュリティ]画面の左ペインで[回復]を選択し、右ペインの「PCの起動をカスタマイズする」の[今すぐ再起動]ボタンをクリックする
完全に電源オフにする(3) 完全に電源オフにする(3)
再起動後、この[オプションの選択]画面が表示されるので、ここの[PCの電源を切る]をクリックする
これで完全にPCの電源がオフになり、次回起動時には高速スタートアップが無効になった状態になる
BIOS/UEFIセットアップ画面を開くためのキーが分からず、何度もチャレンジする可能性があるのであれば、いちいち[オプションの選択]画面を開くのは面倒なので、一時的に高速スタートアップを無効化するのもよい

BIOS/UEFIセットアップ画面を開く

完全にシャットダウンしたら、電源ボタンを押して、すかさずBIOS/UEFIセットアップ画面を開くためのキーを押そう
その際、キーは押したままにせずに、キーを連打するとよい
このキーは、PCベンダーや機種などによって異なるが、[Del]キーや[F2]キーが多いようだ
もし、BIOS/UEFIセットアップ画面を開くためのキーが分からないのであれば、この2つのキーを順番に連打してみるとよいだろう
これでダメな場合は、[F1]キーや[Esc]キーを試してみよう
BIOS/UEFIセットアップ画面を開く(1) BIOS/UEFIセットアップ画面を開く(1)
電源をオンにすると、BIOS/UEFIベンダーやメーカーのロゴが一瞬表示されるので、ここですかさずBIOS/UEFIセットアップ画面を開くキーを押す
画面には、何のキーでセットアップ画面が呼び出せるか書いてあることもある
BIOS/UEFIセットアップ画面を開く(2) BIOS/UEFIセットアップ画面を開く(2)
タイミング良くキーが入力できると、このようなBIOS/UEFIセットアップ画面が開くので、起動の順番を変更してUSBメモリから起動できるようにしたり、仮想化支援機能を有効にしたりする
最近のPCは起動が速くなっており、キーを押すタイミングが短くなっている
正しいキーを押しても、Windows 10が起動してしまうこともあるので、根気よく何度か試すことも重要だ
また、Surface Proなどのようにタブレット型の場合、BIOS/UEFIセットアップ画面を開くには、音量ボタンが割り当てられているケースが多い
Surface Proの場合、[音量を上げる]ボタンを押しながら、電源ボタンを押し、画面にSurfaceロゴが表示されたら[音量を上げる]ボタンを離すとUEFIセットアップ画面が表示される
機種によっては、[音量を下げる]ボタンの場合や、起動時の画面にUEFIセットアップ画面を開くボタンが表示されて、そこをタップすることで開く場合などもある

UEFI+Windows 10ならば[オプションの選択]画面から画面呼び出し可能

ファームウェアがUEFIでWindows 10が起動するのであれば、PCの起動時にキーを入力しなくても、Windows 10の[オプションの選択]画面からUEFIセットアップ画面を開くことが可能
具体的には、完全にPCの電源を切る方法と同様、[更新とセキュリティ]画面を開き、左ペインで「回復」を選択、右ペインの「PCの起動をカスタマイズする」で[今すぐ再起動]ボタンをクリックする
[オプションの選択]画面が開くので、ここで[トラブルシューティング]、[詳細オプション]、[UEFIファームウェアの設定]の順にクリックし、再起動を実行すればよい
再起動後、自動的にUEFIセットアップ画面が表示される
[オプションの選択]画面からUEFIセットアップ画面を開く(1) [オプションの選択]画面からUEFIセットアップ画面を開く(1)
「完全に電源オフにする」にすると同様に、[更新とセキュリティ]で[今すぐ再起動]ボタンをクリックし、この[オプションの選択]画面を開く
ここで[トラブルシューティング]をクリックする
[オプションの選択]画面からUEFIセットアップ画面を開く(2) [オプションの選択]画面からUEFIセットアップ画面を開く(2)
[トラブルシューティング]画面になったら、[詳細オプション]をクリックする
[オプションの選択]画面からUEFIセットアップ画面を開く(3) [オプションの選択]画面からUEFIセットアップ画面を開く(3)
[詳細オプション]画面の[UEFIファームウェアの設定]をクリックする
ファームウェアがUEFIでない場合(BIOSの場合)は、この項目が表示されないので、その場合は電源を完全のオフにして、起動時に特定のキーを入力する方法でBIOSセットアップ画面を開くこと
[オプションの選択]画面からUEFIセットアップ画面を開く(4) [オプションの選択]画面からUEFIセットアップ画面を開く(4)
ここで[再起動]ボタンをクリックすると、再起動が実行され、UEFIセットアップ画面が開く
[オプションの選択]画面からUEFIセットアップ画面を開く(5) [オプションの選択]画面からUEFIセットアップ画面を開く(5)
UEFIセットアップ画面が自動的に開く
ここで必要な設定を行えばよい
BIOS/UEFIセットアップ画面で必要な設定を行ったら、[Save & Exit]や[Exit]などの項目(タブ)を選択し、変更を保存してBIOS/UEFIセットアップを終了すればよい
再起動が実行された後、USBメモリからの起動など、BIOS/UEFIセットアップの設定変更が有効になる
BIOS/UEFIセットアップ画面を閉じる BIOS/UEFIセットアップ画面を閉じる
BIOS/UEFIセットアップ画面で必要な設定を行ったら、[Save & Exit]や[Exit]などの項目(タブ)を選択して、「Save Changes……」などを選択し、変更した設定を保存して再起動を行う
 Windows 10では、前回のデバイスの状態などを保存し、それを読み込むことで起動を速くする「高速スタートアップ」と呼ばれる機能がデフォルトで有効になっている(元々はWindows 8で導入された機能)
 この機能でWindows 10の起動が速くなり、電源オンからWindows OSが使えるようになるまでの時間が短縮される
ただ、「高速スタートアップ」が有効になっていると、新しく接続した周辺機器や古い規格の周辺機器を認識できなかったり、BIOSの設定変更が反映されなかったりするなどの不具合が起きることがある
このような場合は、以下の手順で「高速スタートアップ」を無効化すればよい

●高速スタートアップを無効に設定する方法

 まず、[コントロールパネル]-[電源オプション]を開くか、[Windows]+[R]キーで[ファイル名を指定して実行]ダイアログの入力ボックス(Cortanaの入力ボックスでも可)に「powercfg.cpl」と入力すると、[電源オプション]画面が開く
 [電源オプション]画面で以下の操作を行うと、高速スタートアップを無効にできる
[電源オプション]画面 [電源オプション]画面
[電源オプション]画面の左ペインで「電源ボタンの動作の選択する」((1))をクリックする
[電源ボタンの定義とパスワード保護の有効化]画面(1) [電源ボタンの定義とパスワード保護の有効化]画面(1)
[電源ボタンの定義とパスワード保護の有効化]画面が開くので、ここで「現在利用可能ではない設定を変更します」((1))をクリックする
すると、グレーアウトしていて設定変更が行えない「シャットダウン設定」((2))が、設定変更可能になる
[電源ボタンの定義とパスワード保護の有効化]画面(2) [電源ボタンの定義とパスワード保護の有効化]画面(2)
「シャトダウン設定」の「高速スタートアップを有効にする」((1))のチェックを外して、[変更の保存]ボタンをクリックする
これで、次回以降、高速スタートアップが無効な状態で起動するようになる
ただし起動時間が長くなるので注意したい

●高速スタートアップを一時的に無効化する方法

 電源オフにした状態でも高速スタートアップが有効だと、デバイスを追加してもデバイスが認識されないことがある
このような場合、一時的に高速スタートアップを無効にしてから起動するとよい
再起動を[Shift]キーを押しながら実行
再起動を[Shift]キーを押しながら実行
[スタート]ボタン((1))-[電源]ボタン((2))を押し、メニューで[Shift]キーを押しながら[再起動]((3))を選択する
[オプションの選択]画面が表示されるまで、[Shift]キーを押したままにする
[オプションの選択]画面 [オプションの選択]画面
[オプションの選択]画面が開くので、[PCの電源を切る]((1))を選択する
次にPCの電源を入れたときのみ、高速スタートアップが無効な状態で起動する
 これで高速スタートアップが一時的に無効化されて起動するため(コールドブートという)、高速スタートアップが原因となる不具合が解消される可能性がある

Windows 10で素早くUEFIの設定画面を起動する

Windows 10でUSBメモリから起動するなど、起動デバイスの順番を変更したいようなとき、UEFIで起動順番を設定する必要がある
また、システムの設定を変更するためにUEFIの設定画面を呼び出したいこともあるだろう
このような場合、Windows 10の[設定]-[更新とセキュリティ]-[回復]画面を開いて、[今すぐ再起動する]をクリック(もしくは[Shift]キーを押しながら、いずれかの[再起動]メニューを実行)し、[オプションの選択]画面で[トラブルシューティング]を選び、[トラブルシューティング]画面で[詳細オプション]、[詳細オプション]画面で[UEFIファームウェアの設定]と次々と選択していく必要があり、工数が多い だがWindows 10 Anniversary Update以降ならば、Shutdownコマンドを使って、素早くUEFIの設定画面を呼び出せるようになっている
そのためには、まずコマンドプロンプトを[管理者として実行]で起動し、以下のコマンドを実行する
「/fw」がファームウェア(UEFI)を開くオプションだ
このオプションは、Windows 10 Anniversary Updateで追加されたようだ
このコマンドで、再起動が実行され、UEFIの設定画面が自動的に起動される
デフォルトでは再起動まで30秒待つが、すぐに再起動したければ、「shutdown /r /fw /t 0」のようにしてタイムアウト時間を0秒にすればよい
管理者権限でコマンドプロンプトを開く 管理者権限でコマンドプロンプトを開く
  (1)[スタート]メニューを開く
  (2)[コマンドプロンプト]を右クリックする
  (3)[その他]-[管理者として実行]を選択する
コマンドプロンプトで「Shutdownコマンド」を実行する
コマンドプロンプトで「Shutdownコマンド」を実行する
  (1)コマンドプロンプトで「shutdown /r /fw」を実行する
再起動が実行される 再起動が実行される
  (1)「サインアウトしようとしています」ダイアログが表示され、しばらくすると(デフォルトでは30秒待つ)再起動が実行される
再起動後にUEFIの画面が表示される 再起動後にUEFIの画面が表示される

はじめてのKaos linux

2018年9月15日土曜日

HP:https://kaosx.us/
インストールは英語で
再起動後 日本後化
System Settings → Personalizationの『Regional Settings』をクリック
各項目を日本語になるように設定

日本語入力
端末で
sudo pacman -S fcitx-mozc fcitx-gtk2 fcitx-gtk3 fcitx-qt5 kcm-fcitx

環境変数の設定
.xprofileファイルを作成
#!/bin/sh
export XMODIFIERS=@im=fcitx
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx

フォント追加
/usr/share/fontsフォルダーに日本語フォントを入れる
Adobe Fonts:https://github.com/adobe-fonts

パッケージのアップグレード(pacmanにて)
sudo pacman -Syu


google chromeのインストール
参考:https://linuxhint.com/install-google-chrome-on-arch-linux/

 Kaos > ~ > sudo pacman -S git
パスワード:
警告: git-2.18.0-1 は最新です -- 再インストール
依存関係を解決しています...
衝突するパッケージがないか確認しています...
警告: テーブル表示をするのにカラムが不十分です
パッケージ (1) git-2.18.0-1
合計ダウンロード容量: 5.20 MiB
合計インストール容量: 32.67 MiB
最終的なアップグレード容量: 0.00 MiB
:: インストールを行いますか? [Y/n] y
:: パッケージを取得します...
git-2.18.0-1-x86_64 5.2 MiB 1415K/s 00:04 [--------------------] 100%
(1/1) キーリングのキーを確認 [--------------------] 100%
(1/1) パッケージの整合性をチェック [--------------------] 100%
(1/1) パッケージファイルのロード [--------------------] 100%
(1/1) ファイルの衝突をチェック [--------------------] 100%
(1/1) 空き容量を確認 [--------------------] 100%
:: パッケージの変更を処理しています...
(1/1) 再インストール git [--------------------] 100%
 Kaos > ~ > cd ~/Downloads
 Kaos > ~ > Downloads > git clone https://aur.archlinux.org/google-chrome.git
Cloning into 'google-chrome'...
remote: Enumerating objects: 555, done.
remote: Counting objects: 100% (555/555), done.
remote: Compressing objects: 100% (370/370), done.
remote: Total 555 (delta 225), reused 511 (delta 185)
Receiving objects: 100% (555/555), 137.70 KiB | 240.00 KiB/s, done.
Resolving deltas: 100% (225/225), done.
 Kaos > ~ > Downloads > ls
google-chrome/
 Kaos > ~ > Downloads > cd google-chrome/
 Kaos > ~ > Downloads > google-chrome > makepkg -s
==> パッケージを作成: google-chrome 69.0.3497.92-1 (2018年09月15日 16時46分22秒)
==> ランタイムの依存関係を確認...
==> 欠けている依存パッケージをインストール...
パスワード:
依存関係を解決しています...
衝突するパッケージがないか確認しています...
パッケージ (3) 新しいバージョン 最終的な変化 ダウンロード容量
main/at-spi2-atk 2.26.2-1 0.20 MiB 0.05 MiB
main/at-spi2-core 2.28.0-1 0.94 MiB 0.17 MiB
main/gtk3 3.24.0-1 46.84 MiB 7.26 MiB
合計ダウンロード容量: 7.48 MiB
合計インストール容量: 47.98 MiB
:: インストールを行いますか? [Y/n] y
:: パッケージを取得します...
at-spi2-core-2.28.0... 173.0 KiB 294K/s 00:01 [--------------------] 100%
at-spi2-atk-2.26.2-... 55.0 KiB 1965K/s 00:00 [--------------------] 100%
gtk3-3.24.0-1-x86_64 7.3 MiB 1640K/s 00:05 [--------------------] 100%
(3/3) キーリングのキーを確認 [--------------------] 100%
(3/3) パッケージの整合性をチェック [--------------------] 100%
(3/3) パッケージファイルのロード [--------------------] 100%
(3/3) ファイルの衝突をチェック [--------------------] 100%
(3/3) 空き容量を確認 [--------------------] 100%
:: パッケージの変更を処理しています...
(1/3) インストール at-spi2-core [--------------------] 100%
(2/3) インストール at-spi2-atk [--------------------] 100%
(3/3) インストール gtk3 [--------------------] 100%
:: トランザクション後のフックを実行...
(1/3) Compiling GSettings XML schema files...
Warning: Schema “org.freedesktop.Telepathy.Logger” has path “/apps/telepathy-logger/”. Paths starting with “/apps/”, “/desktop/” or “/system/” are deprecated.
(2/3) Updating icon theme caches...
(3/3) Updating the desktop file MIME type cache...
==> ビルドタイムの依存関係を確認...
==> ソースを取得...
-> ダウンロード google-chrome-stable_69.0.3497.92_amd64.deb...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 52.2M 100 52.2M 0 0 1672k 0 0:00:32 0:00:32 --:--:-- 1641k
-> eula_text.html を見つけました
-> google-chrome-stable.sh を見つけました
==> source で md5sums ファイルを検証...
google-chrome-stable_69.0.3497.92_amd64.deb ... 成功
eula_text.html ... 成功
google-chrome-stable.sh ... 成功
==> ソースを展開...
-> google-chrome-stable_69.0.3497.92_amd64.deb を bsdtar で展開
==> fakeroot 環境を開始します...
==> package() を開始...
-> Extracting the data.tar.xz...
-> Moving stuff in place...
-> Fixing Chrome icon resolution...
-> Removing Debian Cron job and duplicate product logos...
==> インストールを整理...
-> 空のディレクトリを削除...
-> 不要なファイルを削除...
-> man と info ページを圧縮...
==> パッケージの問題をチェック...
==> パッケージを作成 "google-chrome"...
-> .PKGINFO ファイルを生成...
-> .BUILDINFO ファイルを生成...
-> install ファイルを追加...
-> .MTREE ファイルを生成...
-> パッケージの圧縮...
==> fakeroot 環境を終了。
==> 作成完了: google-chrome 69.0.3497.92-1 (2018年09月15日 16時50分15秒)
 Kaos > ~ > Downloads > google-chrome > ls
pkg/ google-chrome-69.0.3497.92-1-x86_64.pkg.tar.xz
src/ google-chrome-stable.sh
PKGBUILD google-chrome-stable_69.0.3497.92_amd64.deb
eula_text.html google-chrome.install
 Kaos > ~ > Downloads > google-chrome > sudo pacman -U google-chrome-69.0.3497.92-1-x86_64.pkg.tar.xz
パスワード:
パッケージをロード...
依存関係を解決しています...
衝突するパッケージがないか確認しています...
パッケージ (1) 新しいバージョン 最終的な変化
google-chrome 69.0.3497.92-1 186.85 MiB
合計インストール容量: 186.85 MiB
:: インストールを行いますか? [Y/n] y
(1/1) キーリングのキーを確認 [--------------------] 100%
(1/1) パッケージの整合性をチェック [--------------------] 100%
(1/1) パッケージファイルのロード [--------------------] 100%
(1/1) ファイルの衝突をチェック [--------------------] 100%
(1/1) 空き容量を確認 [--------------------] 100%
:: パッケージの変更を処理しています...
(1/1) インストール google-chrome [--------------------] 100%
==> NOTE: Custom flags should be put directly in: ~/.config/chrome-flags.conf
==> NOTE: The launcher is called: 'google-chrome-stable'
google-chrome の提案パッケージ
kdialog: for file dialogs in KDE [インストール済み]
gnome-keyring: for storing passwords in GNOME keyring
kwallet: for storing passwords in KWallet [インストール済み]
gtk3-print-backends: for printing
libunity: for download progress on KDE
ttf-liberation: fix fonts for some PDFs (CRBug #369991) [インストール済み]
xdg-utils [インストール済み]
:: トランザクション後のフックを実行...
(1/2) Updating icon theme caches...
(2/2) Updating the desktop file MIME type cache...
 Kaos > ~ > Downloads > google-chrome > 

日本語入力が出来ない → /usr/lib/gtk-3.0/3.0.0/immodules.cacheが無い
fcitxを有効にする為
sudo gtk-query-immodules-3.0 --update-cache

Arch系のSoftware Updates and managementツールを提供するコマンドはpacman
pacmanに最適化されたGUIツールは GTK系のPamac、QT系のOctopi
「Octopi」を使った方が簡単かも

アップデートの通知があったので行為をしたら google chrome DEV版に更新?された
最新だからと言って google chrome DEV版をリポジトリにアップする必要あるのかな
スタンダードでいいのでは

thinkpad E130での現象
Liveで起動したので grubでブートしてみたら 以下のメッセージが表示して起動できない
ACPI: \_SB_.PCI0.LPCB.EC__.HKEY: BCTG evaluated but flagged as error
thinkpad_acpi: Error probing battery 2
battery: error in extension, unloading: ThinkPad Battery Extension

boot menuに
「modprobe.blacklist=thinkpad_acpi」追加で起動してみたら カーネルパニック?
参考:https://forum.antergos.com/topic/10207/unable-to-start-antergos-after-installation-on-a-thinkpad-13/8
https://bugs.archlinux.org/task/59096

星座を英語で表現


12星座早見表

日本語英語誕生日
牡羊座  (おひつじ座)Aries  (エリース)3/21 - 4/19
牡牛座  (おうし座)Taurus  (トーラス)4/20 - 5/20
双子座  (ふたご座)Gemini  (ジェミナイ)5/21 - 6/21
蟹座  (かに座)Cancer  (キャンサー)6/22 - 7/22
獅子座  (しし座)Leo  (リオ)7/23 - 8/22
乙女座  (おとめ座)Virgo  (ヴァーゴ)8/23 - 9/22
天秤座  (てんびん座)Libra  (リブラ)9/23 - 10/23
蠍座  (さそり座)Scorpio  (スコーピオ)10/24 - 11/22
射手座  (いて座)Sagittarius  (サジタリアス)11/23 - 12/23
山羊座  (やぎ座)Capricorn  (キャプリコーン)12/24 - 1/19
水瓶座  (みずがめ座)Aquarius  (アクエリアス)1/20 - 2/18
魚座  (うお座)Pisces  (パイシース)2/19 - 3/20

星座・占星術に関する英語

占星術 = astrology
星占い = horoscope
黄道十二星座 = zodiac sign, astrological sign, horoscope sign
星座 = constellation
占い = fortune-telling
占い師 = fortune-teller
*一般的な「星座」は "constellation"
星占いに使われる十二星座の「星座」は "zodiac sign" などと呼ばれる

星座の話題で使える英語のフレーズ

① What's your sign?
「あなたの星座は何ですか?」
まずは相手の星座を聞く表現
"sign" だけでも通じますし、もちろん "zodiac sign" と言ってもOKです
② I'm a ◯◯.
「私(の星座)は◯◯です」
自分の星座を教えるフレーズ。◯◯は自分の星座の名前
【使用例】
A: I'm a Sagittarius. What's your sign?
「僕は射手座。君は?」
B: I'm a Pisces.
「私は魚座」
③ What does your zodiac sign mean?
「あなたの星座の意味はなんですか?」

その他の星座・星列・星


Orion/The Hunter(オリオン座)

ギリシャ神話に登場する狩人のオリオンから名付けられた星座
中央に3つ星が並んでいて比較的見やすく有名な星座ですね

Big Dipper/Plough(北斗七星)

おおぐま座(Ursa Major)の一部である北斗七星。アメリカ英語では "Big Dipper"、イギリス英語では "Plough" と呼ばれます
"dipper" は「柄杓」、 "plough" は「(耕作用の)鋤」の意味です

Little Dipper/Ursa Minor/Little Bear(こぐま座)

北斗七星の "Big Dipper" に対して、小さな柄杓の形をしていることから北米では "Little Dipper" として知られています
他には "Ursa Minor" や "Little Bear" の名も持ちます

Cassiopeia(カシオペヤ座)

ギリシャ神話に登場する女性、カッシオペイアから名付けられた星座
Wの形をしていて、比較的見つけやすいと言われています

Summer Triangle(夏の大三角)

はくちょう座のデネブ(Deneb)、わし座のアルタイル(Altair)、こと座のベガ(Vega)が結ばれてできている夏の大三角
ベガとアルタイルは日本では七夕の織姫と彦星
織女星(織姫): the Weaver(the star Vega)
牽牛星(彦星):the Herdsman(the star Altair)
Vega と Altair の間に雲のようなぼんやり白くみえるのが天の川(the Milky Way)

Winter Triangle(冬の大三角)

オリオン座のベテルギウス(Betelgeuse)、おおいぬ座のシリウス(Sirius)、こいぬ座のプロキオン(Procyon)が結ばれてできている冬の大三角
シリウスは地球上から見える最も明るい星

North Star/Pole Star/Polaris(北極星)

「北極」は英語で "North Pole" なので "North Star" や "Pole Star" の名前も納得です
星の名前が "Polaris" で、ポラリスが現在の「北極星」

はじめてのNitrux Linux

2018年9月12日水曜日

Nitrux 1.0.15
HP:https://nxos.org/
KDE Plasma 5, Qt and Nomad Desktop
インストラーは日本語で表示される
インストール先パーティションがGUIDパーティションテーブルの場合
「EFIパーティション」が必要とメッセージが出る
grubがインストールされない

Ubuntu cosmicベースのようなので ubuntuと同様なコマンドでシステム更新

システムの更新
sudo apt-get update && sudo apt-get upgrade

不要なパッケージを消去
sudo apt-get autoremove

日本語入力 fcitx-mozc インストール
sudo apt-get install fcitx-mozc

chromium-browser にflas player追加
sudo apt-get install pepperflashplugin-nonfree
sudo update-pepperflashplugin-nonfree --install

Synapticパッケージマネージャのインストール
sudo apt-get install synaptic apt-xapian-index
sudo update-apt-xapian-index -vf

dolphin をrootで使おうと sudo や kdesu で起動しないので・・・
KDEプロジェクトはセキュリティ上"kdesu"や"kdesudo"を使用して、グラフィカルアプリケーションをrootまたは管理権限で実行しないことを強く推奨しているので " kdesudo" は Kubuntu 18.04 には入っていない
ただし"kdesu"は /usr/lib/x86_64-linux-gnu/libexec/kf5/kdesu にあるので/usr/local/binにパスをすることで利用は可能とのこと
https://askubuntu.com/questions/1044354/kdesu-not-working

add-apt-repositoryでリポジトリの追加で「コマンドがない」と表示された
sudo apt-get install apt-file
sudo apt-file update
sudo apt-file search add-apt-repository
sudo apt-get install software-properties-common

例)Boot-Repair のリポジトリ追加
sudo add-apt-repository ppa:yannubuntu/boot-repair
synapticのリポジトリ追加の項目に「ppa:yannubuntu/boot-repair」を記載してもいい

はじめてのopenSUSE

2018年9月11日火曜日

■日本語ディレクトリを英語ディレクトリに変更
gnome
LANG=C xdg-user-dirs-gtk-update
KDE
LANG=C xdg-user-dirs-update --force

■日本語の入力「IME」の切り替え
(直接入力(半角英数)や全角の切り替え)
その設定は「Mozc」での設定
ibusの設定ではない
■Fcitxのインストール
gnome
sudo zypper install fcitx fcitx-config-gtk3
KDE
sudo zypper install fcitx fcitx-config-kde4
fcitx-mozc
sudo zypper install fcitx-mozc
fcitx-anthy
sudo zypper install fcitx-anthy

■openSUSEでGoogle Chromeを入れる方法
公式サイトに行くと、ちゃんと「rpm」ファイルあります
これをopenSUSEでインストールする際「署名がうんぬんかんぬん…」的な注意書きが出てきます
zypper install パッケージ名
zypper remove パッケージ名

調べると「リポジトリを登録」とやらが必要のようです

1.リポジトリを登録
sudo zypper ar http://dl.google.com/linux/chrome/rpm/stable/x86_64 Google-Chrome
2.リポジトリをリフレッシュ
sudo zypper ref
3.Googleの公開鍵のインポート
wget https://dl.google.com/linux/linux_signing_key.pub
sudo rpm --import linux_signing_key.pub
4.Chromeのインストール
sudo zypper install google-chrome-stable

GUIDパーティションテーブル

2018年9月4日火曜日

GUIDパーティションディスクからの起動
GUIDパーティションテーブル(GPT)の規格はUEFI(EFI)の規格とセットであるが GUIDパーティションテーブルのディスクからの起動にはEFIブートが必須というわけではない
Windowsの場合は無理な場合が多いが LinuxではGPTのディスクからも従来通りの方法(MBRを利用した方法)での起動は可能

GUIDパーティションテーブル
GUIDパーティションテーブルの先頭のセクタ(LBA0)は従来のMBRと同じものになっている
これは互換性や安全性のため
GPTに対応していない機器にディスクを接続してしまったときに ディスクと認識されなかったり さらには初期化のされていないディスクと勘違いされていきなり初期化されたりしないようにするため
従来のMBRパーティションでは MBR内にパーティション情報を格納してたが GPTではここにはパーティションを情報を格納しない
MBRにつづく第2セクタ(LBA1)にあるパーティションテーブルヘッダおよび第3セクタからはじまるパーティションエントリに情報を格納する
MBRパーテョンでは基本パーテョションが4つまでであったり 大きなサイズ(2TB以上)のディスクを扱えなかったりしたのは MBR内のパーティション情報を格納する領域の大きさ的にそれが限界であったため
GPTではこのパーテョション情報を格納する領域は十分に広い
パーティションは128個まで ディスクサイズは8ZiB(ゼビバイト)まで扱える(もちろん 情報が格納できるというだけで実際に使えるかどうかはOSなどの対応による)

MBRブート
MBRブートでのブートローダはMBR内に格納する
MBRのサイズは全体で512B(1セクタ)であるが上記のパーティションテーブル情報分があるのでブートローダに利用できる領域は446Bしか用意されていない
このサイズでは多機能なブートローダは格納できない
そこでGRUBなどの多機能なブートローダでは MBR内には多機能なブートローダの本体を読み出すだけのブートローダをインストールして 本体は別の(もっと大きなサイズのプログラムを置ける)場所から読み込むようになっている

MBRの第1パーテョション
MBRパーティションでは第1パーティションは第1シリンダ(63セクタ)以降から始まるというルールがあった
このルールのためMBRの第2セクタから62セクタまでの61セクタ(約31KB)は必ず空きになっていた(MBR Gap) GRUBではこの領域にブートローダの本体を置き MBR上のブートローダがこれをロードして本体が実行されるようになっている
この領域に本体を置いておく利点は OSの管理外の領域であるために 一度書き込んだデータのディスク上の物理的な位置(セクタ位置)は変化しない
本体のインストール時にそのセクタ位置を記録しておけば それをもとにMBRのブートローダが本体の位置を確定することができる
OSの管理するファイルシステム上に書き込んだ場合 OS側のファイルシステムの調整によって本体のファイルそのものは消去されなくてもディスク上の物理的な位置は変化する可能性がある
そうなった場合 最初に記録したセクタ位置から本体のファイルが移動して読み込めなくなる(MBR上のブートローダはファイルシステムを理解できないので本体の移動に追従できない) パーティションツールによってはMBRパーティションであっても 第2セクタからすぐに第1パーティションを切ることが可能であるが そのようなことをするとGRUBなどのブートローダはうまくインストールできない可能性がある

GUIDパーティションテーブルとMBRブート
GRUB2はGPTでのMBRブートに対応している
ただし GPTでは先頭のMBRの次の第2セクタからパーティション情報の領域がすぐに始まってしまう(MBR Gapがない)のでMBRの場合と同じ場所にGRUBの本体をインストールすることができない
そこでGPTでGRUB2のMBRブートを利用する場合 GRUBの本体をインストールするための専用の領域を確保する必要がある

bios_grub領域
linuxのpartd(GNU Parted)の場合パーティションにbios_grubオプションを設定することによってGRUBの本体をインストールする領域にすることが可能
その他のGPT対応のパーティションニングツールではパーティションタイプをEF02に設定する
GRUB(GRUB2)はGPTディスクへのインストール時にこの領域をみつけるとそこに本体を自動的にインストールする
GRUB2の説明を読むとこの領域は最低31KB必要とかかれているがこれはMBR Gapが最低31KBだったことに対応している
GRUB2はこのbios_grub領域がない場合でも /bootディレクトリ以下に本体(ファイル)をインストールして起動するようにすることができる
この場合 そのファイルのディスク上の物理的なセクタ位置をインストール時に記録して その情報をもとにMBRのブートローダが本体の位置を特定して読み込む
ただし 何からの原因で/bootのファイルシステムが調整されてファイルの物理的なセクタ位置が変更されてしまうと起動できなくなる
bios_grub領域を利用することを推奨

余談
MBRはなぜ 2TiB以上のパーティションを作成できないのか?
答えは、MDRで定義されているパーティションサイズのエリアが 4 byte しかないからです
パーティションのサイズは、セクター(1セクター = 512 byte) で保存されます
つまり、4 byte = 32 bit ですから、
2^32 x 512 = 2^30 x 2^2 x 512 = 2,048 GiB = 2 TiB
※ GiB = 2^30
32bit OS では、最大メモリアクセス可能なのは、4GiB までです

32bit OS とは、そもそも 32bit毎に処理を行うことで、最大容量が32bitということでもあります
つまり、
2^32 = 2^30 x 2^2 = 4 GiB
となり、4GiBが最大となる
バイトの単位には、KBとKiBのように2つの単位表記があります
これは、 情報通信分野では、KB(キロバイト) = 2^10、 MB(メガバイト) = 2^20 などと 2のべき乗(累乗)で慣用的に用いられますが、 SI基準(SI接頭辞)において、KB(キロバイト) = 10^3、 MB(メガバイト) = 10^6 などと 10のべき乗(累乗)で表すため、非常に混乱をきたすころがあります
(正しくは後者であり、あくまで前者は慣用的に使われているというだけ) その混乱を避けるために、2のべき乗(累乗)で表した 2進接頭辞 で各単位を表したのが、KiB(キビバイト)であり、MiB(メビバイト)などです(KiBは、kibibyte と表され、kilo binary byte の略)
以下は、その単位の一覧になります
SI接頭辞 2進接頭辞
単位名(記号) SI基準値 慣用値(2進接頭辞の値) 単位名(記号) SIとの倍率慣用値÷SI基準値
キロバイト (kB)103210キビバイト (KiB)1.02
メガバイト (MB)106220メビバイト (MiB)1.05
ギガバイト (GB)109230ギビバイト (GiB)1.07
テラバイト (TB)1012240テビバイト (TiB)1.10
ペタバイト (PB)1015250ペビバイト (PiB)1.13
エクサバイト (EB)1018260エクスビバイト (EiB)1.15
ゼタバイト (ZB)1021270ゼビバイト (ZiB)1.18
ヨタバイト (YB)1024280ヨビバイト (YiB)1.21

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

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 の文字列と表現) を指定します

Google日本語入力Mozcのビルド

2018年3月2日金曜日

https://github.com/google/mozc
1)依存パッケージ
【インプットメソッド】
Mozcはibusやscimなどのインプットメソッドフレームワーク(プラットホーム)上で動作する日本語変換エンジンなので、インストールするためにはいずれかをインストールしておく必要がある
IBus(ibus)    SCIM(scim)     Fcitx(fcitx)
【コンパイラ・インタプリタ】
gcc/g++(g++)    C/C++コンパイラ
Python(python)    プログラミング言語Pythonのインタプリタ
【ライブラリ】
D-Busのライブラリ(libdbus-1-dev)
シンプルなプロセス間メッセージングシステム (開発用ヘッダ)
D-Busは複数のプログラム同士で情報をやり取りするためのプログラム
Glib(libglib2.0-dev)     glibライブラリ(v2.0)
cURL(libcurl4-openssl-dev)
Zlib(zlib1g-dev)    Zilb圧縮ライブラリ
OpenSSL(libssl-dev)
ProtocolBuffers&GoogleC++TestingFramWork(protobuf-compiler,libprotobuf-dev,libgtest-dev)
Googleの配布するソフトウェアを動作させるときに必要なライブラリ
zinnia(libzinnia-dev)     オンライン手書き文字認識エンジン
Qt4(libqt4-dev)     Qt4ライブラリ
GYP (Generate Your Projects))     自動ビルドツール
IBusのライブラリ(libibus-dev)    IBusのライブラリ
SCIMのライブラリ(libscim-dev)    scimのライブラリ
Fcitxのライブラリ(fcitx-libs-dev)    Fcitxのライブラリ

2)ビルド
Ubuntu12.04のMozcのソースパッケージのページから"mozc_1.3.975.102.orig.tar.gz"をダウンロードして展開(ここでは~/に展開したとする)
root環境で動作するようにする為
"~/mozc-1.3.975.102/base/run_level.cc"の276行目から303行目までを削除

// Linux or Mac
if (type == SERVER || type == RENDERER) {
if (::geteuid() == 0) {
// This process is started by root, or the executable is setuid to root.

// TODO(yusukes): It would be better to add 'SAFE' run-level which
// prohibits all mutable operations to local resources and return the
// level after calling chroot("/somewhere/safe"), setgid("nogroup"),
// and setuid("nobody") here. This is because many novice Linux users
// tend to login to their desktop as root.

return RunLevel::DENY;
}
if (::getuid() == 0) {
// The executable is setuided to non-root and is started by root user?
// This is unexpected. Returns DENY.
return RunLevel::DENY;
}
return RunLevel::NORMAL;
}
// type is 'CLIENT'
if (::geteuid() == 0 || ::getuid() == 0) {
// When mozc.so is loaded into a privileged process, deny clients to use
// dictionary_tool and config_dialog.
return RunLevel::DENY;

削除後の275行目から279行目までが以下のようになっていればいい
275 #else
276
277 return RunLevel::NORMAL;
278
279 #endif

以下のコマンドを実行、最後がDoneで終わっていることを確認
# cd ~/mozc-1.3.975.102
# python build_mozc.py gyp
次のコマンドを実行、エラーが出ず終わっていることを確認
# python build_mozc.py build_tools -c Release
次のコマンドを実行、エラーが出ず終わっていることを確認
# python build_mozc.py build -c Release unix/scim/scim.gyp:scim_mozc unix/scim/scim.gyp:scim_mozc_setup server/server.gyp:mozc_server gui/gui.gyp:mozc_tool
(※上記の'scim'はインプットメソッドフレームワークに置き換え)
次のコマンドを実行でファイルを出力
# cp out_linux/Release/lib.target/libscim_mozc.so /usr/lib/scim-1.0/1.4.0/IMEngine/mozc.so
# cp out_linux/Release/lib.target/libscim_mozc_setup.so /usr/lib/scim-1.0/1.4.0/SetupUI/mozc-setup.so
# mkdir /usr/lib/mozc/
# cp out_linux/Release/mozc_server /usr/lib/mozc
# cp out_linux/Release/mozc_tool /usr/lib/mozc
# rename ui scim-mozc data/images/unix/*
# cp data/images/unix/* /usr/share/scim/icons/

正規表現でエスケープが必要な文字一覧表

2018年1月24日水曜日

エスケープが必要な文字の前に  \  をつける
エスケープ前 エスケープ後 注  意  点
\ \\ エスケープを行う文字そのものなので、\ だけの記述はできません    
\ にマッチングさせたい場合は \\ と記述
* \*
+ \+
. \.
? \?
{ } \{\} 出現回数指定文字なのでエスケープが必要
( ) \(\) エスケープしないと後方参照が作成されるまたはグループ化される
[ ] \[\] 直前文字の出現回数指定文字なのでエスケープが必要
^ \^ 行頭を指定することになる
$ \$ 行末を指定することになる
Perlの場合は、変数の先頭文字である
- \- [ ]の中に書く場合のみエスケープが必要
| \|
/ \/ Perlでは / が正規表現の指定になるのでエスケープが必要
言語によっては、" がエスケープ必要となる

正規表現

はじめに
正規表現(Regular Expression)とは、文字列のパターンを表現する表記法です
主に文字列の検索/置換を行なうときに利用されます
正規表現は、通常の文字とメタキャラクタと呼ばれる意味を持った特別な記号を組み合わせて表記します
メタキャラクタとは、「^」という文字は「行の先頭」、「$」という文字は「行の末尾」、「.」は「任意の1文字」、「+」という文字は「直前の要素の1回以上の繰り返し」を意味します
正規表現を利用すると、直接文字列を指定せずにあるパターンをしていするため、表記の揺れを吸収して検索したり置換を行ったりすることが出来ます

メタキャラクタ
一般的に使われるメタキャラクタ
メタキャラ
意    味
.
任意の一文字を表します
 c..l -> cool, cowl, cull などがマッチ
*
前にある文字の0回以上を表します
ab* -> a
ab
abb abbbbbbbbbbbbb などがマッチ
+
前にある文字の1回以上を表します
ab+ -> ab
abb abbbbbbbbbbbbb などがマッチ
?
前にある文字の0, 1回を表します
ab? -> a
ab がマッチ
^
指定した文字から始まる
  ^ap   -> ap で始まる文字列がマッチ
$
指定した文字で終わる
  le$   -> le で終わる文字列がマッチ
[ ]
指定した複数の文字の中のいずれかを表します
[abc] -> a, b, c がマッチ 文字列の場合は、(be|is|was|been) という具合に ( ) | を使用する 連続したキャラクタ群を指定する場合、先頭と終端を - で繋いだ形で指定できます
 [C-G] -> [CDEFG]と同じ はじめに^を指定した場合、キャラクタ群の補集合となります
 [^F-K] -> F, G, H, I, J, K 以外の文字
{ }
前にある文字の指定した回を表します
ab{3} -> abbb にマッチ
ab{3,} -> abbb, abbbb, abbbbbbbb など 3回以上繰り返されたものにマッチ ab{3,5} -> abbb, abbbb, abbbbb にマッチ
( )
グループ化
1. 特殊変数 $1 の利用 $_ = "data=hello world"; /(.+)=(.+)/ ; print "Name= $1, Value= $2 \n";
( ) でくくられた文字列が特殊変数に割り当てられるので
Name= data, Value= hello world という結果が返ります

2. 特殊変数 \1 の利用 /(..)\1/
( ) でくくられた文字列が特殊変数に割り当てられるので
abab, cdcd など2文字からなる文字列が2回以上続いていればマッチ
\w
英数文字またはアンダーバー
[a-zA-Z0-9_]と同等
\W \w 以外の文字
\d 数値文字
[0-9]と同等
\D 数値以外の文字
[^0-9]と同等
\s 空白文字
\S 空白以外の文字
\b ワードの先頭、あるいは末尾にマッチ
\bnoon\b は、noonにはマッチするが afternoon にはマッチしない
\B ワード内の文字列にマッチ
\Bmile\B は、Smiles にはマッチするが mile にはマッチしない
\A 文字列の最初にマッチ
\Z 文字列の最後にマッチ
\t タブ
\n 改行
\r キャリッジリターン

マッチパターン演算子
演算子
意    味
g
繰り返してマッチ
i
大文字、小文字の区別をしない
s
単一行として処理 (^ や $ は \n を無視)
m
複数行として処理 (^ は行先頭、$ は行末尾)
o
パターンを一度だけ展開
x
空白を無視、# をコメント処理

使えそうな表現
表    現
意    味
[ぁ-んー-]
ひらがなにマッチ
[ァ-ヶー-]
全角カタカナにマッチ
[0-9]{4}
4桁の数字にマッチ
[0-9]{1,3}
1から3桁の数字にマッチ
\"[^\"]*\"
引用符に囲まれた文字列
(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})
IPアドレス
(?=.*foo)(?=.*bar)
foo, bar を含むものにマッチ
(?:(?!foo).)*
foo を含まないものにマッチ
(?:\G|>)[^<]*?)
HTMLタグの外側 [Perl]
s/((?:\G|>)[^<]*?)foo/$1bar/g
HTMLタグの外にある foo を bar に変換 [perl]
(\S+)://([^:/]+)(:(\d+))?(/[^#\s]*)(#(\S+))?
URL
$ascii = '[\x00-\x7F]';
$twoBytes = '(?:[\x8E\xA1-\xFE][\xA1-\xFE])';
$threeBytes = '(?:\x8F[\xA1-\xFE][\xA1-\xFE])';
$character = "(?:$ascii|$twoBytes|$threeBytes)";
EUC-JP文字

MP3に歌詞を添付

2017年12月31日日曜日

cdをリッピングしたり MP4をMP3に変換するとタイトルやアーチストが表示されない(文字化け)場合があります
作業前
「mp3tag」を使ってmp3タグの編集を行う
タイトルやアーチスト等必要な項目を記入し
「フィールドすべてを保存」で項目修正をする
作業後
mp3tagは歌詞を追加することもできます

まず「LyricsMaster」で歌詞を取得
「LyricsMaster」を起動して、「検索」
曲名を入力して、「検索」
結果が表示されたら右クリックして「ダウンロード」
メインウインドウに表示された歌詞をコピー
MP3のタグに歌詞を埋め込むには
「MP3TAG」に「歌詞」フィールドを追加する
「ツール」 → 「オプション」 →
 「タグパネル」 → 「フィールドを追加」し
フィールド:「UNSYNCEDLYRICS」
名前:「歌詞」と入力(任意でOK)
追加されたフィールドに歌詞を貼り付ける
メニューを日本語にするには
Tools → Language
Japanese

strings コマンド

2017年10月25日水曜日

子犬で使うアプリケーションを作成や公開されているパッケージを使おうとしてみると 時折こんなエラーメッセージが出ることがあります
不足の依存関係
libatomic.so.1 => not found
libc.so.6 (GLIBC_2.17) => not found
これはシステムにインストールされているlibc.so.6 (GLIBC) ライブラリが古く、動かそうとしているアプリケーションが要求するバージョンと合わないためのエラーが発生していることを意味しています

実際にシステムに組み込まれている libc.so.6 のバージョンを確認するには以下のコマンドを実行します
# strings /lib/libc.so.6 | grep GLIBC
GLIBC_2.0
GLIBC_2.1
GLIBC_2.1.1
GLIBC_2.1.2
GLIBC_2.1.3
GLIBC_2.2
GLIBC_2.2.1
GLIBC_2.2.2
GLIBC_2.2.3
GLIBC_2.2.4
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_2.13
GLIBC_2.14
GLIBC_2.15
GLIBC_PRIVATE
GNU C Library (Ubuntu EGLIBC 2.15-0ubuntu10.9) stable release version 2.15, by Roland McGrath et al.
この状況を回避するにはlibc.so.6を必要なバージョンが組み込まれた新しいものと入れ替える必要があります
libc.so.6 , libstdc++ は gcc に含まれるモジュールなので、gcc をビルドして、そこから取り出して既存のものと入れ替える
残念ですが 枯れたバージョンの子犬では良く体験することです

通常パピーではstringsコマンドが使えません
stringsコマンドはbinutils_2.22-6ubuntu1.4_i386.debにあります

precise系のパピーのパッケージマネージャーでダウンロードできない
precise ubuntuのパッケージが「old-releases.ubuntu.com」に移動されたのでその対策

/root/.packages/DISTRO_COMPAT_REPOS
PKG_DOCS_DISTRO_COMPAT="archive.ubuntu.com|http://archive.ubuntu.com/・・・・
archive.ubuntu.com → old-releases.ubuntu.com に変更
PKG_DOCS_DISTRO_COMPAT="old-releases.ubuntu.com|http://old-releases.ubuntu.com/・・・・

コマンド

install-mbrIBM-PC 互換機用のマスターブートレコード作成
MBRには大きく分けてブートストラップローダの部分とパーティションテーブルの部分に分けられるが、パーティションテーブルの情報が失われるとHDDの何処にどのようなシステムが保存されているが分からなくなるので、基本的にはそのHDDにあるシステムを救うのは難しくなる
パーティションテーブルが生きているならブートストラップローダの再インストールで再生される

例) install-mbr /dev/sda
nwipeディスクのデータを完全消去
 
binutilsライブラリ(オブジェクトファイルを扱うためのプログラミングツール)
arアーカイブの作成、変更、および展開
addr2lineプログラム内のアドレスをファイル名と行番号に変換
ldリンケージ・エディターまたはバインダーとも呼ばれ、オブジェクト・ファイル、アーカイブ・ファイル、およびインポート・ファイルを 1 つの出力オブジェクト・ファイルに結合して、 外部参照を解決
ld.goldリンカ
ld.bfd
as標準入力を読み取ってアセンブル
stripシンボル情報を削除するためのコマンド
stringsテキストファイル以外のバイナリファイルやデータファイルの中身を確認する
nmオブジェクト・ファイル、実行可能ファイル、またはオブジェクト・ファイル・ライブラリーを示す指定された File 内のシンボルの情報を表示
c++filtC++シンボルのデマングルを行う
objcopy任意のファイルをリンク可能なオブジェクトファイルに変換
dwp
objdumpオブジェクトファイルの情報の表示
elfedit
ranlib
recode-sr-latin
gprofコール・グラフ (call graph) のプロファイルの表示
readelf ELFファイルの中身を表示
gold
sizeセクションの大きさとその合計をリストする
 
gettextライブラリ(国際化 翻訳ファイル作成)
msgfmt翻訳ファイルを生成
msgexec
msgmerge慣例として、'msgmerge'は'<言語>.pox'という名前のファイルを生成
msggrep翻訳カタログから、指定したパターン、指定したソースファイルに属するすべてのメッセージを抽出
msgen
gettextize
msgconv
xgettext慣例として、'xgettext'は'<パッケージ>.pot'という名前のファイルを生成
msgcomm
msgfilter
msgcat
msgattrib
msguniq翻訳カタログ内の重複した翻訳を統一するためのプログラム
msginit新しいPOファイルを作成して、メタ情報をユーザーの環境にもとづいて初期化
msgcmp

共有ライブラリへの依存関係を表示する
ldd [オプション] プログラム
オプション
-d足りないオブジェクトについてレポート
-r足りないオブジェクトや関数についてレポート
-u使用されていない依存関係を表示
-vすべての情報を表示

Linuxの基本的なディレクトリ構成

2017年9月25日月曜日

/
(ルート)
ルートディレクトリ
全ての始まり
/bin
(ビン)
cpやchmodなどのシステムを管理する上で基本コマンドが入っています
基本コマンド限定で管理するのが普通で、ソフトのインストールに付随するコマンドなどはここにインストールしない
cp、chmodなど
/boot
(ブート)
ブートに必要なファイル
ブートログやカーネルイメージ(Linuxカーネルを格納して圧縮したファイル)が保存されている
vmlinuzなど
/dev
(デブ)
デバイスファイルが配置されている
デバイス(装置〈ハードウエア〉)をファイルとして扱うUNIXの設計思想からきています
cpu、disk、ramなど
/etc
(エトセ)
ほとんどの設定ファイルが配置されます
カーネルだけでなく、追加された各ソフトの設定ファイル等が配置されているため、ファイル数が膨大で内容を把握するには骨が折れます
そのままetcディレクトリに保存するタイプと、サブディレクトリを作成してまとめるタイプがあります
my.cnf、php.ini、httpd.cnfなど
/home
(ホーム)
一般ユーザーのホームディレクトリ
通常ユーザーを追加するごとにユーザー名のディレクトリを追加します
/lib
(リブ)
/binや/sbinのコマンドを実行するのに必要なファイルが配置されています
基本的にユーザーが変更を加えることはありません
32bitと間違えないように64bit用の共用ファイルは別途「lib64」というディレクトリにあります
libc、libsslなど
/lost+found
(ロストアンドファウンド または
ロストファウンド)
システムのバックアップや復元用のファイルが格納される
意図しない再起動やシャットダウン時に使われる
通常ユーザーが操作することは無い
/media
(メディア)
リムーバブルメディアのマウントポイント
(floppy、CD、DVDなど)
/misc
(ミスク)
リムーバブルメディアのマウントポイント(その他ざまざまなデータ用)
自動でメディアをマウントするデーモンautofsで利用する
/mnt
(マウント)
一時的なマウントポイント
mediaとの違いは、一時的なファイルシステム(fstabなど)のマウントに使う点
/opt
(オプト)
パッケージ管理システムのインストール先
複数のユーザーで利用する場合追加したものをここに保存しておけば、変更点を把握しやすい
/proc
(プロック)
プロセスのIDの付いたディレクトリが配置されています
プロセス独自の情報を格納することからプロセスディレクトリと呼ばれる
各種プロセスのステータスを確認する際に利用される
psコマンド、/proc/cpuinfo、/proc/netなど
/root
(ルート)
rootユーザーのホームディレクトリ
homeがセキュリティ上の脅威にさらされてもこちらは大丈夫
という保険のディレクトリです
/sbin
(エスビン)
再起動やファイルシステムの操作などシステム管理者用のコマンドが配置されています
/bin同様、新しいコマンドの追加や変更は推奨されません
shutdown、rebootなど
/selinux
(エスイーリナックス)
セキュリティーを向上させるために利用する、Security-Enhanced Linux
rootへの権限が集中を分散することでセキュリティの向上を図る
ものらしい
CentOSではデフォルトで作成される
ディストリビューションのScientific Linux(サイエンティフィック・リナックス)とは全く関係ないので注意
/srv
(エスアールブイ)
FTP、WWWなどで利用するユーザー用のスペース
/homeとも違う、FTP専用、WWW専用のユーザー用ディレクトリ
管理者が一人の場合は利用しない
/sys
(シス)
システム関連と思いきや、動作しているプロセスやドライバを/procで管理すると膨大になるため、/sysにドライバ関連のプロセスをまとめている
しかし完全に分離されているわけでなく、現在では渾然としている
主にdeviceやmoduleに各種情報が保存されている
/tmp
(テンプ)
テンポラリデータの保存場所
メモリ上の一時ファイルを保存します
ダウンロードフォルダとして利用することもあります
再起動時に消去されます
また通常はcronで定期的に消去されます
/usr
(ユーザー)
各ユーザーが共通して利用するプログラム・ライブラリのデータ
ソースからコンパイルしたソフトなどはこちらにインストールされます
通常パッケージの追加するこのディレクトリにインストールされることが多い
etcに保存されている設定ファイルのシンボルリンクもこちらに貼られることが多い
ちなみに重要な項目が多いため、/usrのサブディレクトリについても記載します
発音は「ユーザーすらビン」といった具合に発音します
/usr/binusr版のコマンドが保存されている
一般ユーザーの利用するコマンド
別名ユーザーコマンドの保存場所
プログラムのインストールによって追加する場合はこのディレクトリが適している
openssl、php、perlなど
/usr/etcあまり利用されることはありません
通常/usrに追加されるライブラリの設定ファイルは/etcが利用されます
/usr/gamesなぜか必須のゲーム用ディレクトリです
/usr/includeC言語用ヘッダーファイルの保存場所
/usr/libusr版のライブラリ保存場所
/libと同じように64bit用に/lib64が用意されている
/usr/libexecコマンドから内部的に呼ばれる補助コマンドの保存場所
dovecotやPostfix用のコマンドなど
/usr/localシステム管理者用のローカルファイル
管理者のみが利用するライブラリなどの追加に利用する
それぞれlibやbinといった必須のディレクトリが用意されている
/usr/sbinusr版管理者用コマンド
/usr/shareアーキテクチャ(OSやソフト)に依存しないデータを配置
具体的にはマニュアルのmanや各ソフトで利用するデータベース等が保存されている
/usr/srcソースコードの保存場所
/usr/tmpusr版テンポラリファイルの保存場所
通常シンボルリンクが/tmpディレクトリに貼られている
/var
(バーorバア)
ログやキャッシュなど、可変的システムデータ(動的ファイル)
一時的なデータとしては/tmpと同じですが、こちらは再起動しても消去されずに残ります
/var/accountアカウントに関する動的ファイルを扱う
ユーザーごとにコマンドの履歴をとる/var/account/pacctなどに利用される
/var/cache一時的な記憶場所
ソフトで指定した一定の容量を超えると古いものから削除される
/var/crashシステムクラッシュ時のダンプデータ(クラッシュ時のメモリ上のデータ)保存場所
クラッシュの原因を究明するために利用されます
/var/db各ソフトで利用するデータベース情報
記述子についての情報を集めるnscdなどで利用する
/var/emptySSHで利用される
パーミッションの変更をするとログインできなくなるので注意
/var/gamesゲーム用の動的ファイル保存場所
セーブデータなど
/var/libアプリケーションの実行によって生成されるステータスに関する情報
動的に生成されるもの
/var/local/usr/local用のログファイル保存場所
/var/lock排他制御を行う場合に利用する
他のユーザーが使用中か、変更点を保存しているかなどの情報
/var/logシステム管理者御用達ログファイルの保存場所
システム、メール、インターネットのアクセスログなど、あらゆるログが保存される
安定したシステムでは、このディレクトリに関連したデータとばかり格闘することになります
/var/mailメール関連の動的ファイルを管理する
通常/var/spool/mailへのシンボルリンク
/var/namedBIND DNSサーバ用のディレクトリ
名前解決に関連するファイルが保存されている
chroot化していれば設定ファイルも
/var/nisNIS+等で利用する
/var/opt/opt用の動的ファイル保存場所
/var/preserveエディタがクラッシュした時に利用する
クラッシュ時にメールでクラッシュ前のデータを送信してくれる
/var/pwcheckユーザー認証のSASLライブラリでpwcheckを使う際に利用する
通常はsaslauthdを利用するため、あまり使われることはない
/var/run特定プロセスのプロセス番号を含んだファイル
再起動時にはクリアされる
/var/spoolスプールファイル(実行ファイル・データの一時的な保存)を保存する
処理に時間のかかるものにプロセスを取られ続けるとリソースの無駄なので処理したデータを一度保存する
印刷時の印刷データや、メールの送信データなど
/var/tmpシステム関連の一時ファイルを保存する
/tmpはメモリ上のデータを保存するもので、こちらは再起動時のデータも扱うため、データは保持されます
cronによって削除の期間は設定されています
/var/wwwApacheのデフォルトデータ保存場所
インターネット関連のディレクトリはここに収めるのが普通
かつては/home/httpdディレクトリにあった
/var/ypNISの動的ファイル保存場所
他にも/varには追加するパッケージによってディレクトリが作成されます
FTPやWebmin、racoonなど

bashの環境設定ファイルについて

2017年9月24日日曜日

コマンドが保存されているディレクトリについて

普段何気なく使っているコマンドですが、実はさまざまなディレクトリに保存されています。
/bin汎用(基本)コマンド
/sbin管理者用コマンド
/usr/binアプリケーションで利用する汎用(基本)コマンド
/usr/sbinアプリケーションで利用する管理者用コマンド
/usr/local/bin追加したソフトやパッケージ用のコマンド

bashの環境設定ファイルについて

普段パスを指定すること無くコマンドを利用できるのは、ログイン時にコマンドへのパスが記述された設定ファイルを読み込んでいるからです。
以下の順序で設定ファイルを読み込んでいます。

ログイン時

1.「/etc/profile」の読み込み
このファイルはログイン時に読み込む全ユーザー共通の設定です。
ここで基本的なコマンドにパスを通しています。
2.「.bash_profile」の読み込み
続いてユーザーのhomeディレクトリにある「.bash_profile」を読み込みます。
それがない場合は「.bash_login」。
それもない場合は「.profile」。
という順序でユーザー個別の設定を読み込みます。
なぜか3つも用意されていますが、ディストリビューションによって優先順位や有効なファイルが違うため、使い分ける必要があります。
3.「.bashrc」の読み込み
続いて「.bashrc」を読み込みます。
このファイルはbashが読み込まれる度に更新されます。
bash」とコマンドを打てば設定ファイルへの変更が反映されます。
4.「/etc/bashrc」の読み込み
このファイルにはシステム全体の関数とエイリアスに関する設定が記述されています。
ここでデフォルトのプロンプトを決める「PS1」の設定などをしています。
ここまでで設定は終了です。

ログアウト時

「.bash_logout」の読み込み
最後、ログアウト時にhomeディレクトリにある「.bash_logout」が読み込まれます。
通常画面をクリアする「/usr/bin/clear」が記述されています。

パスの確認

現在のユーザーのパスは以下のコマンドで確認できます。
echo $PATH
/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/www/bin
この表示は「:(コロン)」区切りで以下のディレクトリにパスが通っていることを表しています。
  • /usr/kerberos/bin
  • /usr/local/bin
  • /bin
  • /usr/bin
  • /home/www/bin

環境変数をリセットする際の注意

ユーザーを変更する際に「su」コマンドを使うと思いますが、「su」のあとに「-(ハイフン)」を付けることで、環境変数やホームディレクトリがリセットされます。
一般ユーザーの環境変数を保ったままrootユーザーにログインする
# su
一般ユーザーからrootユーザーの環境変数でログインする
# su -
一般ユーザーの環境変数でログインする
# su - hoge
特に一般ユーザーからrootユーザーに変更する際に「-(ハイフン)」を付ける

「.(ドット)」で始まるファイルの表示

.(ドット)」で始まるファイルは隠しファイルなのでlsコマンドだけだと表示されません。
-a」オプションを付けると表示されます。
$ ls -a
.   .bash_history  .bashrc
..  .bash_profile  .lesshst  Maildir

「.bash_profile」「.bashrc」の内容を確認

基本的に「/etc/profile」と「/etc/bashrc」は全ユーザー共通で利用する設定ファイルで書き換えるのは推奨されていません。
各ユーザーごとに異なる設定にする場合は各ユーザーのhomeディレクトリにある「.bash_profile(バッシュプロファイル)」もしくは「.bashrc(バッシュアールシー)」を編集します。
.bash_profile」はログイン時に1度だけ読み込まれ、「.bashrc」はbashを起動するたびに読み込まれます。
新しい環境変数を設定する場合、特に理由が無ければ「.bash_profile」にまとめて記述するのがお勧めです。
「.bash_profile」の内容
1
2
3
4
5
6
7
8
9
10
11
12
13
# .bash_profile
 
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi
 
# User specific environment and startup programs
 
PATH=$PATH:$HOME/bin
 
export PATH
unset USERNAME
4~6行目の条件分岐はhomeディレクトリに「.bashrc」があったら読み込む。
10行目はhomeディレクトリに「bin」ディレクトリがあったら読み込む。
12行目はパスに関する記述を書き出す(有効にする)設定。
13行目はユーザーネーム変数の開放。

「.bashrc」の内容
1
2
3
4
5
6
7
8
# .bashrc
 
# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi
 
# User specific aliases and functions
4~6行目で「/etc/bashrc」が存在する場合に「/etc/bashrc」を読み込む。
という指定だけです。

カスタムプロンプトについて

プロンプトの表示が急に「-bash-3.2$」という表示になって困ったことはありませんか?そんな時はhomeディレクトリにある「.bash_profile」の設定を確認します。
よくあるコマンドプロンプト
[root@example ~]#
.bash_profile」に「PS1」と追記することでオリジナルのプロンプトを表示することができます。
現在の設定がどのようになっているかは以下のコマンドで確認できます。
# echo $PS1
[¥u@¥h ¥W]¥$
ちなみに「PS1」というのはプライマリプロンプトを表しています。
PS1」だけでなく「PS2」もあります。
これは対話的なコマンドで継続して入力する際(telnetなど)に画面に現れる「>」の表記を変更することができます。
PS3はselect文のプロンプト。
PS4はbashのデバックモードのプロンプトです。
.bash_profile」に追記する際は以下のように記述
例えば「.bash_profile」に以下のように追記すると日時が表示されます。
PS1="[¥d ¥t ¥u@¥h:¥w ] $ "
それぞれ解説すると 「\u」がユーザ名 「\h」がホスト名 「\W」が現在のディレクトリ 「\$」が一般ユーザー時に「$」、ルートユーザー時に「#」 という指定になっています。
編集を終えてプロンプト画面に移行しても、すぐには反映されません。
以下のコマンドで設定を有効にする必要があります(.bashrcに追記した場合はsource .bashrcとします)
# source .bash_profile

オプション一覧
\aベル(ビープ音)をならします(ASCII のベル文字 07)
\d曜日 月 日の形式の日付
\hホスト名(最初の . までの名前)
\Hホスト名
\n改行
\r復帰
\sシェル名(標準だと -bash が表示)
\t時刻 HH:MM:SS 形式(24時間) H = Hour = 時、M = Minutes = 分、S = Seconds = 秒
\T時刻 HH:MM:SS 形式(12時間)
\@時刻 am/pm をつけたもの
Lang=Jaの場合 HH:MM (午前|午後)となる。
\u現在のユーザー名
\vbash のバージョン
\Vbash のバージョン・リリース番号など詳細
\w現在のディレクトリ(フルパス)
\W現在のディレクトリ名
\!コマンドのヒストリー番号
\#コマンドのコマンド番号(ログイン後何回実行したか)
\$UID が 0 であれば『 # 』、それ以外は『 $ 』
\\バックスラッシュ
\[表示されない文字列(エスケープシーケンス/端末制御シーケンス)を埋め込む
\]表示されない文字列の終わり

日付を追加したカスタムプロンプト
.bash_profileに以下を追記
PS1="[¥d ¥t ¥u@¥h:¥w ] $ "
# 表示例)
[金 12月 28 17:45:03 hoge@example:~ ] $
コマンドのヒストリー番号、ホスト名、カーネルのバージョン、コマンドの終了ステータスを表示
環境の異なる複数のプロンプトを開いて使いこなしている場合に便利
kernel_version=$(uname -r)
PS1="¥!|¥h|$kernel_version|¥$?> "
# 表示例)
5|example.com|2.6.18-371.6.1.el5|0>
先頭の5ヒストリー番号
ホームディレクトリの「.bash_history」で参照できる。
末尾の0終了ステータス
正常終了の時0異常終了の時0以外の数字となる。
コマンドによって異常時の終了ステータスは異なるので注意。

カスタムプロンプトのカラー設定

プロンプトのカラーはANSIエスケープシーケンスという形式で表記します
書式)赤い文字を表示する場合
¥e[0;30m
それぞれの要素は以下の様な意味を持ちます。
\e[」制御シーケンス。
いわゆるエスケープ文字。
他にも「\033」とすることもできます。
0」引数。
(文字装飾を指定) 「;」区切り文字 「31」引数。
(文字色) 「m」終了文字。
背景色を指定するには区切り文字をと引数を1つ増やします。
書式)青い背景に赤い文字を表示する場合
¥e[0;30;44m
カラー表示を終了するエスケープシーケンスという記述方法もあります。
この記述移行、カラーは初期化されデフォルトの表示になります。
書式)エスケープシーケンス
¥e[0m

カラーが定義
文字装
番号表示例説明
0hogeAll attributes off(装飾なし)
1hogeBold on(太字)
4hogeUnderscore (on monochrome display adapter only)(下線)
5hogeBlink on(点滅。
仮想コンソールの多くは実際には点滅しません)
7hogeReverse video on(反転文字。
いわゆる選択状態)
8hogeConcealed on(背景色で塗りつぶす)

文字色
番号表示例説明
30hogeBlack
31hogeRed
32hogeGreen
33hogeYellow
34hogeBlue
35hogeMagenta
36hogeCyan
37hogeWhite

背景色
番号表示例説明
40hogeBlack
41hogeRed
42hogeGreen
43hogeYellow
44hogeBlue
45hogeMagenta
46hogeCyan
47hogeWhite

Arch Linuxのwiki」にあるカラーの定義 (「.bash_profile」に追記して利用)
txtblk='¥e[0;30m' # Black - Regular
txtred='¥e[0;31m' # Red
txtgrn='¥e[0;32m' # Green
txtylw='¥e[0;33m' # Yellow
txtblu='¥e[0;34m' # Blue
txtpur='¥e[0;35m' # Purple
txtcyn='¥e[0;36m' # Cyan
txtwht='¥e[0;37m' # White
bldblk='¥e[1;30m' # Black - Bold
bldred='¥e[1;31m' # Red
bldgrn='¥e[1;32m' # Green
bldylw='¥e[1;33m' # Yellow
bldblu='¥e[1;34m' # Blue
bldpur='¥e[1;35m' # Purple
bldcyn='¥e[1;36m' # Cyan
bldwht='¥e[1;37m' # White
unkblk='¥e[4;30m' # Black - Underline
undred='¥e[4;31m' # Red
undgrn='¥e[4;32m' # Green
undylw='¥e[4;33m' # Yellow
undblu='¥e[4;34m' # Blue
undpur='¥e[4;35m' # Purple
undcyn='¥e[4;36m' # Cyan
undwht='¥e[4;37m' # White
bakblk='¥e[40m'   # Black - Background
bakred='¥e[41m'   # Red
bakgrn='¥e[42m'   # Green
bakylw='¥e[43m'   # Yellow
bakblu='¥e[44m'   # Blue
bakpur='¥e[45m'   # Purple
bakcyn='¥e[46m'   # Cyan
bakwht='¥e[47m'   # White
txtrst='¥e[0m'    # Text Reset

上記定義を利用した例
PS1="$txtred[$txtblu¥u@$txtgrn¥h ¥W$txtred]¥$ $txtrst"
ルートユーザーと一般ユーザーで色を分けるとひと目で分かるため便利です。
一般ユーザー(みどり)
PS1="$bldgrn[¥u@¥h ¥W]¥$ $txtrst"
ルートユーザー(あか)
PS1="$bldred[¥u@¥h ¥W]¥$ $txtrst"

エイリアスの設定

.bash_profile」にエイリアスの設定を書いておくと、よく使うコマンドを省略できるので便利です。
1
alias  name=command
とすると有効になります。
よく定義されているのが
1
alias ls='ls -F --color=auto'
というリスト表示をカラフルに表示する設定です。
エイリアスの確認
設定したエイリアスを確認するには以下のコマンドを打ちます。
# alias
エイリアスを無効にする
エイリアスを無効にするには「\」を付けてコマンドを打ちます。
# ¥ls

設定を有効にする

設定を有効にするには再度ログインし直すか、以下のコマンドで有効になります。
$ source .bash_profile

Linuxの基礎知識

LAMP環境

LAMP(ランプ)環境」とは、Linuxの「L」。
Webサーバを構築するApacheの「A」。
データベースを構築するMySQLの「M」。
Webでよく利用されるPHPPerlPythonの「P」と、それぞれのソフトの頭文字を取ったものです。
Linuxでサーバ環境を整える際には、これらのソフトが必要になることが多いので、各ディストリビューションからLAMP環境を簡単に構築できる仕組みが提供されています。

パッケージ管理システム

Linuxでは必要なソフトを選択してインストールするのが一般的です。
しかしソフトはネット上に分散して置かれ、バージョンによって整合性が異なり、インストール時にオプションを指定したりと、運用には多くの専門知識が必要になります。
そうした煩雑なインストール作業を一手に担ってくれるのが「パッケージ管理システム」です。
WindowsやMacでいう、「インストーラー、アンインストーラー」のような役割を果たします。

ソフトの依存関係について

Linuxでソフトのインストールをする際に気をつけなければいけないのが、「依存関係(dependencies)」です。
依存関係とはあるソフトの動作に、別のソフトの機能が必要な関係をいいます。
そのようなソフトは単独で動作しないため、「依存関係にあるソフト」も同時にインストールする必要があります。
特定のWebサイトの閲覧には、ブラウザとプラグインが必要。という関係と同じです。

apt-get

書式:
apt-get [スイッチ] [オプション] [パッケージ]

apt-getコマンドは、Debian系のディストリビューション(DebianやUbuntu)のパッケージ管理システムであるAPT(Advanced Package Tool)ライブラリを利用してパッケージを操作・管理するコマンド

スイッチ
updateAPTライブラリのインデックスを更新
更新先は/etc/apt/sources.listに記述されています
upgradeシステムにインストールされているパッケージを最新バージョンにします
パッケージを新規にインストール・削除する必要がないパッケージのみが最新バージョンにアップグレードされます
dist-upgradeパッケージを新規にインストール・削除する必要の有無に関わらずパッケージをが最新バージョンにアップグレードします
ディストリビューションのアップグレード時に利用します
install パッケージ指定したパッケージをインストールします
remove パッケージ指定したパッケージを削除します

オプション
-dパッケージのダウンロードのみを行います。展開・インストールは行いません
-fパッケージの依存性がおかしくなった場合、その修復を試みます
-qquietモードです。進捗状況を表示しません
-uアップデートするパッケージの一覧を表示します
-sインストールするパッケージの一覧を表示します
-yインタラクティブ(ユーザーへの問い合わせ)に「yes」と答えます

使用例
ATPライブラリを最新版へ更新し(update)、インストールしているパッケージを最新バージョンにアップデート(upgrade)します。apt-getコマンドで最もよく利用する方法のひとつ
# apt-get update
# apt-get upgrade

dist-upgradeスイッチを使って、Debian 6.0(squeeze)から7.0(wheezy)へアップグレードします。

# apt-get dist-upgrade

APTライブラリを使って、C言語のコンパイラであるgccをインストールします。

# apt-get install gcc

便利なテキストエディタ「Emacs」もコマンド一発でインストールすることができます。

# apt-get install emacs


rpm

旧称「Red Hat Package Maneger」。
名前からわかるようにRed Hat系のディストリビューションで採用されたシステムです。
rpmパッケージで提供されたソフトを、簡単な「rpmコマンド」でインストールすることができます。
他にも、アップデート、パッチの適用、wgetコマンドを利用すれば、ネット上のrpmファイルをダウンロードしてインストールすることもできます。

yum

書式:
yum [オプション] [コマンド] [パッケージ]
yumコマンドは、Yellow Dog Linuxのディストリビューション(CentOSやFedora)のパッケージ管理システムであるYum(Yellowdog Updater Modified)を利用してパッケージを操作・管理するコマンド

スイッチ
info パッケージ指定したパッケージの詳細情報を表示します
listインストール可能なパッケージ情報を表示します
install パッケージ指定したパッケージをインストールします
update パッケージ指定したパッケージをアップデートします
パッケージを指定せずにコマンドを実行した場合は、インストールされている全てのパッケージがアップデートされます
remove パッケージ指定したパッケージを削除します
erase パッケージ指定したパッケージを削除します。removeと同義
search 文字列指定した文字列を含むパッケージ一覧を表示します

使用例
システムにインストールされている全てのパッケージを更新
# yum update
システムにインストールされているパッケージを表示します。表示結果をパイプ(|)に渡して、moreコマンドを実行すると便利
# yum list installed | more
パッケージ「emacs」を検索してみる
# yum search emacs
パッケージ「emacs」の詳細情報表示
# yum info emacs
パッケージ「emacs」をインストール
# yum install emacs

リポジトリ

それぞれのパッケージファイルを保持しているディレクトリやサイトのこと。
通常リポジトリというと外部サーバに保存されたパッケージ群を指しますが、自社サーバ内やDVDなどのメディアをリポジトリとして利用することもできます。

外部リポジトリ

リポジトリにはディストリビューションによって公式にサポートされた「公式リポジトリ」と、非公式の「外部リポジトリ」があります。
通常は公式のリポジトリを利用しますが、最新のバージョンや、特殊な用途のソフトを導入するには「外部リポジトリ」が必要になります。
そのための外部リポジトリが有志により管理されています。
その中でも有名なのが 「EPELリポジトリ」 「IUSリポジトリ」 「REMIリポジトリ」 「DAGリポジトリ」などです。
これらを追加することでyumコマンドでインストールできるソフトを拡張できます。
そのため別名、「拡張パッケージ」とも呼ばれています。
外部リポジトリの追加は、良いことばかりかというと、そうでもありません。
公式のものは厳格に依存関係のチェックや、脆弱性への対応を行っています。
しかし、外部のものはyumを利用して依存関係のチェックをしても、不具合の出るものがあります。
また脆弱性が見つかった場合の対応も、公式に比べ遅れることがあります。

クライアントとサーバ

普通クライアントというと取引先を想像しますが、サーバ管理においては、クライアントは「サービスを受ける側」を指します。
対してサーバは「サービスを提供する側」を指します。
自分のパソコン」と「VPSなどで提供されたサーバ」の関係なら、「自分のパソコン」がクライアント、「VPSなどで提供されたサーバ」がサーバです。
VPSなどで提供されたサーバ」と「サービスを利用する外部サーバ」の関係なら、「VPSなどで提供されたサーバ」がクライアントで、「サービスを利用する外部サーバ」がサーバになります。
このように相対的な関係になっているので、解説を読む時は注意してください。

ローカルとリモート

こちらも相対的な関係を示し、ローカルとはサーバやPCなどの「内部」を指し、リモートは「外部」を指します。
サーバにとって「ローカル環境」とは、「サーバ内部」を指します。
反対にクライアント(自分のパソコン)側から見れば「サーバ内部」は「リモート環境」となります。
外部(遠隔地)の環境をコントロールすることを、リモートコントロールといいます。

デーモン、パッケージ

Linuxではバックグラウンドで動作しているソフトウェアのことを「デーモン(Daemon)」と呼びます。
有名なhttpdやsshdの「d」はデーモンという意味です。
複数の機能を統合して1つのソフトにまとめているので、ソフトのことを代わりに「パッケージ」ということもあります。

ディレクトリとフォルダ

Linuxではフォルダのことをディレクトリと呼ぶのが一般的です。
Windowsでは「スタートメニューからプログラムにある○○」もしくはパスで「C:\Program File\…」といった表現をします。
Linuxではルートディレクトリ(一番上のディレクトリ)から「/var/www/index.html」というように指定します。
これは「varディレクトリの中にあるWWWディレクトリにあるindex.htmlというファイル」という意味です。

拡張子について

Linuxではすべてのファイルがテキストベースで作られているため、決まった拡張子がありません。
例えば設定ファイルの場合、ファイルのパスさえ間違えていなければ、拡張子が「txt」でも「ini」でも「cnf」でも全く同じ動作をします。
しかし無秩序に拡張子をつけると間違いの元なので、通常はWindowsやMacで使われる拡張子を付けます。

アカウントについて

Linuxではマルチユーザーを想定してシステムが構築されています。
そのため、ユーザーごとの特徴を把握して、適宜切り替える必要があります。
ユーザーには以下のタイプがあります。

システム管理者

システム管理者として「root(ルート)」というユーザーが定義されています。
rootユーザーのことを別名「スーパーユーザー」とも呼びます。
他にも「システム管理者」と呼ばれることもあります。
ややこしい限りですが、どの呼び方でも同じrootユーザーを示すので注意してください。

一般ユーザー、システムアカウント

システム管理者以外のユーザーを「一般ユーザー」といいます。
またソフトだけが利用する専用のアカウントを「システムアカウント」といいます。
webサーバであれば「apache」、メールソフトでいえば「postfix」など。

firefox addon

2017年9月23日土曜日

1.Hide Caption Titilebar Plus
タイトルバーを隠す

2.stylish
ユーザスタイルシートの管理

サイドバーを左にするcss
#browser {
-moz-box-direction: reverse;
}
#sidebar-box {
overflow-x: hidden !important;
}
#sidebar {
min-width: 0px !important;
max-width: none !important;
overflow-x: hidden !important;
}

webフォント
* {
font-family: "Source Han Sans", sans-serif !important;
}

iframe{
display:none !important;
}
/*全てのiframeを非表示にする。*/

@-moz-document domain(google.com), domain(google.co.jp)
/*「google.com」と「google.co.jp」のドメインのところのみに適用する。
増やしたい場合は、domain(○○○)をコンマで追加していけばOK*/ {
iframe:not([style*="display:"])
/*style属性に「display:」を含まないもの、つまり表示形式を指定していないものにを非表示
これで一応、ホワイトリストにはなるんじゃないかと思うけどね。*/
{
display:inline !important;}
}

/*Yahoo HPにある余計なもの全部*/
#sub>div[style="min-width: 350px; min-height: 197px;"],#rma-pdv,#topImpactR,#topImpactL,div[style="position: absolute; right: 0px; width: 950px; height: 600px; background: rgb(0, 0, 0) none repeat scroll 0% 0%; opacity: 1; transition: all 0.5s ease 0s;"],#brandpanel,#announce,#disasterbox,ul.symbol,#realtime,#selectionR,#companybox,#cgmboxR,#eventPromo,#event,#yjidbox,#qurioRanking,#ultra,#qurioRecommend,#video,#commercebox,#cb,#bpad1481887180{display:none;}
#YPAbeltchild{display:none !important;}
/*Yahooブログに出てくる広告*/
#ydn-top{display:none;}

.insentence-adsense{
display: none;
}

firefox56で音を出すには「PulseAudio」が必要になった
その対策に
アドオン:Watch with MPV(実際の拡張機能名はmpv-youtube-dl-binding)で処理
MPV
youtube-dl

Firefoxが自動でアップデートするのを停止
/root/.mozilla/firefox/u0gdk59s.default/prefs.js に下記追加
user_pref("app.update.auto", false);
user_pref("app.update.enabled", false);
user_pref("app.update.url", "");
user_pref("app.update.url.override", "");
user_pref("browser.search.update", false);

Wine

2017年8月23日水曜日

Wine (ワイン)は、オープンソースの Windows API 実装を通じて、主としてx86アーキテクチャ上のUnix系オペレーティングシステム (OS) においてWindows用アプリケーションをネイティブ動作させることを目標とするプログラム群

実行ファイル
#!/bin/sh
exec wine start /Unix '/opt/ArtRage_2/ArtRage_2.exe'

#!/bin/sh
exec wine.sh /opt/ArtRage_2/ArtRage_2.exe "$@"

文字化け
~/.wine/user.regを以下のように編集
[Software\\Wine\\Fonts\\Replacements] 1240428288
"MS Gothic"="VL Gothic"
"MS PGothic"="VL PGothic"
"MS Sans Serif"="VL PGothic"
"MS Shell Dlg"="VL Gothic"
"MS UI Gothic"="VL PGothic"
"Tahoma"="VL PGothic"
"\xff2d\xff33 \x30b4\x30b7\x30c3\x30af"="VL Gothic"
"\xff2d\xff33 \xff30\x30b4\x30b7\x30c3\x30af"="VL PGothic"

代替えフォントを適宜に指定すれば・・・それでもの時
msゴシックをwindowsより拝借
/usr/share/wine/fonts/msgothic.ttc
/usr/share/wine/wine.inf
551行目
[Fonts]
HKLM,%FontSubStr%,"MS Shell Dlg 2",,"MS UI Gothic"
HKLM,%FontSubStr%,"Tahoma",,"MS UI Gothic"

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