がらくた置き場。

備忘録

UNIXネタ

コンソール出力のログ保存(teeコマンド版)
makeを実行した場合のログをmake.logに保存。

画面に出さないでファイルに保存する場合

# make install >& make.log
画面に出さないで標準出力と標準エラーを別ファイルに保存する場合
# make install 1> stdout.log 2> stderr.log
画面に出しつつファイルにも保存する場合(csh, zsh系)
# make install |& tee make.log
画面に出しつつファイルにも保存する場合(bash系)
# make 2>&1 | tee make.log
「hogehoge | & tee hogehoge.log」というパターンは色々応用が利きそうだ。
# dbx hogehoge core | & tee dbx.log
コンソール出力のログ保存(scriptコマンド版)
makeを実行した場合のログをmake.logに保存。

ログ取り開始

# /usr/bin/script -f make.log
ログ対象コマンド実行
# make install
ログ取り終了
# exit
Proxyの設定
Proxy環境下でwget/yum等を利用する際に設定が必要。

bash系

export https_proxy=http://proxy_url.com:port/
export HTTPS_PROXY=${https_proxy}
export http_proxy=${https_proxy}
export HTTP_PROXY=${https_proxy}
export ftp_proxy=${https_proxy}
export FTP_PROXY=${https_proxy}
export no_proxy=.domain.com
csh系
setenv http_proxy http://proxy_url.net:port/
setenv HTTP_PROXY http://proxy_url.net:port/
setenv http_proxy http://proxy_url.net:port/
setenv HTTP_PROXY http://proxy_url.net:port/
setenv ftp_proxy http://proxy_url.biz:port/
setenv FTP_PROXY http://proxy_url.biz:port/
setenv no_proxy .domain.com
DSO(*.so)モジュールの検索パス
環境変数「LD_LIBRARY_PATH」で設定する。Linuxの場合は、ldconfigコマンド関連でも設定可能。
grepコマンド
再帰的に検索
# grep -e "hoge" --color -InR *
findコマンド
「hoge〜.cpp」の検索。「{}」は現在のファイル名に置き換わる。「¥;」はコマンドの終端。
# find ./ -name "hoge*.cpp" -print
# find /var -name hoge\*.cpp -exec ls -l {} \;
特定ディレクトリ配下の特定ファイルを全て削除する
# find 特定ディレクトリ -name 特定ファイル -print -exec rm {} \;
特定条件のファイルのみコピーする
# find 入力ディレクトリ -name 特定ファイル | cpio -dpv 出力ディレクトリ
特定条件のファイルのみ上書きコピーする
# find 入力ディレクトリ -name 特定ファイル | cpio -dpuv 出力ディレクトリ
topコマンド
CPU使用率の高いプログラムの表示
fileコマンド
テキストファイル、実行ファイル等の判定
psコマンド
プロセスの列挙
OSコマンド(全て列挙)コマンド(自分のみ)
RedHat Linuxps aux
ps -Af
ps -f -U ユーザ名
IRIXps -Afps -f -U ユーザ名
chmodコマンド
グループに書き込み権限追加/削除
# chmod g+w file
# chmod g-w file
所有ユーザ/グループ/他人に読み書き権限設定
# chmod ugo=rw file
SFTPコマンド
参考:OpenSSH 日本語マニュアルページ
# sftp 【ユーザ名】@【ホスト名orIPアドレス】:【ホストのファイルへのパス】
tarコマンド
tarアーカイブ作成
# tar -cf XXX.tar XXX
.tgz(tar.gz)アーカイブ作成
# tar -zcf XXX.tgz XXX
.tbz(tar.bz2)アーカイブ作成
# tar -jcf XXX.tbz XXX
〜.tar を解凍
# tar xf XXX.tar
〜.tar.gz を一発解凍
# tar zxf XXX.tar.gz
〜.tar.bz2 を一発解凍
# tar --bzip2 -xf XXX.tar.bz2
# tar jxf XXX.tar.bz2
〜.tar.bz2 を一発解凍(bzcatと併用)
# bzcat XXX.tar.bz2 | tar xf -
〜.tar.xz/〜.tar.lzma を一発解凍
# tar Jxf XXX.tar.xz
〜.tar.xz/〜.tar.lzma を一発解凍(xzcat/lzcatと併用)
# lzcat XXX.tar.xz | tar xf -
# xzcat XXX.tar.xz | tar xf -
属性を保持してファイルコピー
# tar cf - src_file | ( cd dst_dir; tar xvf - )
7zaコマンド(p7zip 7-zip for Unix)
〜.7z を解凍
# 7za x XXX.7z
自己解凍書庫の作成
# 7za -sfx a XXX.7z.bin XXX
manコマンド
普通に開く
# man stat
stat(2)を開く
# man 2 stat
statと名の付くmanを全て開く
# man -a stat
ipcsコマンド
IPCリソース情報の表示。
RPMコマンド
アップデート(入っていなければインストール)
# rpm -Uvh hoge.rpm
アンインストール
# rpm -e hoge.rpm
情報表示
# rpm -q -p hoge.rpm
# rpm -qi hoge
依存関係表示
# rpm -q -R -p hoge.rpm
x86_64環境等でアーキテクチャも出力
# rpm -q --queryformat "%{NAME}-%{VERSION}-%{RELEASE} for %{ARCH}\n" -p hoge.rpm
「--queryformat」で使えるタグ一覧
# rpm --querytags
ファイル一覧表示
# rpm -q --list -p hoge.rpm
特定ファイルが含まれるパッケージ名を取得
# rpm -qf 特定ファイルへのパス
SHA256に対応しない環境(CentOS 5等)でSRPMのインストール時にMD5チェックサムエラーとなる。MD5のチェックを行わないようにして回避。
# rpm -i --nomd5 hoge.src.rpm
RPMBUILDコマンド
ローカル環境の準備(~/rpmbuild)
# echo %_topdir $HOME/rpmbuild > ~/.rpmmacros
# mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
rpm/rpmbuildコマンドのプロキシ設定
# echo %_httpproxy 192.168.0.1 >> ~/.rpmmacros
# echo %_httpport 8080 >> ~/.rpmmacros
# echo %_ftpproxy 192.168.0.1 >> ~/.rpmmacros
# echo %_ftpport 8080 >> ~/.rpmmacros
hostコマンド
DNSサーバーで名前解決する情報について問い合わせをする。nslookupコマンドやdigコマンドと同様に,DNSに関する各種の調査やデバッグに使える。
uptimeコマンド
システムがどのくらいの期間稼働し続けているかを表示する
パスからの抽出
basename, dirname
Shellで先頭・末尾に移動
先頭
[Ctrl] + [a]
末尾
[Ctrl] + [e]
カレントフォルダからの相対パスを絶対パスへ変換
Makefile向けに pushd/popd, pwd を使用してやってみる。
pushd 相対パス > /dev/null && pwd && popd > /dev/null
テスト
# cd /usr/lib
# pushd ../local/./src > /dev/null && pwd && popd > /dev/null
(結果)
/usr/local/src
Makefile(gmake)では下記のような記述を行う。
SRC_DIR=$(shell pushd 相対パス > /dev/null && pwd && popd > /dev/null)

