-
Bashでプログラミングする方法:構文とツール
シェルはオペレーティングシステムのコマンドインタープリタです。Bashは私が最も好むシェルですが、あらゆるLinuxシェルは、ユーザーやシステム管理者が入力したコマンドを、OSが利用できる形式に解釈します。結果がシェルプログラムに返されると、それはSTDOUT(標準出力)に送られ、デフォルトではターミナルに表示されます。私が知る限り、すべてのシェルはプログラミング言語でもあります。 タブ補完、コマンドラインの履歴呼び出しと編集、エイリアスなどのショートカットといった機能はすべて、強力なシェルとしての価値に貢献しています。デフォルトのコマンドライン編集モードはEmacsですが、私が最も気に入っ
-
Bashでプログラミングする方法:ループ構文の使い方徹底解説
Bashは強力なプログラミング言語であり、コマンドラインやシェルスクリプトでの利用に最適な設計がなされています。この3部構成のシリーズ記事は、筆者の全3巻からなるLinux自習コースをもとに、コマンドラインインターフェース(CLI)上でBashをプログラミング言語として活用する方法を解説していきます。シリーズ第1回では、変数や制御演算子を使った基本的なコマンドラインプログラミングを取り上げました。第2回では、実行フローを制御するための論理演算子(ファイル・文字列・数値など)や、Bashにおけるさまざまなシェル展開について説明しました。そして今回の第3回(最終回)では、さまざまな反復処理を実現す
-
Bashスクリプトでランダムなパスワードを簡単に生成する方法
定期的に新しいパスワードを考える必要がある方は多いでしょう。中にはセキュリティ強度の高いものが求められる場合もあります。しかし、いざ新しいアカウントを作成しようとすると、頭の中が真っ白になってしまうこと少なくありません。そんなときに役立つのが、この短いBashスクリプトです。正直に言うと、このスクリプトの大部分はどこかで見つけたもので、筆者は少し手を加えただけですが、その実用性は十分にあります。 スクリプトの全体像 #!/usr/bin/env shecho Generating 12-character passwordsfor ((n=0;n<12;n++))do dd if=/de
-
Bashチートシート:覚えておきたい主要キーコンボと特殊構文
```html Bashとは? 40年の歴史を持つ最強のテキストインターフェース Bourne Again Shell(Bash)は、POSIX準拠のコンピュータを操作するためのテキストインターフェースです。シェルとは、GUIのような間接的な手段を介さず、コンピュータと直接「対話」するための仕組みです。実行したいコマンドを正確に入力すれば、その通りにコンピュータが動いてくれます。 シェルは現存する中で最も効率的かつ軽量なインターフェースです。だからこそ、登場から40年以上経った今でも、Bashは第一線で使い続けられているのです。 Bashはプログラミング言語でもある Bashの役割は、コマン
-
Bashの環境変数とは?基本の仕組みと設定方法をわかりやすく解説
コンピュータの世界で「変数」とは、変更されうる値の代わりとなる名前のことです。実は私たちは、日常会話の中でも意識せずに変数を使っています。たとえば「私の車」と言うとき、「私の車」はその時点で自分が所有している車を指す一種の変数のようなものです。古い車を新しい車に買い替えればメーカーやモデルは変わりますが、「私の車」という呼び方を決めておけば、車に言及するたびに現在の車種をいちいち説明する必要がなくなります。 コンピュータ上でも、変数は同じような目的で使われます。 たとえば、コンピュータにユーザーアカウントを持つ人には、個人データが保存されるホームディレクトリがあります。しかし、ホームディレクト
-
【初心者向け】PowerShellの変数の基本:作成・確認・削除・追加の方法をわかりやすく解説
コンピュータサイエンスにおいて、変数とは後で利用するために任意の情報を格納しておくメモリ上の場所のことです。言い換えれば、データを一時的に保存し、必要なときに取り出すための「入れ物」です。シェル環境では、そのデータは単語(文字列)でも数字(整数)でも構いません。 パソコンで意識的に変数を使ったことがない人でも、日常生活の中で変数に近いものを使っているはずです。「あれを取って」「これを見て」といった言葉は、文法上の変数(いわゆる代名詞)と言えます。「これ」「あれ」が何を指すのかは、話し手が頭に思い浮かべているものや指差している対象によって決まります。数学でも未知の値を記号で表しますが、それも立派
-
Bashシェルの誕生秘話:Unixからフリーソフトウェアへの進化
シェルスクリプトは、システム管理者にとって欠かせない必須スキルです。そして現在、最も広く使われているシェルが「Bash(バッシュ)」です。BashはほぼすべてのLinuxディストリビューションや最新のmacOSに標準搭載されており、近いうちにWindows Terminalのネイティブ機能としても組み込まれる予定です。言うなれば、Bashは今や「どこにでもある」存在なのです。では、Bashはどのようにしてここまで普及したのでしょうか。ポッドキャスト「Command Line Heroes」の今回は、実際にコードを書いた本人たちに直接話を聞きながら、この疑問を深く掘り下げています。すべてはUni
-
PowerShellの環境変数とは?基本知識から設定・確認方法まで徹底解説
環境変数は、Linux、Mac、Windowsといったコンピューター全体で共有されるグローバルな設定値であり、システムシェルがコマンドを実行する際に参照するために保存されています。多くの環境変数は、OSのインストール時やユーザーアカウントの作成時に自動的に設定されます。 たとえば、ホームディレクトリはログイン時に環境変数として登録されます。PowerShellでの表示内容は、使用しているOSによって異なります。 OSごとのHOME変数の確認例 Windowsの場合: PS C:\Users\bogus> Get-Variable HOME -valueOnlyC:\Users\bogus
-
Bashでマインスイーパを作って、シェルスクリプトのスキルを楽しく磨こう
プログラミングを教える専門家ではない私ですが、何かを上達したいときは「楽しんで学ぶ方法」を見つけるようにしています。たとえば、シェルスクリプトを上達させたいと思ったとき、Bashでマインスイーパを実装してみることにしました。 経験豊富なBashプログラマーの方なら、このチュートリアルに沿ってターミナル向けのマインスイーパを自作しながら、遊び感覚でスキルを磨けるはずです。完成版のソースコードはGitHubリポジトリで公開しています。 準備:必要な要素を整理する コードを書き始める前に、ゲームに必要な要素を次のように整理しました。 地雷原(マインフィールド)を表示する プレイのロジックを作る 開
-
毎日の作業で本当に役立つBash履歴ショートカット7選
多くのBash履歴ショートカットのガイドは、利用可能なショートカットを網羅的にリストアップしています。しかし問題なのは、私がショートカットを一度使ってみても、すべてのパターンを試そうとして頭が混乱し、その後日常業務に戻ると完全に忘れてしまうことでした。結局残っていたのは、Bashを使い始めた頃に覚えた有名な!!のテクニックだけでした。 つまり、ほとんどのショートカットは記憶に定着しなかったのです。 この記事では、私が毎日実際に使っているショートカットを紹介します。内容の一部は私の著書『Learn Bash the Hard Way』(プレビューを読むことで詳細を確認できます)に基づいています。
-
BATSを使ったBashスクリプトのテスト入門
Java、Ruby、Pythonなどの言語でアプリケーションを開発しているソフトウェア開発者は、ソフトウェアの品質を長期にわたって維持するための高度なライブラリを利用できます。構造化された環境で一連の実行を通じてアプリケーションを検証するテストを作成し、ソフトウェアのあらゆる側面が期待どおりに動作することを確認します。 こうしたテストは、継続的インテグレーション(CI)システムで自動化されるとさらに強力になります。ソースリポジトリへのプッシュごとにテストが実行され、テストが失敗すれば開発者は即座に通知を受け取れます。この迅速なフィードバックにより、開発者はアプリケーションの機能的な完全性に対し
-
Bash vs Python:どちらを選ぶべき?自動化エンジニアのための言語使い分けガイド
自動化エンジニアにとって、BashとPythonは最も人気のあるプログラミング言語の2つです。どちらにも長所と短所があり、「どちらを使うべきか」で迷うことも少なくありません。正直なところ、その答えはタスクの内容、規模、実行環境、そして複雑さによって異なるというものです。 この記事では、2つの言語を比較しながら、それぞれがどんな場面で真価を発揮するのかを詳しく解説していきます。 Bashの特徴 Linux/Unix向けのシェルコマンド言語である CLI(コマンドラインインターフェース)ユーティリティを活用したシェルスクリプトの作成に最適。あるコマンドの出力を次のコマンドへ渡すパイプ処理や、10
-
Bashでループを書く方法:forループの基礎からfindコマンド活用まで
Unixシェルを学びたい理由としてよく挙げられるのが、バッチ処理の力を手に入れることです。多数のファイルに対して一連の操作を実行したい場合、その方法の一つが、ファイルを順番に処理するコマンドを作ることです。プログラミング用語では、これを「実行制御」と呼び、最も代表的な例の一つがforループです。 forループとは、指定した各データオブジェクト(ファイルなど)に対して、コンピュータに実行させたい処理を記述した「レシピ」のようなものです。 定番のforループ まず試しやすいのは、ファイルのコレクションを解析するループです。それ自体はあまり実用的ではありませんが、ディレクトリ内の各ファイルを個別に扱
-
もう手放せない!なくてはならないBashエイリアス10選
Bashエイリアスとは、既存のBashコマンドを新しいコマンドで補完したり上書きしたりする仕組みです。エイリアスを使えば、POSIXターミナルでの作業環境を自由にカスタマイズできます。通常は$HOME/.bashrcや$HOME/.bash_aliases($HOME/.bashrcから読み込まれる必要があります)に定義します。 多くのディストリビューションでは、新規ユーザーアカウントのデフォルトの.bashrcファイルに、いくつかの定番エイリアスがあらかじめ登録されています。以下はBashエイリアスの基本構文を示すシンプルな例です。 alias ls=ls -F alias ll=ls -l
-
Bashシェルのpushdとpopdを使いこなしてディレクトリ移動を効率化する方法
pushdコマンドとpopdコマンドは、Bashシェルに組み込まれている機能で、ディレクトリに「しおり」を挟むようにマークを付け、ハードドライブ上の場所を素早く行き来できるようにするものです。ターミナルはコンピュータ内を移動する驚くほど高速な手段だと、すでに実感している方も多いでしょう。わずか数回のキー入力で、ハードドライブのどこへでも、外部ストレージやネットワーク共有先にもアクセスできます。しかし、複数のディレクトリを行ったり来たりする作業や、ファイルシステムの中で「迷子」になってしまったときには、そのスピードが失われてしまいます。まさにそうした問題を解決してくれるのが、pushdとpopd
-
Bashの変数の基本:設定・削除・子プロセスへの渡し方を実例付きで解説
コンピュータサイエンス(そして日常的なコンピューティング)において、変数とは、後で使う情報を一時的に保持しておくメモリ上の場所のことです。言い換えれば、データを入れたり取り出したりするための一時的な保管容器です。Bashシェルでは、そのデータは単語(コンピュータ用語では「文字列」)でも数値(「整数」)でも構いません。 パソコンで意識的に変数を使ったことがない人でも、生活の中では変数に相当するものを使っているはずです。「あれを取って」「これを見て」といった言葉は、文法上の変数(代名詞)です。「これ」や「あれ」が何を指すのかは、話し手が頭の中で思い浮かべているものや指差している対象によって決まりま
-
Bashを極める!システム管理者のための実践テクニック集
どんな職業にも、その道の達人が最も頻繁に使う道具があります。多くのシステム管理者(sysadmin)にとって、それはシェルです。Linuxやその他のUnix系システムの大半では、デフォルトのシェルとしてBashが採用されています。 Bashは1980年代後半に生まれた、かなり歴史のあるプログラムですが、その基盤となっているのはさらに古いシェル、たとえばCシェル(csh)などであり、それらはBashより10年以上前から存在しています。シェルという概念自体が非常に古いため、システム管理者の仕事を格段に楽にしてくれる「秘伝の知識」が世の中に数多く蓄積されています。 今回は、その基本となるテクニックを
-
あなたの好きなLinuxターミナルのトリックは?時短テクニックをコミュニティで共有しよう
ターミナルの達人を目撃した、あの瞬間 Linuxターミナルを自在に操る熟練者が、真剣に作業している姿を初めて目にしたときのことを覚えていますか? まるで魔法のように見えたかもしれません。あるいは、少なくとも映画『ハッカーズ』のワンシーンのように感じた人も多いのではないでしょうか。 もちろん現実には、1分間に60語ものスピードでコマンドを打ち続け、流れゆく出力を眺めながら絶え間なくマシンへ指示を出し続けている人はいません。それでも、いざ「ゾーン」に入り込むと、ほんの数分のあいだだけでも、まるでそんなふうに感じられる瞬間があるものです。 あなたのお気に入りのターミナル術は? ターミナルでの作業効率
-
作業効率が劇的にアップ!時間を節約できるLinuxコマンドラインエイリアス15選
Linuxのコマンドラインエイリアスは、日々の作業効率を大幅に向上させてくれる強力な機能です。さらに嬉しいことに、多くのLinuxディストリビューションでは、いくつかの便利なエイリアスがあらかじめデフォルトで設定されています。 以下は、Fedora 27におけるコマンドラインエイリアスの表示例です。 エイリアスの確認方法と設定方法 aliasコマンドを実行すると、現在登録されているエイリアスの一覧を確認できます。新しいエイリアスの設定も非常に簡単で、次のように入力するだけです。 alias new_name=command それでは、作業時間を節約できる実用的なエイリアスを15個ご紹介します
-
Pythonをそのままシェルにできる「Xonsh」が好きな理由
シェル言語は、対話的な操作に非常に便利です。しかし、この利便性のための最適化は、プログラミング言語として使う際にはトレードオフとなることが多く、シェルスクリプトを書いているとその限界を感じることがあります。 もし、あなたのシェルがよりスケーラブルなプログラミング言語も理解できたらどうでしょう?たとえば、Pythonはいかがでしょうか? そこで登場するのがXonshです。 Xonshのインストール Xonshのインストールは簡単です。仮想環境を作成し、pip install xonsh[ptk,linux]を実行したあと、xonshコマンドを入力するだけです。 最初は、Pythonシェルの奇妙な