Windows の cygwin 環境で Subversion を使っていると、次のエラーが出た。
Can't convert string from native encoding to 'UTF-8'
環境変数 LANG を LANG=ja_JP.UTF-8 にすれば OK。
export LANG=ja_JP.UTF-8
● Windows, cygwin, subversion, svn, UTF-8, encoding
主に Linux (Ubuntu, Fedora) 関連の設定メモ&小技集です。たまに Windows 関連ネタも。
(プロンプトの $ は一般ユーザ権限、# は root 権限です。いちいち説明はせんよ。)
Windows の cygwin 環境で Subversion を使っていると、次のエラーが出た。
Can't convert string from native encoding to 'UTF-8'
環境変数 LANG を LANG=ja_JP.UTF-8 にすれば OK。
export LANG=ja_JP.UTF-8
● Windows, cygwin, subversion, svn, UTF-8, encoding
Allied Telesis CentreCOM GS905LF ギガビットイーサネットスイッチ。
● パケットキャプチャ, シェアードハブ, バカハブ, フラッディング, FLOODING, packet, capture
Windows の Emacs で ediff を使おうとすると、cygwin の warning が出て、
比較ができない時の対処法。
こんなのが出ます。
cygwin warning: MS-DOS style path detected: c:/Users/[FILE_NAME] Preferred POSIX equivalent is: /cygdrive/c/Users/[FILE_NAME] CYGWIN environment variable option "nodosfilewarning" turns off this warning. Consult the user's guide for more details about POSIX paths: http://cygwin.com/cygwin-ug-net/using.html#using-pathnames
環境変数 CYGWIN に nodosfilewarning を設定すれば OK。
(設定後、Emacs を再起動)
変数名: CYGWIN 変数値: nodosfilewarning
● Emacs, ediff, cygwin, warning, MS-DOS style path detected, error, エラー
~/.emacs から ~/.emacs.d/* へ移行するときに気になったコトのメモ。
参考:
Emacs 実践入門 他
;;; セミコロン 3 つは、見出し ;; 左端のコメントは、セミコロンが 2 つ (hogehoge t) ; 行末のコメントは、セミコロンが 1 つ
・Emacs を再起動する ・S 式 ( "(" 開きカッコから ")" 閉じカッコ(コッカ) で終わるコード ) の末尾で C-x C-e ・M-x eval-buffer RET : カレントバッファをすべて評価 ・M-x eval-region RET : リージョン選択範囲を評価
C:\Users\MASAO\Dropbox\dotfiles\.emacs.d に実態を置く。 C:\Users\MASAO> cd %HOME% C:\Users\MASAO> mklink /D .emacs.d "C:\Users\MASAO\Dropbox\dotfiles\.emacs.d" .emacs.d <<===>> C:\Users\MASAO\Dropbox\dotfiles\.emacs.d のシンボリック リンクが作成されました
下記のようにテキストを書いて、":" で綺麗に揃えたい場合、 AAA: 0001 BB: 0002 C: 0003 リージョンで選択して M-x align-regexp そのあとで、":" を入力すると、綺麗に整形される。 AAA : 0001 BB : 0002 C : 0003
・Emacs で定義されているフェイス一覧を確認 M-x list-faces-display RET
S 式書いて C-j
(+ 1 2 3 4 5) 15
● Emacs, windows, align, eval, 評価,
複数ファイルを処理するときのシェルスクリプトメモ。
カレントディレクトリのファイルを処理。
#!/bin/sh files=(`ls -1`) for file in ${files[@]} do # ここに処理を書く。 done exit 0
これと awk を組み合わせる時のメモ
#!/bin/sh LINE=2 files=(`ls -1`) for file in ${files[@]} do cat $file | awk --assign awk_var="$LINE" ' { # 条件を書かないと必ず実行 } NR == 1 { # 1 行目の場合の処理 } NR == awk_var { # 2 行目の場合の処理 # シェルの変数を assign オプションで awk に渡す } { # next を呼ぶとパターンマッチングせずに次の行を読み込む next } END { # テキストの最後に実行される処理 } ' done exit 0
■ 参考
http://shellscript.sunone.me/awk.html
● 複数, ファイル, 処理, シェルスクリプト, file, for, ファイルリスト
cd x: では、移動できないのか~。/d オプションで、ドライブを指定。
cd /d x:
● windows, コマンドプロンプト, ネットワークドライブ, cd, /d, change directory, command prompt, network, drive
メールに winmail.dat が添付されたときの対処法。
Outlook から リッチテキスト形式 で添付するとこうなるらしい。
(Ubuntu 10.10 で確認)
tnef というコマンドで解凍する。
# apt-get install tnef $ tnef winmail.dat
apt-get でインストールできない場合は、ソースを取ってきてコンパイルすれば良い。
http://sourceforge.net/projects/tnef/
Winmail オープナーを使う。
こっちの方が楽か。
http://www.eolsoft.com/jp/freeware/winmail_opener/
● Winmail.dat, 開く, 解凍, 開き方, 方法, tnef, 開けない, 開けん, winmail opener, オープナー
Word 2003 がセーフモードでしか起動しなくなった場合の対処法メモ。
ファイルが破損しただけかと思ったら、どのファイルを開こうとしてもセーフモードになってしまう。
下記ファイルをリネームして、Word を起動しなおす。
うまく起動したら、リネームしたファイルは削除して良い。
C:\Documents and Settings\[LOGIN_NAME]\ApplicationData\Microsoft\Templates\Normal.dot
忙しい時に限って、こんなことが起こるんだよなぁ。
● Word, 2003, セーフモード, Normal.dot, 起動しない, 通常
Windows7 で X-Mouse の設定をする方法。
「コンピュータの簡単操作」でもフォーカスするまではできるが、ウィンドウが前面に出てしまう。
前面に出したくない人向けの設定方法。
Windows7 (64bit) で確認。
HKEY_CURRENT_USER\Control Panel\Desktop
9e 3e 07 80 12 00 00 00 になっているので、下記のように変更。
Del 1 回押して、9f を入力。
9f 3e 07 80 12 00 00 00
10進 で 50 を設定
参考:
http://sites.google.com/site/dejitarudezainfan/cygwin/mausunofokasu
● Windows7, Win7, X-Mouse, ウィンドウ, 前面, forcus, フォーカス, active, アクティブ, TweakUI, x-mouse
パケットを遅延させる方法。
まさおのブログ (表): Ubuntu でルータ (IPv4) と組み合わせて使うと応用が効く。
(確認した環境: Ubuntu 10.04)
eth1 から出力されるパケットに 500ms の遅延を追加する。
# tc qdisc add dev eth1 root netem delay 500ms (設定の確認) # tc qdisc show qdisc netem 8001: dev eth1 root refcnt 2 limit 1000 delay 500.0ms qdisc pfifo_fast 0: dev eth0 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
設定を元に戻す。
# tc qdisc del dev eth1 root netem delay 500ms (設定の確認) # tc qdisc show qdisc pfifo_fast 0: dev eth1 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1 qdisc pfifo_fast 0: dev eth0 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
参考:
http://diary.sshida.com/20061103-7-diary.html
http://linux-biyori.sakura.ne.jp/setting/st_netem.php
● network, ネットワーク, packet, パケット, latency, 遅延, 追加, 遅らす, tc, delay, netem
Ubuntu PC を NAT ルータ (IPv4) にするときのメモ。
(Ubuntu 10.04)
構成の概要はこんな感じ。
+-----------+ +-----------+ +------+ | Local Net |----[eth1]-| Ubuntu PC |-[eth0]----| 網側 | +-----------+ +-----------+ +------+
各インターフェース eth0, eth1 に IP アドレスを設定。
(説明省略)
# vi /etc/sysctl.conf (下記コメントを外す) net.ipv4.ip_forward=1
# /etc/init.d/networking restart
/proc/sys/net/ipv4/ip_forward が 1 になっているか確認する。
# cat /proc/sys/net/ipv4/ip_forward 1
この設定後、eth1 側から ping で導通チェックする。
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# iptables-save > /etc/iptables # vi /etc/network/if-pre-up.d/iptables (下記を記述) #!/bin/sh /sbin/iptables-restore < /etc/iptables # chmod 755 /etc/network/if-pre-up.d/iptables
下記参照。
まさおのブログ (表): Ubuntu で DHCP サーバ
参考:
http://www.sa-sa-ki.jp/blog/2009/11/ubuntu/
● ルータ, router, PC, IPv4, NAT, masquerade, iptables
Ubuntu で proxy サーバを立てる時のメモ。
(Ubuntu 10.04)
apt-get で。
# apt-get install squid
# vi /etc/squid/squid.conf (port を 8080 に設定) http_port 8080 (アクセス許可ネットワークの設定。既に下記は設定されている) acl localnet src 192.168.0.0/16 (上記 localnet からのアクセスを許可) http_access allow manager localhost の下に下記を追加 (※ local"host" ではない local"net") http_access allow localnet
# /etc/init.d/squid start ( 再起動 ) # /etc/init.d/squid restart
パスワードを設定。
# apt-get install apache2-utils # htpasswd -c /etc/squid/squidpasswd
basic 認証を有効化する設定を squid.conf に追加。
# vi /etc/squid/squid.conf (下記を設定) auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/squidpasswd
上位 proxy サーバの IP アドレスが 192.168.10.1 で、ポートが 8080 の場合の例。
# vi /etc/squid/squid.conf (下記を設定。icp ポート (上位 proxy キャッシュ) を使用しない場合は 7 を設定) cache_peer 192.168.10.1 parent 8080 7 no-query (すべてのリクエストを上位 proxy サーバに転送) never_direct allow all
● squid, proxy, プロキシ, プロキシーサーバ, 設定, 多段, 認証, password, パスワード
svn diff で、パッチを作るときに、バイナリファイルも含めた形でパッチを作る方法。
調べようと思ったら、ググり方が難しい。
結構、利用シーンは、あると思う。
リビジョン、リポジトリの指定は適当にアレンジ。
$ svn diff -r N:M --force --diff-cmd /usr/bin/diff -x '-auN --binary' > hogehoge.patch
● Subversion, サブバージョン, svn, diff, 差分, binary, バイナリ, バイナリファイル, patch, パッチ
Linux で、ファイルの CRC32 をお手軽に取得する方法を調べたところ、
標準的なコマンドは無いみたいだ。なんでだ!?
cksum というコマンドがあるが、これはちょっと違う。
Perl スクリプトの crc32 を使うのが手っ取り早いようだ。
Ubuntu の場合、libarchive-zip-perl というパッケージ名で提供。
Perl に依存してしまうが、これが一番早そう。
自分でコードを書けってことなんかな。
# apt-get install libarchive-zip-perl $ crc32 hogehoge
● CRC32, libarchive-zip-perl, cksum
Ubuntu で Subversion サーバを立てる時のメモ。
(Ubuntu 10.04, subversion-1.7.3)
ソースからビルドして導入。
http://subversion.apache.org/ からたどる。
# apt-get install xinetd libapr1-dev libaprutil1-dev
$ tar zxvf subversion-1.7.3.tar.gz $ cd subversion-1.7.3 $ ./configure $ make # make install
# vi /etc/xinetd.d/svn (下記の内容を記述) service svn { disable = no socket_type = stream protocol = tcp wait = no user = root server = /usr/local/bin/svnserve server_args = -i -r /opt/svn (← Subversion 用ディレクトリ) env = LANG=ja_JP.UTF-8 passenv = LANG } (xinetd をリスタート) # /etc/init.d/xinetd restart
# mkdir /opt/svn # groupadd svn # chown -R :svn /opt/svn # chmod -R 770 /opt/svn # chmod g+s /opt/svn # umask 002 # usermod -G svn masao (ユーザ masao を svn グループに追加。※アクセスする人すべて追加が必要)
$ telnet localhost 3690 Trying ::1... Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. ( success ( 2 2 ( ) ( edit-pipeline svndiff1 absent-entries commit-revprops depth log-revprops atomic-revprops partial-replay ) ) ) (success が見えれば OK。quit で抜ける)
hogehoge というリポジトリを作成する例。
# umask 002 # cd /opt/svn # svnadmin create hogehoge
rep-cache.db のモードを変更しておく。リポジトリを作った人の権限になるため。
# chmod 664 /opt/svn/hogehoge/db/rep-cache.db
hogehoge/trunk (トランク) /tags (タグ用) /branch (ブランチ用)
$ svn co svn+ssh://192.168.0.10/opt/svn/hogehoge/trunk
■ファイル名文字コード変換
$ kcc -c filename $ convmv -r -f euc-jp -t utf-8 * --notest
■文字コード変換 (Windows 系からリリースされたソースをインポートするときとか)
$ find . -type f | xargs -n 10 nkf -w -Lw --overwrite (UTF-8 CR+LF)
■バイナリ テキスト 誤認識変更
(確認) $ svn propget svn:mime-type * (テキスト→バイナリ) $ svn propset svn:mime-type application/octet-stream *.pdf (バイナリ→テキスト) $ svn propset svn:mime-type text/x-tex hoge.tex $ svn propdel svn:mime-type hoge.tex $ svn commit -m ''
■実行権変更
$ svn propset svn:executable ON hogehoge.sh
■再帰的に add
$ svn add * --force
■無視ファイルを登録する
(チェック) $ svn status --no-ignore $ svn status --no-ignore | grep -v ^A (結果を編集して svn add)
● Subversion, サブバージョン, サーバ, server, svn, svn+ssh
現在、Ubuntu 10.04 環境の Firefox バージョンは 10.0.1。
Google Toolbar が Firefox で正式にサポートされなくなったのは、5.0。
Add-on Compatibility Reporter でずいぶん引っ張って使ってましたが、そろそろやめようかなと。
機能的に欲しい (使っている) のは、以下のとおり。
この他の機能を使ってた人も、多分探せば代替手段は見つかるはず。
Add-ons | 説明 |
Add to Search Bar | 任意のサイトの検索窓を追加 |
SearchWP | 検索キーワードのハイライトとページ内検索 |
SearchBox Sync | 検索エンジンと検索窓のキーワードを同期 |
Google Shortcuts | Google サービスへのリンクをツールバーに追加 |
Searchbar Autocomplete Order | 検索履歴の表示順序を変更 |
Google 翻訳ブラウザボタン | ブラウザのボタンのリンクをブックマークツールバーにドラッグ |
userChrome.css ファイルを編集します。
$ vi ~/.mozilla/firefox/********.default/chrome/userChrome.css #searchbar .autocomplete-history-dropmarker { display: -moz-box !important; -moz-binding: url("chrome://global/content/bindings/autocomplete.xml#history-dropmarker"); }
1 個ずつ消すなら行を選択して Shift+Delete。
一括で消したい場合は、検索窓で 「 右クリック 」 → 「 Clear Search History 」
■関連記事
まさおのブログ (表): Firefox アドオンについて
● Firefox, Linux, Google toolbar, 代替, 同機能, 実現, グーグル ツールバー
CPU に負荷をかけるシェルスクリプトメモ
10 秒間負荷をかける (sleep のところは適当に調整)
うちの PC (デュアルコア) でやったら、50 % までしか負荷がかからんやった。
#!/bin/sh (sleep 10 ; kill $$) & while [ 1 ]; do x=1 done
■ 2015/05/16 追記 yes コマンドを使う方法の方が簡単そう。
yes > /dev/null
更に負荷をかけたい場合は、バックグラウンドで実行
yes > /dev/null & yes > /dev/null & yes > /dev/null &
止めたいときは、killall yes とかでいけるか?
● CPU, 負荷, シェルスクリプト, shell script, 100%, usage, yes, 過負荷, 高負荷