sedコマンドで覚えておきたい使い方12個(+3個)

LinuxやUNIXを使う上で、ある程度使えると非常に便利な置換コマンドが、このsedコマンドだ。
今回は、このsedコマンドで覚えておきたい使い方について紹介する。

なお、今回の置換・編集の例として、以下のファイルを用いて説明する。

[root@test-centos7 work]# cat /root/sed_test.conf
# line 1
line1=enable
# line 2
line2=disable

# line 3
line3=enable
# line 4
line4=enable

1.基本的な使い方

sedコマンドの基本的な使い方としては、以下の...


Windowsのコマンドプロンプトで日付ディレクトリを作成する

バックアップや既存のサーバへの設定変更時のファイル保管など、日付名のディレクトリというのは良く利用されると思う。
今回は、そんな日付ディレクトリをコマンドプロンプト上で一行で生成する。

コマンドプロンプトから日付ディレクトリをワンライナーで生成する場合は、以下のようにコマンドを実行すると良いだろう。

for /f "tokens=1-3 delims=/" %a in ("%date%") do mkdir "%a%b%c"

※以下でも作成可能でした。
正直、上のクソ面倒くさいやり方よりも、こっちでやってもらった方が…


cpコマンドでディレクトリ構造を含めてコピーする

オプション無しだと、cpコマンドではディレクトリ構造ごと(サブディレクトリを含めた状態で)コピーすることはできない。
もしディレクトリ構造とセットでコピーしたい場合は、「--parents」オプションを利用すると良いだろう。

cp --parents コピー元ファイル コピー先PATH

