最終更新日: Thu Apr 24 00:47:03 2003

Unix Comand メモ(主に voayger and cosmo)

このコマンドメモは、基本的に私が使う為に作ったものなので、 もっと詳しく知るにはマニュアル(manコマンド利用するなど)を参照して下さい。 もともとはvoyagerで使えるように作成してましたが、 最近はcosmo用に作成しています。

関係リンク

UNIXの部屋

目次


他のファイルにあるコマンドメモ


コマンドメモ


基本的なもの

cd ホームディレクトリに移動
cd zzz あるディレクトリ(例:zzz)に移動
cd .. 一つ上のディレクトリに移動
ls ディレクトリ中のファイル一覧を表示
ls -l ディレクトリ中の詳細なファイル一覧を表示
ls -la ディレクトリ中の詳細なファイル一覧(隠しファイル含む)を表示
pwd 現在いるディレクトリの確認
cat zzz ファイル(例:zzz)の内容確認(止まらない)
less zzz ファイル(例:zzz)の内容確認(止まる)
スペースキーで次に、qで終了
cp A B ファイルAをファイルBにコピー
cp -r A B ディレクトリAをディレクトリBにコピー
mv old new ファイル名をoldからnewに変更(例:old と new)
mv zzz .. ファイル(例:zzz)を一つ上のディレクトリに移動
mv ファイル名 ディレクトリ名 ファイルをディレクトリに移動
rm ファイル名 ファイルの削除
rm -rf ディレクトリ名 ディレクトリの中身ごと削除
rmdir ディレクトリ ディレクトリの削除
mkdir ディレクトリ名 ディレクトリの作成
man コマンド コマンドの利用説明

SSHの使い方

・鍵を作る
  nile% ssh-keygen
  -------- リターン
  パスフレーズを2回打つ
  
・ログインしたいマシンに公開鍵を置く(identity.pub)
  dream% mkdir .ssh
  dream% scp nile:/.ssh/identity.pub .ssh
  drem% mv identity.pub authorized_keys

・エージェントの起動
  nile% ssh-agent
  
  nile% ssh-agent
   setenv SSH_AUTH_SOCK /tmp/ssh-yuka/ssh-20274-agent ;
   setenv SSH_AGENT_PID 20275 ;
   echo Agent pid 20275 ;
  nile% setenv SSH_AUTH_SOCK /tmp/ssh-yuka/ssh-20274-agent ;
  nile% setenv SSH_AGENT_PID 20275 ;
  nile% echo Agent pid 20275 ;

・秘密鍵の登録
  nile%  ssh-add
  パスフレーズを打つ

・次回のログインにも反映するように.cshrcに書く

  .cshrcに以下の2行を新しいのに修正
   setenv SSH_AUTH_SOCK /tmp/ssh-yuka/ssh-20274-agent
   setenv SSH_AGENT_PID 20275

   一度ログアウトして、
   % ssh dream
   これでパスワードを聞かれなければOK

---------------------------------------------------------------
SSHエージェントの再起動方法:
・まず、前の環境変数を消しておく
  % unsetenv SSH_AUTH_SOCK ; unsetenv SSH_AGENT_PID ;

・あたらしいエージェントの起動

  % ssh-agent
   setenv SSH_AUTH_SOCK /tmp/ssh-yuka/ssh-20274-agent ;
   setenv SSH_AGENT_PID 20275 ;
   echo Agent pid 20275 ;
  % setenv SSH_AUTH_SOCK /tmp/ssh-yuka/ssh-20274-agent ;
  % setenv SSH_AGENT_PID 20275 ;
  % echo Agent pid 20275 ;

・秘密鍵の登録
  %  ssh-add
  パスフレーズを打つ

・できているかどうか確かめ
  % ssh dream
  これでパスワードを聞かれなければOK
   
・次回のログインにも反映するように.cshrcに書く

  .cshrcに以下の2行を新しいのに修正
   setenv SSH_AUTH_SOCK /tmp/ssh-yuka/ssh-20274-agent
   setenv SSH_AGENT_PID 20275

   一度ログアウトして、
   % ssh dream
   これでパスワードを聞かれなければOK

・cronを動かしているのなら、それも修正

   (数字2個所)
  % crontab -e
  
    0 5 * * *
    env SSH_AUTH_SOCK=/tmp/ssh-yuka/ssh-20274-agent
                                        ^^^^^
    env SSH_AGENT_PID=20275 /usr/local/bin/rsync -e /usr/local/bin/ssh
                     ^^^^^^
    ........

manを印刷する

% groff -man /opt/ImageMagick/man/man1/convert.1 > convert_man.ps

プリントアウト関係

