plamo7.3x->usages

ちょこメモ

...コマンドの使い方とか。ワスレタトキのために

時々使うコマンド

[参考] [参考]

tarで解凍

$ tar zxvf [name].tar.gz
$ tar jxvf [name].tar.bz2
$ tar Jxvf [name].tar.xz

unzipで解凍

ファイル名の文字コードが Shift JIS のとき(windowsで作成したzipファイルなど) $ unzip -O sjis archive.zip

patchをあてる [参照]

$ bzip2 -dc [name].patch.bz2 | patch -Np1

patchを作る

diffコマンドを使います。 [参考]

単一ファイルの差分ファイルを作るとき。 $ diff -u foo.txt.org foo.txt > foo.txt.diff

リダイレクト

[参考]

標準エラー出力をリダイレクトしたい command 2> log

標準出力とエラー出力を同じところへリダイレクト command &> log

標準出力とエラー出力をそれぞれリダイレクト command 1> stdout.log 2> stderr.log

ファイルを選んでパーミッションを変える

$ find . -type d -exec chmod 700 {} \; 再帰的にディレクトリを選んでパーミッションを700に。

重複するファイルを探す

fdupesを使ってみます。 $ fdupes -r ./
[ fdupes (下位のディレクトリ内まで探す) (探索対象のディレクトリ) ]
再帰的にディレクトリを選んでパーミッションを700に。

X-windowのスクリーンショット

xwdコマンドを使います。 $ xwd | convert xwd:- filename.jpg コマンドを実行してから、マウスでスクリーンショットを撮るウィンドウをクリックします。

.Xdefaultsを更新したとき

.Xdefaults を更新した時は、xrdbコマンドで Xサーバに更新した内容を登録します。

$ xrdb ~/.Xdefaults

文字コードの変換

EUC-jpからwindowsへ

$ nkf -sc text.euc > text.dos [文字コード:日本語EUC, 改行コード:LF]→[文字コード:シフトJIS, 改行コード:CR+LF]

windowsからEUC-jpへ

$ nkf -ed text.dos > text.euc [文字コード:シフトJIS, 改行コード:CR+LF]→[文字コード:日本語EUC, 改行コード:LF]

UTF-8へ(ファイル上書き)

$ nkf -w --in-place text.txt

日本語ファイル名の文字コードを変換する

convmv を使ってみます。 $ convmv -r -f euc-jp -t utf-8 * '--- まずはテストモードで
$ convmv -r -f euc-jp -t utf-8 * --notest '--- 問題なければ変換実行
※ -r : 下位のディレクトリ内も探す

mount/umount

CD-ROM

マウントポイントとなるディレクトリ /cdrom にマウントします./etc/fstabに設定ずみなので、簡単です.

# mount /cdrom

設定されてない場合

# mount -t iso9660 -o ro /cdrom /dev/cdrom

マウントポイントとなるディレクトリはあらかじめ作っておく必要があります。

MTPデバイスとのファイル操作

USBで繋いだAndroid機とファイルのやり取りをします。jmtpfsでマウントします。 [設定]

マウントポイント(ここでは ~/mtp)はあらかじめ作っておきます。

マウント

$ jmtpfs ~/mtp

アンマウント

$ fusermount -u ~/mtp

mkisofs

$ mkisofs -J -r -U -D -o data.iso ~/data

※iso9660に一部違反したisoイメージになります。UNIXファイル名とか。。
ディスク名とか作成者名は、-V "volume" -P "name"

exiftool

とにかくexifデータを表示させてみる

$ exiftool (filename)

抽出項目を指定する

$ exiftool -(項目名) (filename) しかし、項目名がわからない場合があります。

抽出するための項目名

$ exiftool -csv (file) csvで書き出してみると、1行目が抽出する項目名です。

emacs

バッファ

閉じるC-x k
切り替えC-x b一覧表示C-x C-b

コマンドの取り消し

途中で取りやめC-g再表示C-l
アンドゥC-_

特殊な入力

