[ ] [ ] [ ] [ トップページ ] [ 目次 ] [ Linuxの概要 ] [ 基本的な操作 ] [ 日本語の扱い ] [ テキスト編集 ] [ システム管理 ] [ シェルスクリプト ] [ インストール作業の基本 ] [ データベース ] [ 各種リファレンス ]  
[ ログインとパスワード ] [ X WindowとGUI ] [ コマンドの基本 ] [ オンラインマニュアルの使い方 ] [ コマンドパイプラインとリディレクション ] [ ディレクトリの扱い ] [ ファイルの扱い ] [ ファイルの属性 ] [ プロセスの基本 ] [ ジョブ制御 ] [ コマンドヒストリ ] [ エイリアス ] [ 環境設定 ] [ その他 ]

コマンドヒストリ

コマンドヒストリとは

コマンドラインを入力する際,過去に実行したコマンドラインを調べて,同じものがあればそれをそのまま使い,似通ったものがあればそれを修正することで,コマンドライン入力の手間を省くもの。

ヒストリの表示

history [<件数>]

過去のコマンドラインを件数分さかのぼって表示する。
ヒストリの内容を追加修正することもできる。
その詳細はこちらを参照。

実行例

[toshim@gw2000 ~]$ history 5
 1015  jobs
 1016  kill %2
 1017  cat > xxx &
 1018  man less &
 1019  jobs

コマンド実行

ヒストリ中のコマンドラインを利用する方法はいくつかある。

コマンドライン入力編集機能を使う

カーソルキーなどを使ってコマンドプロンプトの状態で入力した文字列を編集できる。
詳細はこちらを参照。

!(Event Designator)を使う

!n
ヒストリ中のn番のコマンドを実行する
!-n
n個前のコマンドを実行する
!!
直前のコマンドを実行する。!-1と同じ。
!string
stringで始まるコマンドで,最後に実行されたものを実行する。
!?string[?]
stringを含むコマンドで,最後に実行されたものを実行する。
^string1^string2^
直前のコマンドのstring1をstring2に置き換えて実行する。!!:s/string1/string2/と同じ。

fcコマンドを使う

fc [first] [last]

firstからlastまでのコマンドをエディタに読み込んで,編集して実行する。

実行例

[toshim@gw2000 ~]$ fc 1018
(エディタが起動して1018番のコマンドラインを読み込む)
man less &
(これを下のように修正する)
man cat &
(そしてエディタを終了する)
/tmp/bash925823885: 1 lines, 10 characters.
man cat & ← 修正した内容がコマンドとなり,それが実行される
[1] 12114
fc -s [pat=rep] [cmd]

cmdで指定したヒストリ行のpatをrepに置き換えて実行する

[toshim@gw2000 ~]$ fc -s less=cat 1018 ← 1018番の'less'を'cat'に置き換えて実行する
man cat &
[1] 12124
 

  
WB00806_.gif (471 バイト)
Copyright(C) 1997-1999 GlassCom
webmaster@glasscom.com