Linuxの備忘録 のバックアップ(No.45) - アールメカブ

アールメカブ


Linuxの備忘録 のバックアップ(No.45)


Linuxの備忘録

PE_CMS

Sakura

Moodle

_ MeCab? コマンドラインまとめ

ここに情報.非常に便利

_ ネットワーク越しにファイルを開く

~/.gvfs/disk@192.168.0.***/R/ISM/

_ memcahched

_ 丸ごとバックアップ

sbackup(Simple Backup) を使うか,あるいは パーティション構造まるごと復元.

LiveCDで起動し

$ dd of=/media/hdd-1/image.dd if=/dev/sda
$ dmesg # エラーがなかった確認

復元は

$dd if=/media/hdd-1/image.dd of=/dev/sda

_ Apache チルダ無し(有り)アクセス

mods-available/userdir.conf に

      UserDir public_html
       UserDir disabled root

AliasMatch ^/([a-zA-Z0-9]+)/?(.*) /home/$1/public_html/$2

_ Ubuntu でのサービス管理

$ sysv-rc-conf --list | grep postfix
$ sudo sysv-rc-conf postfix on

_ x分後にシャットダウンさせる

$ sudo shutdown -h +x

時間指定でシャットダウン

$ sudo shutdown -h hh:mm

日付指定でシャットダウン 2009年9月20日10時00分

$ sudo shutdown -h 0909201000

_ CMS Moodle バックアップ

_ tar 再考

いまカレントディレクトリが test で,その下にさらに test2 ディレクトリがあり,この test2 ディレクトリをまとめて圧縮したいとする.

$tar  cfz  file.tar.gz   -C/home/rmecab/tmp/test  test2

ここで -C はディレクトリを変更して実行するの意味である.上の実行例で間のスペースは重要.こうしないと,