[root@test-centos7 ~]# cp /work/aaaaa.txt /bkup
[root@test-cento...

awkとxargs、evalを用いてcsv形式のファイルからchmod/chownを実行する

CSV形式で書かれているファイルにファイルPATH、オーナー、グループ、権限を書いておき、それを読みだしてワンライナーでchmod、chownを実行する方法を探していたが、とりあえず以下のようにすれば実現できることがわかった。

なお、ファイルの中身は以下のように書かれているとする。

[root@test-centos7 ~]# cat /root/test.lst
755,test,test,/work/aaaaa.txt
777,test,test,/work/aaaaa.txt.bk
666,test,test,/work/aaaaa2.txt
555,test,test,/wor...

xargsコマンドで覚えておきたい使い方・組み合わせ7個(+1個)

LinuxやUNIXで、コマンドちょっと組み合わせて利用する際、非常に役に立つxargsコマンド。
今回は、このxargsコマンドで覚えておきたい使い方・組み合わせについて紹介する。

1.基本的な使い方

まず、そもそもこのコマンドはどういう使い方をするのか。
基本的には、以下のようにパイプでつなぐことで前のコマンド(コマンド1)で取得した値(標準出力)を利用してxargsで指定した別のコマンド(コマンド2)に引数として渡して実行させる事ができるコマンドだ。

コマンド1 | xargs コマンド2

[root@test-centos7 ~]# find /work -ty...

nohupでバックグラウンドジョブ化したコマンドの終了時間を標準出力でファイルに書き出す

コマンドの実行時間を計測する際によく使用されるtimeコマンドだが、これはbashの組み込みコマンドのため、外部ファイルへの書き出しができない。

こうなると、nohupなどでコマンドの実行時間をログに記録させて放置したくても、ファイルに書き出せないため放置することが難しくなる。
そんな時は、bashの組み込みコマンドとしてのtimeではなく、GNU timeを利用するといいだろう。

GNU timeは、それぞれのディストリビューションのパッケージ管理ソフトからインストールする。

Debian/Ubuntuの場合

apt-get install time

RHEL系の場

...
pacoからporgへアップグレードし、管理データの引き継ぎを行う

以前、ソースからインストールしたパッケージの管理ツール『porg』を紹介したが、今回はこれの前身である『paco』から『porg』へのパッケージの管理情報の移行手順について記述していく。

まず、すでに環境内にはpacoがインストール済で、管理しているパッケージがある状態とする。

まずは、事前にporgをインストールする必要がある。
インストール手順についてはこちらを参照してもらいたい。

porgのインストール完了後、以下のコマンドを実行することでpacoのパッケージ情報をporgに移行させる。

paco2porg

[root@test-centos7 porg...

Linuxで容量ギリギリでディスクを使用していると、時折以下のようにディスクの空き容量がまだあるはずなのに0として扱われてしまう事がある。

[root@recserver ~]# df -h
Filesystem            Size  Used Avail Use% マウント位置
/dev/mapper/vg_recserver-lv_root
                       50G  3.5G   44G   8% /
tmpfs                 3.7G     0  3.7G   0% /dev/shm
/dev/sdb1...

tailコマンドで覚えておきたい使い方4個(+1個)

ログを監視する際によく利用するtailコマンド。
以外と、普通に実行するのと「-F」でのリアルタイムでのログ監視以外はあまり知られてないのではなかろうか。

今回は、そんなtailコマンドで覚えているとちょっと役に立つ使い方を紹介する。

1.基本的な使い方

基本的には、以下のようにコマンドを実行することで指定したファイルの末尾から行(デフォルトでは10行)を抽出して表示してくれる。

tail ファイルPATH

[root@test-centos7 ~]# tail /var/log/messages
Jul 20 18:59:15 test-centos7 root:...

vmstatコマンドで覚えておきたい使い方8個(+1個)

LinuxやUNIXでパフォーマンスを監視する際にはお約束とも言えるvmstatコマンド。
どの現場でもよく使われるものだが、今回はこのコマンドで覚えておきたい使い方を紹介する。

なお、この内容はCentOS 7にてバンドルされている「procps-ng 3.3.9」のバージョンのものを用いている。

1.基本的な使い方

オプション無しで実行すると、以下のように現時点でのパフォーマンス情報が出力される。

vmstat

[root@test-centos7 ~]# vmstat
procs -----------memory---------- ---swap-- ---...

duコマンドで覚えておきたい使い方8個

フォルダごとの容量を確認したい時に役立つコマンドといえば、duコマンドだ。
今回は、そんなduコマンドで覚えておきたい使い方について紹介する。

1.基本的な使い方

基本的には、以下のようにコマンドを実行することで、カレントディレクトリ配下の各ディレクトリのブロックサイズを表示してくれる。

du

[root@dctest01 work]# pwd
/work
[root@dctest01 work]# du
4       ./arp-scan/.git/refs/heads
0       ./arp-scan/.git/refs/tags
4       ./arp-s...

dfコマンドで覚えておきたい使い方5個

LinuxやUNIXにおいて、ディスクの空き容量を確認するのにまず利用されるdfコマンド。
今回は、このdfコマンドで覚えていると便利な使い方を紹介する。

1.基本的な使い方

基本的な使い方だが、以下のように引数無しで実行することでマウントしているファイルシステムの全体の容量や使用している容量、空き容量について確認することが出来る。

df

[root@dctest01 ~]# df
ファイルシス            1K-ブロック    使用   使用可 使用% マウント位置
/dev/mapper/centos-root    28813572 7968592 208...

MySQLでデータベースごとの容量を確認する

前回、PostgreSQLでのデータベースごとの容量確認方法について記述したので、今回はMySQLでの確認方法について。
MySQLでデータベースの容量を確認する場合は、以下のSQLを実行する。

SELECT table_schema "DB名",
Round(Sum(data_length + index_length) / 1024 / 1024, 1) "DBサイズ(MB)"
FROM information_schema.tables
GROUP BY table_schema;


PostgreSQLでデータベースごとの容量を確認する

仕事で、データベースのバックアップスクリプトの実行時間、負荷の関係からPostgreSQLでデータベースごとのファイル容量を調べる事があったので、念のため残しておく。
PostgreSQLでは、データベースごとの容量を調べる方法として幾つかの方法が用意されている。

1.「\l+」コマンドで確認する

一番カンタンな確認の仕方が、psqlで用意されている「\l+」コマンドの実行だろう。
通常、「\l」でデータベースの一覧が表示されるのだが、これに+を付け足すとデータベースサイズなどの情報も出力させることが出来る。


topコマンドで覚えておきたい使い方14個

topコマンドといえば、よくLinuxのパフォーマンス状態をモニタリングするために利用されているコマンドだ。
今回は、そんなtopコマンドで覚えておきたい使い方14個を紹介する。

なお、検証で使用したtopコマンドはCentOS 7 で利用している「procps-ng version 3.3.9」のものとなっている。

1.基本的な使い方

基本的には、オプション無しで以下のようにコマンドを実行する。

top

top - 07:21:06 up 4 days, 17 min,  4 users,  load average: 0.00, 0.00, 0.00
Tasks:...

Sublime Text を使っていると、特定の拡張子とSyntaxハイライトの設定を紐付けて置きたくなる。
そんな時は、以下のフォルダにあるSyntaxの設定ファイルを編集すると良いだろう。

C:\Users\<ユーザー名>\AppData\Roaming\Sublime Text 2\Packages\User\

まだファイルが作成されていない場合は、Sublime TextでそのSyntaxに設定した上で「Preferences -> Setting – More -> Syntax Specific – Default」から開くことで編集出来る。 設定ファイルでのSyntax...


cpコマンドで覚えておきたい使い方9個(+1個)

LinuxやUNIXを使う上で、ほぼ必ず利用するcpコマンド。
今回は、このcpコマンドで覚えておきたい使い方を9個紹介する。

1.基本的な使い方

今更言うまでもない気がするが、基本的なコマンドの実行方法は以下の通りだ。

cp コピー元ファイル コピー先PATH

2.ディレクトリごとコピーする

ファイル単位ではなくディレクトリごとコピーする場合は、「-r」オプションを付与する。

cp -r コピー元ディレクトリ コピー先ディレクトリ

3.複数のファイルを個別に指定してコピーする

複数のファイルを個別に指定してコピーする場合は、以下のようにコマンドを実行...


WebページからGUIでApacheの設定を編集できる『ApacheGUI』

あまり頻度は多くないかも知れないが、リバースプロキシとして利用しているApacheの設定を変えるときなどにWebページ上からApacheの設定を編集したいときもある。
そんな時は、今回紹介する『ApacheGUI』を入れてみてはどうだろうか。このパッケージは、httpd.confやhttpdサービスの状態などについて、WEBページから操作するJava製のツールだ。

今回は、このパッケージをCentOS 7上にインストールし、実際にApacheの設定を行ってみる事にする。
なお、OSにはすでにLAMP環境がインストール済である状態。

1.『ApacheGUI』のインストール

まず...


cpやdd実行時のファイルの読み取り・書き込み進捗を確認出来る『showspeed』

以前、cpやmvの進捗状況を確認出来る『cv』コマンドを紹介したが、今回はそれによく似たコマンド『showspeed』を紹介する。
cvコマンドとの違いは、『showspeed』はプロセスの読み取りと書き込みの速度を確認することが出来る点だ。

今回は、CentOS 7でこのコマンドをインストール、動作をさせてみる。

1.前提パッケージのインストール

まず、以下のコマンドで『showspeed』の前提パッケージをインストールする。

yum install libaio libaio-devel perl-Data-Dumper

2.『showspeed』のインストール

...
Linuxでファイルコピー時に進捗状況を確認する6つの方法

Linuxで普通にcpコマンドを利用していると、そのコピーの進捗状況がわからない事が多い。
コピーの進捗状況を調べるには、どうすればよいのだろうか?

1.cp実行時に「-v」オプションを用いる

正確な進捗状況(各ファイルごとに何%までコピーが完了したか)はわからないが、「どのファイルまではコピーが完了したか」を把握するのであれば、cpコマンドで「-v」オプションを利用することで、今どのファイルをコピーしているのかが把握出来る。

2.cvコマンドを利用する

以前こちらで紹介したcvコマンドを利用することで、マシン上で実行されているcp,mvの進捗状況を確認することが出来...


サーバ大量構築時のキモ ~Windows 8.1/Windows Server 2012 R2でSysprepを実行する~

今回は、前回作成した応答ファイルを利用してsysprepを実行する。
といっても、特に難しい事はしない。

クローン元のマシンで、以下のコマンドを実行すればいいだけだ。

C:\Windows\System32\Sysprep\sysprep.exe /oobe /generalize /shutdown /quiet /unattend:C:\Untitled.xml

後は、再起動したら自動的に設定等が削除...


サーバ大量構築時のキモ ~Windows 8.1/Windows Server 2012 R2のSysprepで使える応答ファイルを作成する~

Windowsでクローン元のイメージを作る方法として、Sysprep等で利用する応答ファイルは欠かせないものだ。
今回は、Windows 8.1 / Windows Server 2012 R2で、そのSysprepを自動化させることの出来る応答ファイルを作成する。

Windows 8.1/Windows Server 2012 R2用の応答ファイルを作成する際には、以下について注意したい。

  • Windows 8.1 / Windows Server 2008 R2で応答ファイルを作成する場合、Windows 7 / Windows Server 2008 R2のツール『Windows...

watchコマンドで覚えておきたい使い方6個

watchコマンドといえば、そこまで使用頻度が高いわけではないけれど、覚えてるとちょっとした時に便利なコマンド。
今回は、そんなwatchコマンドで覚えておくと役に立つ使い方について紹介する。

1.基本的な使い方

基本的には、以下のようにコマンドを実行することで、数秒ごと(デフォルトは2秒)にそのコマンドの実行結果をコンソール上に出力することができる。

watch 連続実行させるコマンド

例えば、以下のように実行することで数秒ごとに「ls -la /home」を実行する。
当然、その配下のファイルが作成されれば確認することができる。

watch ls -la /home...

Windowsでファイル名・フォルダ名の一括置換を行う

UNIX、Linuxと同様に、Windowsでもファイル名やフォルダ名を一括で置換したいときがある。
そんな時はどうすればよいのか?

1.コマンドプロンプトから置換を行う

非常に限定的な用途(拡張子をtxtからbatに変換する等)であれば、コマンドプロンプトからrenコマンドを使うと良いだろう。

ren リネーム前 リネーム後

ただ、このコマンドでちゃんとした置換(たとえば、「TEST」というキーワードを「A」と変える)は難しい。
というのも、普通にコマンドを実行すると、以下の画像のようになってしまうからだ。

手軽ではあるのだが、ちゃんとした置換であれば別の手段...


UNIX・Linuxでファイル名・フォルダ名の一括置換を行う

LinuxやUNIXを利用していると、スクリプト名などのファイル名のルールが変更したため、一括で置換を行いたいときがある。
そんな時は、どうすればいいのだろうか?

1.『rename』コマンドを利用する

もし『rename』コマンドがあるようならば、これを利用するといいだろう。
Linuxには大体最初から用意されている。(なお、Ubuntuの場合だと置換の指定方法がPerl(sed)の指定方法になっている)

rename 置換する単語 置換後の単語 対象PATH

この対象PATHにはワイルドカードも利用できるので、以下のように一括で置換を行える。

[root@tes...

コンソール上でワールドカップの勝敗結果を確認出来る『worldcup』コマンド

ワールドカップといえば、国際的なサッカーの祭典だ。
結果をいち早く知りたい、でも仕事中…

そんな時は、この『worldcup』コマンドでLinuxのコンソール上から試合結果を確認してしまおう。

1.インストール

インストールは簡単。
pipで以下のようにコマンドを実行するだけだ。

pip install worldcup

これでインストール出来る。

2.試合結果を確認する

それでは、試合結果...


CentOSでSysprep相当の処理を行う

Sysprepといえば、WindowsのOSクローンを行うにあたって欠かせない機能だ。
Windowsで持っている固有の情報(システムIDやネットワークに関する情報など)を削除し、次回起動時に設定ウィザードを起動してくれる。
応答ファイルというものを利用すれば、その設定ウィザードの内容を自動的に設定させることもできる。

そんな便利なSysprep、実はRedhat(CentOS)にも似たような機能がある。それが「sys-unconfig」コマンドだ。
残念ながら応答ファイルに相当する機能は存在しないようだが、それでもクローン元のイメージをつくるならば便利な機能。ただし、initの機能...


yumやapt-getからインストールしたり、rpmやdebパッケージを利用してインストールした場合、アンインストールやアップグレードを行うのは簡単だ。
しかし、ソースファイルからコンパイルしたパッケージの場合、makeファイルにuninstallが用意されているならまだしも、もし用意されてないと、パッケージをアンインストールしたりするのは非常に大変だ。

そんなソースからコンパイルしmake installしたパッケージを管理してくれるのが、『porg』だ。pacoという、同じくソースからインストールしたパッケージの管理ツールが前身。
今回は、この『porg』をCentOS 7に実...