Linux関連

SGI WS/IRIX関連

SGIのWSで 起動メニュー を出す方法
起動時に [ESC]キー を押下。キーボードレイアウト等の変更が可能。因みにSGIのWSのキーボード・マウスはPS/2接続。
IRIX環境でranlib
Makefileで「RANLIB=/usr/bin/ranlib」となっている場合、IRIXでは「RANLIB=ar ts」とする。
IRIXの各種コマンド
H/W情報
# hinv
OS情報
# uname -aR
Shutdown(30秒後にIRIXを終了し、WSの電源も落とす)
# /etc/shutdown -i30 -g0 -p -y
SGI Supportfolio > 質問: Linux版のIRIXツール"X"もありますか?
IRIXとLinuxのコマンド比較表。
時刻合わせ
root権限で実行
# ntpdate NTPサーバ名
kernelパラメータの出力
# /usr/sbin/sysconf

Sun WS/Solaris関連

SunのWSで okプロンプト を出す方法
WS起動直後の「Initializing Memory *」の表示がでているタイミングで、[Stop] + [a] を押下する。

Cygwin関連

バージョン情報出力
一般的なUNIXと同じ。
# uname -a
設定情報出力
# cygcheck -srv
Webminの起動
下記コマンドを実行。
# /etc/webmin/start

Windowsネタ