tar: Removing leading `/' from member names

という警告が出る上,圧縮ファイルは,最初のディレクトリ test のなかに test2 ディレクトリがあり,そしてその中身が含まれるという入れ子状態で保存されてしまう.

_ パスワード無しでsudoする(Ubuntu)

ここから引用

シェルスクリプトの最後にOSをshutdownさせようと考えた場合、sudoのパスワード入力がとても邪魔です。一回、sudoで何かを起動し、パスワードを入力してしまえば、その後のパスワード入力は必要なくなりますが、常に同じ条件でshutdown出来ないのでは、安心してシェルスクリプトも動かせません。そんな訳で、sudoをパスワード無しで使用する為の設定をします。

  ☆ファイル編集 visudoの使い方は・・・ ぶっちゃけ、保存([Ctrl]+[O])と終了([Ctrl]+[X])だけ使えれば問題ない気がする。

[アプリケーション]→[アクセサリ]→[端末]を起動。 sudo visudo

最終行に追記 hogehoge ALL=NOPASSWD: ALL

設定が終わったら、ファイルを保存して終了 OS再起動後、再び端末を起動し、sudoコマンドを確認。 sudo gedit とか。パスワード無しでエディタが起動すれば、設定完了。

_ PHP_CGIとモジュールの違い

_ NetworManger? と IPv6を無効化.

ここ sysv-rc-confを起動して、NetworkManager? (画面上ではNetworkMa?$と表示されている) が全てのランレベルで起動しないように『チェックを外す』。

# sysv-rc-conf eth0用の定義を追加する。書式は man -S 5 interfaces で閲覧可能

install ipv6 /sbin/modprobe -n -i ipv6

DHCPからアドレスの割り振りを受ける場合は、『iface eth0 inet dhcp』とする。

そして、DNS設定を追記する。(NetworkManager?は、その終了時にresolv.confの設定をクリアするため、明示的に設定を書き加える必要がある)

  • Ubuntu Firefox で Ipv6 を無効化
/etc/modprobe.d/aliases 

ではなく

/etc/sysctl.conf

net.ipv6.all.disable_ipv6=1

を追記

about:config
network.dns.disableIPv6=true
  • apcキャッシュでPHPを高速化する 2009 09 05
$ sudo apt-get update
$ sudo apt-get install php5-dev
$ sudo apt-get install php-pear
$ sudo apt-get install apache2-threaded-dev
$ sudo pecl install apc 
# ただ Enter すればよい

/etc/php5/apache2/php.iniに

extension=apc.so 

を追加して設定ファイルを確認し

$ apache2ctl configtest
$ sudo /etc/init.d/apache2 restart
  • Moodle高速化 my.cnf
    #query_cache_limit       = 1M
    query_cache_limit       = 2M
    #query_cache_size        = 16M
    query_cache_size        = 36M
sudo /etc/init.d/mysql restart

MySQL のログは syslog に記録される

php.ini

;memory_limit = 16M 
memory_limit = 40M 

  • 文字コードの確認.ユニコード (UCS-2) を使う.
$ echo -n "記号" | iconv -t UCS-2 | hexdump
0000000 8a18 53f7
  • UTF-8 文字コードの確認(Unicodeではない)
    $ echo -n '記号' | hexdump -C
    00000000  e8 a8 98 e5 8f b7  
    C オプションを付けないと2バイト単位で,バイトが逆順になってしまう.-C を指定すると1バイトの文字単位の表示になる.あるいは
    $ echo -n '記号' | od -tx1
    0000000 e8 a8 98 e5 8f b7
    $ echo -n '記号' | xxd -g 1
    0000000: e8 a8 98 e5 8f b7  
    でもよい.
  • 文字コード変換
$ iconv -f EUC-JP -t UTF-8 test.euc > test.utf8

文字コードについては,さらにここを参照のこと.

  • Ubuntu で root になるのは
    sudo -s

Ubuntu ではroot に慣れないと思っていた. ここのサイト など役に立つ

hidden_dell530s_backup

hidden_Black_Mac

Programming_C

Wikiの備忘録

_ md5

$ echo -n 'himitsu' | md5sum 
f1a0e73e5d7fc293952d380e32fda73c -
$adminpass = '{x-php-md5}f1a0e73e5d7fc293952d380e32fda73c'; // md5('himitsu')
$adminpass = '{x-php-md5}' . md5('himitsu');

でもよい.

_ /bin/false /sbin/nologin の違い

/etc/shellsに /sbin/nologin が記載されている場合

/bin/false   FTP→拒否 SSH→拒否
/sbin/nologin  FTP→可能 SSH→拒否

_ VMplayer_on_9.04

_ iMac_設定

_ ffmpeg

 ffmpeg -i in.flv -vn -ac 2 -ab 160000 -ar 44100 out.mp2

あるいは

ffmpeg -y -i foo.flv -acodec copy foo.mp3
-vn 映像を出力しない
-ac 2 Stereo
-ab ビットレートをbit/sで指定
-ar 音声のサンプリングレートをHzで指定

このほかのオプション

メイン オプション:

-L         ライセンスを表示
-h         ヘルプを表示
-formats      現在使用できるフォーマット、コーデック、
                    プロト コルを表示
-f fmt       フォーマットを指定
              (fmtの部分に-formatsで調べたフォーマット名が入る)
-img img_fmt    画像のフォーマットを指定(img_fmtの部分に 
                             -formatsで調べたフォーマット名が入る)
-i filename     入力ファイルを指定
-y         出力先に同名のファイルがあった場合上書
-t duration     出来上がるファイルの時間を指定する
        (durationの部分に10と入れれば10秒の部分までしか記録しない)

映像のオプション:

-b bitrate     ビットレートをkbit/sで指定
-aspect aspect   アスペクト比を指定(4:3, 16:9 or 1.3333, 
                       1.7777)
-vn         映像を出力しない
-bt tolerance    ビットレートの許容誤差をkbit/sで指定
-vcodec codec    codecの部分に-formatsで調べたコーデックを指定
                 ('copy'を指定すると元ファイルに手を加えない)
-sameq       元のファイルと同じビデオ品質を使用します。
               (暗黙のうちにVBRになることもある)
-pass n       何パスでエンコードするかを指定します。
               (1か2を指定)
-passlogfile file  2パスでエンコードした時のログファイル名を指定

音声のオプション:

-ab bitrate     音声のビットレートを(k)bit/sで指定
-ar rate      音声のサンプリングレートをHzで指定
-ac channels    音声のチャンネル数を指定
-an         音声を出力しない
-acodec codec    codecの部分に-formatsで調べた音声のコーデックを指定
                    ('copy'を指定すると元ファイルに手を加えない)

_ mp3 の作成

https://wiki.ubuntulinux.jp/UbuntuTips/Application/ffmpegとコーデックをソースからビルドするには に情報有り

_ clive

ここを参考に.

  • clive は、YouTube?、Google Video、Metacafeといったサイトに保存されている動画を抜き出すためのソフトウェアだ。使い方は簡単で、「clive 動画URL」とするだけでよい。すると、指定したURLからFLVファイルがダウンロードされ、その結果がデフォルトではMP4形式に変換される。便利な使い方として、保存したい動画へのリンクを記したテキストファイルを作成し、パイプを使ってそのファイルをcliveに渡すという方法がある。具体的には、テキストファイルにURLを1行ずつ記述して「cat video.list | clive」とすればよい。
  • cliveでは、FFmpegを使って動画ファイルを別のフォーマットにエンコードしなおすこともできる。ネット上の動画からAVIファイルの作成を一気に行うには、「clive --ffmpeg="/usr/bin/ffmpeg -y -i %i %o" --reencode=avi 動画URL 」とする。FFmpegは出力ファイルの上書きを行うことで、指定のURLを入力として最終的にAVIファイルを生成する。動画の変換用にあらかじめ定義しておいた設定を使いたければ、「~/.clive/config」を編集することによってデフォルト設定を好きなように変更できる。以下は、このファイルの設定例である。
    play_format="avi" # output format
    path_player="/usr/bin/mplayer %i" # player used
    path_ffmpeg="/usr/bin/ffmpeg -y %i %o" # encoder used
  • ご覧のように、cliveではMPlayerやVLCを使ったファイルの再生も可能だ。
  • 似たようなツールとして youtube-dl がある。これは、ファイル形式を変換せずにYouTube?動画をダウンロードするスクリプトだ。動画共有サイトのFLVファイルを保存するには、ターミナルを開いて「youtube-dl」のあとに続けて動画のURLを入力すればよい。また、YouTube? Downloader GUIというyoutube-dl用のGUIも存在する。このKommanderスクリプトを実行すると、KDialogによるポップアップ・ウィンドウが開き、ダウンロードしたいオンライン動画へのリンクをそこに貼り付けることができる。QtTube?というGUIも、同じくらい簡単に使える。動画へのリンクを貼り付けると、youtube-dlを使って動画ファイルがダウンロードされる。

_ kino

動画の簡単な編集ができる. 切り取りは右メニューの Trim を選び,開始点と終着点を指定し, その上で右メニューの下,Export を指定.ここで形式を指定するが,mpeg が選択できない場合は,ウィンドウ下のライブラリをあらかじめ追加しておく.

_ ディレクトリ内のファイルから「word」を含むファイルを検索

grep word /home/user/*

あるいは「一致したファイル名」と「一致した一行」の両方を出力

find /home/name -print | xargs grep word /dev/null 

_ BUFFALO_WLI-U2-G54HP_WHRHP-Gを認識利用

_ VMware

_ コマンド版PHP

cronで

/usr/bin/php-cli -f /home/myhome/cron.php 1> /dev/null

を実行しようとしたら,コマンド版PHP が入っていなかった. (-f は省いてもいいらしい.)

sudo apt-get install php5-cli

でいいのだが,ちょっとペンディング.

_ codec 関係のインストール

_ Ubuntu ログイン時の音量

大きすぎるので調整

[システム] - [設定] - [サウンド]

からサウンドタブ

[システム] - [システム管理] - [ログイン画面]

からアクセシビリティタブの効果音でオンオフを切り替え 画面右上のスピーカーのアイコンを左クリックして調節した音量は、ログイン時の効果音には反映されない。音の大きさ自体は画面右上のスピーカーのアイコンを右クリックし「音量調節ツールを開く」を選択して調節

_ wmv から wav を作る.

mplayer hoge.wmv -vc null -vo null -ao pcm:file=hoge.wav

これがうまくいかないときは

ffmpeg -i hoge.wmv -vn -acodec copy fuga.wma
mplayer fuga.wma -ao pcm:file=nyuru.wav

_ Linux Server 版のアップデート

  •  正式な?手順 ここを参考にするが、要するに

Network Upgrade for Ubuntu Servers (Recommended)

  • 1.Install update-manager-core if it is not already installed:
# dpkg –list | grep update-manager-core# インストールの確認
sudo apt-get install update-manager-core#インストール

これは必要か?

  • /etc/update-manager/release-upgrades を編集して以下のように変更する。 Prompt=normal
  • 2.Launch the upgrade tool:
    sudo do-release-upgrade
  • 3. Follow the on-screen instructions.
  • 4.更新後の結果確認。ここにある。
    # cat /etc/lsb-release
    DISTRIB_ID=Ubuntu
    DISTRIB_RELEASE=8.04
    DISTRIB_CODENAME=hardy
    DISTRIB_DESCRIPTION=”Ubuntu 8.04″
    # uname -a
    Linux main 2.6.24-16-server 
       #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686 GNU/Linux 

/etc/apt/sources.listの修正は必要ないのか?

  • こういう手もある。
    # mv /etc/apt/source.list /etc/apt/source.list.080525
    # sed -e 's/gutsy/hardy/g' /etc/apt/source.list.080525 >
       /etc/apt /source.list
    # apt-get update
    # apt-get dist-upgrade

_ ntpdate 2009 03 21

etc/cron.daily に /etc/network/if-up.d/ntpdate を突っ込む。

$ sudo vi /etc/default/ntpdate
  NTPDATE_USE_NTP_CONF=no
  NTPSERVERS="ntp.jst.mfeed.ad.jp ntp.ring.gr.jp"
  NTPOPTIONS=""# オプションは上記スクリプトに記載されている
$ cd /etc/cron.daily/
$ sudo ln -s /etc/network/if-up.d/ntpdate .

_ Epson Na01へのUbuntuインストール

Epson_Na01_Ubuntu

_ Ubuntu システム > 設定 > キーボード・ショートカット

Ubuntu_keyboard ここに表を作成?

_ find の exec 引数と xargs 引数

同僚から,._ で始まるディレクトリをまとめて消すのに

% sudo find /home -name "._*" -print -exec rm -f {} \;

が使えるかと聞かれた.使えるだろうけど,-exec は検索のたびに,指定のコマンドをいちいち実行するので,-xargs を使って検索結果をまとめて渡した方が良いでしょう.

$ sudo find . -name '._*' -print0 | xargs -0 -r rm -rf
  • print0 オプションは,ここここに説明がある.

findの出力がヌル文字(0×00、別の表現をすると”\0″)で区切られて出力されます。また、xargsも引数がヌル文字で区切られているものとして処理を行います。その結果、空白文字を含んだファイル名も正常に処理できます。

しかし,私自身は怖くてできないな.xargs をグーグったら,こんなページがあった.またこんなファイル fileshell2.txt もみつけた.再配布OKらしい.

ついでなので,つらつら検索していたら,こんな記事もあった.ちょっと引用する.

コマンドを一度に起動する (find -exec +)
   $ find . -name \*~ -exec rm {} \;
ただ、これだと100000ファイルがヒットした場合にrmコマンドが
100000回実行されてしまうため、全部実行するまでに案外時間がかかる
...
これを回避するために xargsを使うのもまっとうですが、
最近の find には + というのがあります
 (SUSV3 で定義されていて... )

find . -name \*~ -exec rm {} +
 
これで、複数の引数つけて rmを呼んでくれます。
空白があっても okです。
真ん中に展開したい (xargs -J)
でも mvのように真ん中に展開したい引数がある時はだめ。
'{} +' で終わってなきゃいけないってルールなんですね。

% find . -name \*~ -exec mv {} bak/ +
find: -exec: no terminating ";"

この場合は GNU coreutilsを使わなきゃいけないかというと、
それも抜け道があります。
BSD系 xargsには -J optionがあります:

% touch a~ b~ c~
% find . -name \*~ -print0 | xargs -0 -J {} echo mv {} /var/tmp
mv ./a~ ./b~ ./c~ /var/tmp
 
というように一つのコマンドに展開してくれます。

ちなみに BSD系では template変数が2文字以上の時、
"-J{}" とくっつけるとだめで "-J {}" と spaceをいれないといけない
よう。普段は "-J@" って、一文字にしてるので気づかなかった。

追記: GNUの xargsでも -n をつければ複数展開してくれますね:

% find . -name \*~ -print0 | xargs -0 -I {} -n 100 mv {} /var/tmp

てな感じで。100 ってのが adhocな感じだけど。

MacOSではこの方法は使えませんでした。
もっと早くしたい (けど) (parallel)
でも昨今は multicoreや hyperthreadな CPUが主流でしょう。
そんなときに一つの threadで順番にやるのはアホです。
そういうときに使えるのがparallel です。
最大 10個分プロセスを立ち上げて、文字通り並列に CPUを
余すことなく使ってくれます。

% ls | ./parallel 'sleep 3 ; echo ' & (sleep 1; ps )

[1] 4503 4504

_ IP変更

近く IP を変更せにゃならん.

# vi /etc/network/interfaces
# This file describes the network interfaces available ..
# and how to activate them. For more information, ...

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
       address 150.59.**.**
       netmask 255.255.255.0
       network 150.59.**.0
       broadcast 150.59.**.255
       gateway 150.59.**.1
       # dns-* options are implemented by the resolvconf ...
       dns-nameservers 150.59.60.2
       dns-search ias.tokushima-u.ac.jp

変更後 interface を再起動

# ifdown eth0
# ifup eth0

eth0の状態を確認

# ifconfig

でよかったが,問題は,subversion だ. レポジトリ作り直しかと思ったら,次のような記事があった.以下引用する.

Subversionをインストールしているサーバは動的IPアドレスを用いているため、サーバを再起動した時にIPアドレスが変わってしまうことがしばしば。 Subversionにコミット/チェックアウトするためのURLも変わってしまうので、設定を変える必要があります。 方法として、古いIPアドレスを参照していた作業コピーは削除してしまって、新しいIPアドレスをコミットするようにしていたのですが。   別に作業コピーを削除しなくとも、参照するURLを簡単に変更することがsvnコマンドでできるみたい。

$ svn switch --relocate svn+ssh://古いIPアドレス/svn/test_repos 
        svn+ssh://新しいIPアドレス/svn/test_repos test_reposの作業コピー/
$ svn update test_reposの作業コピー/

しめたと思って,五つあるレポジトリ一気に書き換えるスクリプトを書いた.

#!/bin/bash
svn switch --relocate
svn+ssh://oldip/var/local/subvers/ubuntu/Document
svn+ssh://newip/var/local/subvers/ubuntu/Document
svn switch --relocate
svn+ssh://oldip/var/local/subvers/ubuntu/res/statistics/myRcode
svn+ssh://newip/var/local/subvers/ubuntu/res/statistics/myRcode
svn switch --relocate
svn+ssh://oldip/var/local/subvers/ubuntu/res/Program/
svn+ssh://newip/var/local/subvers/ubuntu/res/Program
svn switch --relocate
svn+ssh://oldip/var/local/subvers/ubuntu/res/Tex/papers
svn+ssh://newip/var/local/subvers/ubuntu/res/Tex/papers
svn switch --relocate
svn+ssh://oldip/var/local/subvers/ubuntu/res/Tex/books
svn+ssh://newip/var/local/subvers/ubuntu/res/Tex/books 

で,トップディレクトリで実行しようとたが,

svn: '.' は作業コピーではありません

どうやらそれぞれのレポジトリ(.svnを直下に含むレポジトリ)に入って,いちいち実行する必要があるらしい.その旨もスクリプトに書く.

_ Subersion +SVN コマンド一覧

Subversion_command

_ X関連

X関連

_ mail, mailx

一括削除するには mailx を使うと思っていたが,

$ mail
& d 1-243

で一括削除できた.どっちかがどっちかのエイリアスなのかな?

_ crontab

各エントリ最後に/dev/nullを書き忘れていたので,mail スプールがふくらんでいた.

* * * * * command 1> /dev/null

とする.仮に以下のようにすると,エラーが起こっても何の通知もなくなってしまう

* * * * * command >/dev/null 2>&1

ついでに,危ないなぁと思いつつ

$ sudo crontab -u root -e
$ sudo crontab -u root -l
# m h  dom mon dow   command
15 04 1 * * /home/hoge/hoge.sh >/dev/null 2>&1

を設定

を2009 04 15 ishidaアカウントで

  • cron書式の代表的なもの(すぐ忘れる). ここから引用. 毎週月曜日のAM 10:00に実行
    00  10  *  *  1
    10分ごとに実行する場合
    */10  *  *  *  *
    3時間ごとに実行する場合
    00  0-23/3  *  *  *
    毎日AM 4:30とAM 9:30に実行
    30  4,9  *  *  *
    毎週月、金曜日のAM 3:00に実行
    00  3  *  *  1,5
    毎日AM 3:00 4:00 5:00 6:00 7:00 9:00 に実行
    00  3-9  *  *  *
    毎月10日のAM 3:15 4:15 5:15 6:15 に実行
    15  3-6  10  *  *
    AM 1:00 6:00 9:00 10:00 11:00に実行
    00  1,6,9-11  *  *  *

cron設定の前に以下の行を入力してメールをとばす,とばさないを選択できる.ここから引用

MAILTO=""

これでメールは飛ばなくなり,逆に複数のアドレスに飛ばしたいときは、カンマ区切りで複数メールアドレスを指定. この $MAILTO 変数は、デフォルトのメールアドレスを上書きする

ただし、上記は/etc/crontab自体を変更した場合と同じく、実行するアカウントのcron設定すべての宛先に反映される。特定のスケジュールのみを宛先変更させたい場合には、次のように指定すればよい。

# crontab -e
0 2 * * * /bin/sh /etc/hogehoge 2>&1 | Mail [送信先メールアドレス]

_ fontを設定

_ Ubuntu8.10-2

_ Ubuntu8.10

_ PE_CMS

_ VMWare_Ubuntu

_ bashファイルのバックアップ

#!/bin/bash
DATE=`date +%Y%m%d`
cp -p /home/ishida/.bash_history /back/bash_history-"$DATE"
cp -p /home/ishida/.bashrc /back/bashrc-"$DATE"
## cp -p /home/ishida/.profile /back/profile-"$DATE"

_ 万が一の場合のリカバリ

_ autofsの設定

_ bash_logoutの作成

_ hidden_bashの演算子

_ hidden_LANDISK

_ Emacsによるソース操作

// -*-  Mode:ObjC; c-basic-offset:4; tab-width:8; indent-tabs-mode:nil -*-

をソースに加えるといいというがあった。

_ 解凍方法一覧

  • 特に忘れてしまうのが〜.tar.bz2, 〜.tbz 系統
    bzip2 -dc filename | tar xvf -
  • ・アーカイブを作成
    tar cvf [アーカイブファイル名] [ディレクトリ・ファイル名]
    例:tar cvf sample.tar sample
  • ・アーカイブを作成してcompressで圧縮
    tar cvZf [アーカイブファイル名] [ディレクトリ・ファイル名]
    例:tar cvZf sample.tar.Z sample
  • ・アーカイブを作成してgzipで圧縮
    tar cvzf [アーカイブファイル名] [ディレクトリ・ファイル名]
    例:tar cvzf sample.tar.gz sample
  • ・アーカイブを作成してbzip2で圧縮
    tar cvjf [アーカイブファイル名] [ディレクトリ・ファイル名]
    例:tar cvjf sample.tar.bz2 sample
  • ・アーカイブを展開
    tar xvf [アーカイブファイル名]
    例:tar xvf sample.tar
  • ・compressを解凍してアーカイブを展開
    tar xvZf [アーカイブファイル名] [格納するディレクトリ・ファイル名]
    例:tar xvZf sample.tar.Z
  • ・gzipを解凍してアーカイブを展開
    tar xvzf [アーカイブファイル名]
    例:tar xvzf sample.tar.gz
  • ・bzip2を解凍してアーカイブを展開
    tar xvjf [アーカイブファイル名]
    例:tar xvjf sample.tar.bz2
  • ・アーカイブに格納されているファイルを表示
    tar tvf [アーカイブファイル名]
    例:tar tvf sample.tar
  • ・アーカイブにファイルを追加
    tar rvf [アーカイブファイル名] [追加ファイル名]
    例:tar rvf sample.tar hoge4.txt
  • ・アーカイブに格納されている特定のファイルだけを取り出す
    tar xvf [アーカイブファイル名] [取り出したいファイル名]

_ libgtk-2.0.devインストール

...
libglib2.0-dev (2.14.1-1ubuntu1) を設定しています ...
libatk1.0-dev (1.20.0-0ubuntu1) を設定しています ...
libcairo2-dev (1.4.10-1ubuntu4.4) を設定しています ...
libpango1.0-dev (1.18.3-0ubuntu1) を設定しています ...
libgtk2.0-dev (2.12.0-1ubuntu3) を設定しています ...

_ convert

ImageMagic?のconvertで画像を変換する際 eps2: オプションを指定しないと画像が巨大化してしまう

$ convert orig.png eps2:orig2.eps

_ Ubuntu_fsckについて

_ BrotherHL-5250DN

_ マウスのホイール

XPにインストールしたVMware上のUbuntuでマウスのホイールが効かなかったので以下のように修正した

$ sudo vi /etc/X11/xorg.conf
  Option          "Protocol"      "ImPS/2" # ps/2から修正
  Option          "ZAxisMapping"  "4 5" # これはもともと記載あり

_ subversion_config

新規に作成したら ホームの .subversion/config に

ssh = ssh -i /home/ishida/.ssh/id_rsa

を忘れず追加すること.

_ apt-get autoclean

apt-get update を失敗したまま放っておくと,Synaptic でレポジトリの変更が出来ないなどの不具合が生じるので,とりあえずこのコマンドを実行しておく.

_ Vostro に Ubuntu 8.04 をインストールする.

Vostro_Ubuntu8.04

_ Atok X 3 の設定2

Atok_X3続

_ Atok X 3 の設定1

Atok_X3

_ Windows上の VMware Player に Ubuntu を載せている場合

でも(自宅がそうなのだが),Ubuntuのカーネルがアップグレードが行われた場合は Ubuntu 上で [#j02bcad3]

ishida@ubuntu-vm:~$ sudo /usr/bin/vmware-config-tools.pl 

が必要らしい.

_ Emacs 正規表現を用いた検索

 \C-u \C-s . 置換の場合はM-x replace-regexp.

Emacs では C-q C-* で * のところに文字コード表での制御文字 (^i) を指定する.例えば , を タブに変えるなら

M-%

, with C-i

C-i は文字コード表の ^i

_ Mplayerマニュアル

Mplayerマニュアル [#u825d3be]

_ Subversion について

よいページを見つけた.  

_ Gutsy_eps_文字化け

_ Anthy辞書追加

_ 文字コードを一括して変える

Shift-Jis から UTF-8 に

find . -name "*.txt" -print0 | xargs -0 nkf -Sw -Lu --overwrite

EUC-JPからの場合は-Ewで.

UTF-8 からShift-Jis から

find . -name "*.txt" -print0 | xargs -0 nkf -Ws -Lw --overwrite

こんな方法も

sed -i 's/Shift_JIS/utf-8/g' `grep -irl Shift_JIS .` \
   nkf -Sw -Lu --overwrite *.html

nkf オプションは以下の通り

-e 結果をEUC-JPで出力
-j 結果をISO-2022-JPで出力
-s 結果をShift-JISで出力

例: 改行コードの変換

nkf -Lu hoge.txt > huga.txt  # mac & win -> unix
nkf -Lm hoge.txt > huga.txt  #   unix    -> mac
nkf -Lu hoge.txt > huga.txt  #   unix    -> win

_ ファイル名,文字コードを一括して変える

拡張子を変える場合

for nm in *.euc; do
> mv $nm ${nm%.euc}.txt;
> done

拡張子の前を変える場合

$ for nm in temp*; do
> mv $nm HOGE${nm#tr};
> done

_ CMS

_ apt コマンド

/etc/apt/sources.list
apt-getのパッケージ情報取得先が書かれている

apt-cache search [...] パッケージを探す
apt-cache show [...]パッケージの詳細を見る

apt-get install [...] パッケージをインストールする

apt-get update パッケージの更新情報を得る
 
apt-get upgrade インストールされているパッケージの更新を行う

旧メモを移植の予定。

_ Ubuntu でフィルタリングせずに文字変換を行うプログラムは recode だそうな.

recode EUC-JP..UTF-8 target.txt

_ 強制終了

ターミナルで xkill として,当該のウィンドウを左クリック

_ Emacs でディレクトリ作成

Use C-u M-x make-directory RET RET 
to create directory and its parents

_ Ghostscript関係

_ 和布蕪他インストール Ubuntu

_ フォントの設定hidden_Ubuntu7.10_fontの設定

  • 8.10 の場合はここが詳しい.

_ 小技 ssh-agent

$ eval `ssh-agent -s`;ssh-add ~/.ssh/id_rsa    # 開始
$ eval `ssh-agent -k`  # 終了

参考 http://www.his.kanazawa-it.ac.jp/~idurumi/linux/ssh/index.html

~/.bash_profile
$ cat << END >> ~/.bash_profile
# start ssh-agent
if [ -z "${SSH_AGENT_PID}" ] ; then
    eval `ssh-agent -s`
    ssh-add ~/.ssh/id_rsa
    export SSH_AGENT_TTY=`tty`
fi
END
~/.bash_logout
$ cat << END >> ~/.bash_logout
# stop ssh-agent
if [ ! -z "${SSH_AGENT_TTY}" ] ; then
    TTY=`tty`
    if [ x$TTY = x${SSH_AGENT_TTY} ] ; then
        eval `ssh-agent -k`
        unset SSH_AGENT_TTY
    fi
fi
END

_ svn サーバー

2008 01 25
/etc/group

を編集し /usr/local/ubuntu 以下を chgrp -R svn で変更

_ subversion の使い方

http://ja.wikipedia.org/wiki/Subversion]] や http://www.gfd-dennou.org/library/cc-env/subversion/http://d.hatena.ne.jp/gan2/20070704/1183553892 も 参考になる.

  • レポジトリを作成するディレクトリを用意したら
    sudo mkdir /usr/local/ubuntu
    chown hoge:hoge /usr/local/ubunutu
    (アクセスするのが hoge だけなら) とりあえずは,サーバー側 192.168.0.1 で
    svnadmin create /usr/local/ubuntu/hoge
    と実行しておく. クライアント側では hoge ディレクトリ内に
    trunk
    branches
    tags
    の三つのディレクトリを掘っておき,その trunk 内に管理ファイルを保存.
svn import -m "from AMD" /home/usr/hoge
  svn+ssh://192.168.0.1/usr/local/ubuntu/hoge

でインポートし,

svn checkout  svn+ssh://192.168.0.1/usr/local/ubuntu/hoge/trunk hoge

とするのが正しい流儀のよう... http://subversion.bluegate.org/doc/ch01s07.html

  • レポジトリを削除するのは
    svnadmin rmtxns hoge
    と言うコマンドもあるようだが,単に
    rm /usr/local/ubuntu/hoge
    で良い模様. svn: Failed to add directory 'foo': object of the same name is already scheduled for addition のようなエラーに遭遇したら,
    $ svn revert foo
    $ svn update

svn+sshするときにサーバーによってポートが違う場合、どう設定していいかわからなかった。 調べてみたら

sshトンネルを使う場合のポート番号指定方法 

http://d.hatena.ne.jp/mir/20070621/p2

~/.subvertion/configに
[tunnnels]
ssh_hoge = ssh -p 8888

して

svn co svn +ssh_hoge://hostname/svn/hogehoge

キーを切り替えたい場合は

[tunnnels]
ssh_hoge = ssh -i /home/name/.ssh/id_dsa_hoge

追加

svn import -m "from Tex/research/papers/p2007"  
       /home/ishida/research/ Tex/papers/p2007/  
      svn+ssh://150.59.60.47/usr/local/ubuntu/ research/p2007
 svn checkout svn+ssh://150.59.60.47/usr/local/ubuntu/   
       research/p2007/trunk p2007

コンフリクトを起こしたら,次のいずれかを実行して

  • 「手で」 (ファイル中の競合マーカを調べ編集して) 競合テキストをマージ
  • 作業ファイルに、一時ファイルのどれかを上書き
  • svn revert <filename> を 実行して、ローカルでしたすべての変更を捨てる その上で,次を実行
    svn resolved target.txt

_ ライブラリを新規追加したら

例えば mecab をインストールしたら

sudo ldconfig

を実行し,/usr/local/lib に新たに追加されたライブラリを登録しなければいけない.

_ ライブラリのリンクを確認する方法

[ishida@amd64 chasen]$ ldd /usr/local/lib/libchasen.so | grep
 libstdc++
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00002aaaaad9b000)

Mac で ldd するときは otool -L hoge。 disassemble するときは otool -t -v -V hoge。

_ ssh を使うためのホームのパーミッション 755 以下だった.

_ ファイル構成 2007 11 08

$ df
Filesystem           1K-ブロック    使用   使用可 使用% マウント位置
/dev/sdb1            234410816  21635248 200868192  10% /
varrun                 1032688       128   1032560   1% /var/run
varlock                1032688         0   1032688   0% /var/lock
udev                   1032688       100   1032588   1% /dev
devshm                 1032688         0   1032688   0% /dev/shm
lrm                    1032688     34696    997992   4% /lib/modules/
       2.6.22-14-generic/volatile