ページ更新: 2004-07-15 (木) (6894日前)
割と忘れがちな操作のメモ。
目次
[編集]情報源 #
(作成中)
[編集]メモ #
[編集].bashrcの設定 #
いつも使う設定。
DebianやUbuntuの場合、以下の内容を、~/.bashrc か ~/.bash_profile 、あるいは /etc/profile か /etc/bash.bashrc に挿入して使う:
export PS1='\n[$?:\u@\h \D{%FT%T%z}] \w\n\$ '
HISTSIZE=2000
HISTFILESIZE=2000
HISTCONTROL=ignoredups
if [[ -t 1 ]]; then
bind '"\C-n": history-search-forward'
bind '"\C-p": history-search-backward'
fi
alias pd='pushd'
alias pp='popd'
alias ls='ls -F'
alias ll='ls -AlhF'
alias df='df -h'
alias du='du -h'
alias pathlist='echo $PATH | tr : "\n"'
export EDITOR=emacs
- export PS1=... :プロンプトを変更; 改行(\n)、終了コード($?)、ユーザー名(\u)、ホスト名(\h) ISO8601形式の日時とタイムゾーン(\D{%FT%T%z}, Manpage of STRFTIME)、カレント・ワーキング・ディレクトリ(\w)、改行(\n)、プロンプト記号(\$)
表示例:
[0:www-data@etch 2009-11-12T21:51:23+0900] /var/trac
$ true
★プロンプトの先頭で改行されるので、読みやすい
[0:www-data@etch 2009-11-12T21:51:24+0900] /var/trac ★「true」の終了コード「0」が表示される
$ false
[1:www-data@etch 2009-11-12T21:51:26+0900] /var/trac ★「false」の終了コード「1」が表示される
$ su
パスワード:
[0:root@etch 2009-11-12T21:52:02+0900] /var/trac
# exit ★rootの時はプロンプトが「#」になる
[0:www-data@etch 2009-11-12T21:52:02+0900] /var/trac ★一般ユーザの時はプロンプトが「$」になる
$
- HISTSIZE : コマンドラインヒストリーのサイズ指定 (500 → 2000)
- HISTFILESIZE : コマンドラインヒストリーのサイズ指定(ファイル保存時)(500 → 2000)
- HISTCONTROL=ignoredups : 重複するヒストリーを格納しない
- bind ... :ctrl-p, ctrl-n をコマンドラインヒストリーの検索に用いる
- alias ... :よく使うエイリアスを定義
- pd, pp → pushd, popd。cd 代わりに多用するので2文字にする。
- ls, ll → ls のよく使うオプションを設定
- pathlist →$PATHの内容を、1ディレクトリごとに1行を使って表示する
[0:www-data@etch 2009-11-12T21:47:00+0900] /var/www
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/games
[0:www-data@etch 2009-11-12T21:47:05+0900] /var/www
$ pathlist
/usr/local/bin
/usr/bin
/bin
/usr/games
[0:www-data@etch 2009-11-12T21:47:07+0900] /var/www
$
- export EDITOR=... → visudo や Subversion や Mercurialのコミットログの編集にemacsを使う
[編集]ファイルを0バイトにする、0バイトのファイルを作る #
いろんな方法がある。
$ > file
$ touch file
$ cp /dev/null file
$ cat /dev/null > file
[編集]forでzipファイルをzipファイル名と同じディレクトリに展開する #
コマンドを表示してみる。
$ for i in *.zip; do echo unzip $i -d ${i/.zip/}; done
コマンドをshで実行する。
$ for ...(略)... done | sh
(注:もし、forに与えるコマンド列に任意のものを使うときは、ちゃんとサニタイズすること)
${hoge/a/b} は、$hogeのaをbに置き換える。
[編集]findコマンド #
空ディレクトリを消す(不完全版)
find . -type d -empty -exec rmdir {} \;
[編集]標準出力と標準エラー出力を同じファイルにリダイレクトする #
man bash より。
$ command &>file
[編集]複数のファイルの拡張子を変更 #
\*.cをすべて*.cppにする。
$ for f in *.c; do mv $f ${f/%.c/.cpp}; done
Makefileみたいに${f:.c=.o} とかできればいいのに‥‥。