Linux コマンドとシェル スキル
Perl スクリプト: システム管理者のスイス アーミー ナイフ、まだ鋭い
Perl は、1990 年代に利用可能な最高のテキスト処理ツールとしてその地位を獲得し、その後決して離れることはありませんでした。Perl はすべての基本インストールに同梱され、誰も考えなかったツール (SpamAssassin、プロビジョニング スクリプト、モニタリング プラグイン) を静かに実行し、他では快適に到達できない正規表現の強力なワンライナーをパックしています。正直な現代の立場: awk と Python はほとんどの新しいコードをカバーし、Perl の本当の役割は、古いスクリプト、緊急テキスト手術、および他の場所では 2 行になるような 1 ライナーを読み取ることです。誰も構文を賞賛しません。この業界に携わる誰もが今でもその恩恵を受けています。
要点
- ワンライナーは生き残った技術です。インプレース (sed のジョブ、Perl の正規表現) 用の perl -pi -e 's/old/new/g' ファイル、行のテスト駆動用の -ne、および自動分割が機能する列作業用の -lanE です。
- フラグは文書化された機能です。 -p はコードの実行後に各行を出力し、-n は出力せずにループし、-e コードをフィードし、-i はその場で編集します (オプションのバックアップ サフィックス付き)、-a は @F に自動分割し、-F'\t' は分割パターンを設定します。
- Perl が今日でも勝っているのは、awk が降参するテキスト (奇数のエンコーディング、ネストされた引用符、フリップフロップ 'A..B' のような範囲)、およびプログラム全体が -e に収まるが状態配列とハッシュを快適に保持する必要がある変換です。
- 従来の現実性チェック: Perl で記述された監視プラグイン、プロビジョニング パイプライン、メール ツールは依然としてフリート全体に存在しており、200 個のスクリプトを大規模に書き直すのは誰も承認したことのない予算です。 Perl を読むことは、新しいことではなく、依然として能力です。
- モジュールの健全性: コア モジュールはインタプリタとともに動作し、CPAN インストールは対話型作業のみに属します。サーバー上では、管理されていない CPAN ツリーが監査で表面化するドリフトであるため、ディストリビューション パッケージ (libwww-perl およびその仲間) を優先します。
- 規則を追加して古いスクリプトをデバッグします。厳密な使用、警告の使用、および省略された場合は -w を使用します。 2004 スクリプトが 2026 サーバーに接続されると、サイレント undef 算術演算とタイプミスされたパッケージ変数が待機します。
- 移植性はほとんど本物ですが、無料ではありません。コア Perl のみのスクリプトはほとんど変更なくディストリビューションと Unix フレーバーを横断しますが、flock セマンティクスと /proc の仮定は BSD および macOS システムで再検討する必要があります。
- フォールドのタイミングを知ってください。複数行の状態、深いデータ構造、またはフレームワークを必要とするものはすべて Python の国です。 Perl はその仕事を快く引き受け、あなたは午前 3 時に複雑さの代償を一人で支払うことになります。
現場ノート
私は、最新のボックス上で古代の Perl 監視チェックを 6 年間維持し、最上位およびディストリビューションが詰め込まれたモジュールで厳密な警告と警告を復元しました。 3 つの Rewrite Promise は機能し続けましたが、老朽化により機能しなくなりました。
よくある質問
今日は Perl で新しいコードを書くべきですか?
テキストのワンライナーまたは既存の Perl コードベース内のメンテナンスの場合のみ。新しいサーバー接着剤は Python を使用します。Python はより明確で雇用しやすいものです。 Perl は、1 行で保持できるジョブにおいては依然として優れています。
なぜ Perl は王冠を失ったのでしょうか?
劇的なことは何もありません。大規模なコードベースを罰する構文、実力ではなく勢いで Python 型に流れた採用市場、Perl 5 が静かに優れたままであった一方で、Perl 6/Raku の分裂が混乱を招く認識でした。
フィールド解析には perl -lane または awk を使用しますか?
両方を大まかに学習します。小規模な列の作業には awk、区切り文字やレコードの形状がおかしくなる日には -lane の自動分割を使用します。正規表現が重労働を行う場合は Perl を選択し、列の算術演算を行う場合は awk を選択します。
古い Perl スクリプトは実行し続けても安全ですか?
通常、衛生的には、ディストリビューション パッケージを介してモジュール セットを固定し、インタープリタをアップグレードする前にコピーでテストし、先頭の strict/warning を復元します。本当のリスクは言葉ではなく、沈黙の行動の漂流です。
linux コマンドとシェル スキル に対するKinetikatechの支援
シンプルな提案です:管理者がサーバーを操作するかサーバーと戦うかを決定するコマンドとスクリプトの習慣。すべての基本インストールに存在するツールを使用して、テキストとプロセスを検索、変換、転送、監視します。 Linuxサーバーセキュリティとサーバー管理サービスにお任せください。徹底的に評価され、クリーンに実装され、24時間監視されます。