つながっているプリンターの表示

% lpstat -a
% lpc
lpc > status

PSファイルを複数分割する

枠線をつけて4分割
% cat bababa.ps |psnup -d -4 | lp

1.5cmマージンをつけて4分割
% cat bababa.ps |psnup -m1.5cm -4 | lp

a2ps + lp の使い方

nileでのプリントアウトメモです。

print image a2ps -p ファイル名 | lp
print image a2ps ファイル名 | lp -y flip
a2ps -p ファイル名 | psnup -2| lp -y flip
print image a2ps ファイル名 |psnup -2 | lp
a2ps -p ファイル名 |psnup -4 | lp
print image a2ps -w ファイル名 | lp -y flip
print image a2ps -w ファイル名 |psnup -2 | lp

シンボリックリンクを張る (B -> Aに)

% ln -s A B

xmllintを使ってxmlの検証

% xmllint --noout --valid zzz.xml |& lv -Iu8 | cat

bsh風に(Makefileなどで使う)
% xmllint --noout --valid zzz.xml 2>&1 | lv -Iu8 | cat

文字コードを変える

EUC にする場合。
% qkc -e bababa.txt
もしくは
% nkf -e bababa.txt > bababa.txt.e
% mv bababa.txt.e bababa.txt

UNIX(EUC,LF)→ Windows(Shift JIS, CR/LF)
% nkf -sc oldfile > newfile

Windows(Shift JIS, CR/LF) → UNIX(EUC,LF)
% nkf -ed oldfile > newfile

find でファイルを検索する。

.gif という拡張子がついたファイルを探す。
% find . -name '*.gif' -print
シンボリックリンクを探す。
% find . -type l -print
ファイルを探す
% find . -type f -print
拡張子html のファイルで voayger という文字列が含まれるのを検索
% find . -name '*.html' | xargs grep -l voyager
実行ファイルの検索
% find . -perm -111 -print
所有者yukaじゃないファイルを検索
% find . ! -user yuka -print
日付チェック(.cshrc よりも新しい)
find . -newer .cshrc -print

コマンドで出てきた結果を引数にとる

あるディレクトリ以下の ~がついているファイルをls -l する。
find . -name \*~ | xargs ls -l
find . -name \*~ -exec ls -l {} \;
ls -l `find . -name \*~`

ファイルの中の文字列サーチ

www.ulis.ac.jpが含まれているHTMLファイル名とその行を表示
% grep 'www.ulis.ac.jp' *.html
www.ulis.ac.jpが含まれているHTMLファイル名を表示
% grep -l 'www.ulis.ac.jp' *.html
bababa.htmlのwww.ulis.ac.jpが含まれていない行を表示
% grep -v 'www.ulis.ac.jp' bababa.html

ソート済の二つのファイルを比較

ソート済の二つのファイルを比較
% comm file1.txt file2.txt
                bababa  ………  共通に含まれる行
rarara  ……………………………  file1.txtだけに含まれる行
        tatata  …………………  file2.txtだけに含まれる行
                zzzz  …………  共通に含まれる行

     
共通に含まれる行だけ出力
% comm -12 file1.txt file2.txt
file1.txt だけにある行を出力
% comm -23 file1.txt file2.txt
file2.txt だけにある行を出力
% comm -13 file1.txt file2.txt

ファイルの先頭部分の出力

file.txt の先頭10行を出力
% head file.txt

file.txt の先頭100行を出力
% head -100 file.txt

ファイルの末尾部分の出力

file.txt の末尾10行を出力
% tail file.txt

file.txt の末尾100行を出力
% tail -100 file.txt

file.txt の2行目以降のを出力
% tail +2 file.txt

タブを空白に変換

% expand bababa.tex > zzz.tex

空白をタブに変換

% unexpand bababa.tex > zzz.tex

ファイルの先頭に >と 空白 を付ける

% sed 's/^/> /' bababa.tex

ファイルを解凍する。

% gzip -cd ???.tar.gz | tar xvf -
% gzip -d ???.gz
% uncompress ???.Z
% unzip ???.zip
% tar xvf ???.tar
(解凍の確かめ % tar tf ???.tar | more)
% lha -x ???.lha

あるディレクトリ以下を1つのファイルにする (tar lha)

圧縮なし % tar cf /tmp/bababa.tar ディレクトリ
         % tar cf - ディレクトリ | rsh dream dd of=作るファイル名.tar
圧縮あり % tar cf - ディレクトリ | gzip -c > /tmp/bababa.tar.gz
         % lha a ファイル名.lzh ディレクトリ

ファイルを行番号つきで出力する。

