[トップページ] [星雲紀行] [MLXS] [WPGen] [自作音楽] [モデル] [vi/vim] [tips] [自己紹介]

unix コマンド群

目次

  1. command
  2. memo
  3. 参考文献・参考ウェブページ
  4. 履歴

command

astyle

ソースコード整形。
http://homepage2.nifty.com/tenk/lib/doc/astyle_j.htm

[content]

basename

ファイル名称を取り出す。

$ ls /usr/local/bin/acroread
/usr/local/bin/acroread@
$ basename /usr/local/bin/acroread
acroread
[content]

bc

単純な計算をおこなう。
使用例は以下。

$ bc
bc 1.06
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'. 
1+2+3+4+5*6*7*8*/9/10-12-13/14-15
(standard_in) 5: parse error
1/2
0
1+2+3+4+
(standard_in) 9: parse error
1+2+3+4+5
15
1+2-3*4   
-9
1+2-3*4/5
1
4^4
256
2^4
16
quit
[content]

cal

カレンダを表示する。

$ cal -V
cal from cygutils version 1.2.8
$ cal
   September 2005
Su Mo Tu We Th Fr Sa 
             1  2  3
 4  5  6  7  8  9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30

$ cal -m3
     August 2005         September 2005         October 2005     
Mo Tu We Th Fr Sa Su  Mo Tu We Th Fr Sa Su  Mo Tu We Th Fr Sa Su 
 1  2  3  4  5  6  7            1  2  3  4                  1  2 
 8  9 10 11 12 13 14   5  6  7  8  9 10 11   3  4  5  6  7  8  9 
15 16 17 18 19 20 21  12 13 14 15 16 17 18  10 11 12 13 14 15 16 
22 23 24 25 26 27 28  19 20 21 22 23 24 25  17 18 19 20 21 22 23 
29 30 31              26 27 28 29 30        24 25 26 27 28 29 30 
                                            31                   
$ cal -y
                               2005                                

       January               February                 March        
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa 
                   1          1  2  3  4  5          1  2  3  4  5
 2  3  4  5  6  7  8    6  7  8  9 10 11 12    6  7  8  9 10 11 12
 9 10 11 12 13 14 15   13 14 15 16 17 18 19   13 14 15 16 17 18 19
16 17 18 19 20 21 22   20 21 22 23 24 25 26   20 21 22 23 24 25 26
23 24 25 26 27 28 29   27 28                  27 28 29 30 31
30 31
        April                   May                   June         
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa 
                1  2    1  2  3  4  5  6  7             1  2  3  4
 3  4  5  6  7  8  9    8  9 10 11 12 13 14    5  6  7  8  9 10 11
10 11 12 13 14 15 16   15 16 17 18 19 20 21   12 13 14 15 16 17 18
17 18 19 20 21 22 23   22 23 24 25 26 27 28   19 20 21 22 23 24 25
24 25 26 27 28 29 30   29 30 31               26 27 28 29 30

        July                  August                September      
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa 
                1  2       1  2  3  4  5  6                1  2  3
 3  4  5  6  7  8  9    7  8  9 10 11 12 13    4  5  6  7  8  9 10
10 11 12 13 14 15 16   14 15 16 17 18 19 20   11 12 13 14 15 16 17
17 18 19 20 21 22 23   21 22 23 24 25 26 27   18 19 20 21 22 23 24
24 25 26 27 28 29 30   28 29 30 31            25 26 27 28 29 30
31
       October               November               December       
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa 
                   1          1  2  3  4  5                1  2  3
 2  3  4  5  6  7  8    6  7  8  9 10 11 12    4  5  6  7  8  9 10
 9 10 11 12 13 14 15   13 14 15 16 17 18 19   11 12 13 14 15 16 17
16 17 18 19 20 21 22   20 21 22 23 24 25 26   18 19 20 21 22 23 24
23 24 25 26 27 28 29   27 28 29 30            25 26 27 28 29 30 31
30 31

[content]

cd

$ cd -
上記のようにするとひとつ前のdirectory に移る。