タブ文字(強制的に)M-i もしくは C-q "Tab"
削除(delete)C-d

文字カーソル

文頭へM-a
上画面M-v
行頭へ1単語戻る1文字戻る 前行へC-p 1文字進む1単語進む行末へ
C-aM-bC-b C-fM-fC-e
次行へC-n
下画面C-v
文末へM-e
カーソル行を画面中央にC-l

別の文書

前の文書C-x b
リスト表示C-x C-b

カット&ペースト

選択開始(マークをつける)C-spaceカーソルから行末までカットC-k
カットC-wコピーM-w
ペーストC-y
左の文字を削除[BS]C-h文字削除[Del]C-d

検索

前向きにc-s後ろ向きにc-r
対話的置換M-%連続置換M-x [replace]

ファイル

開くC-x C-f閉じるC-x k
上書き保存C-x C-s別ファイルで保存C-x C-w
文字コードを変えて開き直すC-x RET r [文字コード]

補完入力

とりあえずは静的展開で。 セットアップはこちら

登録

リージョン選択をして、C-u 0 C-x a + です。

リージョン選択しないときには C-x a + で、カーソル直前から適当に切り出してくれます(日本語の場合はあまり当てにならないようです)。

展開するモードの範囲でコマンドが少し変わります。

呼び出し

登録した名前を入力し、その直後にカーソルがある状態で、M-/ です。

編集

M-x edit-abbrevsで編集モードに入ります。 編集結果を有効にするには、C-c C-c。

なお、登録名に記号は使えないみたいです。

vi

行の連結

コマンド "J"

ファイル

別のファイルを挿入:r [filename] 開いているファイルの一覧:args
次のファイルに移動:n 前のファイルに移動:p
[参考]

sed

フィルタ形式のテキストエディタです。ファイルリストを加工するときなど、

一括置換 "s"コマンド

とりあえず、正規表現と一括置換コマンドだけでもいろいろできます。

# sed "s/元パターン/新パターン/" 入力ファイル
# sed "/行限定条件(正規表現)/s/元/新/" 入力ファイル
# sed "行限定条件 s/元/新/" 入力ファイル
行限定条件のあたりは、ちょっと違うかも。

元パターンでマッチした文字列を新文字列に引用することができます。"\1"〜"\9"を使います(のはず)。

元のファイルを書き換える

オプション -i もしくは --in-placeを使います。文字列を指定すると元のファイル名に付加してバックアップを作成します

$sed -i[.ext] command... $sed --in-place[=.ext] command...

まとめてファイル名を変更(1)

rename コマンドを使います。 [参考]

$ rename -nv 旧文字列 新文字列 files 'renameでどのような変更がされるか確認してみる
$ rename -o 旧文字列 新文字列 files 'renameを実行する(上書きはしない)

まとめてファイル名を変更(2)

find + sed + xargs を使います。 [参考]

findで絞り込み

$ find . -maxdepth 1 -type f -name 'files*'

・-maxdepth 1 : カレントディレクトリのみで探す(2以上で掘り下げていく)

ls -1 という方法もあります。

$ ls -1 files*

sedでファイル名を作る

pコマンドで、処理前・(改行)・処理後 が出力されます。

$ find . -maxdepth 1 -type f -name 'files*' | sed 'p;s/file/data/'

正規表現を使うときは、オプション -r を使う。 後方参照は $1, $2, ... ではなく、\1, \2 ...のようにバックスラッシュを使う。

$ find . -maxdepth 1 -type f -name 'files*' | sed -r 'p;s/(file)-([0-9]*)/data-\2/'

xargs -n2 mv でリネームを実行する

$ find . -maxdepth 1 -type f -name 'files*' | sed 'p;s/file/data/' | xargs -n2 mv

まとめてシンボリックリンクを作成

cp コマンドのオプションを使います。 $ cp -s dir1/*.ogg . 既に作成済みの場合は上書きされません(元のリンクが残ります)。




tsushiro.s, 2003-2022.