% nl -ba ファイル名 > 行番号つきファイル
もしくは
% cat -n ファイル名 > 行番号つきファイル

指定した文字数で改行する。

40字で改行する。
% nkf -e -f40 bababa.txt > 改行付ファイル

fold を 使うこともできる。ただしcosmoでは日本語が入っているとうまくできない。
% fold ファイル名 > 改行付ファイル
20字で改行
% fold -w20 ファイル名

一括置換する。

% sed "s/検索文字列/置換文字列/g" ファイル名
% cat ファイル名 | sed -e "s/検索文字列/置換文字列/g"

(番外編)
カレントディレクトリ以下のHTMLファイルの一括置換(元のファイルは *.bakに)
% find . -type f -name '*.html' | xargs perl -i.bak -pe \
 's#old#new#gi'

% find . -type f -name '*.html' | xargs perl -i.bak -pe \
 's#<meta http-equiv="Content-Type" content="text/html; charset=ISO-2022-JP">#<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">#gi'

行頭の行番号を消す。
perl -i.bak -pe 's#^\s+\d+\t##' rei1.c
sed 's/^    .[0-9]      //' rei1.c

一行の特定の部分を抜き出したファイルを作成する

例: ”:”を区切りにして、1 番目と5番目のデータだけを抜き出す。
抜き出したレコードはタブで区切って出力
% awk -F':' '{print $1 "\t" $5;}' ファイル名

ファイルの改行を全てとる

trという文字変換用フィルタを使います。
% tr -d '\n' bababa.txt > zzz.txt

ファイル中の文字数を数える

日本語文字を1文字として数える。(ただし改行も1文字として数える)
% wc -m bababa.txt

改行を除いて文字数を数える
% tr -d '\n' bababa.txt | wc -m 

ファイルの行数を数える

% wc -l bababa.txt
wc は他にも単語数を数えたりできます。

ソートする。

% sort ファイル名 > ソート済みファイル名
ソートして重複を消す。 % sort ファイル名 | uniq

html ファイルを 取得する


html ファイルを txt ファイルにする。

lynx -dump ????.html |nkf -e > ????.txt

画像を回転させる

右回転
% convert -rotate 90 bababa.xwd bababa90.xwd

左回転
% convert -rotate -90 bababa.xwd bababa90.xwd

xwd から ps に 変換

% convert bababa.xwd bababa.ps
% psresize -Pletter -pa4 bababa.ps zzz.ps

画像の拡大・縮小

file.gif 75%縮小したファイル file75.gif を作成。
% convert -geometry 75%x75% file file75

画像の一括変換

% mogrify -format gif *.bmp

PSファイルを1ページづつGIF画像にする。

% gs -q -dNOPAUSE -sDEVICE=ppmraw -dTextAlphaBits=4 -dGraphicsAlphaBits=4 \
  -sOutputFile=image-%d.ppm genkou.ps  < /dev/null
% foreach i ( image-*.pbm ) 
? echo $i
? ppmtogif < $i > $i:r.gif
? end

環境変数の中身を見る。

% echo $環境変数

UNIXのファイルをCD-Rに入れる時の手順。

  1. % cd ; cd .. ; cp -rf yuka /ap/pool/yuka/dream
  2. % cd /ap/pool/yuka/dream
  3. % find . -type l -exec rm -f {} \; (シンボリックリンクをけす)
  4. % cd
  5. % lha a /ap/pool/yuka/dream.lzh dream (lha で圧縮)
  6. raijin に dream.lzhをftp
  7. dream.lzhを解凍
  8. CD-Rに焼く
注意 あまりにもファイルが多い場合は解凍できないことがあるので 分割した方が安全。 シンボリックリンクがあるとPCで解凍できないので シンボリックリンクをなくす。

Mail を読む環境を移行する時。

  1. .foward をやめる
  2. cosmo に tar で yuka/Mail を持ってくる
  3. tarで cosmoに解凍
  4. 読めるのを確認
  5. .fowardのテスト
  6. 作業中に来たメールがあれば手でFTP


root 用


NIS のユーザを確認

% ypcat passwd

ディレクトリを容量順に表示

( du -s /usr/users/yamalab/* ; du -s /usr/users/others/* ) | sort -nr

オーナーを変える

% chown yuka yuka

グループを変える(あるファイルの)

% chgrp filename grpname

今のクーロンを確かめる

% crontab -l 

クーロンを設定する

% crontab -e 

ブラウザ:キャッシュを無視して再読み込み

IE:Ctrl + F5
NN and Mozilla:Ctrl + Shift + r

作成者:江草由佳
URL:http://momiji.mimoza.jp/
Email to:yuka@nier.go.jp