[content]

chgcase

大文字のファイル名を小文字に変換。

 $ chgcase -l SMALL-LETTER.FILE

小文字のファイル名を大文字に変換。

 $ chgcase -u BIG-LETTER.FILE
[content]

cut

$ cut -clist [ file ]
$ cut -f list [ -d delim ] [ file ]
入力されたデータの中から特定のフィールドあるいは特定の文字列を取り出す。
パイプラインをつかった処理によく使用される。

使用例

$ cat FILE_NAME | cut 2
上記のようにすると2番目の引数が表示される。ARGV[1]。便利。

[content]

convert

image magic の画像変換プログラム。
ほとんどの画像フォーマットに対応しているため、非常に使いやすい。
また、cygwin にも添付されている場合がある。

使用例

  • bitmap からjpeg への変換
    $ convert IMAGE.bmp IMAGE.jpg
  • 90 度の右回転
    $ convert -rotate 90 IMAGE.bmp IMAGE-rot.bmp
  • 135 度の左回転
    $ convert -rotate -135 IMAGE.bmp IMAGE-rot.bmp
  • 拡大・縮小
    $ convert -geometry 1920x1080 IMAGE.bmp IMAGE-large.bmp
  • 切り取り
    crop オプションを用いる。
    以下はカレントディレクトリのpng ファイルの(657, 100) 座標から512x400 の画像を切り取る例。
    $ for i in *.png; do convert -crop 512x400+657+100 $i ${i%.png}-crop.png ; done
    convert -crop WIDTHxHEIGHT+XOFFSET+YOFFSET INPUT_FILE OUTPUT_FILE
  • 拡大・縮小 割合指定
    $ convert -geometry "50%" IMAGE.bmp IMAGE-small.bmp
    非圧縮png
    $ convert -quality 100 -geometry "50%" IMAGE.bmp IMAGE-small.png
    フィルタなし拡大縮小
    $ convert -scale "50%" IMAGE.bmp IMAGE-small.png
  • 複数の画像からアニメーションmng を作成する
    例えば画像がIMAGE-0000.bmp からIMAGE-0256.bmp まであるとすると以下のコマンドでmng が作成可能。
    $ convert -delay 1 IMAGE-*.bmp IMAGE.mng

    delay はフレームレートの役割。

http://www-128.ibm.com/developerworks/library/l-graf/?ca=dnt-428 http://members.at.infoseek.co.jp/futora/perlmagick/ http://mechanics.civil.tohoku.ac.jp/soft/node43.html

[content]

date

date は日付を表示するプログラム。
使いやすい書式は以下。

$ date +%Y%m%d_%R
  • %Y: 年(4桁)
  • %y: 年(下2桁)
  • %m: 月(2桁)
  • %d: 日(2桁)
  • %H: 時間(2桁)
  • %M: 分(2桁)
  • %S: 秒(2桁)
[content]

diff

差分抽出

ファイルの比較

diff [-c] ファイル名1 ファイル名2

実行結果

n1 a n2  

ファイル1の n1行に、ファイル2の n2行を加えると同じになる。

オプション -cを指定した場合は、違いがある行に !が付いて、前後の行がそのまま表示される。

差分コマンドの表示

diff -e 旧ファイル 新ファイル

差分ファイルの作成

diff -d 旧ファイル 新ファイル > 差分ファイル

差分ファイルに表示コマンドを追加する

 cat >> 差分ファイル

差分ファイルの復元

ed 旧ファイル < 差分ファイル > 新ファイル

編集コマンドに差分ファイルを用いてedコマンドを実行し、編集結果を新ファイルに書き込む。

[content]

dirname

ディレクトリ名称を取り出す。

$ ls /usr/local/bin/acroread
/usr/local/bin/acroread@
$ dirname /usr/local/bin/acroread
/usr/local/bin
[content]

du

du は容量を計算するプログラム。
以下、どのディレクトリが一番大きいかを調べて 大きい順に報告するコマンド。

$ du -S | sort -n
[content]

expr