ActivePerlでVC++のnmake.exeの利用
CPANからインストールした場合に、
C:\Program Files\Microsoft Visual Studio\VC98\bin\nmake.EXE  -- OK
Running make test
'C:\Program' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません
C:\Program Files\Microsoft Visual Studio\VC98\bin\nmake.EXE test -- NOT OK
とエラーになるので、「%Perlのインストールパス%¥lib¥CPAN¥Config.pm」を以下のように修正するとうまくいく模様・・・。
(修正前)'make' => q[C:\Program Files\Microsoft Visual Studio\VC98\bin\nmake.EXE],
(修正後)'make' => q["C:\Program Files\Microsoft Visual Studio\VC98\bin\nmake.EXE"],
確定文字列の再変換操作
ATOK(ATOK15以降)
エディタ等の入力可能な箇所で再変換対象の文字列を反転し、[Shift]+[前候補/変換(次候補)] 押下。
MS-IME2000
エディタ等の入力可能な箇所で再変換対象の文字列を反転し、[前候補/変換(次候補)] 押下。
Outlook Expressのメールの保存場所
「*.dbx」で「Documents and Settings」配下を検索する。大抵以下のパスに存在する。
%USERPROFILE%
  \Local Settings
    \Application Data
      \Identities
        \{99999999-9999-9999-9999-999999999999}
          \Microsoft
            \Outlook Express
複数のウィンドウを1回の閉じる操作で終了する
Ctrlキーを押下したままタスクバーのウィンドウをマウスの左クリック選択していき、最後に右クリックで閉じるを選択。
環境変数PATHの設定
システム環境変数とユーザ環境変数がありそれぞれに環境変数「PATH」が存在する。
通常の問題ない状態であれば「echo %PATH%」とするとシステム環境変数のPATHの値に続いてユーザ環境変数のPATHの値が出力される。
システム環境変数の又はユーザ環境変数のPATHの値しか出力されない場合は、以下のようなパスが登録されている事が問題であると思われる。
C:\Program Files\HogeHoge1;C:\Program Files\HogeHoge2;・・・
要するに半角スペースを含むパスが環境変数PATHに登録されていると起こるらしい。
ちなみにMS社もその問題に気付いているのか、MS社のツールではその対応を行っている模様。
C:\Program Files\Support Tools\;C:\Program Files\Resource Kit\;・・・
パスの最後に「¥」を付加する事でこの問題が回避可能だという事らしい。ちなみにPlatformSDKの場合、
C:\Program Files\SDK\bin\.;C:\Program Files\SDK\bin\WinNT\.;・・・
と「¥」+「.」の組み合わせで登録される。これは環境変数を「〜¥.」の形式で登録した場合に「¥」での区切りをつけて利用する場合を想定していると思われる。
SET ENV_VALUE=C:\TEMP\.
ECHO %ENV_VALUE%\chige\nabe.txt
> C:\TEMP\.\chige\nabe.txt (= C:\TEMP\chige\nabe.txt)
因みにもう一つの回避策としてはMS-DOS8.3形式にする方法もある。Justsystem社はこの方法でPATHに追加している。
C:\PROGRA~1\SUPPOR~1;C:\PROGRA~1\RESOUR~1;・・・
FloppyDiskのフォーマット
「ファイル名を指定して実行」にて
Format A: /U
正規版Windowsの確認ツール(GenuineCheck.exe)
IE以外のブラウザを使用している場合にお世話になるツールですが、実行すると・・・
このバージョンの Windows Genuine Advantage 確認ツールのサポートは終了しています。
最新のバージョンをダウンロードし、システム時計が正しいことを確認してください
といつも言われちゃいます。どうもローカルProxyが有効になっていると上記エラーが出る模様。
半年位悩みました・・・orz。ローカルProxyを切ってから実行すべし。
Windowsコマンド集:subst
仮想ドライブの割り当て

プログラミングネタ

link集/開発言語系/C++#Dev_Tips
C/C++関連はこちらに移動。

64bitプログラミング

64bitOS及び64bit変数。

