パソコン全般

意外と知られていないLinuxコマンド・シェルテクニック

Linuxコマンドやシェルについて深く知らなくても大抵の作業は問題なく行う事ができます。

しかし可能であればスマートに行いたいですよね。知っているか知らないかどうかで作業効率を上げたり作業ミスを防ぐ事ができますから。

そこで、あまりアクロバティックな例は取り上げず仕事でコマンドを打つときや手順書を作成するときに使えるかな?と思った実用性のあるテクニックをご紹介します。

このページは随時更新します。便利なコマンドやテクニックをご存じの方は教えてください。

コマンド結果をファイルのように扱う

例としてAとBのファイルをsortしてから比較したいとしましょう。そんなときは次のようなコマンドを実行する方が多いと思います。

これでも良いのですが冗長です。このコマンドは次のように置き換える事ができます。

たったの1行で済みます。「<(コマンド)」とするとコマンドの実行結果をファイルのように扱う事ができて便利です。

リモートホストにスクリプトを送信して実行させる

リモートホストにログインせずコマンドを実行する場合は次のようにするかと思います。

単純なコマンドであればこれで良いのですが、長いコマンドやスクリプトでは厳しいでしょう。その場合はスクリプトを送信してしまいましょう。次のようにします。

複数のコマンド結果を一度にリダイレクトする

たとえば次のようなコマンドの結果をひとつのファイルに書き出したいとします。

  • date
  • ps -elf
  • w
  • last

この場合次のようにする事が多いでしょう。

これでも良いのですが、もうちょっとスッキリさせたいところです。このような場合はコマンドのグループ化が使えます。

あるいは次のようにしてもOKです。

{}を使うとコマンドの実行結果をまとめてリダイレクトしてくれるのでスッキリします。

変数の部分切り出しを行う

例として次のような文字列があるとしましょう。

  • xxxlb01
  • xxxfw01
  • xxxsv01

4文字目と5文字目でlb(Load Blancer)やfw(FireWall)、sv(Server)のように種類を表していて、その文字列を取り出したいとします。

そのような場合は次のようにします。

${j:3:2}の箇所がミソです。これは変数「j」の4番目(0から数えるため3になっている)を2文字切り出す、という事をしています。

上記のコマンドを実行すると次のようになります。

拡張子を一発で変更する

hoge.txtをhoge.logに変えたい場合、一般的には次のようにします。

これで良いのですが、できればもっと短くスマートにしたいところです。たとえば次のようにできます。

バックアップコピーを取るときに便利なコマンド

サーバーで設定変更を行う際は元のファイルのコピーを保存する事が多いはずです。大抵はファイル名に続いて日付を付ける事が多いようです。

たとえば次のようなコマンドです。

このようなコマンドは次のように短縮化できます。

 

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)