console で計算ができる。
shell script で使うと面白いかもしれない。

	$ expr "23" * "123"
	expr: syntax error

	$ expr "23" "*" "123"
	2829
	
トークンをクォーテーションでくくらないと駄目なところがちょっと 面倒だけど、おもしろい。

[content]

grep

grep は正規表現を使用可能な文字列抽出コマンド。

$ grep [options] SEARCH_WORD TARGET_FILES
オプションは以下のようなものがある。
-c
マッチした総行数の表示
-i
大文字小文字を区別しない
-n
行番号をつけて表示
-v
指定したパターンにマッチしない行だけを表示
-l
指定したパターンを含むファイル名だけを表示
-e pat-list
pat-list 引数からパターンを読み込む
-f pat-file
pat-file ファイルからパターンを読み込む なお、-e -f を用いて複数のパターンを一度に実行することができる。
組み合わせも可能。
たとえばパイプを使った実行で、
$ cat TARGET_FILE | grep -ic SEARCH_WORD
と実行すれば結果はTARGET_FILE 内のSEARCH_WORD (大文字小文字の区別なし) を含む行数をカウントして表示してくれる。
正規表現については正規表現 を参照。

egrep, fgrep

grep のオプション -E と -F のことらしい。
help ファイルを見てみると、
-E, --extended-regexp PATTERN is an extended regular expression
-F, --fixed-strings PATTERN is a set of newline-separated strings

-E, egrep を指定しないと正規表現はgrep でちゃんとうごかないみたいだ。 忘れないようにしよう。
-F, fgrep は改行で分けられた文字列を検索対象にする。
ちょっと普段との違いがわからない。

[content]

