- 投稿日:2020-02-18T17:11:58+09:00
KornShell(ksh)に関する覚え書き
KornShell(ksh)とは何か
UNIX系OSを利用するのに避けて通れないのがシェルです。Linuxなどではbash(Bourne-Again Shell)が標準で使われていますが、これは様々なシェルの祖先となるsh(Bourne Shell)の機能強化版と考えていいかと思います。
KornShellも、そのようなUNIX系OSで利用できるシェルのひとつですが、近年標準で採用されていることは多くない模様です。今回は、そんなKornShellを使ってみよう、という記事です。
きっかけ
個人的な動機に簡単に触れておきます。某中古書店でオライリーのKornShell解説本が格安で売られており、これを手に取ったのが直接のきっかけです。オライリーからはbashやtcsh/cshの解説本も出ていますが、KornShell解説本も出ていたのは知らなかったので購入して通読しました。
shやbashとの関係
非常にざっくりした認識ですが、昨日の豊富さという意味では、下のような感じの認識でよいのではないでしょうか。
sh < ksh < bash
bashほど高機能ではないにせよ、普通に対話的に利用できる程度の機能は備わっている感じがします。また、csh/tcshのようにbash系(?)と大幅に流儀が違うような感じもないので、その点もとっつきやすいです。
kshのバリエーション
ややこしいことに、kshは当初プロプライエタリなライセンスであったことなどから、複数の実装が存在します。
ksh
元祖版です。David Kornが開発しています。当初プロプライエタリでしたが、2000年代に入ってからオープンソースになりました。
pdksh
パブリックドメインのKornShell実装です。
mksh
MirOS BSDなるBSD系のOSのために開発された実装です。DebianやUbuntuなどではaptを用いて導入することができます。
とりあえず試してみる
現在のLinuxディストリビューションでデフォルトのシェルになっていることはほとんどないのではないかと思いますが、公式レポジトリに含まれていることが多いため、パッケージ管理で導入し、とりあえず試してみることができます。常用するのはともかく、歴史的な観点などからも興味深いかと思います。
- 投稿日:2020-02-18T16:27:30+09:00
sshfsで別サーバのディレクトリをマウントする
サーバーのFileを使いたい時に、どうすればいいの?
ftp?sshfsでsshを経由してサーバのディレクトリをマウントできます。
恒例
https://github.com/libfuse/sshfs
インストールする
apt-get install sshfs
使う
sshfs username@192.168.1.101:/tmp/ /mnt/ -p 22 #ペラメタ: #-p PORT equivalent to '-o port=PORT' #-C equivalent to '-o compression=yes' #-F ssh_configfile specifies alternative ssh configuration file #-o reconnect reconnect to server #-o no_readahead synchronous reads (no speculative readahead) #-o sshfs_debug print some debugging information #-o cache=BOOL enable caching {yes,no} (default: yes)
- 投稿日:2020-02-18T15:56:22+09:00
32bit UEFIなPCにLinuxをインストールする方法
現在の個人向けPCは基本的に64ビット対応なので、Linuxディストリビューションをインストールする際には、amd64(x86-64)イメージを用います。
しかし、一部のマシンでは、UEFIが32ビット版のため、そのままamd64向けイメージを用いてもインストールできません。特に、数年前に盛んに発売されたIntel Atom(Bay Trail)を搭載した8-10インチタブレットや、同様のアーキテクチャを使用したノートPCなどにはこのような問題があります。
さらに、Linuxディストリビューションの配布しているISOイメージで、32ビットUEFIに対応しているものは限られているため、該当マシンへのLinux導入はさらに困難を増します。
本記事では、実機での経験をもとに、このような困難にどのように対処するか簡単にまとめます。
Debian 最新版(Buster)の32ビットイメージを使う
現時点で(少なくとも実機にLinuxをインストールするだけであれば)この方法が簡単かと思われます。公式サイトやミラーサイトから32ビット版ISOイメージをダウンロードし、ddや各種ツールを使ってUSBメモリなどに焼けば、問題なくインストーラーが立ち上がり、システムのインストール、およびその後の起動も問題なく行えるかと思います。
しかし、下記のような問題がある
この方法だと、比較的楽にDebianの最新版を導入できるのですが、以下のような問題があります。
- Debianのポリシー上、プロプライエタリなドライバなどがインストールイメージに含まれていない
- 64ビット版でしか動作しないソフトウェアは(当然ながら)動かないDebian Busterのmulti-archイメージを使う
そこで使いたいのが、multi-archイメージと呼ばれるものです。このイメージを用いると、32ビットUEFIを認識しつつ、amd64アーキテクチャ版のDebianを導入することが可能です。
使い方
基本的には、通常と同じです。ただし、用意するイメージが"debian-10.x.x-amd64-i386-netinst.iso"となります。有線LANが利用できない場合など、プロプライエタリなドライバが必要な場合は、非公式のイメージとなりますが"firmware-10.3.0-amd64-i386-netinst.iso"を用いましょう。
イメージをUSBメモリなどに焼き、ブートすれば画面に従ってDebianを導入できるかと思います。
64ビット版を導入する利点と欠点
Linux向けには64ビット版しか用意されていないソフトウェアが利用可能になります。Google Chrome(Chromiumはi386版でも利用可能)や、Electronを用いたソフトウェア(AtomやVisual Studio Code)を利用することができます。
一方、課題となるのがメモリの使用量の問題です。Baytrail世代のAtomを搭載しているマシンの大半は、搭載されているメモリが2GBなど限られています。Electronを使ったエディタなどをフル活用するには、このメモリ量では少し物足りないかもしれません。軽量なデスクトップ環境を利用するなどの対策を講じましょう。
終わりに
Debianというと、Linuxディストリビューションの中でも硬派で、Ubuntuなどに比べるととっつきにくいイメージもありますが、インストール作業自体は比較的簡単にGUIで行うことができます。また、ユーザー数が多いため、情報を得ようとする際にも比較的入手しやすいのが特徴です。
32bit UEFIなマシンにLinuxは無理、と諦めてしまう前に、Debianの導入を検討してみてはいかがでしょうか。