(更新:2017/10)Windows
(更新:2014/07)Android
(更新:2012/02)OS最適化-CentOS
(更新:2011/03)OS最適化-Ubuntu
(更新:2006/03)OS最適化-Vine
(作成:2005/01)
Windows
欧文フォントの日本語対応
コーディングにせよ通常作業にせよ、数字の 0
と英大文字 O
の区別がハッキリしないフォントは使い勝手が悪い。そこでお勧めなのは「Consolas」フォント。数字の 0
に斜線が付くので大変見分け易い。Visual Studioを導入すれば付いてくるけれど、単体でもDLできるみたい。
どうやら「Font Link機能」を使えば、欧文フォントの未定義領域を指定のフォントで補完できるらしい。
Cortana
: regedit
Windows 10なのでCortanaを使うけど、旧環境の場合はスタート
-ファイル名を指定して実行
に読み替えてください。アドレスバー
:\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink
- 左ペイン
SystemLink
右クリック新規
-複数行文字列値
- 右ペイン
新しい値 #1
:Consolas
- 同右クリック
修正
-値のデータ
: MSGOTHIC.TTC,MS Gothic
- 同右クリック
。。。と、ここでVisual Studioもスッキリするかと思ったんだけど、こちらはうまくいかず。設定を別に持ってるのかしらん。
参考:
- 欧文フォントを日本語に対応させる [Tipsというかメモ]
Cortanaで快適ランチャ
PC作業中、アプリ起動でいちいちマウス操作したくない。タスクバーは表示が汚れるし、ビジュアルランチャすら煩わしい。一つ一つのショートカットにホットキー登録なんて覚えてられない。
で、Windows 7時代に超絶活用してたのが「Launchy」。
スタートメニューや指定したフォルダ内のショートカットを総ざらいしてコマンド補完してくれるので、以下2ステップのキーボード操作でアプリを起動できて快適だった。
- ホットキーでLaunchyを起動
- ショートカットの頭数文字分を記入、補完結果を選択(たとえば
ch
だけで Chrome に補完される)してEnter
……んが、如何せん更新されてないのと、ウチとこのWindows 10では不安定なのか気付かないうちに落ちてたり。耐え切れなくなって他のを探そうと思ったけれど、そういやCortanaあるじゃんと思い立ち、もう少しCortanaを快適に使えないか模索してみた。
Cortanaでアプリ起動
ホットキーは Win
+ s
キー。HHKだと入力し難いケドまあ許せる範囲。
Cortanaで指定フォルダ内のショートカットを検索
残念乍らこれは出来ない。ただ スタート
内はちゃんと検索してくれるので、インストーラ無しアプリなんかは1つのフォルダにショートカットをまとめれば済む話。
となれば、ショートカット集を分散させても問題なくすれば良いわけで。
ウチとこではこんな管理方法を取っている。
- インストーラ有りアプリ: スタートメニューは必ず作成。どうせスタートメニューなんて殆ど見ないし……
- インストーラ無しアプリ:
C:\common\share\
内にフォルダ分けして実体を置き、C:\common\bin\
内にショートカットを作成して使う
この C:\common\bin\
をそっくりそのまま C:\Users\(ユーザ名)\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\
にコピーすればCortanaが面倒見てくれる、という寸法。
そこで C:\common\bin\
内にコピーするバッチを作り、ショートカット作成時に手動実行して同期取る。
@echo off
rem #### C:\common\bin\00_syncShortcut.bat
rem ショートカット集の同期バッチ ( riyo の部分は任意でユーザ名に書き換える )
robocopy c:\common\bin "C:\Users\riyo\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\bin" /XF "%0" /mir
ごくごく単純な robocopy
。 /XF "%0"
でバッチ自体を除外してる程度。
これをタスクスケジューラなんかで定期的に回してやっても良いけれど、そんなに頻繁にアプリを入れ替えるわけでも無いので、使う時に手動実行で十分ではないかな。
Linux
コマンドTips
ジョブを落とさずログアウト
リストア作業なんかで割とよくある。
$ nohup (バックグラウンド実行コマンド) &
半角スペースを含むファイル郡の処理
例えば lame
で .wav
を .mp3
に変換する。ダブルクォートで変数を囲むのがポイント。
$ ls *.wav | while read name; do lame -h "$name"; done
コマンド制限ユーザの作成
Webページ専用ユーザとか、ログインして色々する必要の無いユーザは極力ログイン後に制限をしたいものである。何も出来ないってのはアレだが、せめて余計なコマンドは許可したくないもので。
取り敢えずデフォルトのシェルコマンドのみにしちゃう方法。まま安全じゃないかな。
取り敢えずユーザを作る。
# adduser --home /home/hoge --gid 1000 hoge
...
ユーザを作ったら制限付きシェルを作成。つっても既存のシェルのシンボリックリンクだけど。
# ln -s /bin/bash /bin/rbash
次にシェルのエントリを /etc/shells
に追加。
...
/bin/rbash
頭に r
の付くシェルを起動すると制限付きになるらしい。この制限は主にシェルスクリプトに対するもので、結構制限厳しそうねぇ。。。さておき。
作成したユーザのデフォルトシェルを rbash
に設定する。
# su - hoge
$ chsh
Password:
Changing the login shell for hoge
Enter the new value, or press return for the default
Login Shell [/bin/bash]: /bin/rbash
上述の通り、これはあくまでシェルスクリプトに対する制限であり、他の外部プログラムはパスが通っていれば動かせて仕舞うわけで。当前のように chsh
でシェル変更されたら何の意味もないわけだ。
なので、実行可能パスも制限し、その設定ファイルも変更不可能にしてやる必要がある。
$ mkdir ~/bin
# chown root .bash_profile
# chgrp root .bash_profile
# chmod 755 .bash_profile
## ~/.bash_profile
export PATH=/home/bin
実行しても構わないコマンドについては、 ~/bin/
以下にシンボリックリンクを作成してやれば良い。
ログイン不能ユーザの作成
ついでに知ったログイン不能ユーザの作成について。メール専用ユーザとか、ログインする必要の無いユーザ用やね。正直、今の処ウチには必要ないけれど。。。
ユーザを作る時に、 /bin/false
を設定してやれば良い。
# adduser --home /home/hoge --gid 1000 --shell /bin/false hoge
...
ユーザを作った後だったら以下のコマンドでデフォルトシェルを /bin/false
に変更。これだけ。
# usermod -s /bin/false hoge
色々なサービス起動前確認
まあトラブルってーかトラブる前確認よね。設定後これだけはやっとけーってコマンド集。
あ、勿論設定時には設定ファイルのバックアップも怠らずにね。
- Apache
# /etc/init.d/httpd configtest
- BIND
# named-checkconfig /etc/named.conf
# named-checkzone hyakki.local /var/named/hyakki.local.zone
- logrotate
# logrotate -d /etc/logrotate.conf
Ubuntuで再生中の音源を抽出
PulseAudio + ALSAでのやり方。
$ gst-launch-0.10 pulsesrc device=alsa_output.pci-0000_00_1b.0.analog-stereo.monitor ! queue ! audioconvert ! wavenc ! filesink location=Sound/test.wav
device=
部分は、こんな感じで取得できる。
$ pactl list | grep monitor Monitor Source: alsa_output.pci-0000_00_1b.0.analog-stereo.monitor
Name: alsa_output.pci-0000_00_1b.0.analog-stereo.monitor
device.class = "monitor"
PostScriptファイルで複数ページを1ページ分に割り付ける
確認用の印刷とかで全ページ1枚ずつ印刷するのが勿体ない場合、1ページに収まるだけ 印刷したい場合に有効。
$ psnup -n 4 hoge.ps-fuga.ps
論文とかで2ページ分を1枚に、て場合、たまーに空白が広すぎて無恰好になったりする。そんな時は以下のようにして変換してやるとうまくいく。
$ pstops '2:0L@.9(19.5cm,2cm)+1L@.9(19.5cm,14cm)' hoge.ps-fuga.ps
逆順PostScriptファイルの修正
印刷の関係で、逆順印刷した方があとで紙を並べ替える手間が省ける場合がある。そのためか、その状態のままWebなんかに置いてある場合もまま見受けられる。これをPDF文書にして、PC上で閲覧する人には迷惑なことこの上ない。
てなわけで、以下のコマンドによりPSファイルを正順に直すことができる。
$ pstops 1:-0 < hoge.ps-fuga.ps
hoge.psが逆順PSファイル、fuga.psが正順に修正されたPSファイル。
OS最適化
Ubuntu
(11.10) 「GNOME Classic」ログインが出来なくなった
標準ではインストールされなくなったので、拙サイト「Gnome-Shell」を参考に色々インストールする。
(11.10) Windowsリモートデスクトップアプリが無くなった
rsclientが消えた。。。ので「Remmina Remote Desktop Client」導入しませう。こっちのが高機能でサクサク。
# apt-get install remmina
(11.04) 日本語フォルダの名称変更
何だよ日本語表記フォルダて。コマンドラインで打ち難いんだよ。
$ LANG=C xdg-user-dirs-gtk-update
(11.04) 画像ビューワの変更
標準の画像ビューワ Eye は結構重いので、GPicViewをインストールしてこちらを使うようにする。
# apt-get install gpicview
標準のビューワとして利用するには、何らかの画像ファイルを右クリック プロパティ
-開き方
で 画像ビューワ
を選択。同じ名前のが複数ある場合もあるので、選択して動作確認してみること。あと「ファイルを作成する権限がありません」的なエラーが起きた場合は、 .local/share/applications/
ディレクトリに権限が無いかも。 chown
でオーナーを変更してやればOK。
(11.04) 画像ビューワその他
本やなんかを一頁ずつスキャニングしたものを読みたいときとか、2画像を見開きで読みたい時とか云々。Ubuntu最適化ってわけではないけれど、Linuxなら「Comix」てのが結構出来良い。Ubuntuならパッケージもあり。
# apt-get install comix
(11.04) 不要サービスの停止
システムの設定
-自動起動するアプリケーション
より。用途次第だけれど、以下は停止しちゃってもそんなに影響ないんじゃないかな。
- Bluetoothマネージャー
- Evolutionアラーム通知
- Ubuntu One
- Zeitgeist Datahub
- パーソナルファイル共有
- ユーザ・フォルダの更新
- リモート・デスクトップ
- 印刷キューのアプレット
(11.04) 動画とか
何かアップデートしたら見れなくなった……面倒くさいやつだな……。
というわけで「Medibuntuのレポジトリを利用するには」を参考にするのが良かろう。
# wget http://www.medibuntu.org/sources.list.d/`lsb_release -cs`.list --output-document=/etc/apt/sources.list.d/medibuntu.list
# apt-get -q update
# sudo apt-get --yes -q --allow-unauthenticated install medibuntu-keyring
# sudo apt-get -q update
標準の動画プレイヤーでDVDを見るためにはライブラリとコーデックが必要。
# apt-get install libdvdcss2 w32codecs
7-zipファイルをUbuntuで解凍する
p7zip-full
というパッケージがあるらしい。
# apt-get install p7zip-full
解凍方法はこんな感じで。
# 7z x (7-zip圧縮ファイル名)
CentOS
Python 2.6導入
普段Ubuntuを使っているとPythonの旧いのが許せなくなってくる…… telnetlib
でTIMEOUT使えないとかありえないっしょ。で、せめて2.6にバージョンアップをしたいと思うなら、EPEL packageを使うことになる。
# yum install python26 --enablerepo=epel
alternatives
などで管理していない限り、実行コマンドは python26
となるのに注意。
外部スクリプトで別途特殊なパッケージを導入している場合、このコマンドでも一度インストール処理をしてやれば良い。例えばMakoテンプレートエンジンの場合(EasyInstallを利用)。
# cd /usr/local/src/
# python26 ez_setup.py
# cd Mako-0.6.2
# python26 ./setup.py install
不要サービスの停止
ウチの場合CentOSはサーバ用途としてのインストールばかりなので、それ前提で。つまり init 3
、CUI環境でのお話。
個人用途のサーバの場合はこんな感じで不要サービスを停止。
for name in auditd autofs avahi-daemon bluetooth firstboot gpm haldaemon hidd ip6tables iptables irqbalance iscsi iscsid kudzu mcstrans mdmonitor messagebus microcode_ctl nfslock pcscd restorecond rpcgssd rpcidmapd sendmail smartd xfs yum-updatesd; do
chkconfig ${name} off
done
サーバ用途の場合は構成などの問題で少し考えないといけない。けれどまあ、大体こんな感じで綺麗にしてから考える。
for name in auditd autofs avahi-daemon bluetooth firstboot gpm haldaemon hidd ip6tables iptables iscsi iscsid kudzu mcstrans mdmonitor messagebus microcode_ctl nfslock pcscd readahead_early restorecond rpcgssd rpcidmapd smartd xfs yum-updatesd; do
chkconfig ${name} off
done
各サービスの役割とかはググった方が良いかも。敢えて間違いを恐れず紹介するなら、大体こんなようなサービスがデフォルトで起動される。結構要らないものがある。
カテゴリ | サービス名 | 概要 |
---|---|---|
リソース関連 | acpid | 電源管理。昔はapmdなんてのもあったけれど、最近のCentOSでは非標準なのかな? |
プロセス処理関連 | anacron | crondの補助。サーバ停止時に実行出来なかったコマンドを起動時に補完して実行してくれる。 |
プロセス処理関連 | atd | 時間指定でコマンドを実行してくれる。crondと違って単発実行向け。 |
セキュリティ関連 | auditd | システムコールを監査して特定の命令を遮断したりsyslogに渡してくれる。 |
雑多 | autofs | ファイルシステムを利用状況に応じて動的にマウント/アンマウントしてくれる。 |
デバイス関連 | avahi-daemon | ローカルネットワーク上の機器を自動検出してくれる。Macなんかで採用されているらしい。 |
デバイス関連 | bluetooth | まあ名前の通り。 |
リソース関連 | cpuspeed | CPUクロックを動的に変更してくれる。Speedstepなどの対応機種でないと駄目。 |
プロセス処理関連 | crond | 時間指定でコマンド実行してくれる。atdと違って定期実行向け。 |
雑多 | firstboot | キックスタート・インストール用エージェント。 |
デバイス関連 | gtd | コンソールでマウス使わせてくれる。 |
デバイス関連 | haldaemon | D-BUS方式で各種デバイス情報を収集してくれる。 |
デバイス関連 | hidd | Bluetooth使ってマウスやキーボード使わせてくれる。 |
セキュリティ関連 | ip6tables | 簡単に言えばファイアウォールIPv6版。 |
セキュリティ関連 | iptables | 簡単に言えばファイアウォールIPv4版。 |
リソース関連 | irqbalance | マルチコアCPUでの処理をバランシングしてくれる。 |
デバイス関連 | iscsi | iSCSIストレージ使えるようにしてくれる。 |
デバイス関連 | iscsid | iSCSIストレージ使えるようにしてくれる。 |
デバイス関連 | kudzu | 追加/撤去デバイスを見付けて使えるようにしてくれる。 |
監視関連 | lvm2-monitor | LVMボリュームの障害監視をしてくれる。 |
セキュリティ関連 | mcstrans | SELinuxのセキュリティコンテキストを読み易くしてくれる。 |
監視関連 | mdmonitor | ソフトウェアRAIDの障害監視をしてくれる。 |
デバイス関連 | messagebus | D-BUS方式でデバイス間メッセージを送受信してくれる。 |
リソース関連 | microcode_ctl | Intel IA32マイクロコードを更新してくれる。 |
雑多 | netfs | NFSやSambaマウトをしてくれる。 |
セキュリティ関連 | network | ネットワークを使えるようにしてくれる。 |
雑多 | nfslock | NFSサーバでロック機能を提供してくれる。 |
デバイス関連 | pcscd | スマートカードを使わせてくれる。 |
RPC関連 | portmap | リモートホスト間の接続制御をしてくれる。色んなサービスで使われている。 |
デバイス関連 | rawdevices | データ処理をブロックデバイスとして扱わせてくれる。 |
プロセス処理関連 | readahead_early | 起動時に各種プログラムを先読みして起動を早くしてくれる。 |
セキュリティ関連 | restorecond | SELinuxと連携してファイル操作の監視をしてくれる。 |
雑多 | rpcgssd | NFSで使われるRPC処理をしてくれる。 |
雑多 | rpcidmapd | NFSで使われるRPC処理をしてくれる。 |
サービス関連 | sendmail | メール送受信をしてくれる。 |
監視関連 | smartd | HDD S.M.A.R.T機能でヘルスチェックしてくれる。 |
サービス関連 | sshd | セキュアなリモートアクセスをさせてくれる。 |
セキュリティ関連 | syslog | システム関連ログを記録してくれる。 |
サービス関連 | xfs | X Window Systemのフォントサーバ。 |
サービス関連 | yum-updatesd | yumを自動アップデートしてくれる。 |
Vine
apt-get修正
最近のVineでは apt-get
が使えて便利になった。 現状の設定のまま使うのも良いが、回線を無駄に食い潰さないように距離の近い日本のRINGサーバ(www.ring.gr.jp等)を使用するのが良い。この辺は適宜 /etc/apt/sources.list
を修正する。
導入済パッケージのアップデートは基本的に以下のコマンドで行なう。
# apt-get update
...
# apt-get upgrade
...
導入済パッケージの参照方法は rpm
を用いて次のように行なう。
- インストール済パッケージの検索
$ rpm -qa | grep (パッケージ名)
- パッケージ情報の参照
$ rpm -qi (パッケージ名)
- インストールされたファイル一覧
$ rpm -ql (パッケージ名)
パッケージのリビルド
リビルド環境の構築
パッケージによっては、SSLに対応させてセキュアな環境を作りたい時なんかに、一旦ソースパッケージからリビルドせにゃいかんのもある。そのための環境を作成する。
まずはビルド環境の構築。
# apt-get install build-essential
- 追加パッケージ
autoconf
automake
binutils
build-essential
gcc
gcc-c++
glibc-devel
kernel-headers
libstdc++3-devel
libtool
libtool-libs
m4
patch
rpm-build
リビルドは基本的に一般ユーザの権限で作成する。誰か適当な管理ユーザを決めて、以下のコマンドでパッケージの再構築場所を生成する。
$ mkrpmdir .
パッケージの簡単なリビルド方法
src.rpm
は以下のコマンドオプションで取得できる。
$ apt-get source (src.rpmパッケージ名)
これでカレントディレクトリ上に src.rpm
がDLされる。 続いて以下のコマンドで一時的に展開する。
$ rpm -Uvh (src.rpmファイル)
spec
だのソースファイルに必要な修正を施したらパッケージをリビルド。
$ rpm -bb rpm/SPECS/(パッケージ名).spec
なお、機能の追加をした場合なんかはエラーが出るかも知れない。例えば --with-ssl
等のフラグを加筆した場合なんかは openssl-dev
が必要になってくる。自分のやりたい事を理解して、事前に何が必要かの見当は付けておかなきゃいかん。
上手くいけば、大抵は rpm/RPMS/i386/
以下にRPMパッケージが出来上がる。改めてこれをインストールしてやれば良い。
# rpm -ivh rpm/RPMS/i386/(パッケージ名).rpm
起動サービス変更
以下のコマンドにて現在自動起動するサービスをチェック
# chkconfig --list
不要なサービスを以下のコマンドで停止。サーバ用途ならば gpm
kudzu
netfs
等のサービスは不要だろう。
# chkconfig --del (サービス名)
Android
2段階認証とHT-03A
諸事情でdocomoが最初に発売したHT-03Aを復活することになり、Googleアカウントログインしようとしたら出来なかった。アカウント/パスワードが間違っている、と表示されて猿のように何度もログインを試みてしまったけれど、何の事は無い2段階認証が悪さをしていたという話。
- 古いandroid機がgoogleにログイン出来ない!: がらくた研究室
どうやらandroid 2.3以前の機種では2段階認証が使えないらしい。時代の流れを感じてしまうね……さておき。この哀しい状況を打破するには、つまり2段階認証ではない方法でログインできるようにしてやる作業が必要。幸いにもGoogleアカウント設定にて可能なので、その方法について備忘録として遺しておく。
- ログインとセキュリティ(Google)
アプリパスワード
-設定
ログイン
端末を選択
-その他(名前を入力)
: HT-03A生成
上記手順で16文字のランダム文字列が表示されるので、これをパスワードとして用いればOK。