figlet

 $ figlet -f block gussan
	  _|_|_|  _|    _|    _|_|_|    _|_|_|    _|_|_|  _|_|_|    
	_|    _|  _|    _|  _|_|      _|_|      _|    _|  _|    _|  
	_|    _|  _|    _|      _|_|      _|_|  _|    _|  _|    _|  
	  _|_|_|    _|_|_|  _|_|_|    _|_|_|      _|_|_|  _|    _|  
	      _|                                                    
	  _|_|                                                      
	                 
 $ figlet -f mini gussan
	 _     _ _ _.._  
	(_||_|_>_>(_|| | 
	 _|              

 $ figlet -f slant gussan
	   ____ ___  ________________ _____ 
	  / __ `/ / / / ___/ ___/ __ `/ __ \
	 / /_/ / /_/ (__  |__  ) /_/ / / / /
	 \__, /\__,_/____/____/\__,_/_/ /_/ 
	/____/                              
                                  
 $ figlet gussan
	  __ _ _   _ ___ ___  __ _ _ __  
	 / _` | | | / __/ __|/ _` | '_ \ 
	| (_| | |_| \__ \__ \ (_| | | | |
	 \__, |\__,_|___/___/\__,_|_| |_|
	 |___/                           

アスキーで遊べて面白い。

 $ showfigfonts

でフォントが確認可能。

[content]

find

以下のようなコマンドを使うとよく使う書式を毎回打ち込まずに便利。

  • findc.sh
    		#! /bin/sh
    		# script for find file within current and child directry.
    		if [ $? != 1 ]
    			echo "usage: command search-file-name"
    			exit
    		fi
    		find . -name $1 -print
    		# end
    		
[content]

fortune

占い表示プログラム。

$ watch --interval=8 fortune
とかで遊べる。

[目次]

ftp

[content]

keychain

  1. keychain とは

    ssh の公開鍵認証を自動化するツール。

    たとえばエージェントを使って

    $ eval `ssh-agent`
    $ ssh-add ~/.ssh/id_rsa
    このようにしても認証は自動化できるが、ターミナルごとに 認証が必要になり、立ち上げごとにパスフレーズを入れるのが 面倒。
    keychain はターミナルごとに立ち上げる必要はない。
    セキュアなクライアントならすごく便利。
    cron でssh 鍵認証などがこれがあれば回せるはずなのだが、 現在失敗している。
    面倒でもパスワードフリーにせず、セキュアなクライアント環境で keychain を使うべきだ。はじめに面倒なだけで、あとは楽。

    エージェント転送を各サーバに設定しておけば非常に楽。
    信頼できるkeychain を入れるサーバは1つだけで後はエージェントの 転送を利用すればよい。

  2. 参考文献・参考ウェブページ

    Keychain (gentoo Linux) コンパイルすればfedora core 1 でもOK だった。

[目次]

history

$ !command

上記のようにするとcommand の前回やった動作と同じ動作を呼び出す。

[content]

indent

ソースコード整形。
http://www.linux.or.jp/JM/html/GNU_indent/man1/indent.1.html

[content]

rev

rev は行内の文字列を逆転する。

$ more test2
1234567890あいうえお

$ rev test2
ィえういあ・987654321

日本語は駄目だけど、英数文字はOK。

[content]

scp

secure copy

ssh は成功してもscp が成功するときがある。
これは.bashrc などの初期化ファイルでecho を使っていると起こる時がある。
http://www.openssh.com/ja/faq.html#2.9

[content]

ssh

cygwin ssh server setup

  1. cygwin のssh サーバセットアップ方法
    1. cygwin のセットアップ

    2. ssh サービスの設定

      $ ssh-host-config -y
      環境変数の設定:(CYGWIN= ) "ntsec"
      Host configuration finished. Have fun! の表示

    3. windows サービスの設定

      cygwin のコマンドなら

      $ cygrunsrv -S sshd
      もしくはdos のコマンドなら
      $ net start sshd

    4. 公開鍵認証の設定

      $ ssh-user-config
      SSH2 を作成。

  2. 参考文献・参考ウェブページ

[content]

sudo

ほかのユーザとしてコマンドを実行する。

	/etc/sudoers

に設定が必要。たとえば

	USERNAME	ALL=(ALL) ALL
[content]

smart

S.M.A.R.T.(スマート:Self-Monitoring, Analysis and Reporting Technology System)は、多くのハードディスクが持っている自己診断機能

全ての情報(繁雑)

 # smartctl -a /dev/hda

エラーログの収集

 # smartctl -l error /dev/hda

ログ

# smartctl -l error /dev/hdb
smartctl version 5.21 Copyright (C) 2002-3 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== START OF READ SMART DATA SECTION ===
SMART Error Log Version: 1
Warning: ATA error count 6782 inconsistent with error log pointer 5

ATA Error Count: 6782 (device log contains only the most recent five errors)
       CR = Command Register [HEX]
       FR = Features Register [HEX]
       SC = Sector Count Register [HEX]
       SN = Sector Number Register [HEX]
       CL = Cylinder Low Register [HEX]
       CH = Cylinder High Register [HEX]
       DH = Device/Head Register [HEX]
       DC = Device Command Register [HEX]
       ER = Error register [HEX]
       ST = Status register [HEX]
Timestamp = decimal seconds since the previous disk power-on.
Note: timestamp "wraps" after 2^32 msec = 49.710 days.

Error 6782 occurred at disk power-on lifetime: 17872 hours
 When the command that caused the error occurred, the device was in an unknown state.

 After command completion occurred, registers were:
 ER ST SC SN CL CH DH
 -- -- -- -- -- -- --
 40 51 08 67 00 8c f0

 Commands leading to the command that caused the error were:
 CR FR SC SN CL CH DH DC   Timestamp  Command/Feature_Name
 -- -- -- -- -- -- -- --   ---------  --------------------
 25 00 08 67 00 8c f0 08  283691.264  READ DMA EXT
 25 00 08 bf 09 8d f0 08  283691.248  READ DMA EXT
 25 00 08 2f 0b 41 f0 08  283691.248  READ DMA EXT
 25 00 08 f7 0a 25 f0 08  283691.248  READ DMA EXT
 25 00 08 1f 0b 41 f0 08  283691.232  READ DMA EXT

Error 6781 occurred at disk power-on lifetime: 17872 hours
 When the command that caused the error occurred, the device was in an unknown state.

 After command completion occurred, registers were:
 ER ST SC SN CL CH DH
 -- -- -- -- -- -- --
 40 51 06 57 00 f0 f0

 Commands leading to the command that caused the error were:
 CR FR SC SN CL CH DH DC   Timestamp  Command/Feature_Name
 -- -- -- -- -- -- -- --   ---------  --------------------
 25 00 08 57 00 f0 f0 08  283514.768  READ DMA EXT
 25 00 08 57 35 58 f0 08  283514.672  READ DMA EXT
 25 00 08 ef 1f 14 f0 08  283514.656  READ DMA EXT
 25 00 08 87 00 28 f0 08  283514.640  READ DMA EXT
 25 00 08 9f 52 50 f0 08  283514.624  READ DMA EXT

Error 6780 occurred at disk power-on lifetime: 17863 hours
 When the command that caused the error occurred, the device was in an unknown state.

 After command completion occurred, registers were:
 ER ST SC SN CL CH DH
 -- -- -- -- -- -- --
 40 51 06 57 00 f0 f0

 Commands leading to the command that caused the error were:
 CR FR SC SN CL CH DH DC   Timestamp  Command/Feature_Name
 -- -- -- -- -- -- -- --   ---------  --------------------
 25 00 08 57 00 f0 f0 08  245481.424  READ DMA EXT
 35 00 08 3f 00 00 f0 08  245481.296  WRITE DMA EXT
 25 00 08 6f 00 8c f0 08  245480.000  READ DMA EXT
 35 00 08 3f 00 00 f0 08  245479.888  WRITE DMA EXT
 35 00 08 df 35 00 f0 08  245479.888  WRITE DMA EXT

Error 6779 occurred at disk power-on lifetime: 17863 hours
 When the command that caused the error occurred, the device was in an unknown state.

 After command completion occurred, registers were:
 ER ST SC SN CL CH DH
 -- -- -- -- -- -- --
 40 51 08 6f 00 8c f0

 Commands leading to the command that caused the error were:
 CR FR SC SN CL CH DH DC   Timestamp  Command/Feature_Name
 -- -- -- -- -- -- -- --   ---------  --------------------
 25 00 08 6f 00 8c f0 08  245480.000  READ DMA EXT
 35 00 08 3f 00 00 f0 08  245479.888  WRITE DMA EXT
 35 00 08 df 35 00 f0 08  245479.888  WRITE DMA EXT
 25 00 08 57 00 f0 f0 08  245478.720  READ DMA EXT
 35 00 08 67 00 50 f0 08  245478.688  WRITE DMA EXT

Error 6778 occurred at disk power-on lifetime: 17863 hours
 When the command that caused the error occurred, the device was in an unknown state.

 After command completion occurred, registers were:
 ER ST SC SN CL CH DH
 -- -- -- -- -- -- --
 40 51 06 57 00 f0 f0

 Commands leading to the command that caused the error were:
 CR FR SC SN CL CH DH DC   Timestamp  Command/Feature_Name
 -- -- -- -- -- -- -- --   ---------  --------------------
 25 00 08 57 00 f0 f0 08  245478.720  READ DMA EXT
 35 00 08 67 00 50 f0 08  245478.688  WRITE DMA EXT
 35 00 08 67 00 84 f0 08  245478.688  WRITE DMA EXT
 35 00 10 5f 00 24 f0 08  245478.672  WRITE DMA EXT
 35 00 08 77 00 18 f0 08  245478.672  WRITE DMA EXT

参考

http://www.atmarkit.co.jp/flinux/rensai/linuxtips/521smartinfo.html
[content]

sort

sort [ options ] [ files ]

指定されたフィールドの型で行を並び替える。
よく使用するオプションは以下

  • -b 先頭空白を無視
  • -d 辞書順に並び替える
  • -f 小文字を大文字とみなす
  • -k 並び替えにキーとなるフィールドを指定する。
    たとえば-k2.4,5.6 と指定すると2番目のフィールドの4文字目から、5番目のフィールドの6文字目までがキーとして利用され、比較の対象となる。
  • -r 降順に並び替える。指定がなければ昇順。
  • -t char char(一文字) をフィールドの区切り文字として使用する。指定がなければ空白文字が適用される。
  • -u 重複を除く。
複数行に関する並び替えは、awk などでレコードをひとつの行にまとめてから処理を行い、出力段で再び複数行に分解することで処理するとよい。このときの連結文字として印字不可能なコントロールコードを用いるとよい。(例:^Z)
ソートの種類はシェルソート、ヒープソート、マージソート、クイックソート、バブルソート、クイックソート、挿入ソート、バケットソートなど多種あるが、UNIXのソートは使い込まれ、ある程度最適化されているので何を使うか悩む時間を使うのはもったいないかもしれない。

sort 使用例

$ cat FILE_NAME | sort

上記のようにすると出力がソートされる。便利。

[content]

strings

入力されたデータの中から4 文字以上かつ、 改行かNULL文字で終わる印刷可能文字を探し出して標準出力に書き出す。
バイナリファイルの内容を調べるときに便利。

[content]

time

時間を計測する。
使用例は以下。

$ /bin/time COMMAND

real 0:27.4	:経過時間
user   0.6	:ユーザCPU時間
sys   17.2	:システムCPU時間

[content]

tr

tr [options] source-char-list replace-char-list
文字列を置き換える。

[content]

uniq

$ cat FILE_NAME | uniq

uniqコマンドは上から行の内容を確認して、一つ前の行と同じ場合は 出力しないようにするコマンド。
"-c" オプションで、重複した行のカウントをするようになっている。

$ cat FILE_NAME | sort | uniq -c

でデータの集計ができる。

[content]

xargs

標準入力からコマンドラインを作成し、それを実行する。

使いこなせば便利に見えるが、 残念ながらそのよさがまだわかっていない。
余分な処理をしないようにしてくれるらしい。
http://www.linux.or.jp/JM/html/GNU_findutils/man1/xargs.1.html

具体例

ソースの中から文字列"WORD" を検索するには
% find . -name '*.c' -exec grep WORD {} \;
とすればよいが、これでは *.c のファイルの数だけ grep コマンドが実行され、 時間がかかる。
そういう場合は
% find . -name '*.c' -print | xargs grep WORD
または
% find . -name '*.c' -print0 | xargs -0 grep WORD /dev/null
こうすると余分な時間がかからずにすむ。

[content]

xxd

バイナリ表示
cygwin にはデフォルトでない。2006/09/05 時点にて。

[content]

memo

memo。

  • dd
    データを指定された大きさのブロック単位でして分だけ、コピーする。
  • file
    先頭の数バイトをよみ、形式を推測して表示。
  • od
    バイト列をASCII, 8 進, 16 進で表示する。
  • html-pretty
    入力を簡易的なhtml 形式に変形する。
    		$ echo hello, world. | html-pretty
    		
    cygwin には含まれていない。
  • pr
    conver text file for printing
  • join [ options ] file1 file2
    共通のキーに基づいてレコードを結合する。
  • fmt
    文字列を整形するコマンド。
    環境依存性が高いため、複雑な書式を指定するのには移植性の面で適さないが、簡易な整形にはよいかもしれない。
    • -s 長すぎる行を分割。短すぎる行は連結しない。
    • -w n 出力される行の長さをn 字に指定する。
    その他tgrind なども。
  • wc
    行数、単語数、文字数をカウントする。
[content]

参考文献・参考ウェブページ

[content]

履歴

  • 2006/09/05 新規作成・分岐版
[content]
ご意見、ご感想、誤字、間違い等、お気づきの点がありましたら KGussan@Gmail.com まで連絡ください。
このウェブページの注意・免責事項 Copyright (C) 2004-2012 KGussan. [トップページ]
[PR:元国税局勤務の起業家向け、遺産相続の相談なら植村洋税理士事務所:一時間無料税理士相談。お気軽に。]