第1章 Perlのインストール
Linuxって、どんなところが便利なの? 最初にLinuxの特徴とLinxuの利用方法について解説するよ。Linuxコマンドを使ったファイル操作、ファイルバックアップ、ファイル履歴管理、Perlを使ったファイル管理などができるよ。

Linuxの特徴

Linuxの特徴について解説します。

コマンドによるプログラム実行

Linuxでは、コマンドと呼ばれるテキストを入力してプログラムを実行します。これをCUI(キャラクタ・ユーザー・インターフェース)と呼びます。次のような真っ黒な画面で、コマンドを入力して、プログラムを実行します。lsコマンドを実行して、ファイル一覧を表示しているところです。

LinuxにはGUIの機能もあるのですが、リモートからSSHというプロトコルを使って接続して、コマンドを使ってプログラムを実行するのが基本になります。マウスで操作して、プログラムをクリックするGUI(グラフィカル・ユーザー・インターフェース)に慣れている場合は、CUIの画面に、最初は戸惑うかもしれません。

コマンドによる処理の自動化

GUIとCUIを比較した場合に、わかりやすいのはGUIですが、処理の自動化という観点で見た場合に、やりやすいのはCUIでのコマンド実行です。

CUIで実行するコマンドは単なるテキストです。コマンドを並べたファイルを作るだけで、複数の処理を実行することができます。

「auto.sh」という名前でファイルを作成して、処理を複数並べてみます。これは、シェルスクリプトと呼ばれるものです。「#」の部分はコメントで実行されません。

auto.sh

# 処理1
program1

# 処理2
program2

# 処理3
program3

shコマンドを使って、シェルスクリプトを実行してみます。

sh auto.sh

こんな風に記述するだけで「program1」「program2」「program3」を連続して実行することができます。シェルスクリプトの書き方について、後で簡単に解説します。

Linuxで使える便利なコマンド

Linuxでは、ファイル管理のための便利なコマンドが使えます。

ファイル一覧を表示

lsコマンドでファイル一覧を表示できます。

ls

出力結果の例です。ファイル一覧が表示されます。

cover               examples     lib     README    templates
create_book_pdf.pl  giblog.conf  public  serve.pl

現在のディレクトリを確認

pwdコマンドで現在のディレクトリを確認できます。

pwd

出力結果の例です。現在のディレクトリが表示されます。

/home/kimoto/labo/perlbook-linux

ファイルの内容を表示

catコマンドでファイルの内容を表示できます。

cat README

出力結果の例です。READMEに書かれている内容が出力されます。

書籍 PerlでポータブルなLinuxファイル管理入門

はじめに

現在の日付・時刻の表示

dateコマンドで、現在の日付と時刻を表示できます。

date

出力結果の例です。現在の日付と時刻が表示されます。

Sat Jul 10 11:25:51 JST 2021

検索でマッチした行を抜き出す

grepコマンドを使うと、検索でマッチした行だけを取得することができます。

grep 'Perl' book.txt

出力結果の例です。Perlを含む行だけが出力されます。

Perl Tutorail
Linux & Perl

Linuxでは、このようなファイル管理に便利につかえるコマンドがたくさんあります。Linuxコマンドについては後の章で詳しく扱います。

ファイルのバックアップ

Linuxでは、rsyncというコマンドを使うと簡単にファイルのバックアップができます。

rsync -av 同期元ディレクトリ名 同期先ディレクトリ名

rsyncはローカルのファイルのコピーだけではなく、リモートサーバーへファイルを転送する機能があります。またrsyncは、ファイルの差分だけを転送してくれるので、バックアップが高速です。

ファイル履歴管理

Gitと呼ばれるツールを使うと、ファイル履歴を管理することができます。Gitは、一般的にはソースコードのファイル履歴管理に使われますが、日常的に使うファイルでも活用できます。

Gitでファイル履歴を管理した場合に、便利な機能は、簡単にファイルを過去の状態に戻せることです。

# ファイルを過去の状態に戻す
git reset --hard コミットID

間違ってファイルを上書き保存してしまった、間違ってファイル内容を置換してしまった、こんな場合でも、Gitでファイル管理をしていれば、安心です。

この書籍では、Perlワンライナーによるファイル内容の置換を解説しますが、間違って置換してしまうことが、よくあります。こんなときに、Gitでファイルを管理していれば、簡単に戻すことができます。

Perlワンライナー

Perlには通称ワンライナーと呼ばれる、Linuxコマンドのように、1行で処理を実行することができる機能があります。

