Linuxの備忘録
Linuxの備忘録
NEW_CMS 2010 05 29
- Unix 全般
- iptables
- Ubuntu9.10_10.04
- ps2pdf_fonts
- LinuxでCPUの搭載数を調べる
- awesome
- Ubuntu のバージョン確認
- 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辞書
- ruby
- ntp
- printer ドライバまわりのレポジトリ
- MozcforEmacs
- apt-getとaptitude の違い
- フォント一覧
- Git
- Ubuntu 10.04 LTS Beta にJapanese パッケージレポジトリを追加
- popler-data
- php5-ldap
- dhcp + dns
- デスクトップ切り替え
- iBus + SCIIM
- Ubuntu での WPA エンタープライズ証明書認証による無線LAN
- ideaPad に Wubi で Ubuntu9.10を導入
- Adobe Reader 64-bit
- SSH "Killed by signal 15."
- Apache シンタックスチェック
- php extension
- postfix 全般
- hostname 変更
- PHPの正規表現
- ハイフンで始まるファイルを消す
- putty
- MeCab コマンドラインまとめ
- ネットワーク越しにファイルを開く
- memcahched
- 丸ごとバックアップ
- Apache チルダ無し(有り)アクセス
- Ubuntu でのサービス管理
- x分後にシャットダウンさせる
- CMS Moodle バックアップ
- tar 再考
- パスワード無しでsudoする(Ubuntu)
- PHP_CGIとモジュールの違い
- NetworManger と IPv6を無効化.
- md5
- /bin/false /sbin/nologin の違い
- VMplayer_on_9.04
- iMac_設定
- ffmpeg
- mp3 の作成
- clive
- kino
- ディレクトリ内のファイルから「word」を含むファイルを検索
- BUFFALO_WLI-U2-G54HP_WHRHP-Gを認識利用
- VMware
- コマンド版PHP
- codec 関係のインストール
- Ubuntu ログイン時の音量
- wmv から wav を作る.
- Linux Server 版のアップデート
- ntpdate 2009 03 21
- Epson Na01へのUbuntuインストール
- Ubuntu システム > 設定 > キーボード・ショートカット
- find の exec 引数と xargs 引数
- IP変更
- Subersion +SVN コマンド一覧
- X関連
- mail, mailx
- crontab
- fontを設定
- Ubuntu8.10-2
- Ubuntu8.10
- PE_CMS
- VMWare_Ubuntu
- bashファイルのバックアップ
- 万が一の場合のリカバリ
- autofsの設定
- bash_logoutの作成
- hidden_bashの演算子
- hidden_LANDISK
- Emacsによるソース操作
- 解凍方法一覧
- libgtk-2.0.devインストール
- convert
- Ubuntu_fsckについて
- BrotherHL-5250DN
- マウスのホイール
- subversion_config
- apt-get autoclean
- Vostro に Ubuntu 8.04 をインストールする.
- Atok X 3 の設定2
- Atok X 3 の設定1
- Windows上の VMware Player に Ubuntu を載せている場合
- Emacs 正規表現を用いた検索
- Mplayerマニュアル
- Subversion について
- Gutsy_eps_文字化け
- Anthy辞書追加
- nkf
- 文字コードを一括して変える
- ファイル名,文字コードを一括して変える
- CMS
- apt コマンド
- Ubuntu でフィルタリングせずに文字変換を行うプログラムは recode だそうな.
- 強制終了
- Emacs でディレクトリ作成
- Ghostscript関係
- 和布蕪他インストール Ubuntu
- フォントの設定hidden_Ubuntu7.10_fontの設定
- 小技 ssh-agent
- svn サーバー
- subversion の使い方
- ライブラリを新規追加したら
- ライブラリのリンクを確認する方法
- ssh を使うためのホームのパーミッション 755 以下だった.
- ファイル構成 2007 11 08
_ 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 に慣れないと思っていた. ここのサイト など役に立つ
_ 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インストール
_ 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
findの出力がヌル文字(0×00、別の表現をすると”\0″)で区切られて出力されます。また、xargsも引数がヌル文字で区切られているものとして処理を行います。その結果、空白文字を含んだファイル名も正常に処理できます。
しかし,私自身は怖くてできないな.xargs をグーグったら,こんなページがあった.またこんなファイル shell2.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 コマンド一覧
_ 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 22 study アカウントで
*/5 * * * * /home/myhome/MoodleCron.sh 1>/dev/null
#*/5 * * * * wget -q -O /dev/null http://***.***.tokushima-u.ac.jp/~myhome/moodle/admin/cron.php 1>/dev/null
を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 をインストールする.
_ Atok X 3 の設定2
_ Atok X 3 の設定1
_ 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