私は通常、コマンドls
をless
とパイプし、ページング中にコマンドを実行したいと考えています。削除したいファイルに出くわしたので、ページングしながらコマンドrm {filename}
を実行したいと思います。また、manページを閲覧しながら同じ方法を使用できることを願っています。そうでなければ、それはどのように違うのですか?
Less内でbang(!
)を使用してコマンドラインにアクセスできます。
したがって、たとえば、次のように入力します。
touch temp.txt
ls | less
!rm temp.txt
そして、temp.txtはなくなるはずです。
編集:デフォルトでは、manはページへの使用量を減らしているようです(何らかの理由で、more
を使用していると思っていましたが、過去に使用した可能性があります)。同じトリックを使用できますが、それを機能させるにはフルパス(例:/ home/user/...)が必要です。
これは、manを呼び出すと、現在の作業ディレクトリが変更されるためです。私のマシン(xubuntu、xfce-terminal
を使用)では、/usr/share/man
に移動します。コンソールにCWDが表示されている場合は、変更を確認するか、次のように入力してman
内から確認できます。
!pwd
これを行う一般的な方法は、現在のジョブを一時停止し、コマンドを実行して、古いジョブを再開することです。
ls | less
(テキストを読み、ファイル名に注意してください)Control-z
現在アクティブなコマンドを一時停止します
次のような行が表示されます:[1]+ Stopped ls | less
([1]はジョブ番号です。)
rm testfile
fg
またはfg %1
(1はジョブ番号です)
複数のプロセスを同時に一時停止できます。例えば。ls | less
Control-z
(output: [1]+ Stopped ls | less
)man rm
Control-z
(output: [2]+ Stopped man rm
)rm -i testfile*
fg %1
ジョブ1を再開する(manページをバックグラウンドで開いたままにする)、またはfg %2
ジョブ2を再開する(man rm)
複数の中断されたプロセスがある場合は、jobs
でそれらをリストできます。