ここでは、「fruits.txt」というファイルの中にある「banana」という単語を「orange」にすべて変換するというワンライナーを書いてみましょう。

# すべてのbananaをorangeに置換
perl -pi -e 's/banana/orange/g' fruits.txt

ファイル「fruits.txt」の内容は、以下のようであったとします。

banana banana banana

上記のPerlワンライナーを実行すると、ファイル内容が以下のよう置換されます。

orange orange orange

ファイル内容を置換という処理をPerlワンライナーを使って、1行で書くことができました。この例は置換の例ですが、Perlワンライナーでは、Perlプログラミング言語のすべての機能を使うことができます。

「-pi」や「-e」はperlコマンドで指定できるオプションです。このオプションについては、Perlワンライナーの章で詳しく解説します。

Perlを使ったファイル管理

Perlを使ってファイル管理を行う方法について解説します。Perlには、Linuxコマンドに対応する関数がたくさんあります。

LinuxコマンドPerlの機能
chdirchdir関数
chmodchmod関数
-f-f
lsglob関数
findFile::Findモジュール
basenameFile::Basenameのbasename関数

ファイルの存在を確認するファイルテスト演算子「-f」、ファイル一覧を取り出せるglob関数、再帰的にファイルを処理するFile::Findモジュールなど、うまく組み合わせると、ファイル管理の処理を簡単に書くことができます。

Linuxの利用方法

Linuxの利用方法を紹介します。

すでにLinuxサーバーがある場合

業務では、すでにLinuxサーバーの環境構築がされていて、Linuxサーバーにログインするための、ユーザー名とパスワードを教えてもらうという場合があります。

このような場合は、ローカルのPCから、リモートのLinuxサーバーに接続して、コマンドを実行できるSSHクライアントと呼ばれる種類のソフトウェアを使う必要があります。

また、リモートのLinux上のファイルを編集するために、SFTPと呼ばれるSSHの上に構築されるファイル転送プロトコルに対応したソフトウェアが必要になります。

ここでは、Windowsで使えるソフトウェアを紹介します。Macの場合も、同じ用途のソフトウェアがありますので、検索してみてください。

Tera Term - SSHクライアント

SSHクライアントであるTera Termというソフトウェアを使うと、Linuxサーバーに接続してコマンドを実行できます。接続する場合は、LinuxサーバーのIPアドレス・ポート番号・ユーザー名・パスワードを指定します。

WinSCP - Linuxサーバー上のファイルを編集する

SFTPに対応したWinSCPというソフトウェアを使うと、Linuxサーバーに接続して、Linuxサーバー上にあるファイルを編集することができます。接続する場合は、LinuxサーバーのIPアドレス・ポート番号・ユーザー名・パスワードを指定します。

VPSサービスを利用する

Linux環境を自分で構築するには、VPSと呼ばれるサービスを利用することができます。VPSは、バーチャルプライベートサーバーと呼ばれ、月額600円~1000円程度で、自分専用のマシンをレンタルし、その上に、Linuxをインストールすることができます。

ローカルPCでバーチャルマシンを利用する

ローカルPC上に、VMWareなどのバーチャルマシンをインストールし、その上に、Linuxをインストールすることができます。ローカル環境で、無料で利用可能な方法です。

Windows上のWSL2を利用する

Windows 10から提供されているWSL2という機能を利用して、この上に、Linuxをインストールすることができます。ローカル環境で、無料で利用可能な方法です。

Windows上でmsys2を利用する

msys2は、Windows上に、Linuxの疑似的な環境を構築することができるソフトウェアです。msys2のインストールだけで、疑似的なLinux環境が構築できます。

msys2は、完全なLinux環境ではないのですが、たいていの場合は、Linux環境として動作し、Windowsのファイルシステムにアクセスでき、比較的インストールが簡単です。

Linuxディストリビューションの紹介

Linuxディストリビューションとは、Linuxカーネルの上に、Linuxで使える便利なソフトウェアを利用できるようにした、各コミュニティが提供するLinuxの環境のことです。

無料で利用できるLinuxディストリビューションに、CentOS、Oracle Linux、Ubuntu、Debian、Fedora、openSUSE、Arch Linux、AlmaLinux、Rocky Linuxなどがあります。

Linuxディストリビューションには、保守期間の長さ、コマンドの後方互換性の高さ、最新のパッケージを積極的に採用する、利用者の多さなど、いくつかの特徴があります。自分にあった使いやすいものをひとつ選択してみましょう。

LinuxはUNIXからの派生ですが、無料で使えるUNIXに、FreeBSD、NetBSD、OpenBSDなどがあります。

業務に役立つPerl

関連情報