windowsserverx64.com > Compiling "Hello World" for Windows x64 Editions
IBM developerWorks > Linuxアプリケーションの64ビット・システムへの移植
64ビットCPU(AMD64+EM64T)でアセンブラ > プログラミング
VisualC++での64bitプログラミング情報。64ビットでの仮想アドレス空間は一読すべし。
64-bit lessons
Description of the course "Lessons on development of 64-bit C/C++ applications"
SGI Origin™ Server Systems Programming Overview > プログラム移植上の注意点
Solaris 64 ビット 開発ガイド > 第 4 章 アプリケーションの変換
Visual C++ の概念: 移植とアップグレード > プログラムの移植
Visual C++ による 64 ビット プログラミング
Visual Basic での整数型に関する変更点
64-bit programming for Game Developers
10 行でズバリ !! 64 ビット対応 .NET アプリケーションの開発 (C#)
プラットフォームの持つポインタサイズと実行中の EXE ファイルの情報を取得し、リストボックス上に表示する Windows アプリケーションです。
Building AMD64 Applications with the Microsoft® PlatformSDK (PDF)
Configuring Microsoft® VisualStudio Projects to Support the AMD64 Architecture (PDF)

unix

link集/開発言語系/C++/API
POSIX系のAPIメモは別ページに移動
IRIX上のコンパイラの初期値
/etc/compiler.defaults
stripコマンド
オブジェクトファイルからシンボルを切り捨てる
dbx
Coreファイルのデバッグ
# dbx アプリ名 Coreファイル
落ちた場所を表示
(dbx) where
デバッグ終了
(dbx) quit
gdb
Coreファイルのデバッグ
# gdb アプリ名 -core Coreファイル
落ちた場所を表示
(gdb) where
デバッグ終了
(gdb) quit
makeのコマンドラインオプション
-d
デバッグモードで実行
-e
Makeファイル内のマクロ定義を環境変数で置き換え
-f
使用するMakeファイルを指定
-i
エラーを無視して実行
-n
コマンドを実行せず表示のみ行う
-p
マクロ・サフィックス・エントリ情報を表示しながら実行
-j JOB数
同時に実行出来るジョブ(コマンド)の数を指定する。マルチプロセッサ環境では効果絶大だが稀にビルドエラーを引き起こす。
-w
他の処理を行う前後に、作業ディレクトリを表示する。
アーカイブ(*.a)の作成
アーカイブ(*.a)の作成
# ar cr libXXX.a hogeA.o hogeB.o hogeC.o
アーカイブの索引情報の作成(リンクして利用するのに必要)
# ranlib libXXX.a
アーカイブの索引情報の出力
# nm -s libXXX.a > hoge.txt
API名は分かるが、どのライブラリをリンクするか分からない
Program Library HOWTO > 雑録 > nm

「fmod」が定義されているライブラリを検索

# nm -o /usr/lib/* /usr/local/lib/* 2> /dev/null | grep -v ' U ' | grep ' fmod$' 

Microsoft Windows

Microsoft VisualC++
コアなVisualC++関連情報は別ページを参照方。
JIT(Just-In-Time)デバッガの設定
下記のレジストリエントリで設定。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug
x64版OSの場合は下記も関係する
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug
この辺は、WindowsのHelpで ワトソン博士の「ワトソン博士を設定する」の説明 が詳しい。
開発環境「Debugger」の設定値*1
ワトソン博士drwtsn32 -p %ld -e %ld -g
Microsoft VisualC++ 6.0C:\Program Files\Microsoft Visual Studio\Common\Msdev98\BIN\MSDEV.EXE -p %ld -e %ld
COMPAQ VisualFortran 6.1C:\Program Files\Microsoft Visual Studio\Common\Msdev98\BIN\DFDEV.EXE -p %ld -e %ld
Borland Delphi 6C:\Program Files\Borland\Delphi6\Bin\bordbg60.exe -aeargs %ld %ld
Microsoft VisualStudio .NET 2002/2003 *2"C:\Program Files\Common Files\Microsoft Shared\VS7Debug\vs7jit.exe" -p %ld -e %ld
Microsoft VisualStudio 2005"C:\WINDOWS\system32\VSJitDebugger.exe" -p %ld -e %ld
Microsoft VisualC++ 6.0/COMPAQ VisualFortran 6.1をJITデバッガに設定*3
メニューの [ツール(T)] - [オプション(O)...] を開き、「デバッグ」タブに切り替える。
VC_JIT.png
「ジャスト イン タイム デバッグ(J)」にチェックを付けて「OK」ボタンを押下すると、レジストリエントリが更新*4され、デバッガの登録が行われる。
Microsoft VisualStudio .NET 2002/2003をJITデバッガに設定*5
メニューの [ツール(T)] - [オプション(O)...] を開き、「デバッグ」-「Just-In-Time」メニューに切り替える。
VC_JIT2.png
「Native」にチェックを付けて「OK」ボタンを押下すると、レジストリエントリが更新され、デバッガの登録が行われる。

雑多ネタ

各種コピー&貼り付け操作
表にしてみた。
名称コピー貼り付け
Windows[Ctrl]+[c]
[Ctrl]+[Insert]
[Ctrl]+[v]
[Shift]+[Insert]
Windowsのコマンドプロンプトマウスの左ボタンで範囲選択後、マウスの右ボタンをクリックマウスの右ボタンをクリック
Poderosa/VaraTerm/Guevara[Alt]+[c][Alt]+[v]
TeraTermProマウスの左ボタンで範囲選択後、
マウスの左ボタンをクリック or [Alt]+[c]
マウスの右ボタンをクリック
[Alt]+[v]
IRIXのシェルマウスの左ボタンで範囲選択し、マウスの左ボタンを離すマウスの真ん中ボタンをクリック
Linuxのgpm(コンソール画面)マウスの左ボタンで範囲選択し、マウスの左ボタンを離すマウスの真ん中ボタンをクリック
vi(行コピー)[y][y][p]
ckマウスの左ボタンで範囲選択し、マウスの左ボタンを離すマウスの真ん中ボタンをクリック
PukiWikiアイコン
こんな機能が有るなんて今まで知らなんだがや・・・
[heart] [smile] [bigsmile] [oh] [sad]
&heart;  ⌣  &bigsmile;  &oh;  &sad;

:D :p :d XD X( ;) ;( :(

:D  :p  :d  XD  X(  ;)  ;(  :(
rain > Web制作ノート > 文字参照
特殊文字辞典

® © ™ ¥ €

®  ©  ™  ¥  €
¼ ½ ¾ ¹ ² ³
 ¼  ½  ¾  ¹  ²  ³
↑ ↓ ← → − & < > "
&uarr;  &darr;  &larr;  &rarr;  &minus;  &amp;  &lt;  &gt;  &quot;
☑ ☠ ↲
&#9745;  &#9760;  &#8626;
本サイトで利用しているPukiWiki Plug-in
counterview.inc.php
search.inc.php
qrcode.inc.php
amazon.inc.php(2007/03/04)
sitemap.inc.php(2007/02/25公開中止)

サンプルの鬼

おみゃーさんはよ鬼だがや。サンプルの鬼なるんだがね!

fileSTLeraseSample.tar.bz2 [Ver1.0]
[VC++]STLのvector::erase()の利用方法のサンプル。
fileFloorTest.tar.bz2 [Ver1.0]
[VC++]四捨五入。
fileCheckMemoryLeak.7z [Ver1.1]
[VC++]malloc/newのメモリリーク。
filestruct_find_if.tar.bz2 [Ver1.1]
[VC++/g++/MIPSpro]構造体のvector/list配列において std::find_if での検索を std::bind2nd で実現する。
また同様にクラスのメンバ変数順でソートする。MIPSpro C++/g++用のMakefile付き。
fileVBcallDLLfunc.tar.bz2 [Ver1.0]
VB/VBAから自作DLLの関数呼び出しサンプル。自作DLLを環境変数「PATH」に登録された場所に入れなくても動作する。
fileApplyPatch.tar.bz2 [Ver1.2]
ナローバンドな環境人向けのWindowsUpdate関連パッチ当てお便利ツール。
主な処理内容は以下の通り。
・プログラム引数の取得
・レジストリの読み込み
・プログラムの実行
fileDW4SupTools.tar.bz2 [Ver1.2]
SupportToolsに付属するDependencyWalkerはシェルへの登録をしてくれないので、直接レジストリファイルからシェルにDependencyWalkerを登録する。
主な処理内容は以下の通り。
・Scripting.FileSystemObject.ShortPath を利用して8.3形式のパスを取得。
fileRunTest.zip [Ver1.0]
現在日時(時間は時分のみ秒はなし)を取得して、その日時のファイルを作成。
filednscache_log_convert.sh.tar.bz2 [Ver1.0]
現在時刻を取得して、その日付のファイル作成。
本サイトのPukiWiki変更箇所
fileNB_pukiwiki-1.4.5_1.tar.bz2 [Ver1.1]
fileNB_amazon23.tar.bz2(Pukiwiki付属じゃない方。一応AWS4.0対応) [Ver1.2]
fileNB_counterview.inc.php.tar.bz2 [Ver1.1]

*1 当然の事ながら一般的な環境下での設定値なので、%SystemDrive%, %SystemRoot%, %VCINSTALLDIR% 及びアプリのインストール先によって変動する
*2 「PreVisualStudio7Debugger」も追加される。内容は「drwtsn32 -p %ld -e %ld -g」
*3 この処理を実行するとレジストリにゴミのキーが作成される。
VC_JIT_Gomi.png

*4 VisualStudio .NET 2002/2003がインストールされている環境の場合、「PreVisualStudio7Debugger」の値も「Debugger」と同じ値に更新される
*5 VisualC++ 6.0の時と同様にレジストリにゴミのキーが作成される

Last-modified: 2012-10-24 (水) 11:13:10