Linuxの備忘録 - RとLinuxと...

RとLinuxと...


Linuxの備忘録

Linuxの備忘録

Ubuntu起動ラブル時の対処様々

MBR復旧

Ubuntu_Install

Emacs

Emacs_Regex

NEW_CMS 2010 05 29

PE_CMS

PE_CMS2再構築

Sakura

Moodle

Wikiの備忘録

twitter

_ Unix 全般

便利なサイト 見つけた

 sudo apt-cache search pacakges 

_ iptables

_ Ubuntu9.10_10.04

_ ps2pdf_fonts

_ LinuxでCPUの搭載数を調べる

_ awesome

_ Ubuntu のバージョン確認

cat /etc/lsb-release | grep DESCRIPTION

_ Ubuntu_Locale

_ emacs23_Atok

_ vc-git

_ Xmodemap

_ Dynamic MMap ran out of room

_ タッチパッドを無効化

_ Ubuntu日本語フォルダ名

_ Default-Fonts

_ Mozc

_ ideaPad

_ AdobeReader9

_ Xclipboard

_ uim-skk

_ ddskk

_ nmap

の使い方を忘れているので,そのうち,まとめよう

_ anthy辞書

ユーザー辞書を永久に記憶させる

$ sudo chattr +a  ~/.anthy/last-record2_default.utf8

ここから

_ ruby

mikkuterのため

$ sudo aptitude install ruby libgnome2-ruby libopenssl-ruby \
  libhmac-ruby
[sudo] password for ishida: 
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
拡張状態情報を読み込んでいます      
パッケージの状態を初期化しています... 完了
拡張状態情報を書き込んでいます... 完了        
以下の新規パッケージがインストールされます:
 libart2-ruby1.8{a} libatk1-ruby1.8{a} libcairo-ruby1.8{a} 
 libgdk-pixbuf2-ruby1.8{a} libglib2-ruby1.8{a} libgnome2-ruby 
 libgnome2-ruby1.8{a} libgnomecanvas2-ruby1.8{a} libgtk2-ruby1.8{a} 
 libhmac-ruby libhmac-ruby1.8{a} libopenssl-ruby libopenssl-ruby1.8{a} 
 libpango1-ruby1.8{a} libruby1.8{a} ruby ruby1.8{a} 
0 個のパッケージを更新、 17 個を新たにインストール、
0 個を削除予定、0 個が更新されていない。
2,557kB のアーカイブを取得する必要があります。
展開後に 10.1MB のディスク領域が新たに消費されます。

_ ntp

$ sudo ntpdate -b ntp.nict.jp
$ sudo apt-get install ntp
$ vi /etc/ntp.conf
# server ntp.ubuntu.com
server ntp.nict.jp
server ntp.nict.jp
server ntp.nict.jp
$ sudo /etc/init.d/ntp restart
$ sudo ntpq -p

_ printer ドライバまわりのレポジトリ

http://www.openprinting.org/download/printdriver/debian/dists/lsb3.2/postscript-brother/binary-amd64/Packages.gz の取得に失敗しました 404 Not Found いくつかのインデックスファイルのダウンロードに失敗しました。これらは無視されるか、古いものが代わりに使われます。

http://www.openprinting.org/download/printdriver/debian/dists/lsb3.2/main/binary-amd64/

に変更になった模様

_ MozcforEmacs

_ apt-getとaptitude の違い

