ページ更新: 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
  1. 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      ★一般ユーザの時はプロンプトが「$」になる
    $ 
  2. HISTSIZE : コマンドラインヒストリーのサイズ指定 (500 → 2000)
  3. HISTFILESIZE : コマンドラインヒストリーのサイズ指定(ファイル保存時)(500 → 2000)
  4. HISTCONTROL=ignoredups : 重複するヒストリーを格納しない
  5. bind ... :ctrl-p, ctrl-n をコマンドラインヒストリーの検索に用いる
  6. alias ... :よく使うエイリアスを定義
    1. pd, pp → pushd, popd。cd 代わりに多用するので2文字にする。
    2. ls, ll → ls のよく使うオプションを設定
    3. 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
      $
    4. 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} とかできればいいのに‥‥。