Emacs で、ある文字列を改行コードに置換したいときがあります。
^j に置換してやれば良いです。
M-x replace-string または M-% そのあとで、 置換文字列 C-q C-j
● Emacs, Meadow, 置換, 改行コード
主に Linux (Ubuntu, Fedora) 関連の設定メモ&小技集です。たまに Windows 関連ネタも。
(プロンプトの $ は一般ユーザ権限、# は root 権限です。いちいち説明はせんよ。)
Emacs で、ある文字列を改行コードに置換したいときがあります。
^j に置換してやれば良いです。
M-x replace-string または M-% そのあとで、 置換文字列 C-q C-j
● Emacs, Meadow, 置換, 改行コード
Ubuntu は、起動時にメッセージが表示されません。
カーネルコンフィグをいじった後に再起動して、うまく起動できなかったときに、何が起こってるのかがわかりません。
そんなときの対処法。
■ 参考リンク
http://blog.livedoor.jp/sunatomo01/
/boot/grub/menu.lst を編集します。
# vi /boot/grub/menu.lst (kernel オプションの quiet, splash を削除)
# vi /etc/default/rcS VERBOSE=yes に変更
● boot, ブート, ログ, log, メッセージ, 表示, kernel, カーネル, デバッグ, debug, 起動ログ
Ubuntu で、linux kernel をソースコードからビルドする場合、
make-kpkg を使うとパッケージとして管理できますが、
パッケージ管理しなくてもいいや、という時もあります。
例えば、kernel コンフィグの変更を試行錯誤したい場合とか。
(make-kpkg でやる場合って、全部ビルドし直しになりますよね?)
make-kpkg を使うやり方はこちら。
Ubuntu で kernel をソースコードからビルドする (make-kpkg 編)
# cd /usr/src # tar jxvf linux-2.6.30.tar.bz2
# cd linux-2.6.30/ # cp /boot/config-2.6.27-11-generic .config
ここで設定を変えてもいいです。
(変えたいときだけ変える程度)
# make menuconfig
# make bzImage modules modules_install install
# mkinitramfs -o /boot/initrd.img-2.6.30 2.6.30
# vi /boot/grub/menu.lst エントリーを追加 title Ubuntu 8.04.3 LTS, kernel 2.6.30 root (hd0,0) kernel /boot/vmlinuz-2.6.30 root=UUID=**************************** ro initrd /boot/initrd.img-2.6.30 quiet
● make, bzImage, modules, modules_install, install, kernel, build, カーネル, ビルド, grub, menu.lst, mkinitramfs, initrd.img, 作成
先日、気づいたのですが、NTPd を動かさないで PC を起動すると、時刻がずれてました。
どうも RTC に時刻が反映されていない様子。
hwclockfirst.sh と hwclock.sh を編集すると RTC に時刻が反映されます。
# vi /etc/init.d/hwclockfirst.sh # vi /etc/init.d/hwclock.sh 共に、下記の部分を編集。 (変更前) HWCLOCKPARS= (変更後) HWCLOCKPARS=--directisa
● hwclock, RTC, NTP, 反映, 設定, 同期, directisa, hwclockfirst.sh, hwclock.sh
Emacs で、最近開いたファイルを開けるようにする設定。
毎回、M-x recentf を打つのは面倒なので、C-x F に割り当てます。
C-x f は Fill Region とかぶるので、大文字 F。
;;; 最近開いたファイルを開く (require 'recentf) (global-set-key "\C-xF" 'recentf-open-files)
● meadow, 最近開いたファイル, 開く, recentf
Ubuntu で ssh デーモン (sshd) を起動している端末に、DNS 登録 (または hosts に登録) されていない端末からアクセスすると、
ログインできるようになるまでに時間がかかります。
これは、sshd が、接続端末の DNS 解決をしようとして、解決できずにタイムアウトするのに時間がかかってしまうからです。
sshd の設定を変更して、DNS 解決しないようにしてやると、この問題は解決できます。
# vi /etc/ssh/sshd_config (下記を追加する) UseDNS no
# /etc/init.d/ssh restart
● ssh, sshd, ログイン, 接続, 遅い, DNS, 逆引き, 名前解決
最近、自宅の無線 LAN の調子が悪く、しょっちゅう切れるので、
無線 LAN の電波状況をスキャンしてみる。
フリーソフトが無いか調べてみたところ、MOONGIFT で inSSIDer というフリーソフトが紹介されていました。
http://www.moongift.jp/2008/07/inssider/
早速ダウンロードして実行。
見つかったアクセスポイントがリスト表示され、信号強度とチャンネルがグラフ表示されます。
ん? なんか多すぎないか!? 妙に電波強度の強いやつが何個か引っかかりました。
とりあえず、802.11a に待避。
こっちは空いているなぁ。でも、ちょっと遅くなった気が…。
goo スピードテスト で 6.48Mbps
有線 LAN にはできないし、PLC にした方がいいかなぁ。
● inSSIDer, 無線 LAN, スキャン, グラフ表示, 調子, 悪い, 切れる, 切断
kernel 2.6.31 に変えてから、WLI-UC-GN のドライバをコンパイルするときに、下記のエラーが出るようになりました。
make[1]: Entering directory `/usr/src/linux-2.6.31.6' CC [M] /home/masao/work/2009_1106_RT3070_Linux_STA_V2.1.1.0/os/linux/../../os/linux/rt_linux.o /home/masao/work/2009_1106_RT3070_Linux_STA_V2.1.1.0/os/linux/../../os/linux/rt_linux.c: In function 'RtmpOSNetDevAttach': /home/masao/work/2009_1106_RT3070_Linux_STA_V2.1.1.0/os/linux/../../os/linux/rt_linux.c:1510: error: 'struct net_device' has no member named 'open' /home/masao/work/2009_1106_RT3070_Linux_STA_V2.1.1.0/os/linux/../../os/linux/rt_linux.c:1511: error: 'struct net_device' has no member named 'stop' /home/masao/work/2009_1106_RT3070_Linux_STA_V2.1.1.0/os/linux/../../os/linux/rt_linux.c:1512: error: 'struct net_device' has no member named 'hard_start_xmit' /home/masao/work/2009_1106_RT3070_Linux_STA_V2.1.1.0/os/linux/../../os/linux/rt_linux.c:1513: error: 'struct net_device' has no member named 'do_ioctl' /home/masao/work/2009_1106_RT3070_Linux_STA_V2.1.1.0/os/linux/../../os/linux/rt_linux.c:1519: error: 'struct net_device' has no member named 'get_stats' /home/masao/work/2009_1106_RT3070_Linux_STA_V2.1.1.0/os/linux/../../os/linux/rt_linux.c:1553: error: 'struct net_device' has no member named 'validate_addr' make[2]: *** [/home/masao/work/2009_1106_RT3070_Linux_STA_V2.1.1.0/os/linux/../../os/linux/rt_linux.o] Error 1 make[1]: *** [_module_/home/masao/work/2009_1106_RT3070_Linux_STA_V2.1.1.0/os/linux] Error 2 make[1]: Leaving directory `/usr/src/linux-2.6.31.6' make: *** [LINUX] Error 2
パッチを当てるとコンパイルが通るようになります。
http://www.ralinktech.com/support.php?s=2
$ tar jxvf 2009_1110_RT3070_Linux_STA_v2.1.2.0.tar.bz2
http://www.megaupload.com/?d=2NDDOFTR
(予備) http://lists.rpmfusion.org/pipermail/rpmfusion-commits/2009-August/006214.html
(予備) rt3070-2.6.31-compile.patch.gz
$ cd 2009_1110_RT3070_Linux_STA_v2.1.2.0/ $ gunzip -c ../rt3070-2.6.31-compile.patch.gz | patch -p1
$ vi os/linux/config.mk
# Support Wpa_Supplicant HAS_WPA_SUPPLICANT=n # Support Native WpaSupplicant for Network Maganger HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=n
を以下のように修正する (WPA_SUPPLICANT 関連オプションを ”y” に変更)
# Support Wpa_Supplicant HAS_WPA_SUPPLICANT=y # Support Native WpaSupplicant for Network Maganger HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y
$ lsusb ... Bus 001 Device 003: ID 0411:015d MelCo., Inc. ...
$ vi os/linux/usb_main_dev.c struct usb_device_id rtusb_usb_id[] に以下を追加 {USB_DEVICE(0x0411,0x015d)}, /* Melco */
# make # make install
アクセス解析を見ていると、無線 LAN 関係は、困っている人が多いようだ。
● WLI-UC-GN, 2.6.31, error: 'struct net_device' has no member named 'open',
gnome-terminal をやめて、mlterm を使うことにしました。
あと、mlterm のフォント設定を M+ (エムプラス) + IPA にします。
■参考リンク:
http://www10.atwiki.jp/shirayuu/pages/16.html#id_2a3aecde
http://ubulog.blogspot.com/2009/02/ubuntumlterm.html
# apt-get install mlterm mlterm-tools mlterm-im-scim
# apt-get install xfonts-mplus $ sudo xset fp rehash
下記から、フォントをダウンロードします。
http://mix-mplus-ipa.sourceforge.jp/download.html
# mkdir -p /usr/share/fonts/truetype/mplusipa # tar jxvf mixfont-mplus-ipa-TrueType-20060520p1.tar.bz2 # cd mixfont-mplus-ipa-TrueType-20060520p1/opfc-ModuleHP-1.1.1_withIPAFonts_and_Mplus/fonts # cp *.ttf /usr/share/fonts/truetype/mplusipa (ttf ファイルをコピー) # cd /usr/share/fonts/truetype/mplusipa/ # fc-cache -v *.ttf (フォントキャッシュに登録) # mkfontdir (fontdir を作成) # xset fp rehash
mlterml の設定ファイルは ~/.mlterm ディレクトリにあります。
まずは、基本設定。背景=黒、文字=白 の設定です。
$ vi ~/.mlterm/main fontsize = 12 input_method = scim bg_color = black tabsize = 4 scrollbar_mode = right fg_color = white line_space = 0 brightness = 100 gamma = 100 not_use_unicode_font = true use_anti_alias = true
フォント設定。
$ vi ~/.mlterm/aafont ISO8859_1=M+1VM+IPAG circle-iso8859-1:90; ISO8859_1=M+1VM+IPAG circle-iso8859-1:100; JISX0201_ROMAN=M+1VM+IPAG circle-iso10646-1:100; JISX0201_KATA=M+1VM+IPAG circle-iso10646-1:100; JISX0208_1983=M+1VM+IPAG circle-iso10646-1:100; JISX0208_1990=M+1VM+IPAG circle-iso10646-1:100; ISO10646_UCS2_1_BIWIDYH=M+1VM+IPAG circle-iso10646-1:100; ISO10646_UCS2_1=M+1VM+IPAG circle-iso10646-1:100; ISO10646_UCS4_1=M+1VM+IPAG circle-iso10646-1:100; ISO10646_UCS4_1_BIWIDTH=M+1VM+IPAG circle-iso10646-1:100;
色設定。
$ vi ~/.mlterm/color black=#000000 red=#cc0000 green=#4e9a06 yellow=#c4a000 blue=#3465a4 magenta=#75507b cyan=#06989a white=#ffffff hl_black=#555753 hl_red=#ef2929 hl_green=#8ae234 hl_yellow=#fce94f hl_blue=#729fcf hl_magenta=#ad7fa8 hl_cyan=#34e2e2 hl_white=#eeeeec
● mlterm, mplus, M+, IPA, gnome-terminal, ターミナル
私は英語が苦手なのですが、海外の会社の人とメールとかでやりとりしないといけないことがたまにあります。
大抵の場合、「エキサイト 翻訳」 や、「アルクの 英辞郎 on the WEB」 を駆使することになります。
でも、調べているうちに、いろいろな表現があって、どの表現を使う "べき" なのか迷います。
(変な英語書いてるんだろうなぁ)
で、それを解決してくれそうな本がこれ。
「マスターしておきたい 技術英語の基本」
表紙は地味なんですが、内容はすばらしいです。今、少しずつ読んでいるところです。
技術英語で間違えやすい単語・表現についてまとめられています。
例文も情報・電子分野のものが多いので、参考になりそう。
厚さ 1cm の割に、お値段高め 2,400 円ですが、読んで損はないと思います。
Word を使うときの TIPS をメモ。
図形描画については、Excel, PowerPoint でも使えると思います。
ま、これは大抵の人が知っていると思います。
軽くジャブ。
Word 2007 では、ダブルクリックでしたが、それより前のバージョンではやり方が違うかもしれません。
ページの境界にマウスを持って行くと、やり方が出てくるはずです。
他の人が作った Word ファイルを開いたときに、この表示になることがあるんですよね。
解除の方法を知ったのは、昨日でした。
いつも、Word で図を書くときに、グリッドが大きすぎて、Excel や PowerPoint のようにきれいに
描きにくいなぁと思っていたら、設定の変更が可能でした。
これで、描画位置の微調整が可能になります。
「描画ツール」→「書式」→「配置」→「グリッドの設定」を選択し、
設定値を小さくしてやります。
線をまっすぐ縦横に引きたい場合は、「Shift」を押すと、縦横 (ななめ) にマウスの移動が制限されます。
あと、同じ図形をコピーするときに、対象図形をマウスで選択して「Ctrl」を押して、
さらに「Shift」を押すとこれも縦横に移動が制限されて、レイアウトしやすくなります。
血液型が A 型の人はどうぞ。
「Shift」を押す前は、こんな感じでどこでも移動できます。
上の状態から、「Shift」を押すと、図形の位置が揃います (今回の例では縦に揃う)。
● Word, ページ表示, ページ毎, グリッド, 大きい, 小さく, 図形, 揃えたい
Ubuntu の /bin/sh は、bash のシンボリックリンクではなく、dash (Debian Almquist Shell)になっています。
dash は、ほぼ、bourne shell に近い動きをします。
ちなみに、Fedora は bash のシンボリックリンクです。
世の中には、シェルスクリプトの先頭に #!/bin/sh と書いておきながら、
bash でしか動作しないコードを含んでいるものもあります。
正しくは、そのシェルスクリプトで #!/bin/bash と書き換えるべきなのですが、
それも難しい場合があります。
# 入手したソースコードが、そうなっていたとか (あるある)。
そんなときは、以下のコマンドで dash から bash に切り替えます。
# dpkg-reconfigure dash
動くはずのシェルスクリプトが、動かない場合は、ここを疑ってみると良いです。
● /bin/sh, bash, dash, dpkg-reconfigure, 切り替え
会社で、共有ファイルサーバのファイルの場所をメールに貼り付けることが、良くあります。
そんなとき、便利な Windows ソフト。
lifehacker.jp で紹介されていました。こいつは便利。
ファイルを選択して右クリックすると、「Copy Path」というメニューが追加されます。
コピーしたいパス (フォルダ名 or ファイル名) を選択して、「貼り付け」すれば OK。
エクスプローラにアドレスバーを表示しとけばいいじゃん。という意見もありますが、
ファイルサーバのフォルダをネットワークドライブに割り当てている場合でも、
ホスト名をたどって表示してくれるので、便利だったりします。
常用フリーソフトに採用です。
● Copy Path Shell Extension, copy, path, windows, free, paste
窓の杜で紹介されていましたが、UNetbootin を使うと、各種 OS の USB メモリインストーラーが、
簡単に作成できるそうです。
まだ使ったこと無いですが、いつか使うことがあると思うのでメモ。
Windows, Linux に対応しているようです。
ディストリビューションと、バージョンを指定して、あとは USB メモリのドライブを指定すれば OK。
リンク:
http://unetbootin.sourceforge.net/
● UNetbootin, OS, Linux, インストーラ, installer, USB, メモリ, memory, 起動ディスク
distcc を使うと、複数のマシンで並列分散コンパイルを行うことができるようになり、
処理時間を短縮することができます。
カーネルのビルドや、アプリケーションのビルドに有効です。
Ubuntu での設定をまとめます。
# apt-get install distcc
# vi /etc/default/distcc (編集するのは、下記 3 箇所) STARTDISTCC="true" ALLOWEDNETS="192.168.0.0/24" → アクセスを許可するネットワークを指定 LISTENER="192.168.0.10" → アクセスを許可する NIC の IP アドレスを指定
apt-get でインストールした時点で、自動起動するようにはなっています。
# /etc/init.d/distcc start
~/.bashrc にでも書いておくと良いです。
$ export DISTCC_HOSTS='localhost 192.168.0.20' (localhost と分散先を指定します)
$ make -j 10 CC=distcc CXX=distcc
$ CC=distcc CXX=distcc ./configrue $ make -j 10
# MAKEFLAGS="CC=distcc CXX=distcc" CONCURRENCY_LEVEL=10 make-kpkg --initrd kernel_image kernel_headers
ちなみに、CPU を貸す側 PC の処理優先度は、nice 値 25 で実行されます。
(つまり、優先度低)
top の実行結果 (抜粋) 24034 distccd 25 5 37460 34m 4732 R 30 1.7 0:00.90 cc1 7864 root 20 0 40448 15m 6268 S 1 0.8 0:55.04 Xorg 8496 masao 20 0 20208 8824 7308 S 1 0.4 0:02.25 metacity 24035 distccd 25 5 5920 4084 844 R 1 0.2 0:00.02 as 8497 masao 20 0 41008 20m 15m S 0 1.0 0:01.72 gnome-panel 8540 masao 20 0 52772 20m 10m S 0 1.0 0:05.70 gnome-terminal 23650 distccd 25 5 2100 712 372 S 0 0.0 0:00.13 distccd 23671 distccd 25 5 2100 568 372 S 0 0.0 0:00.19 distccd 23807 distccd 25 5 2100 664 372 S 0 0.0 0:00.09 distccd 24046 distccd 25 5 10908 4924 2152 R 0 0.2 0:00.01 cc1 ...
distccmon-text コマンドを使うと、どの PC で何の処理をしているかモニタリングすることができます。
$ distccmon-text 2 (2 は 2 秒ごとに更新) 5858 Blocked [0] 5918 Compile translate.c 192.168.0.30[0] 5700 Compile log.c 192.168.0.30[1] 5772 Compile entries.c 192.168.0.30[2] 5873 Compile questions.c 192.168.0.20[0] 5879 Compile merge.c 192.168.0.20[0] 5868 Compile lock.c 192.168.0.20[0] 5884 Compile props.c localhost[0] 5847 Compile relocate.c localhost[1]
● distcc, 並列, 分散, build, ビルド, compile, コンパイル, distccmon-text
Subversion は、バージョンに互換性がないことがあるようです。
例えば、Samba で Linux と Windows でフォルダを共有している環境で、
Windows 側からは TortoiseSVN 1.6.5 を使用して、
Linux 側から Subversion 1.4.6 を使用したときに、
下記のエラーが出ます。
svn: このクライアントは、作業コピー '.' を扱うには古すぎます。 もっと新しい Subversion クライアントをダウンロードしてください。 または svn: This client is too old to work with working copy '.'; please get a newer Subversion client
こんなときは、Windows 側の TortoiseSVN のバージョンを下げるか、Linux 側の Subversion のバージョンをあげます。
Ubuntu で apt-get しても、1.6.5 にはならないので、ソースからビルドしてインストールします (Windows 側で対応するのは説明省略)。
# apt-get remove subversion
下記サイトからダウンロード。
http://subversion.tigris.org/
# apt-get install libaprutil1-dev
$ tar jxvf subversion-1.6.5.tar.bz2 $ cd subversion-1.6.5/ $ ./configure $ make # make install
configure 時に、下記メッセージが出ることがありますが、無視して良いです。
configure: WARNING: we have configured without BDB filesystem support You don't seem to have Berkeley DB version 4.0.14 or newer installed and linked to APR-UTIL. We have created Makefiles which will build without the Berkeley DB back-end; your repositories will use FSFS as the default back-end. You can find the latest version of Berkeley DB here: http://www.oracle.com/technology/software/products/berkeley-db/index.html
● subversion, tortoisesvn, APR, BDB, Ubuntu
他の PC から X アプリケーションを自分の PC に表示したいときがあります。
Ubuntu でやる場合は以下のようにやります。
# vi /etc/X11/xinit/xserverrc exec /usr/bin/X11/X -nolisten tcp の行を編集 (-nolisten tcp を外します) ↓ exec /usr/bin/X11/X
# xhost +
other_pc は転送元 PC。
$ ssh -X other_pc
環境変数 DISPLAY を設定後に起動するか、X アプリの -display オプションで設定します。
xeyes を起動する場合の例。
$ export DISPLAY=my_pc:0.0 $ xeyes または $ xeyes -display my_pc:0.0
Ubuntu 16.04 環境では、転送先 PC で、下記の設定が必要でした。
# vi /etc/lightdm/ligthdm.conf 下記を追記して、再起動。 [SeatDefaults] xserver-allow-tcp=true
● xhost +, DISPLAY, :0.0, -display, 効かない, Can't open display
Ubuntu で Subversion を GUI で使う時のメモ。
何個かあるんですが、RapidSVN と Meld の組み合わせが良さそうです。
メンテされているし。
RapidSVN は Subversion のフロントエンドで、
Meld は diff ツールです。
# apt-get install rapidsvn
# apt-get install meld
「View」 → 「Preferences...」 「Programs」 タブの Diff tool: のところに下記を設定 /usr/bin/meld
Program arguments のところに下記を設定 %1 %2
● Subversion, RapidSVN, Meld, diff, svn, GUI, linux, 差分
MS Project は、好きなソフトではないのですが…。
フリーで MS Project 互換のソフトがあるようです。
その名も OpenProj。
ファイルの閲覧だけでなく、編集もできるそうです。
へぇ~。
● Microsoft, Project, MS, プロジェクト, OpenProj, 互換, 代替, フリー
あまり、利用することはないとは思いますが、使うこともあるかもしれないので、メモしておきます。
Ubuntu に標準で付いている mail コマンドは、ローカルのメールボックスのメールしか読めません。
メール出すときも、ローカルのメールサーバ経由でしか出せなかったりします。
POP サーバからメールを受信し、SMTP サーバからメールを送信する場合は、
Heirloom mailx を使います。
mail コマンドの機能拡張版といったところのソフトです。
IMAP, POP3, APOP, SSL/TLS, S/MIME に対応しています。
http://sourceforge.net/projects/heirloom/
特にはまるところは無いはず。
$ tar jxvf mailx-12.4.tar.bz2 $ cd mailx-12.4/ $ vi Makefile (下記の部分を編集) UCBINSTALL = /usr/ucb/install を UCBINSTALL = /usr/bin/install
$ vi ~/.mailrc set NAIL_EXTRA_RC=~/.nailrc set smtp=smtp.hogehoge.org:25 set from=NAME@hogehoge.org $ vi ~/.nailrc shortcut popacct %:pop3://NAME@pop.hogehoge.org
$ mailx popacct
Subject test, hogehoge.txt に書いてあるメールの内容を送信する場合
$ mailx -s test hoge@hogehoge.org < hogehoge.txt
■ 2011/01/06 更新
mailx のダウンロードページを修正 ( Hairloom home ページのリンクからだと nail しかダウンロードできないようだ )
● mailx, Heirloom mailx, smtp, IMAP, POP3, APOP, S/MIME, SSL/TLS
cron 設定。Linux の基本です。
# crontab -e
詳細は以下を参照。
Manpage of CRONTAB
毎日 21:30 に、シャットダウンしたい場合の例。
30 21 * * * /sbin/shutdown -h now
# crontab -l # m h dom mon dow command 30 21 * * * /sbin/shutdown -h now
設定ファイルの実態は、/var/spool/cron/crontabs/root にあります。
(root ユーザの場合)
● cron, crontab
Ubuntu 9.04 で Buffalo WLI-UC-G を動かそうと格闘したときのメモです。
結果的に、動くには動いたのですが、何が効いたのか、わからない状態です。
WLI-UC-G は rt73 ドライバで動作するようです。
以下のサイトから rt73-cvs-daily.tar.gz をダウンロードします。
http://rt2x00.serialmonkey.com/wiki/index.php/Main_Page
http://sourceforge.net/projects/rt2400/
$ tar zxvf rt73-cvs-daily.tar.gz
$ cd rt73-cvs-2009041204/Module/ $ cp rtmp_def.h rtmp_def.h-org $ vi rtmp_def.h (下記の場所にデバイス ID 0x0411, 0x0137 の設定を追加します) /* Buffalo */\ {USB_DEVICE(0x0411,0x00d8)}, /* WLI-US-SG54HP */\ {USB_DEVICE(0x0411,0x00f4)},\ {USB_DEVICE(0x0411,0x0137)}, /* WLI-UC-G */\
$ make # make install
私の環境では、WEP 系のアクセスポイントしか設定できない状態でした。
自宅で使っている WPA 系は設定できないので、さらに格闘。
・関係ないと思いつつ、apt-get で rt73-common をインストール
→ ダメ
# apt-get install rt73-common
・それじゃ、kernel 付属のドライバでどうだってことで、rt73usb.c に、デバイス ID を追加して再インストール
→ ダメ
# apt-get install linux-source-2.6.28 # cd /usr/src/ # tar jxvf linux-source-2.6.28.tar.bz2 # cd linux-source-2.6.28/drivers/net/wireless/rt2x00/ # cp rt73usb.c rt73usb.c-org # vi rt73usb.c (下記の場所に、デバイス ID 0x0411, 0x0137 の設定を追加) /* Buffalo */ { USB_DEVICE(0x0411, 0x00f4), USB_DEVICE_DATA(&rt73usb_ops) }, { USB_DEVICE(0x0411, 0x0137), USB_DEVICE_DATA(&rt73usb_ops) }, # mv Makefile Makefile-org # vi Makefile (Makefile を下記のように新規作成) obj-m += rt73usb.o # make -C /lib/modules/`uname -r`/build M=`pwd` # cp rt73usb.ko /lib/modules/`uname -r`/kernel/drivers/net/wireless/rt2x00/
この辺で、再起動すると、動作するようになっていました。
別のディスクで、同様の操作をしてみたのですが、それはダメでした。
(何が効いたのか、全く謎です)。
結論:
WLI-UC-G より、WLI-UC-GN の方が導入しやすい。
(すみません、参考にならないですね)
Ubuntu のパッケージを更新してから再起動、
再度 rt73 のソースを make clean; make ; make install して、再起動をすると、
WPA 系の暗号化も利用できるようになっていました。
kernel 2.6.31.4 のソースを取得して、下記ファイルを編集して、ビルドすると、WPA2 系でも動作しました。
linux-2.6.31.4/drivers/net/wireless/rt2x00/rt73usb.c
kernel 2.6.34 のソースでは、下記ファイルを編集して、ビルドしてもダメでした。
linux-2.6.34/drivers/net/wireless/rt2x00/rt73usb.c
それじゃ、次の手段。
下記から compat-wireless-2.6.34-rc4.tar.bz2 をダウンロード。
ちなみに、compat-wireless-2.6.34.tar.bz2 は、ビルドに失敗しました。
http://www.orbit-lab.org/kernel/compat-wireless-2.6-stable/v2.6.34/
# tar jxvf compat-wireless-2.6.34.tar.bz2 # cd compat-wireless-2.6.34-rc4/ # vi drivers/net/wireless/rt2x00/rt73usb.c (下記を追加) { USB_DEVICE(0x0411, 0x0137), USB_DEVICE_DATA(&rt73usb_ops) }, # make # make install (これじゃインストールされないのかな? /lib のファイルが更新されてなかったら、無理やりコピー) # cp drivers/net/wireless/rt2x00/rt73usb.ko /lib/modules/2.6.34/kernel/drivers/net/wireless/rt2x00/rt73usb.ko
これでいけました。
● Buffalo, WLI-UC-G, rt73, 0x0411, 0x0137, 411, 137, WPA, WEP, WLI-UC-GN, 比較, どっち, 無線, LAN
大規模なソースコードを解析するときは、Doxygen を使います。
Doxygen については、以下を参照。現在の最新バージョンは 1.5.9 でした。
http://www.doxygen.jp/
この使用法以外にも、特定の書式でソースコードにコメントを挿入することで、
ソースコードから、HTML 等のドキュメントを生成することもできます。
Windows でも、Linux でも動作します。試しに、Doxygen のソースを Doxygen にかけてみました。
こんな感じで表示してくれます。
が、設定項目が多すぎるのが難点なので、この Doxyfile を使うと良いです。
以下のパラメータを変更すると使えるはずです (変更しなくてもいけるかも)。
INPUT_ENCODING | ソースの文字コードが UTF-8の場合: UTF-8, SJISの場合: CP932 |
PROJECT_NAME | プロジェクト名を適当に指定 |
この Doxyfile をソースコードのあるフォルダにコピーして、Doxywizard で開きます。
終了したら、html フォルダの index.html を開きます。
# apt-get install doxygen doxygen-gui graphviz
# doxywizard
あとは、Windows と同様です。
● Doxygen, Graphviz, Doxyfile, Doxywizard, ソースコード, 解析
キーリピートを高速化すると、キーボード入力がサクサクになるそうで、
今まで使っていませんでしたが、これからは使うようにします。
コーディングの効率が、上がるそうです。せっかちになるかも。
kbdacc というフリーソフトを使うと良いそうです。早速導入。
下記の設定が、ちょうど良いぐらい。
初っ端のタメ | 200 ms |
キーリピートの間隔 | 25ms |
X が起動していないと有効になりませんが、xset で設定可能です。
$ xset r rate 200 25
~/.bashrc に、以下を追加すると良いです。
if [ $DISPLAY ]; then xset r rate 200 25 fi
~/.bashrc に記述する内容を修正。
● キーリピート, kbdacc, xset, キーボード, 高速化, key, repeat
Windows の VirtualBox 上で Ubuntu 8.04 を動作させるときのメモ。
試した環境は、以下の通りです。 ・Dell Inspiron 530 (Intel Core2 Duo 3.00GHz, 2GB RAM) ・Windows Xp Professional Version 2002 Service Pack3 ・VirtualBox Ver.3.0.4 ・Ubuntu 8.04 LTS (VirtualBox 用イメージ)
下記サイトからダウンロードして、インストールします。
http://jp.sun.com/products/software/virtualbox/get.html
ネットワーク関連ドライバをインストールするときに、警告が出ますが、無視して続けます。
下記のサイトからダウンロードします。
http://www.ubuntulinux.jp/products/JA-Localized/virtualbox
ubuntu-ja-8.04-virtualbox-i386.zip を展開して、
D:\Ubuntu-8.04-Japanese-VBox に置きます。
言語、キーボードタイプ、タイムゾーン、ユーザ設定等を行います。
# apt-get update # apt-get upgrade
共有フォルダ等の拡張機能を使用する場合は、インストールが必要です。
あと、kernel をアップデートする度に、インストールする必要があります。
・Windows 側で、D:\VBoxShare フォルダを作成します (このフォルダを共有します)。
・VirtualBox で共有フォルダの設定をします。
マウントが確認できれば OK。
# mount -t vboxsf VBoxShare /VBoxShare /sbin/mount.vboxsf: mounting failed with the error: Protocol error と出る場合は、以下のコマンドを実行します。 # mount.vboxsf VBoxShare /VBoxShare
ネットワーク系のデーモンは停止しない方が良いようだ (ネットワークにつながらなくなった)。
・Ubuntu インストール後にする設定
・Ubuntu 起動時間短縮
・Ubuntu 高速化
Guest Addtion の再インストールに関する記述修正。
● VirtualBox, Guest Additions, 共有フォルダ, mount, mount.vboxsf
Ubuntu で NFS サーバの設定をする手順について。
# apt-get install nfs-kernel-server
(read only でマウントする場合の例) /home/ftp/pub/linux/fedora/11 192.168.0.0/255.255.255.0(ro,sync) (read write でマウントする場合の例) /home/hogehoge 192.168.0.0/255.255.255.0(rw,sync,no_root_squash)
# /etc/init.d/nfs-kernel-server restart
# exportfs -r
# mkdir -p /mnt/fedora # mount 192.168.0.1:/home/ftp/pub/linux/fedora/11 /mnt/fedora # mkdir -p /mnt/hogehoge # mount 192.168.0.1:/home/hogehoge /mnt/hogehoge
Ubuntu 12.04 で試したところ、上記の方法はちょっとダメで、オプション no_subtree_check を追加したほうが良いようだ。
以下、設定例。
# vi etc/exports /home/hogehoge 192.168.0.0/255.255.255.0(rw,sync,no_root_squash,no_subtree_check)
● NFS, exportfs, mount
Ubuntu 9.04 の Firefox で Flash が再生できない問題について。
Firefox をシェルから起動すると、Flash 再生時に下記のようなエラーが出ていました。
(前略) SWFDEC: ERROR: swfdec_bits.c(227): swfdec_bits_get_u16: reading past end of buffer SWFDEC: ERROR: swfdec_bits.c(227): swfdec_bits_get_u16: reading past end of buffer SWFDEC: ERROR: swfdec_bits.c(240): swfdec_bits_get_s16: reading past end of buffer (中略) SWFDEC: ERROR: swfdec_swf_decoder.c(361): swfdec_swf_decoder_parse_one: data after last frame SWFDEC: ERROR: swfdec_swf_decoder.c(361): swfdec_swf_decoder_parse_one: data after last frame
早速、調べてみたところ、libswfdec を再インストールすれば直るとのこと。
以下のようにやると、再生できるようになりました。
# apt-get remove libswfdec-0.8-0 # apt-get install libswfdec-0.8-0
参考:
http://d.hatena.ne.jp/hanahi/20090510/p4
● Firefox、Flash、再生、libswfdec、swfdec
Ubuntu の Vim は、ファイルを開いたときに、前回終了した場所にカーソルがありません。
Fedora のときは、特に設定しなくても、前回終了した場所にカーソルがありました。
.vimrc に設定を追加することで、それは解決するようです。
Fedora はどこかで設定されてたのかな?
.vimrc に以下を追加します。
(この設定を探すのに時間がかかりました)
" 前回終了したカーソル行に移動 autocmd BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") | exe "normal g`\"" | endif
参考: http://d.hatena.ne.jp/sugarbabe335/20080801/1217596590
現在の .vimrc 。
syntax off set autoindent set tabstop=4 set expandtab set vb " set number " 入力中のコマンドをステータスに表示 set showcmd " 括弧入力時の対応する括弧を表示 set showmatch " ステータスラインを常に表示 set laststatus=2 " 前回終了したカーソル行に移動 autocmd BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") | exe "normal g`\"" | endif " 文字コードの自動認識 " http://www.kawaz.jp/pukiwiki/?vim#content_1_7 if &encoding !=# 'utf-8' set encoding=japan set fileencoding=japan endif if has('iconv') let s:enc_euc = 'euc-jp' let s:enc_jis = 'iso-2022-jp' " iconvがeucJP-msに対応しているかをチェック if iconv("\x87\x64\x87\x6a", 'cp932', 'eucjp-ms') ==# "\xad\xc5\xad\xcb" let s:enc_euc = 'eucjp-ms' let s:enc_jis = 'iso-2022-jp-3' " iconvがJISX0213に対応しているかをチェック elseif iconv("\x87\x64\x87\x6a", 'cp932', 'euc-jisx0213') ==# "\xad\xc5\xad\xcb" let s:enc_euc = 'euc-jisx0213' let s:enc_jis = 'iso-2022-jp-3' endif " fileencodingsを構築 if &encoding ==# 'utf-8' let s:fileencodings_default = &fileencodings let &fileencodings = s:enc_jis .','. s:enc_euc .',cp932' let &fileencodings = &fileencodings .','. s:fileencodings_default unlet s:fileencodings_default else let &fileencodings = &fileencodings .','. s:enc_jis set fileencodings+=utf-8,ucs-2le,ucs-2 if &encoding =~# '^\(euc-jp\|euc-jisx0213\|eucjp-ms\)$' set fileencodings+=cp932 set fileencodings-=euc-jp set fileencodings-=euc-jisx0213 set fileencodings-=eucjp-ms let &encoding = s:enc_euc let &fileencoding = s:enc_euc else let &fileencodings = &fileencodings .','. s:enc_euc endif endif " 定数を処分 unlet s:enc_euc unlet s:enc_jis endif " 日本語を含まない場合は fileencoding に encoding を使うようにする if has('autocmd') function! AU_ReCheck_FENC() if &fileencoding =~# 'iso-2022-jp' && search("[^\x01-\x7e]", 'n') == 0 let &fileencoding=&encoding endif endfunction autocmd BufReadPost * call AU_ReCheck_FENC() endif " 改行コードの自動認識 set fileformats=unix,dos,mac " □とか○の文字があってもカーソル位置がずれないようにする if exists('&ambiwidth') set ambiwidth=double endif
参考: http://www.kawaz.jp/pukiwiki/?vim#content_1_7
● Vim、前回、編集、終了、場所、カーソル、.viminfo、.vimrc
よくこのコマンドを忘れるので、ちょっとメモしておきます。
キーコードを調べるには、xev を使います。
X event の略らしい (これで覚えそうだな)。
$ xev
● xev, keycode
Ubuntu でユーザを追加するときは、useradd ではなく adduser を使うべきです。
なぜなら、useradd はホームディレクトリが作られないから。
どちらを使っても、そんなに変わらない挙動だと思ってたんですけどね。
使い方は以下の通り。
# adduser USER_NAME USER_NAME のところにログイン名を入力します。 適宜 -u (uid), -g (gid) オプションを指定します。
/home 以下にホームディレクトリが作成され、
/etc/skel/ ディレクトリから設定ファイル .bashrc 等がコピーされます。
パスワードも設定します。
useradd の場合は、これらをやってくれません。
# adduser -u 1004 USER_NAME Adding user `USER_NAME' ... Adding new group `USER_NAME' (1004) ... Adding new user `USER_NAME' (1004) with group `USER_NAME' ... Creating home directory `/home/USER_NAME' ... Copying files from `/etc/skel' ... Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully Changing the user information for USER_NAME Enter the new value, or press ENTER for the default Full Name []: Taro HOGEHOGE Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [y/N] y
● adduser, useradd
デスクトップまたは特定のウィンドウ内のキーボードとマウスの操作を動画で録画することをスクリーンキャストと言うそうです。
会社での打ち合わせで Linux (Ubuntu) 上の操作をデモしようと思って調べたところ、
いくつかのツールがみつかりました (recordmydesktop, wink, istanbul, ...)。
その中で一番まともそうな recordmydesktop について。
これは、操作内容を ogg ファイル形式で保存をしてくれます。
Ubuntu での導入例ですが、Fedora とかでも動くみたいです (そちらは未確認です)。
# apt-get install gtk-recordmydesktop
Ctrl+c で、録画を停止します。
$ recordmydesktop -o OUTPUT_FILE.ogg (-o オプション無しのデフォルトの出力ファイル名は out.ogg です)
VLC は Windows 版もあるので、Windows PC にもインストールしておくと良いです。
# apt-get install vlc $ vlc OUTPUT_FILE.ogg
xwininfo で録画したいウィンドウの Window id を調べてから、指定します。
$ xwininfo xwininfo: Please select the window about which you would like information by clicking the mouse in that window. xwininfo: Window id: 0x3400002 "Emulator" Absolute upper-left X: 306 Absolute upper-left Y: 60 Relative upper-left X: 5 Relative upper-left Y: 24 Width: 882 Height: 683 Depth: 16 Visual Class: TrueColor Border width: 0 Class: InputOutput Colormap: 0x3400011 (not installed) Bit Gravity State: ForgetGravity Window Gravity State: NorthWestGravity Backing Store State: NotUseful Save Under State: no Map State: IsViewable Override Redirect State: no Corners: +306+60 -92+60 -92-281 +306-281 -geometry 882x683-87+36
今回の例では Window id は 0x3400002 です。
$ recordmydesktop -windowid 0x3400002
$ gtk-recordmydesktop
● recordmydesktop, vlc, スクリーンキャスト、キャプチャ、デスクトップ、操作、動画
Ubuntu で http サーバを立てる手順。
# apt-get install apache2
http://HTTP_SERVER_ADDRESS/~USER_NAME/ で、ユーザのページを参照可能にします。
# a2enmod userdir Module userdir installed; run /etc/init.d/apache2 force-reload to enable.
# /etc/init.d/apache2 restart * Restarting web server apache2
● httpd, apache, public_html, userdir, http サーバ, Web サーバ, http server, Web server
alternative システムは、
同じ機能をもつ複数のプログラムを一つのシステムにインストールして、
共存させることを可能とする仕組みだそうです。
(そんな仕組みがあって、知らず知らずのうちに使っていたとは…)
例えば、java というコマンドをたどっていくと、/etc/alternatives/java にシンボリックリンクが張られています。
さらにその先は、/usr/lib/jvm/java-6-sun/jre/bin/java にリンクが張られていたりします。
$ which java /usr/bin/java $ ll /usr/bin/java lrwxrwxrwx 1 root root 22 Jun 30 09:29 /usr/bin/java -> /etc/alternatives/java
複数の java のパッケージをインストールした場合、alternatives の設定を変更することで、
どの java コマンドを使うか明示的に切り替えることができます。
PATH の設定を変えても java が切り替わらない方は、この設定を確認すると良いと思います。
alternatives の設定を変更するには、update-alternatives コマンドを使います。
自分でシンボリックリンクを張り替えるよりは、このコマンド使った方が安全そうです。
java コマンドの実態を java-6-sun に切り替える場合は、以下のようにします (番号を選択)。
# update-alternatives --config java There are 4 alternatives which provide `java'. Selection Alternative ----------------------------------------------- 1 /usr/bin/gij-4.2 + 2 /usr/lib/jvm/java-gcj/jre/bin/java 3 /usr/lib/jvm/java-1.5.0-sun/jre/bin/java * 4 /usr/lib/jvm/java-6-sun/jre/bin/java Press enter to keep the default[*], or type selection number: 4 Using '/usr/lib/jvm/java-6-sun/jre/bin/java' to provide 'java'.
参考:
http://manpages.ubuntu.com/manpages/hardy/ja/man8/update-alternatives.8.html
あるコマンドのソースコードを調べてみたいとか、見てみたいということがあります。
そんなときは apt-get で簡単にソースコードを取ってくることができます。
以下は dig コマンドのソースを取ってくる場合の例。
# which dig /usr/bin/dig
# dpkg -S /usr/bin/dig dnsutils: /usr/bin/dig
# mkdir dig # cd dig # apt-get source dnsutils
あとは bind9-9.4.2.dfsg.P2 ディレクトリ内を調べます。
他のコマンドでも同様のやり方でいけます。
# ls bind9-9.4.2.dfsg.P2 bind9_9.4.2.dfsg.P2-2ubuntu0.1.dsc bind9_9.4.2.dfsg.P2-2ubuntu0.1.diff.gz bind9_9.4.2.dfsg.P2.orig.tar.gz
Ubuntu では、関数系のオンラインマニュアルが、デフォルトではインストールされません。
以下のようにしてインストールします。
# apt-get install manpages-ja # apt-get install manpages-ja-dev
この投稿は古くなりました (2013/06/19)。
こちらを参照してください。
まさおのブログ (表): Ubuntu で DHCP サーバ
Ubuntu で DHCP サーバの設定をするときのメモ。
今回の例では、eth1 に DHCP サーバの設定をします。
(eth0 側には DHCP サーバを立てません)
そのうち、Ubuntu をルータにします。今回はその前準備ということで。
# apt-get install dhcp3-server
# vi /etc/default/dhcp3-server INTERFACES="" ↓ INTERFACES="eth1"
設定例。ちなみに eth1 の IP アドレスは 192.168.10.1 です。
その他、細かい設定の説明は省略。
domain-name は適当に。
# vi /etc/dhcp3/dhcpd.conf option domain-name "hogehoge.local"; option domain-name-servers 192.168.10.1; default-lease-time 600; max-lease-time 7200; subnet 192.168.10.0 netmask 255.255.255.0 { range 192.168.10.10 192.168.10.30; option domain-name-servers 192.168.10.1; option domain-name "hogehoge.local"; option routers 192.168.10.1; option subnet-mask 255.255.255.0; option broadcast-address 192.168.10.255; default-lease-time 600; max-lease-time 7200; }
Ubuntu の Emacs で alt+<, alt+> が、なぜか効かない。
alt+< : ファイルの先頭に移動
alt+> : ファイルの最後に移動
(Esc+<, Esc+> は効くのに)
Emacs 使いには、必須のキーバインドなんですが、レイアウト(なんだこれ?)のキーバインドになっていました。
その設定を解除します。
ツールバーの 「システム」 → 「設定」 → 「キーボード」
「キーボードの設定」 の 「レイアウトタブ」を選択し、
「レイアウトのオプション」 で 「Layout switching」 を選択、
Alt+Shift change layout. のチェックを外します。
この設定はインストールの度にしないといけないのか? むむっ。
Ubuntu で FTP サーバを立てるときのメモ。
FTP デーモンはいろいろあるのですが (pureftpd, proftpd, vsftpd,...) Fedora の時も使っていた vsftpd にします。
# apt-get install vsftpd
# vi /etc/vsftpd.conf anonymous_enable=YES local_umask=022 local_enable=YES (設定するのは、ひとまずこれぐらいですね)
# /etc/init.d/vsftpd restart
192.168.0.1 は、設定した端末の IP アドレス。
$ ftp 192.168.0.1
/home/ftp が anonymous FTP サーバの root になります。
下記の設定が必要。
# vi /etc/vsftpd.conf (下記を追加) allow_writeable_chroot=YES
# chmod a-w /home/user
設定に local_enable=YES を追加しました。
ローカルユーザで、ホームディレクトリにログインしたい場合の設定を追加。
● vsftpd, Ubuntu, FTP, ftp, サーバ, サーバー, server, 設定
proxy サーバの配下で git を使う方法です。調べると結構引っかかりました。
参考にさせていただいた方々に感謝。とても重宝しています。
# apt-get install corkscrew
proxy.hogehoge は proxy サーバ名。
# vi /usr/local/bin/git-proxy.sh #/bin/bash CORKSCREW=`which corkscrew` $CORKSCREW proxy.hogehoge 8080 $1 $2
# chmod 755 /usr/local/bin/git-proxy.sh
# vi ~/.bashrc export GIT_PROXY_COMMAND=/usr/local/bin/git-proxy.sh
参考:
http://mkosaki.blog46.fc2.com/blog-entry-700.html
http://d.hatena.ne.jp/rx7/20080703/p1
まさおのブログ (表): Android ソースを http 経由で取得する ( corkscrew 無しで )
● git, proxy, corkscrew, プロキシ, 経由
ちょっとした文字列の検索には grep を使いますが、いくつかのディレクトリをまたいだりする場合は、Perl の ack を使った方が早いです。
インストールは以下のようにやります。
# cpan App::Ack
使い方は以下の通り。サブディレクトリ以下も検索してくれます。
$ ack hogehoge (hogehoge を検索) $ ack -i hogehoge (-i: 大文字小文字を区別しない)
● cpan, ack, perl
Ubuntu はデフォルトで ssh デーモンがインストールされていません。
次のコマンドでインストールしてやる必要があります。
# apt-get install openssh-server
以上です。
Ubuntu で Samba の設定。
(smb.conf のコメントに writable がないのはなぜだろう)
# apt-get install samba
# smbpasswd -a UserName (UserName の部分は適当に書き換えます)
writable 以外の項目はコメントアウトされているのを外して編集。
writable = yes は追加します。
# vi /etc/samba/smb.conf [homes] セクションを以下のように編集 comment = Home Directories browseable = yes create mask = 0644 directory mask = 0755 valid users = %S writable = yes
# /etc/init.d/samba start または # /etc/init.d/smbd start # /etc/init.d/nmbd start
この設定は不要かもしれません。インストール時に起動するように設定されるかも。
# sysv-rc-conf samba の RunLevel 2345 を有効にします。
エクスプローラで \\192.168.0.1\UserName でアクセスできるか確認。 パスワードを聞かれたら、2. で設定したパスワードを入力。
Windows10 で接続するときにエラーになる場合、下記を /etc/samba/smb.conf に追記する。
min protocol = SMB2 max protocol = SMB2
Windows10 から認証アクセスできない事がある場合、下記を設定する。
デフォルトは bad user
map to guest = never
この投稿は古くなりました (2013/5/20)。
こちらを参照してください。
まさおのブログ (表): Ubuntu 12.04 で Synergy を設定する
Ubuntu で Synergy を使うときのメモ。
# apt-get install synergy
# vi /etc/gdm/Init/Default 末尾 exit 0 の前に以下を挿入 /usr/bin/synergyc 192.168.0.1 (192.168.0.1 は Synergy サーバの IP アドレス)
$ /usr/bin/synergyc 192.168.0.1 (192.168.0.1 は Synergy サーバの IP アドレス)
Linux で設定ファイルとかの編集は Vim を使うことがたびたびあります。
シェルスクリプトや設定ファイルで、複数行のコメントをまとめて外したり、
コメントアウトしたり。
そんなときに必要なコマンドをまとめます。
うまくいかんやん。という場合は、Vim を使ってない可能性があります。
which vi で、Vi の実態が何か辿っていくと良いでしょう。
(vi.tiny だったりする)
矩形選択方法は、編集モードにして、Ctrl-v で始点を決定して、カーソルを移動します。
その後で、以下のコマンドを実行します (他にもありますが、使うのはこれぐらいでしょう)。
コマンド | 説明 |
d | 矩形を削除 |
I | 矩形の直前に追記 ("アイ"の大文字) |
A | 矩形の直後に追記 |
c | 矩形を置換 |
以下、編集例。
行頭の # 部分を Ctrl+v 押下後、カーソル移動で矩形選択し、d。
#aaa #bbb #ccc ↓ aaa bbb ccc
行頭を Ctrl-v 押下後、カーソル移動で矩形選択し、I + # + Esc。
aaa bbb ccc ↓ #aaa #bbb #ccc
スペースを挿入したい部分で Ctrl+v 押下後、カーソル移動で矩形選択し、A + (スペース) + Esc)
aaa= 1 bbb= 1 ccc= 2 ↓ aaa = 1 bbb = 1 ccc = 2
パラメータ部分を Ctrl+v 押下後、カーソル移動で矩形選択し、c + 0 + Esc)
aaa = 1 bbb = 1 ccc = 2 ↓ aaa = 0 bbb = 0 ccc = 0
Windows の Firefox で PDF ファイルが表示できなくなることがたまにあります。
Adobe Reader をアップデートした後とかにダメになることがあります。
Adobe Reader がアップデートしたら、直るかなと思い、
しばらく我慢して、使い続けてみましたが、アップデートしても直りませんでした。
(ちょっとイライラ)
google で調べてみると、本家本元に情報がありました。
Firefox で PDF ファイルを表示する
説明の通りにやっていくと、あっさり解決。
「プラグインを再インストール」のところで直りました。
はやくやっとけば良かったな (反省)。
Fedora で halt ユーザを作る方法を Ubuntu でやってもうまくいきませんでした。
Ubuntu でやる場合は以下の手順でやります。
GUI ログインする場合はシャットダウンできません。
CUI から halt ユーザでログインするとシャットダウンできます。
# useradd -u 14 -g 0 -d /sbin halt
# vi /usr/local/sbin/shutdown_now #!/bin/sh sudo /sbin/shutdown -h now # chmod 755 /usr/local/sbin/shutdown_now
# vipw halt:x:14:0::/sbin:/usr/local/sbin/shutdown_now (halt ユーザログイン時に /usr/local/sbin/shutdown_now が実行される)
# vipw -s halt::14427:0:99999:7::: (halt: の後の * を削除します)
# visudo halt ALL=(ALL) NOPASSWD: /sbin/shutdown -h now
Ubuntu で複数の NIC を使用する場合のメモです (Ubuntu 8.04.2 LTS で確認)。
NIC とインターフェイスを明示的に割り当てる場合は、
/etc/udev/rules.d/70-persistent-net.rules を編集します。
ちなみに、Fedora は /etc/modules.conf を書き換えるだけです (説明省略)。
今回の例は、
マザーボードに搭載されている e1000e に eth0 を
PCI バスに差した 3c59x に eth1 を割り当てています。
最後の NAME="eth*" の部分を編集して、割り当てたい番号を設定すれば OK。
# vi /etc/udev/rules.d/70-persistent-net.rules # PCI device 0x8086:0x10de (e1000e) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:22:44:66:88:AA", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" # PCI device 0x10b7:0x9050 (3c59x) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:11:22:33:44:55", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
Ubuntu は NIC を差し替えても、このファイルは書き換わらず、追記されていきます。
なので、別の NIC に差し替えた後で起動すると、2 つしか NIC が無いのに、
eth0, eth2 が有効になります。困ったちゃんです。
そのうち Ubuntu の癖に慣れると思います。
あまりこんなことは無いんですが、シリアルとか ssh, telnet でログインした端末で、
Ctrl-c によるプログラムの停止ができないことがあります。
こんな時の対処方法。
まず、stty コマンドで intr が設定されているか確認する。
$ stty -a intr = の設定を確認する。
intr が設定されていなければ、以下を実行する
$ stty intr "^c"
これで Ctrl-c が効くようになるはず。
他にも効かないキーがあれば、設定可能。
$ stty intr "^C" erase "^H" kill "^U" eof "^D" susp "^Z"
Windows で無いと困るソフトの 1 つに Virtual Desktop for Win32 (フリーソフト) があります。
http://homepage1.nifty.com/salt/VD.htm
Virtual Desktop 使用歴はかれこれ 14 年。最初は、Solaris 上の FVWM のやつを使っていました。
Virtual Desktop を使い始めた当時から、どのデスクトップにどのウィンドウを開くか決めていて、
タスクバーやタスクリストでウィンドウを切り替えるのではなく、
デスクトップを切り替えることでウィンドウを切り替えるようにしています。
画面の切り替えは Ctrl+矢印キー で行います (VD for Win32 のデフォルトからは変更しています)。
デスクトップは 2×4 (横 2 個、縦 4 個) で使います。
各デスクトップの役割は以下の通りです。
・メーラ (Meadow+Mew) ・エディタ | ・ブラウザ (Firefox) |
・Office 系 1 (資料作成用) ・エクスプローラ | (未使用) |
・Office 系 2 (資料作成用/参照用) ・エクスプローラ | (未使用) |
・Office 系 3 (資料作成用/参照用) ・エクスプローラ | (未使用) |
こうしておくと、Office 系 1 で作業中にメールを読むときは Ctrl+↑。
そこからブラウザは Ctrl+→。
また作業に戻るときは Ctrl+←、Ctrl+↓。
そこからブラウザを見たいときは Ctrl+↑、Ctrl+→。
場所を決めておけば、タスクリストからウィンドウを探す必要が無くなります。
この配置はお薦めです。
タスクバーやタスクリストを探している方。その時間もったいないですよ。
Dell OPTIPLEX 760 に Linux (Ubuntu, Fedora) をインストールしたところ NIC が動作しない。
カーネルを 2.6.30 にしてもダメ。
NIC は Intel 82567LM-3 (e1000e) が載っていて、ドライバが無いから動かない状態…。
ということで、カーネルツリーにドライバが入るまでのつなぎとして(そのうちはいるでしょう)、
ドライバをソースからビルドして使えるようにします。
e1000e-0.5.18.3.tar.gz
$ tar zxvf e1000e-0.5.18.3.tar.gz $ cd e1000e-0.5.18.3/src/ $ make $ sudo make install
$ sudo vi /etc/modules e1000e を追加します。
$ sudo vi /etc/modprobe.conf alias eth0 e1000e を追加します。
Fedora の方は起動時に変なメッセージが出るなぁ。とりあえず、使えるのと、つなぎなので追求しません。
2.6.30.4 あたりから、カーネルソースに組み込まれたようです。
いつから組み込まれたかは、未確認です。
最新カーネルのビルド方法は Ubuntu で kernel をソースコードからビルドする を参照。
● Dell, optiplex, 760, Intel, 82567LM-3, e1000e
会社の PC (Ubuntu 8.04 LTS) でカーネルを 2.6.30 にあげた後で気が付いたのですが、WLI-UC-GN のドライバがビルドできない。こりゃいかんということで、更新します。
Ubuntu 8.04 に限らず、8.10, 9.04 でもいけると思います。
前回の Ubuntu 8.10 で USB 無線 LAN アダプタ (Buffalo WLI-UC-GN) を使う は obsolete。
参考:Akinekoの日記
Linux(Ubuntu 9.04)で未対応USB無線LANアダプタ(WLI-UC-GN)の設定方法
(勝手に相互リンク!)
1. 下記の場所から最新ドライバをダウンロードする (RT3070USB(RT307x) を選択)
http://www.ralinktech.com/support.php?s=2
2. ダウンロードしたファイルを展開する
$ tar jxvf 2009_0525_RT3070_Linux_STA_v2.1.1.0.tar.bz2
3. os/linux/config.mk を編集する
$ cd 2009_0525_RT3070_Linux_STA_v2.1.1.0/os/linux/ $ vi config.mk
# Support Wpa_Supplicant HAS_WPA_SUPPLICANT=n # Support Native WpaSupplicant for Network Maganger HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=n
を以下のように修正する (WPA_SUPPLICANT 関連オプションを ”y” に変更)
# Support Wpa_Supplicant HAS_WPA_SUPPLICANT=y # Support Native WpaSupplicant for Network Maganger HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y
4. WLI-UC-GN を PC の USB ポートに挿入し、デバイス ID を調べる
$ lsusb ... Bus 001 Device 003: ID 0411:015d MelCo., Inc. ...
5. 2009_0525_RT3070_Linux_STA_v2.1.1.0/os/linux/usb_main_dev.c を編集する
$ vi 2009_0525_RT3070_Linux_STA_v2.1.1.0/os/linux/usb_main_dev.c struct usb_device_id rtusb_usb_id[] に以下を追加 {USB_DEVICE(0x0411,0x015d)}, /* Melco */
5. make & make install する。
# make # make install
kernel 2.6.31.3 の環境でビルドしようとすると、エラーでビルドに失敗しました。
いつからできなくなったのか、わかりません。
新しいドライバは公開されていないし、kernel のバージョンを落とそうかな。
下記のサイトからパッチ rt3070-2.6.31-compile.patch.gz をダウンロードして、
http://www.megaupload.com/?d=2NDDOFTR
kernel 2.6.31.6 (ソース) の環境でビルドしたところ、ビルドが通りました。
あと、RT3070USB(RT307x) のドライバは更新されていて、20091106 版がでていました。
近いうち、更新したいと思います。
これまで通りの作業にパッチを当てる作業が追加されるだけなので、急がれる方は試してみては?
telnet のエスケープシーケンスは ^] で知っていたのですが、
ssh のエスケープシーケンスは?
調べたところ、~. (チルダ、ドット) でした。
telnet や ssh で接続している端末が電源 OFF になった場合に、
そこから復帰するときに使います。
telnet のエスケープシーケンス | ^] |
ssh のエスケープシーケンス | ~. |
Windows でテキストファイルを印刷するときには ak2pr を使っています。
Meadow や Mew から印刷するときに便利です。
フォントの設定や、2 段組、3 段組、4 段組…、段数も任意に指定可能。
クリップボード印刷も可能なので、お使いのテキストビューアで印刷したい範囲をコピーすれば、印刷できます。
# ちょっとアイコンが変なんですが… (失礼)
最近の PC は USB ブートできるようになりました。
あと、USB メモリも安価で大容量のものが入手できるようになりました。
こうなってくると、Linux のインストーラを DVD とかに焼かなくても、USB メモリからインストールすればいいじゃん。
ということになってきます。
USB メモリインストーラの作成方法をまとめます。
作業は WindowsXp PC で行いました。Linux でも同様の手順でできるはずです。
1. まず、iso ファイルをダウンロードします。
(今回は Fedora11 の iso ファイルを使いました)
2. USB メモリをフォーマットします。
(説明省略)
3. Unetbootin をダウンロードします。
http://unetbootin.sourceforge.net/
今回は Windows 版を使いました (Linux 版もあります)。
4. Unetbootin を起動し、以下のように設定します。
実行中の画面はこんな感じです。
※ 最初、iso ファイルを DAEMON Tools Lite (Free) でマウントしてファイルをコピーしてみましたが、ブートしませんでした。
(ブートフラグも立ってないし、ま、それは無理というもの)
早速、Fedora11 をインストールしようとしたが、途中から進めなかった (調査中)
インストーラが、途中から USB を認識してくれなくなるようで、この方法はダメですね。
iso イメージを USB に焼く方法として利用します (おしいなぁ)。
最新の Linux kernel を利用するには、ソースからビルドするしかありません。
Ubuntu でそれをやる場合、Fedora とは違う作法があるようです。
1. kernel ソースを kernel.org からダウンロードします。
(2009/06/17 時点の最新版は 2.6.30)
2. ダウンロードしたソースを展開します。
# cd /usr/src # tar jxvf linux-2.6.30.tar.bz2
3. 今起動している kernel のコンフィグファイルを /boot/ ディレクトリからコピーします。
# cd linux-2.6.30/ # cp /boot/config-2.6.27-11-generic .config
4. make menuconfig を実行します。ここで設定を変えてもいいです。
(変えたいときだけ変える程度)
# make menuconfig
5. make-kpkg でビルドします (パッケージ管理するため)。
# make-kpkg --initrd kernel_image kernel_headers ※ make-kpkg の前に CONCURRENCY_LEVEL=2 を付けると、処理の並列化が図れます。 # CONCURRENCY_LEVEL=2 make-kpkg --initrd kernel_image kernel_headers ※ kernel-package が無い場合はインストールしておきます。 # apt-get install kernel-package
6. 一つ上のディレクトリに deb ファイルが作成されるのでインストールします。
(この deb ファイルを配ると、他のメンバーのビルドの手間が省けます)
# cd .. # dpkg -i linux-image-2.6.30_2.6.30-10.00.Custom_i386.deb # dpkg -i linux-headers-2.6.30_2.6.30-10.00.Custom_i386.deb
7. grub の設定を変更します。
# vi /boot/grub/menu.lst 大抵の場合 default 0 に設定すれば、インストールしたカーネルで起動します。
カーネル Ver.2.6.30.3 で運用中に、Ver.2.6.30.4 とかにアップデートしようとすると、
下記のエラーが出て、アップデートできません。
# dpkg -i linux-image-2.6.30.4_2.6.30.4-10.00.Custom_i386.deb Selecting previously deselected package linux-image-2.6.30.4. (Reading database ... 147376 files and directories currently installed.) Unpacking linux-image-2.6.30.4 (from linux-image-2.6.30.4_2.6.30.4-10.00.Custom_i386.deb) ... Done. dpkg: error processing linux-image-2.6.30.4_2.6.30.4-10.00.Custom_i386.deb (--install): trying to overwrite `/lib/firmware/av7110/bootcode.bin', which is also in package linux-image-2.6.30.3 dpkg-deb: subprocess paste killed by signal (Broken pipe) Running postrm hook script /sbin/update-grub. Searching for GRUB installation directory ... found: /boot/grub Searching for default file ... found: /boot/grub/default Testing for an existing GRUB menu.lst file ... found: /boot/grub/menu.lst Searching for splash image ... none found, skipping ... Found kernel: /boot/vmlinuz-2.6.30.3 Found kernel: /boot/vmlinuz-2.6.24-19-generic Found kernel: /boot/memtest86+.bin Updating /boot/grub/menu.lst ... done Errors were encountered while processing: linux-image-2.6.30.4_2.6.30.4-10.00.Custom_i386.deb
こんなときは、運用中のパッケージを削除してから、インストールします。
※ これをやるときは、かならず起動できるカーネルイメージを 1 つは残してからやること。
※ インストールしたカーネルが起動しなかったときは、残しておいたカーネルで一旦起動してから、復旧させる必要があります。
途中、Do you want to abort removal now? と聞かれますが、
No を選択します。
# dpkg -r linux-image-2.6.30.3 (Reading database ... 147375 files and directories currently installed.) Removing linux-image-2.6.30.3 ... Ok, proceeding with removing running kernel image. Running postrm hook script /sbin/update-grub. Searching for GRUB installation directory ... found: /boot/grub Searching for default file ... found: /boot/grub/default Testing for an existing GRUB menu.lst file ... found: /boot/grub/menu.lst Searching for splash image ... none found, skipping ... Found kernel: /boot/vmlinuz-2.6.24-19-generic Found kernel: /boot/memtest86+.bin Replacing config file /var/run/grub/menu.lst with new version Updating /boot/grub/menu.lst ... done The link /vmlinuz is a damaged link Removing symbolic link vmlinuz Unless you used the optional flag in lilo, you may need to re-run your boot loader[lilo] The link /initrd.img is a damaged link Removing symbolic link initrd.img Unless you used the optional flag in lilo, you may need to re-run your boot loader[lilo] ■ Do you want to abort removal now? → No を選択
そのあとで、インストールします。
# dpkg -i linux-image-2.6.30.4_2.6.30.4-10.00.Custom_i386.deb (Reading database ... 144924 files and directories currently installed.) Unpacking linux-image-2.6.30.4 (from linux-image-2.6.30.4_2.6.30.4-10.00.Custom_i386.deb) ... Done. Setting up linux-image-2.6.30.4 (2.6.30.4-10.00.Custom) ... Running depmod. Finding valid ramdisk creators. Using mkinitramfs-kpkg to build the ramdisk. Running postinst hook script update-grub. Searching for GRUB installation directory ... found: /boot/grub Searching for default file ... found: /boot/grub/default Testing for an existing GRUB menu.lst file ... found: /boot/grub/menu.lst Searching for splash image ... none found, skipping ... Found kernel: /boot/vmlinuz-2.6.30.4 Found kernel: /boot/vmlinuz-2.6.24-19-generic Found kernel: /boot/memtest86+.bin Replacing config file /var/run/grub/menu.lst with new version Updating /boot/grub/menu.lst ... done
make-kpkg 実行時に、CONCURRENCY_LEVEL を設定することで、並列処理が図れることを追記。
カーネル Ver.2.6.38.2 をビルドする時に下記のエラーが出ました。
The UTS Release version in include/linux/version.h "" does not match current version: "2.6.38.2" Please correct this. make: *** [install/linux-image-2.6.38.2] Error 2
この手のエラーが出た時は、下記を実行して再ビルドすれば OK。
# cp include/generated/utsrelease.h include/generated/compile.h include/linux/● kernel, build
diff と patch の使い方メモ。
ファイル単位のパッチを作る場合は、以下のようにします。
$ diff -c FROMFILE TOFILE > PATCHFILE.patch
ディレクトリ単位のパッチを作る場合は、以下のようにします。
$ diff -crN FROM_DIR TO_DIR > PATCHFILE.patch
バイナリファイルが含まれる場合は、"-a --binary" を付けたほうが良いかも。
$ diff -crN -a --binary FROM_DIR TO_DIR > PATCHFILE.patch
ファイルにパッチを当てるときは以下のようにします。
$ patch < PATCHFILE.patch
ディレクトリにパッチを当てるときは、適用したいディレクトリ上で以下のようにします。
$ patch -p1 < PATCHFILE.patch
-p オプションは相対ディレクトリオプション。
diff を取ったときと相対的に同じ位置にいる場合は -p0 を指定。
違う位置にいる場合は、指定個数分のプレフィックス(ディレクトリ)を取り除いてパッチを適用。
"-a --binary" の記述追加。
● patch, 作成, パッチ, 作る, diff
ごくごくまれに、他のユーザと screen を共有したいことがあります。
ソースコードのレビューとか、コマンド実行時のログを見せたいとか。
これを活用すると、結構、作業効率が上がると思うんですけどね。
(会社では screen 自体が普及していない…)
他のユーザと screen を共有するためには少し設定が必要です。
1. screen のバイナリに suid を立てます。
# chmod u+s /usr/bin/screen
2. /var/run/screen/ ディレクトリに実行権を与えます。
(これをやらないと、screen 自体が立ち上がらなくなるので注意!)
# chmod 755 /var/run/screen/
3. ~/.screenrc に以下を追加します。
multiuser on acladd ohmoto
以上で準備完了。
UserA さんの screen を ohmoto がアタッチ (みられるように) する場合。
1. UserA さんの screen 起動コマンド (hogehoge は共有名)
$ screen -S hogehoge
2. アタッチ側のコマンド (ohmoto 側)
$ screen -x UserA/hogehoge
基本的にエディタは Emacs 派ですが、設定ファイルのちょっとした編集はやはり Vi のもんです。
設定を極めれば、いくらでもカスタマイズできるのでしょうが、最低限の設定は下記のとおり。
Vi (Vim) の設定は ~/.vimrc で行います。
$vi .vimrc syntax off set autoindent set tabstop=4 set expandtab set vb
各行の意味は以下のとおり。
設定 | 説明 |
syntax off | カラー表示 OFF |
set autoindent | オートインデント |
set tabstop=4 | TAB サイズ 4 |
set expandtab | TAB をスペースとして扱う |
set vb | ビープ音を鳴らさない |
蛇足ですが、Vi 起動中にも設定は変更可能です。
(コマンドモード中に ": (コロン)" + 設定。(例):syntax on とか)
Ubuntu の無線 LAN 接続設定について。
デフォルトでインストールされる NetworkManager はいまいちバグが多いらしいので、
Wicd (Wireless Interface Connection Daemon )に乗り換えました。
apt-get でインストール可能です。
# apt-get install wicd
これをインストールすると、NetworkManager はアンインストールされます。
再起動すると、使えるようになります。
「アプリケーション」→「インターネット」→「Wicd Network Manager」からも起動可能。
有線 LAN、無線 LAN の切り替えも簡単なので、便利。
有線 LAN と無線 LAN を同時に使いたい場合はどうしたらいいのかなぁ? (課題)
apt-get で wicd をインストールできない場合は deb ファイルをダウンロードしてインストールします。
$ wget http://mirror.yandex.ru/ubuntu/pool/universe/w/wicd/wicd_1.5.9-2_all.deb # dpkg -i wicd_1.5.9-2_all.deb
Ubuntu 9.04 Desktop 日本語 Remix CD がリリースされたので、早速 USB ブート環境を更新しました。
8.10 からはアップグレードできるみたいで、最初はそれをやろうと試みたのですが、
アップグレードに 4 時間かかるということで、途中でやめました。
(CD-ROM からインストールして設定しなおしたほうがたぶん早い。HDD だとアップグレードの方が早いかも知れませんが)。
/home ディレクトリだけバックアップしたあとで、CD-ROM から再インストール。
手順は microSD 8GB + USB アダプターに Ubuntu をインストール と同じで OK。
Ubuntu 起動時間短縮 の設定をして、bootchart で測定したところ、起動時間 23 秒 (すばらしい)。
9.10 ではデフォルトで、UTC は使用しないようになったみたいで、
Ubuntu インストール後にする設定 の
UTC を使わないようにする設定はしなくてよくなりました。
あと、Ubuntu 高速化 の writeback 設定を行ったところ、X が起動しなくなりました。
とりあえず元に戻して relatime モードにしています。
WriteBack モードの設定後に、起動しようとすると、ルートファイルシステムが ReadOnly でマウントされてしまうので、
ReadWrite モードでリマウントして、設定を元に戻します。
# mount -o remount,rw /dev/sdb2 /
この投稿は情報が古くなりました (2009/06/23)
こちらを参照してください。
Ubuntu で USB 無線 LAN アダプタ (Buffalo WLI-UC-GN) を使う (更新版)
Buffalo の USB 無線 LAN アダプタ WLI-UC-GN を Ubuntu 8.10 で使えるように設定します。
(1,600 円ぐらい。安い! 小さい!)
参考
https://forums.ubuntulinux.jp/viewtopic.php?id=4376
無線LAN USB アダプタ Planex GW-USMicroN を Ubuntu で使う
1. 以下のサイトからドライバをダウンロード (カーネルモジュール)
http://www.ralinktech.com.tw/data/drivers/2008_0925_RT2870_Linux_STA_v1.4.0.0.tar.bz2
2. ダウンロードしたファイルを展開する
$ tar jxvf 2008_0925_RT2870_Linux_STA_v1.4.0.0.tar.bz2
3. os/linux/config.mk を編集する。
$ cd 2008_0925_RT2870_Linux_STA_v1.4.0.0/os/linux/ $ vi config.mk # Support Wpa_Supplicant HAS_WPA_SUPPLICANT=n # Support Native WpaSupplicant for Network Maganger HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=n を以下のように修正する (WPA_SUPPLICANT 関連オプションを ”y” に変更) # Support Wpa_Supplicant HAS_WPA_SUPPLICANT=y # Support Native WpaSupplicant for Network Maganger HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y
4. WLI-UC-GN を PC の USB ポートに挿入し、デバイス ID を調べる。
$ lsusb ... Bus 001 Device 003: ID 0411:015d MelCo., Inc. ...
5. 2008_0925_RT2870_Linux_STA_v1.4.0.0/include/rt2870.h を編集する。
$ cd ../../include $ vi rt2870.h #define RT2870_USB_DEVICES の定義に以下を追加 {USB_DEVICE(0x0411,0x015d)}, /* Melco */ \
6. make & make install する。
(make するには linux-headers-*** が必要)
$ cd .. # make # make install /lib/modules/***/kernel/drivers/net/wireless 以下にコピーされない場合は、自分でコピーします。 # cp os/linux/rt2870sta.ko /lib/modules/`uname -r`/kernel/drivers/net/wireless/
7. insmod する。
# insmod /lib/modules/2.6.27-9-generic/kernel/drivers/net/wireless/rt2870sta.ko
カーネルのバージョンを変えたときには、再度インストールが必要 (6. の手順)
実家の PC を買い換えました (最近のノート PC は安くなりました)。
これを機に、実家 (広島) の PC を自宅 (福岡) から操作できるようにしました。
ソフト | 説明 |
Skype (FreeWare) | スカイプ |
TightVNC (FreeWare) | VNC ソフト |
SkyGateForVNC II (ShareWare: 1,680 円) | Skype の通信を経由して VNC の接続を行うソフト |
・Skype, TightVNC, SkyGateForVNC II をインストール
・Skype, TightVNC サーバ が常に起動するように設定
・SkyGateForVNC II の設定: Server
・レジストリ変更 (これを忘れていて、はまった)
[HKEY_LOCAL_MACHINE\SOFTWARE\ORL\WinVNC3] "AllowLoopback"=dword:00000000 ↓ "AllowLoopback"=dword:00000001 (0 → 1 に変更)
・Skype, TightVNC, SkyGateForVNC II をインストール
・Skype, TightVNC サーバ が常に起動するように設定
・SkyGateForVNC II の設定: Client
・実家側で SkyGateForVNC II を起動してもらう
・自宅側で SkyGateForVNC II を起動
・VNC Viewer で localhost に接続
これで OK。
今回、実家側 PC のレジストリ設定をするのを忘れてて、いざ、自宅から操作しようとすると、接続できませんでした orz。
調べてみると、レジストリを変更する必要がある模様。
でも、実家の親に REGEDIT を実行させるのは、ちょっと無理。かなり無理。
そんなときは、自宅の PC でレジストリを変更して、その設定をエクスポートして、reg ファイルを作り、
そのファイルを実家に送って、実行してもらえば OK。
PC を再起動してもらうと、接続できるようになりました (勉強になるなぁ)。
Linux で CD-RW (CD-R) に ISO イメージを焼きたいときがあります。
インストールディスクの作成とかで。
GUI でも作成できるのでしょうが (そのやり方を知りませんが(笑))、コマンドでやる方法があります。
Fedora 5 の頃は cdrecord コマンドを使用していましたが、
Fedora 7、Ubuntu 7.04 以降は、ライセンスの関係で wodim になったそうです。
試しに cdrecord コマンドを実行してみると。wodim にシンボリックリンクが張られています。
# cdrecord wodim: No tracks specified. Need at least one. Usage: wodim [options] track1...trackn Use wodim -help to get a list of valid options. Use wodim blank=help to get a list of valid blanking options. Use wodim dev=b,t,l driveropts=help -checkdrive to get a list of drive specific options. Use wodim dev=help to get a list of possible SCSI transport specifiers. # which cdrecord /usr/bin/cdrecord # ls -l /usr/bin/cdrecord lrwxrwxrwx 1 root root 5 2008-06-08 01:47 /usr/bin/cdrecord -> wodim
さて、焼き方ですが。
1. まず、ドライブにメディアを挿入し、デバイス名を取得します。
一般的には /dev/scd0 とかになると思います。
# dmesg または # lv /var/log/messages # wodim --devices でもいけるみたいですが、うちの環境ではダメでした。
2. 次に、CD-RW のディスクを初期化します (blank=all を指定した場合は遅いです)。
# wodim dev=/dev/scd0 blank=fast
3. CD-RW に ISO イメージを書き込みます (speed の値はドライブに応じて調整してください)
書き込みが完了したら eject します。
# wodim speed=16 -eject boot.iso
CD-R の場合は 2. の初期化部分をとばせば OK。
あるディレクトリ以下の全ファイルの文字コードを一括変換したいことがあります。
そんなときは以下のコマンドで処理します。
(カレントディレクトリ以下の全ファイルを UTF-8 に変換する場合)
$ find . -type f | xargs -n 10 nkf -w --overwrite
まず、find で ファイルを抽出 (-type f)、
抽出した結果を xargs に引数として渡し、nkf で処理します。
xargs のオプション "-n 10" は、引数を 10 個ずつ渡すの意。
ファイル数が多い場合は、引数を渡しきれないので、追加します (ファイル数が少ない場合は不要)。
以下でも同じ結果が得られますが、xargs を使った方が処理は速いです。
$ find . -type f -exec nkf -w --overwrite {} \;
nkf のオプション
オプション | 意味 |
-e | EUC に変換 |
-s | SJIS に変換 |
-w | UTF-8 に変換 |
-j | JIS に変換 |
-Lu | UNIX 改行コード (LF) へ変換 |
-Lw | Windows 改行コード (CR+LF) へ変換 |
-Lm | (Macintosh 改行コード (CR) へ変換) |
--overwrite | ファイルを上書き |
● find, xargs, 個ずつ, nkf, 大量
bash のプロンプト設定は、結構重要です。
これは覚えるものでもないので、ここにメモしておきます。
$ vi ~/.bashrc PS1='\e[04m\u@\h\e[00m[\w]: ' を追加
軽く意味を説明します。
(あれ? バックスラッシュとエンマークの表示が変わってる…。エンマークはバックスラッシュに読み替えてください)
文字列 | 意味 |
PS1 | プロンプトのシェル変数 |
\e[04m | アンダーライン (開始) |
\u | ユーザ名を表示 |
@ | @ |
\h | ホスト名を表示 |
\e[00m | 初期状態へ (アンダーライン終了) |
[ | [ |
\w | 現在のディレクトリ (ホームディレクトリは "~" を表示) |
]: | ]: |
こんな感じになります。
ohmoto@ubuntu-vbox[~]: cd /usr/src/ ohmoto@ubuntu-vbox[/usr/src]:
参考: BashとBashのプロンプト
ディレクトリのバックアップを取る場合、ベーシックな手段として rsync を使います。
(RAID とかでもいいですが、やっぱりこれが安心です)
差分しか転送しないので、コピーするより断然早いです。
cron と組み合わせて自動バックアップすることも良くやります。
# rsync -aAX --delete /home/ /Backup/home/
コマンドが間違っていないか、事前に -v, --dry-run オプションで確認しておくことが重要。
# rsync -aAXv --delete --dry-run /home/ /Backup/home/
■ 2016/05/06 追記
ssh 経由でリモート PC にバックアップを取る場合の例。
# rsync -aAX --delete -e ssh hogehoge/ USER@192.168.0.10:~/hogehoge/
■ 2021/02/16 追記
システム全体をフルバックアップする場合の例。
# rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / /mnt/root2
● rsync, ssh, バックアップ, backup, exclude, ルート
ファイルサーバ上で、自分が書いた Word や Excel の仕様書を期間をおいてから参照するときに、
「ただ参照したいだけなのに」
「間違って編集したら怖いなぁ」
と思うことが多々ありましたが、それを解決する良い設定がありました。
ファイル毎に設定することが可能です。
Word, Excel で、 [ツール] → [オプション] → [セキュリティ] 読み取り専用を推奨にチェックを入れる
この設定をしておくと、
ファイルを開く時に、「読み取り専用」にするか、「編集可能」にするか、選択できるようになります。
Windows で作ったファイル名が日本語のファイルを Linux で扱う場合、文字化けすることがあります。
変換方法を以下にまとめます。
まず、ファイル名の文字コードを調べます。
$ kcc -c filename
以下のコマンドで変換します (ShiftJIS のファイルを UTF-8 に変換したい場合)。
$ convmv -r -f sjis -t utf8 * --notest
変換はせず、どうなるかを確認したい場合は、"--notest" オプションを外します。
$ convmv -r -f sjis -t utf8 *
● 日本語, ファイル名, File Name, 文字, コード
サーバの init レベルを 3 にしている場合、halt ユーザを作っておくと、
その端末にログインしなくてもシャットダウンができるようになるので便利です。
(例えば、会社の PC でシャットダウンし忘れて帰宅してしまった場合とか)
最初から GUI ログインにしておけば、こんな設定は不要だったりしまが…。
ただ、その場合はマウス操作が必要になるので、私はこっちが好きです。
# vipw halt:x:7:0:halt:/sbin:sudo /sbin/shutdown -h now
# vipw -s (halt ユーザのパスワード部分を削除)
# visudo (下記設定を追加) halt ALL=/sbin/shutdown -h now
この設定により、ログイン画面で halt と入力するだけで、シャットダウンできるようになります。
サーバ用途の PC では X Window System は、あまり必要ありません。
その場合、Run Level を 3 (フルマルチユーザー テキストモード) で起動します。
設定方法は以下のとおり。
# vi /etc/inittab (id:5:initdefault: の行の 5 を 3 に変更) id:3:initdefault:
GNU screen は、仮想端末管理ソフトです。CUI で作業をする人は、使って損は無いソフトだと思います。
私は、これを使い始めて 7 年ぐらい経ちました。今では、これが無いと仕事になりません。
GUI に慣れた人たちに勧めると、「ふ~ん、それで?」みたいな反応になりますが…。(^^;
これを使うと何がうれしいかと言うと、1 個の端末ウインドウ内で、複数の端末を仮想的に起動し、キー操作で切り替えることができるようになります。端末ウィンドウを複数起動しなくて良くなるため、画面がゴチャゴチャせずに済みます。
リモートでログインした先でこれ起動すると、1 個のターミナル内で複数のターミナルが使用できます。
あとはキー操作のみで、コピー&ペースト、画面スクロール、画面分割、ログ取得等々できるので、使いこなせば効率的に作業ができるようになります。
そのほかの説明は、"screenのススメ" とかが詳しいので、そちらを参照してください。
Google で検索するときは "GNU screen" で検索してください。"screen" だけだと、一般的な名称すぎて、いろいろ引っかかってしまいます (たぶん、これが普及しない原因!?)。
screen を操作するときは、必ずエスケープキーを押す必要があるのですが、デフォルトが Ctrl-a になっていて、このままだと便利ではありません (Ctrl-a は「行頭へ移動」ですよね)。
エスケープキーは設定ファイル ~/.screenrc で変更することができます。
私のお薦めは、Ctrl-t です ( toggle は使わないので)。 Ctrl-z 派も結構いるようです。
$ vi ~/.screenrc escape ^Tt
screen を起動するには、以下のようにします。
$ screen
良く使うので、.bashrc とかに alias 設定をしておくと良いです。(sc で起動、scx でアタッチ)
$ vi .bashrc alias sc='screen' function scx () { screen -x $1 }
私が育ててきた .screenrc を貼り付けておきます。
escape ^Tt #termcap kterm hs@ #terminfo kterm hs@ termcap xterm* 'AF=\E[3%dm:AB=\E[4%dm' terminfo xterm* 'AF=\E[3%p1%dm:AB=\E[4%p1%dm' termcap kterm* 'AF=\E[3%dm:AB=\E[4%dm' terminfo kterm* 'AF=\E[3%p1%dm:AB=\E[4%p1%dm' termcapinfo kterm 'hs:ts=\E[?2S\E[?E\E[?%i%dT:fs=\E[?F:es:ds=\E[?E' termcap vt100 'AF=\E[3%dm:AB=\E[4%dm' terminfo vt100* 'AF=\E[3%p1%dm:AB=\E[4%p1%dm' terminfo cygwin KJ=SJIS termcapinfo cygwin KJ=SJIS defencoding UTF-8 termcap facit|vt100|xterm LP:G0 terminfo facit|vt100|xterm LP:G0 autodetach on startup_message off shell /bin/bash defhstatus "^En:^Et" defscrollback 9999 hardstatus alwayslastline "%w" hardcopydir $HOME/.screen hardcopy_append on ## audible bell #vbell_msg '%x' vbell off ## bell on hide window bell "Bell in window %." ## activitiy on hide window activity "Activity in window %." bind 'd' setenv DISPLAY #bind w windowlist -b bind ^p paste bind p paste bind ^h prev bind k kill #kanji euc #defkanji euc #markkeys 'h=^B:l=^F:$=^E:^U=^Z:^D=^V' #screen -t root 1 screen -t bash 0 #screen -t bash 1 #screen -t EMACS 0 emacs -nw multiuser on
エスケープキーは Ctrl-t、上記 .screenrc を使った場合
コマンド | 説明 |
Ctrl-t Ctrl-c | 新しい端末を生成 |
Ctrl-t Ctrl-n | 次の端末へ |
Ctrl-t Ctrl-h | 前の端末へ |
Ctrl-t Ctrl-t | 端末をトグルで切り替え |
Ctrl-t k | 端末を削除 |
Ctrl-t Ctrl-d | screen をデタッチ |
Ctrl-t [ | コピーモードへ ・vi のカーソル移動キーバインドで移動 ・space で範囲選択 ・ESC でコピーモードから戻る |
Ctrl-t ] | ペースト |
Ctrl-t S | ウィンドウ分割 |
Ctrl-t Tab | 分割された他のウインドウへのカーソル移動 |
Ctrl-t Q | ウィンドウ分割解除 |
Ctrl-t H | ログ取得 (~/screenlog.* として保存される) |
Ctrl-t A | タイトル名変更 |
Fedora を使っていると、たまに RPM DB が壊れることがある。
復旧するには、以下のコマンドを実行する。
# rpm --rebuild
PC に接続されている HDD の全パーティション情報を表示するコマンド。
ちなみに私の環境では /dev/sda が HDD、/dev/sdb が microSD (USB)。
このコマンドを知るまでは、fdisk 叩きまくってました。
# sfdisk -l ディスク /dev/sda: シリンダ数 12161、ヘッド数 255、63 セクタ/トラック ユニット = 8225280 バイトのシリンダ、1024 バイトのブロック、0 から数えます Device Boot Start End #cyls #blocks Id System /dev/sda1 * 0+ 12 13- 104391 83 Linux /dev/sda2 13 143 131 1052257+ 82 Linux swap / Solaris /dev/sda3 144 7194 7051 56637157+ 83 Linux /dev/sda4 7195 12160 4966 39889395 83 Linux ディスク /dev/sdb: シリンダ数 980、ヘッド数 255、63 セクタ/トラック ユニット = 8225280 バイトのシリンダ、1024 バイトのブロック、0 から数えます Device Boot Start End #cyls #blocks Id System /dev/sdb1 0+ 123 124- 995998+ b W95 FAT32 /dev/sdb2 * 124 857 734 5895855 83 Linux /dev/sdb3 858 979 122 979965 82 Linux swap / Solaris /dev/sdb4 0 - 0 0 0 空
Google chrome がリリースされてからしばらく経つが、アドオン未対応なので、
いまいち Firefox から移行できない。確かに、動作は速いのだが…。
さて、今回は Firefox を使うときに必ずインストールするアドオンについてまとめておく。
現在、Ubuntu で使用している Firefox のバージョンは 3.0.5。
アドオン名 | 説明 |
Auto Pager | 自動的に次のページを読み込む |
Tab Mix Plus | タブ機能を拡張 |
All-in-One Sidebar | サイドバーを拡張 |
All-in-One Gestures | マウスジェスチャーを実現 |
Speed Dial | スピードダイアル |
Xmarks Bookmark and Password Sync | 複数の端末でブックマークを同期 (オプションでパスワードも) |
Google toolbar | Firefox Ver.5.0 以降サポートされないので、代替機能で実現 まさおのブログ (表): Firefox Google toolbar 代替 |
Chaika | 2ch ビューア |
アルク(英和&和英辞書)用検索プラグイン | 検索ボックスにアルクを追加 |
Drag & DropZones | ドラッグ&ドロップで検索 |
KeySnail | Emacs キーバインドに変更 |
アドオン名 | 説明 |
IE Tab Plus | Firefox のタブの中で IE を起動する |
IE View | リンクを IE で表示する |
aguse.jp | 検索バーに aguse.jp のURL調査を追加 |
Unofficial Google Translate | 選択範囲を翻訳 (範囲選択の後、Alt+左クリック) |
Page Hacker | 現在開いているページを編集 ( Ctrl + F2 ) |
La Fonera を直接 PC に接続して設定する方法についてメモしておく。
(IP アドレスをよく忘れてしまう)
0.7.2 r3
(Auto MDI 対応なので、ストレートケーブルでも OK)。
La Fonera の IP アドレスは 169.254.255.1/24 となっているので、
169.254.255.2/24 に設定する。
あとは画面に従って設定すれば良い。