[[ここ:http://d.hatena.ne.jp/himeatball/20081009/1223572372]から引用

インストール時

 主な違いは「推奨(recommends)パッケージ」の扱いです。apt-getは推奨パッケージを表示するだけに留めますが、aptitudeは推奨パッケージもインストールしようとします(たぶん提案(suggests)パッケージはインストールしません。推奨と提案の違いはこのエントリの質疑応答が参考になります)。

  • アンインストール時
  • 主な違いは必要のなくなったパッケージ(孤児(orphan)パッケージと呼ばれるらしい)の扱いです。apt-getもaptitudeもあるパッケージをインストールしたとき、必要なパッケージも自動的にインストールしてくれますが、インストールしたパッケージを削除したとき、apt-getはそのパッケージだけを、aptitudeは(/var/log/aptitudeのログを元に)不要になったパッケージも削除します。

_ フォント一覧

TrueType?フォント一覧

fc-list

ビットマップフォント一覧

xlsfonts

_ Git

_ Ubuntu 10.04 LTS Beta にJapanese パッケージレポジトリを追加

wget -q https://www.ubuntulinux.jp/ubuntu-ja-archive-keyring.gpg -O- | sudo apt-key add -
wget -q https://www.ubuntulinux.jp/ubuntu-jp-ppa-keyring.gpg -O- | sudo apt-key add -
sudo wget https://www.ubuntulinux.jp/sources.list.d/lucid.list -O /etc/apt/sources.list.d/ubuntu-ja.list
$ sudo apt-get update
$ sudo apt-get upgrade

保留される場合

$ sudo apt-get -s dist-upgrade

で確認し

$ sudo apt-get dist-upgrade
日本語 Remix のパッケージインストール
sudo apt-get install ubuntu-desktop-ja
sudo apt-get install build-essential xorg-dev gfortran 
sudo apt-get install  libreadline6-dev libxml2-dev libjpeg62-dev libpaper-dev 
sudo apt-get install  libpng12-dev flex bison xaw3dg-dev libxp-dev autoconf subversion 
sudo apt-get install curl git-core ess libmotif-dev ttf-vlgothic
sudo apt-get install cmap-adobe-japan1 gs-cjk-resource
sudo apt-get install flashplugin-installer 
sudo apt-get install libreadline-dev

_ popler-data

pdf が標準ビューワーで文字化けしたので

_ php5-ldap

$ sudo apt-get install php5-ldap
$ sudo /etc/init.d/apache2 restart

_ dhcp + dns

https://answers.launchpad.net/ubuntu/+source/ifupdown/+question/3631

I have found the answer on http://www.opendns.com/start/unix.php just now:

quote> Using OpenDNS with DHCP

If you assign your computer's IP with DHCP, it probably overwrites your /etc/resolv.conf. Here's how to fix that:

1. Run: sudo gedit /etc/dhcp3/dhclient.conf
2. Change the prepend line to read:
prepend domain-name-servers 208.67.222.222, 208.67.220.220;

This will prepend the OpenDNS addresses to the top of the list. (You can also use "supersede", which will just use them.) You don't have to worry about the DHCP client overwriting settings on each reboot or lease cycle, and your ISP nameservers will still be used as backup.

3. Run: sudo /etc/init.d/networking restart
4. Using Ubuntu? Check "Networking" to see if the changes applied correctly.

Go to "System –> Administration –> Networking" and click the DNS tab.

/quote>

_ デスクトップ切り替え

 [ ウィンドウズ key (SuperL, Mod4) ] + [ e ] で複数のデストップの縮小版を表示しての切り替え

[ ctrl ] + [ alt ] + [矢印キー(十字キー) ] でデスクトップ切り替え

ショートカットキー集

_ iBus + SCIIM

日本語セットアッパでsciim-bridgeだけ追加

システム管理 言語サポートで 入力システムは iiimf

これで Emacs で Atok x3 インライン入力 できている

_ Ubuntu での WPA エンタープライズ証明書認証による無線LAN

ここが参考になるかも

_ ideaPad に Wubi で Ubuntu9.10を導入

ここ と同じ現象

下記urlからパッチをダウンロードして、windowsのCフォルダ内のwubildrファイルと入れ替えするだけです。 http://launchpadlibrarian.net/36920146/wubildr (参考  https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/477104の#93のリンクから https://answers.edge.launchpad.net/ubuntu/+source/grub2/+question/91579 に移動してこのページ内にパッチが置いてありました。

で 2010 02 28

$ sudo apt-get install build-essential xorg-dev gfortran 
 libreadline6-dev libxml2-dev libjpeg62-dev libpaper-dev 
 libpng12-dev flex bison xaw3dg-dev libxp-dev autoconf subversion 
$ sudo apt-get install emacs22 ess libmotif-dev
$ sudo apt-get install cmap-adobe-japan1 gs-cjk-resource
$ wget -q https://www.ubuntulinux.jp/ubuntu-ja-archive-keyring.gpg -O- | sudo apt-key add -
$ wget -q https://www.ubuntulinux.jp/ubuntu-jp-ppa-keyring.gpg -O- | sudo apt-key add -
$ sudo wget https://www.ubuntulinux.jp/sources.list.d/karmic.list -O 
   /etc/apt/sources.list.d/ubuntu-ja.list
$ sudo apt-get update
$ sudo apt-get upgrade  

_ Adobe Reader 64-bit

$ sudo dpkg --force-architecture -i AdbeRdr9.3-1_i386linux_jpn.deb
$ sudo apt-get install nspluginwrapper
 インストールしてない場合
$ nspluginwrapper -i /opt/Adobe/Reader9/Browser/intellinux/nppdf.so
$ sudo apt-get install cmap-adobe-japan1 gs-cjk-resource
 インストールしてない場合

T-Codeが利用可能になっている

_ SSH "Killed by signal 15."

/.subversion/config に以下を追加.

ssh = $SVN_SSH ssh -q

/.bashrc にも以下を追加

export SVN_SSH='ssh -q'

_ Apache シンタックスチェック

# httpd -t
Syntax OK
$ apachectl configtest
Syntax OK 

_ php extension

Apache の起動時に次のような警告である.

PHP Warning:  Module 'curl' already loaded in Unknown on line 0
PHP Warning:  Module 'gd' already loaded in Unknown on line 0
PHP Warning:  Module 'mcrypt' already loaded in Unknown on line 0

調べると,自動的にロードされるモジュールを,php.ini で再ロードしていたらしい.

$ php --ini
Configuration File (php.ini) Path: /etc/php5/cli
Loaded Configuration File:         /etc/php5/cli/php.ini
Scan for additional .ini files in: /etc/php5/cli/conf.d
Additional .ini files parsed:      /etc/php5/cli/conf.d/curl.ini,
/etc/php5/cli/conf.d/gd.ini,
/etc/php5/cli/conf.d/mcrypt.ini,
/etc/php5/cli/conf.d/mysql.ini,
/etc/php5/cli/conf.d/mysqli.ini,
/etc/php5/cli/conf.d/pdo.ini,
/etc/php5/cli/conf.d/pdo_mysql.ini

これは cli の設定だが,/etc/php5/conf.d にも同じ設定ファイルがある.

以下をコメントアウト

$ sudo vi  /etc/php5/apache2/php.ini
; extension_dir directive above.
#extension=gd.so
#extension=mcrypt.so
#extension=curl.so

extension=apc.so
$ sudo /etc/init.d/apache2 restart

ちなみに

$ php -m

でモジュール一覧

$ php -m -n

で*.iniを使わないときのモジュール

$ php --ini

がどの*.iniを見てるか

_ postfix 全般

ここなど参考に

_ hostname 変更

Ubuntu9.10 で /etc/hostname を変更したら,ネットワークが機能しなくなった.いったん hostname を空白にして再起動し,もう一度新規のホスト名を設定して再起動したらネットワークが復活した.

_ PHPの正規表現

ここなど参考になる.

_ ハイフンで始まるファイルを消す

rm -- -file

_ putty

Linux で作成した秘密鍵をWindowsで使う Windows クライアントに転送された秘密鍵をPuTTY が読み込むことができる形式に変換するために PuTTYgen を利用。 puttygen.exe を起動して Load ボタンを押す。 [ ファイルを開くダイアログ ] でファイルの種類を [ All Files (*.*) ] に変更して Linux サーバから転送した秘密鍵 id_rsa を読み込み。そしてsaveする。

セッションの登録は、上のサーバを指定後、下のセッション一覧に適当名前を設定して保存。

_ 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

_ kino

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

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

/home/user ディレクトリ内の拡張子 .tex ファイルを対象に "検索" を含む箇所を検索

grep "検索" /home/user/*.tex

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

find /home/name -print | xargs grep "検索" /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

ついでに,危ないなぁと思いつつ rootでcronを設定

$ sudo crontab -u root -e #sudo crontab -eu root に同じ

$ 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辞書追加

_ nkf

[[nkf:http://it.kndb.jp/entry/show/id/744]]

構文

$ nkf オプション ファイル名 [> 出力ファイル名]

オプション一覧

-j(省略可能) : JISコード(ISO-2022-JP)を出力
-e           : EUCコードを出力
-s           : Shift-JISコードを出力
-w           : UTF-8コードを出力(BOM無し)
-Lu          : unix改行形式(LF)に変換
-Lw          : windows改行形式(CRLF)に変換
-Lm          : macintosh改行形式(CR)に変換
-g(--guess)  : 自動判別の結果を表示
--overwrite  : 引数のファイルに直接上書き
--version    : バージョン情報を表示(インストール済チェック)

使用例

  • 文字コードチェック
    $ nkf -g example.csv
    Shift_JIS
  • 文字コード変換(UTF-8)
    $ nkf -w --overwrite example.csv
  • 変換されているかチェック
    $ nkf -g example.csv
    UTF-8

文例

  • 文字コード変換(JISコード/ISO-2022-JP)
    $ nkf -j --overwrite example.csv
  • 文字コード変換(EUC-JP)
    $ nkf -e --overwrite example.csv
  • 文字コード変換(Shift-JIS)
    $ nkf -s --overwrite example.csv
  • 文字コード変換(UTF-8)
    $ nkf -w --overwrite example.csv
  • 失敗例
    $ nkf -w example.csv > example.csv
    とやると、中身が空っぽになるので注意。 きちんと--overwriteオプションをつけるか、違う名前で変換後mvコマンドで上書きすること

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

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

全ファイルを対象として UTF-8 -> Shift-Jis- Dos に変換する場合

find . -type f -print0 | xargs -0 nkf -s -Lw --overwrite

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
 
添付ファイル: fileshell2.txt 1453件 [詳細]
 
Link: MenuBar(1622d) Wikiの備忘録(2141d) iptables(2151d) Ubuntu9.10_10.04(2151d) 和布蕪他インストール(2217d) ps2pdf_fonts(2252d) Macの備忘録(2271d) LinuxでCPUの搭載数を調べる(2277d) Emacs(2287d) Emacs_Regex(2331d) awesome(2332d) Ubuntu_Locale(2333d) Ubuntu日本語フォルダ名(2337d) Atok_X3(2378d) Atok_X3続(2378d) Ubuntu_Install(2379d) emacs23_Atok(2422d) ddskk(2423d) twitter(2452d) Xmodemap(2481d) uim-skk(2481d) vc-git(2481d) Problem_with_MergeList(2496d) タッチパッドを無効化(2521d) AdobeReader9(2534d) autofsの設定(2535d) Git(2539d) Default-Fonts(2540d) MozcforEmacs(2547d) Mozc(2547d) ideaPad(2553d) Xclipboard(2563d) clive(2570d) NEW_CMS(2613d) hidden_SakuraServer_Pukiwiki(2623d) PE_CMS(2774d) hidden_PE_CMS2再構築(2775d) Moodle(2811d) hidden_PHP_CGIとモジュールの違い(2862d) hidden_MoodleBackUp(2863d) Moodle高速化(2880d) hidden_Subversion_Dump(2883d) Medibuntu(2899d) VMplayer_on_9.04(2912d) iMac_設定(2936d) Programming_C(2969d) IDRとサブネットマスク(2978d) UTF(2981d) BUFFALO_WLI-U2-G54HP_WHRHP-Gを認識利用(2982d) Subversion_command(2982d) hidden_VMware(2997d) hidden_codec 関係のインストール(3028d) Emacs_etc(3041d) BrotherHL-5250DN(3048d) Ubuntu8.10-2(3049d) Epson_Na01_Ubuntu(3049d) Ubuntu_keyboard(3049d) hidden_Black_Mac(3058d) hidden_X_setting(3065d) hidden_Recovery(3083d) fontを設定(3088d) Ubuntu8.10(3099d) VMWare_Ubuntu(3121d) hidden_LANDISK(3136d) bash_logoutの作成(3139d) hidden_bashの演算子(3139d) Emacsによるソース操作(3164d) Ubuntu_fsck(3255d) Vostro_Ubuntu8.04(3284d) Gutsy_eps_文字化け(3355d) Anthy辞書追加(3440d) hidden_dell530s_backup(3468d) hidden_Ubuntu7.10_fontの設定(3526d) Ghostscript関係(3543d) LinuxFromOldHtml(3579d)
Last-modified: 2012-01-06 (金) 11:17:03 (2027d)