2017年1月31日

複雑なパスワードを自動生成するには?(pwgenコマンド)

pwgenコマンドを使うと、複雑なパスワードをランダムに自動生成することができます。次のコマンドでインストールできます。

$ sudo apt install pwgen

デフォルトでは8桁の英数字からなるパスワードが大量に生成されます。

$ pwgen
ue0looGh luxai2Oa YeeX9atu chia5Aes om4Iurar aeNg3OhW kohLaiW7 shoo8Quu
pheY3si1 xo8ohThe Maeg5ugh vohk3aeB choh1loL jei9AX8e aeCah7ie Goo9tea1
Roongah9 Reiy8tie iex6Ei0b theeCae5 ootho1Ah koh1Aigh leek5Pei vi5Cho8m
Ei0iuKah ouV7keec ojaiW7ia Wi6Aikai sahKae4i Thahbie3 Ahph9ieg aeH0Uk6e
Ahw0eNg4 uaJae4io AaJ6eita Uzie9aht aechoh5E EoTae9ca Vo8fu0sa goi8Doox
(...)

引数には、パスワードの文字数と、生成するパスワード数を指定できます。次の例では、12文字のパスワードを3つ生成します。

$ pwgen 12 3
EiSae8Aib8uv ohnguquoaG8t ir6geeghi7Ei

文字列に記号も入れたい場合は、-yオプションを指定します。

$ pwgen -y 12 3
eep3Eev8Pee, uumahye8iC>a Aiweeh;ef0vo

他にも、-0(数字を使わない)、-A(大文字を使わない)、-c(最低1文字は大文字を入れる)といったオプションや、l(小文字のL)と1(数字)、大文字のOと数字の0のような紛らわしい文字を排除する-Bオプションも必要に応じて使うとよいでしょう。


2017年1月30日

新刊紹介:『ちょっとだけLinuxにさわってみたい人のための Bash on Ubuntu on Windows入門』

Bash on Ubuntu on Windowsの本を書きました。Linuxコマンドに不慣れな方でも、基本コマンドからLinuxの作法、シェルスクリプトの基礎までスムーズに学べるようになっています。




以下、目次↓

インストールされているパッケージをすべて表示するには?(apt listコマンド)

BoW(Ubuntu)にインストールされているパッケージをすべて表示するには、次のコマンドを実行します。

$ apt list --installed
(一部省略)
accountsservice/xenial-updates,now 0.6.40-2ubuntu11.3 i386 [インストール済み]
acl/xenial,now 2.2.52-3 i386 [インストール済み]
acpid/xenial,now 1:2.0.26-1ubuntu2 i386 [インストール済み]
adduser/xenial,now 3.113+nmu3ubuntu4 all [インストール済み]
adwaita-icon-theme/xenial-updates,now 3.18.0-2ubuntu3.1 all [インストール済み、自動]
apache2/xenial-updates,xenial-security,now 2.4.18-2ubuntu3.1 i386 [インストール済み]
apache2-bin/xenial-updates,xenial-security,now 2.4.18-2ubuntu3.1 i386 [インストール済み]
apache2-data/xenial-updates,xenial-security,now 2.4.18-2ubuntu3.1 all [インストール済み]
apache2-utils/xenial-updates,xenial-security,now 2.4.18-2ubuntu3.1 i386 [インストール済み]
(....)

やや見づらいので、パッケージ名とバージョンだけ表示するには、次のようにするとよいでしょう。

$ dpkg -l | awk '{ print $2 $3 }'
(一部省略)
accountsservice0.6.40-2ubuntu11.3
acl2.2.52-3
acpid1:2.0.26-1ubuntu2
adduser3.113+nmu3ubuntu4
adwaita-icon-theme3.18.0-2ubuntu3.1
apache22.4.18-2ubuntu3.1
apache2-bin2.4.18-2ubuntu3.1
apache2-data2.4.18-2ubuntu3.1
apache2-utils2.4.18-2ubuntu3.1
(....)


2017年1月29日

D言語を利用するには?

gdcパッケージをインストールすれば、D言語(バージョン2)をコンパイルすることができます。

$ sudo apt install gdc

次のようなサンプルhellod.dを作成します。

import std.stdio;

void sayHello(string message)
{
  writeln("Hello, ", message");
}
void main()
{
  sayHello("D Language!");
}

gdcコマンドでコンパイルします。出力ファイル名は-oオプションで指定します。

$ gdc -o hellod hellod.d

実行してみます。

$ ./hellod
Hello, D Language!


2017年1月28日

Bashで使えるショートカット

Bash上では以下の表のようなショートカットが利用できます。

操作説明
Ctrl+A行頭にカーソルを移動する
Ctrl+E行末にカーソルを移動する
Ctrl+F1文字右にカーソルを移動する
Ctrl+B1文字左にカーソルを移動する
Ctrl+Pコマンド履歴を上方向に移動する
Ctrl+Nコマンド履歴を下方向に移動する
Ctrl+Hカーソルの左を1文字削除する(Backspace)
Ctrl+Dカーソルの右を1文字削除する(Delete)
Ctrl+Uカーソル位置から行頭まで削除する
Ctrl+Kカーソル位置から行末まで削除する

他にもいろいろありますが、とりあえずこれらを使えるようになれば、ずいぶんと快適にコマンドライン操作ができるようになると思います。


2017年1月27日

コマンド履歴に日時も保存するには?

通常、コマンド履歴には、そのコマンドを実行した日時は記録されていません。Bashの設定を変更すると、日時も記録できるようになります。ホームディレクトリにある「.bashrc」ファイルの末尾に、以下のような設定を追記してください。

HISTTIMEFORMAT='%Y/%m/%d %H:%M:%S '

次のコマンドで設定を反映させます。

$ source .bashrc

コマンド履歴を見ると、次のようになっています。コマンド履歴はhistoryコマンドで表示できます。

  757  2017/01/25 20:18:45 vi .bashrc
  758  2017/01/25 20:19:04 source .bashrc
  759  2017/01/25 20:19:14 ls
  760  2017/01/25 20:19:17 history

2017年1月26日

Windowsディレクトリへのショートカットを作成するには?

BoWでは、/mnt/cディレクトリを通してWindowsのファイルシステムへアクセスできるようになっています。

BoWのホームディレクトリ直下に、Windowsのマイドキュメントなどへのショートカットがあると便利です。Windowsのショートカットに相当するのは、Linuxのシンボリックリンクです。シンボリックリンクを作成するには、ln -sコマンドを使います。例えば、Windowsのユーザー名がnorthであれば、マイドキュメントのパスは /mnt/c/Users/north/Documentsとなります。ここへのショートカットを任意の名前、例えば「Documents」で作成します。

$ ln -s /mnt/c/Users/north/Documents ~/Documents

うまくできているか確認します。

$ ls -ld Documents
lrwxrwxrwx 1 north north 28  1月 25 17:55 Documents -> /mnt/c/Users/north/Documents

これでBoWの「/home/north/Documents」にアクセスすると、Windowsのマイドキュメントにアクセスできます。


2017年1月25日

Scalaをインストールするには?

Scalaをインストールするには、scalaパッケージをインストールします。

$ sudo apt install scala

バージョンを確認してみます。

$ scala -version
Scala code runner version 2.9.2 -- Copyright 2002-2011, LAMP/EPFL

以下のようなHelloWorld.scalaファイルを作成します。

object HelloWorld {
  def main(args: Array[String]): Unit = {
    println("Hello, world!")
  }
}

コンパイルはscalacコマンドです。

$ scalac HelloWorld.scala

実行します。

$ scala HelloWorld
Hello, world!

対話的に使うこともできます。終了するには「:quit」または「:q」を入力します。

$ scala
Welcome to Scala version 2.9.2 (OpenJDK 64-Bit Server VM, Java 1.7.0_121).
Type in expressions to have them evaluated.
Type :help for more information.

scala>


2017年1月24日

パスワードを変更するには?(passwdコマンド)

パスワードを変更するには、passwdコマンドを実行します。


文字が乱れていますが、まず現在のパスワードを入力します。次に、変更したいパスワードを2回入力します。


これでパスワードが変更されました。

2017年1月23日

PHP5をインストールするには?

BoWのベースとなるUbuntu 14.04 LTSでは、採用されているPHPのバージョンは5系(5.5.9)です。ここでは、PHPの勉強をしたい、ちょっとPHPの動作を確認したいなど、手軽にPHPを取り扱えるよう、コマンドライン版のPHP5を利用する手順を紹介します。次のコマンドでインストールします。

$ sudo apt install php5-cli

バージョンを確認します。

$ php -v
PHP 5.5.9-1ubuntu4.20 (cli) (built: Oct  3 2016 13:00:37)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
    with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies

PHPスクリプトを用意し、phpコマンドの引数に指定すれば、実行した結果が出力されます。例えば、次のようなsample.phpを用意します。

<?php
  echo "Hello, PHP5!\n";
?>

実行してみます。

$ php sample.php
Hello, PHP5!

引数で直接PHPコードを試すには、-rオプションを指定します。PHPコードはシングルクォーテーション「'」で囲みましょう。また、「<?php」タグは書かなくてもOKです。

$ php -r 'echo "Hello, PHP5!\n";'
Hello, PHP5!

ビルトインWebサーバーを使うには、PHPスクリプト(例えばindex.php)を作成し、そのディレクトリで次のように指定します。

$ php -S localhost:8080 index.php

Webブラウザで「http://localhost:8080/」を指定し、ローカルホストの8080番ポートに接続すると、PHPスクリプトの実行結果が表示されるはずです。ポート番号は、1024番以上を指定してください。Ctrl+Cキーを押すとビルトインWebサーバーは停止します。




2017年1月22日

Vimの操作を練習するには?

VimはUnix系OSで広く使われている老舗のテキストエディタの一つです。慣れれば快適に使えますが、初心者にとっては敷居が高く感じられるようです。練習すれば必ず便利に扱えるようになるのですが、何も課題がないと練習もなかなか進まないでしょう。そんなときは、Vimのチュートリアルvimtutorを使ってみてください。ただし、標準のBoWでは日本語の表示が乱れてしまうため、Cmderなどのターミナルエミュレータで利用することをおすすめします。

日本語が文字化けしない環境でBoWを使うには?(Cmder編)

vimtutorコマンドを実行すると、次のような画面になります。



あとは画面の指示に従ってください。日本語が乱れてしまう箇所がありますが、数十分でひととおりの基本機能を体験することができるでしょう。もちろん、1回やっただけでは身につかないので、何度か繰り返しやってみることをおすすめします。

2017年1月21日

日本語が文字化けしない環境でBoWを使うには?(Cmder編)

現在のBash on Ubuntu on Windowsでは、日本語表示が乱れてしまうことが多々あることに加え、日本語入力もままなりません。手っ取り早い解決策としては、何らかのターミナルエミュレータをインストールし、そこからBoWを使う方法です。Windows用のターミナルエミュレータにはいろいろありますが、ここではCmderを使ってみます。

まず、CmderのWebサイトからCmderをダウンロードします。Cmderには、gitやUnixコマンドが含まれたfullバージョンと、それらが含まれていないminiバージョンがあります。UnixコマンドはBoWを使えばいいので、ここではminiバージョンをダウンロードし、展開します。

CmderのWebサイト


Cmder.exeを実行すると、次のような画面が開きますので、「Unblock and Continue」をクリックして進めます。



Cmderが起動します。ここで「bash」を実行するとBoWが使えるようになります。



Cmder起動時にBoWの環境にするには、ウィンドウ上部のタイトルバー上で右クリックし、コンテキストメニューの上から3番目にある「Settings...」をクリックします。次に、「Startup」の右下にある「Tasks」をクリックします。

「+」を押して新規のタスクを追加し、それぞれの欄にパラメータを入力します。




① bash::ubuntu(分かりやすい名前でかまいません)
② /icon"%USERPROFILE%\AppData\Local\lxss\bash.ico"
③ %windir%\system32\bash.exe ~ -cur_console:p

「Startup」をクリックし、「Specified named task」に、先ほど設定した「bash::ubuntu」を選びます。


「Main」をクリックし、「Monospace」のチェックを外します。最後に「Save settings」をクリックして設定を保存します。



これで次回Cmder起動時よりデフォルトでBoWが利用できます。

参考:Running Windows 10 Ubuntu Bash in Cmder



2017年1月20日

コマンドの実体を確認するには?

Linuxのコマンドには、いくつかの種類があります。

  • シェルに組み込まれたコマンドや関数=内部コマンド
  • 実行ファイル(バイナリファイル、シェルスクリプト)=外部コマンド
  • エイリアス

実行するコマンドがどれなのかを確認するには、typeコマンドを使います。それぞれの例として、echoコマンド、findコマンド、llコマンドを調べてみると、次のように表示されます。


2017年1月19日

コマンドの実行結果をすべて記録しておくには?

コマンドの実行結果をファイルに保存するには、リダイレクト(>や>>)を使います。しかし、これはコマンドラインが保存されません。どんなコマンドを実行したのかも含めて、すべての記録をファイルに保存するには、scriptコマンドを使います。

【書式】 script 保存ファイル名

次の例では、testlog.txtファイルに保存するようにして実行しています。記録を終了するには[Ctrl]+[D]を押します。


testlog.txtの内容はこのようになっています。


2017年1月18日

最新のNode.jsをインストールするには?

APTでNode.jsをインストールすると、バージョンは4.0.0となります。最新版はバージョン7.4.0、LTSは6.9.4です。公式サイトからバイナリをダウンロードしてもよいですが、nvm(Node Version Manager)を使った方がよいでしょう。

まずnvmをインストールします。gitコマンドが使えない場合は、先にgitパッケージをインストールしてください。

$ git clone https://github.com/creationix/nvm.git ~/.nvm
$ source ~/.nvm/nvm.sh
$ exec bash

これでnvmが使えるようになったはずです。利用可能なNode.jsのバージョンを確認します。

$ nvm ls-remote
        v0.1.14
        v0.1.15
        v0.1.16
        v0.1.17
        v0.1.18
(...)
         v6.9.3  ESC[0;37m (LTS: Boron)ESC[0m
         v6.9.4  ESC[1;32m (Latest LTS: Boron)ESC[0m
         v7.0.0
         v7.1.0
         v7.2.0
         v7.2.1
         v7.3.0
         v7.4.0

最新の安定版はv7.4.0です。これをインストールしましょう。

$ nvm install 7.4.0

以下の設定を ~/.bashrc ファイルに追記しておきます。

source $HOME/.nvm/nvm.sh


2017年1月17日

コマンドの実行にかかる時間を計るには?

timeコマンドを使うと、コマンドの実行にかかる時間を計ることができます。次の例では、hostコマンドの実行時間を計測しています。mは分、sは秒を表します。

$ time host 8.8.8.8
8.8.8.8.in-addr.arpa domain name pointer google-public-dns-a.google.com.

real    0m1.100s
user    0m0.016s
sys     0m0.141s

realコマンドの起動から処理の終了までにかかった実時間
userユーザーモードでのCPU処理時間(プログラムの処理時間)
sysカーネルモードでのCPU処理時間(OSの処理時間)

2017年1月16日

ホスト名からIPアドレスを調べるには?

ホスト名からIPアドレスを調べたり、IPアドレスからホスト名を調べたりするには、hostコマンドを使います。hostコマンドはDNSサーバーに問い合わせ、その情報を表示します。

$ host www.google.com
www.google.com has address 172.217.25.196
www.google.com has IPv6 address 2404:6800:4004:81a::2004

このように、引数にホスト名を指定すると、そのIPアドレスが表示されます。引数にIPアドレスを指定すると、ホスト名が表示されます。

$ host 8.8.8.8
8.8.8.8.in-addr.arpa domain name pointer google-public-dns-a.google.com.

Windowsと同様に、nslookupコマンドを使ってもかまいません。

$ nslookup www.google.com
Server:         8.8.8.8
Address:        8.8.8.8#53

Non-authoritative answer:
Name:   www.google.com
Address: 172.217.26.36

$ nslookup 8.8.8.8
Server:         8.8.8.8
Address:        8.8.8.8#53

Non-authoritative answer:
8.8.8.8.in-addr.arpa    name = google-public-dns-a.google.com.

Authoritative answers can be found from:

2017年1月15日

コマンド履歴を利用するには?

Bashでは、カーソルキー「↑」「↓」でコマンド履歴をたどることができます。「↑」を押すごとに履歴をさかのぼって表示します。「↓」

historyコマンドを実行すると、保存されているコマンド履歴の一覧が表示されます。左側は履歴番号です。

$ history
    1  ls
    2  ls /bin
    3  ls /tmp
    4  ls /lib
    5  ls -l /etc/services

(...)

  204  which ruby
  205  which xeyes
  206  which perl
  207  which python
  208  sudo apt-get update
  209  sudo vi /etc/hosts
  210  sudo apt-get upgrade
  211  vi .bashrc
  212  sudo apt install openbox obconf menu obmenu
  213  ls /etc/dbus-1/
  214  sudo vi /etc/dbus-1/session.conf
  215  sudo apt install xfce4-panel
  216  xeyes
  217  sudo apt install x11-apps

「!履歴番号」のように指定すると、指定した履歴番号のコマンドが再実行されます。

$ !204
which ruby
/home/north/.rbenv/shims/ruby

[Ctrl]+[R]を押すと、インクリメンタルサーチモードになります。文字を入力すると、入力した文字列にマッチするコマンド履歴が表示されます。文字を入力すればするほど絞り込める、というわけです。

(reverse-i-search)`apt ': apt show golang|less

インクリメンタルサーチ中に[Ctrl]+[R]を押すと、同じ文字列の候補を順に表示していきます。目的のコマンドが見つかったら、Enterキーで再実行できます。カーソルキー等で編集してから実行もできます。


2017年1月14日

SSHで接続するには?

ネットワーク経由で他のサーバーに接続してログインする際には、一般的にSSHが使われています。たいていのサーバーでは、SSHサーバーが稼働しているでしょう。SSHでログインするには、sshコマンドを使います。

【書式】 ssh [ユーザー名@]ホスト名またはIPアドレス

次の例では、northユーザーとして192.168.1.33のホストにSSHで接続します。この場合、接続先サーバーにnorthユーザーアカウントがあり、パスワードも知っている必要があります。

$ ssh north@192.168.1.33

ユーザー名を省略すると、現在作業中のユーザー名で接続します。

サーバーによっては、パスワードによるSSHログインを禁止し、公開鍵認証によるログインのみ許可しているでしょう。秘密鍵を配布されているのであれば、秘密鍵を~/.sshディレクトリ以下に配置します。秘密鍵ファイルが「id_rsa」であるなら、次のコマンドを実行します。

$ mv id_rsa ~/.ssh

これで公開鍵認証でログインできるはずです。接続すると、次のように秘密鍵のパスフレーズを尋ねられます。接続先パスワードではない点に注意してください。

$ ssh 192.168.1.33
Enter passphrase for key '/home/north/.ssh/id_rsa':  ← パスフレーズを入力

2017年1月13日

「ホストの名前解決ができません」エラーが表示されないようにするには?

sudoコマンドを使おうとすると、最初は次のようなエラーが表示されるはずです。



sudoコマンド自体は問題なく実行できますが、毎回表示されるのは厄介です。このエラーメッセージが表示されないようにするには、/etc/hostsファイルにホスト名(コンピューター名)を追記します。例えば、nanoエディタで/etc/hostsファイルを開くには、次のコマンドを実行します。パスワードは自分のパスワードを入力してください。

$ sudo nano /etc/hosts

1行目は次のようになっているはずです。



この末尾にホスト名(この例ではWIN10)を追記します。ホスト名は、BoWのウィンドウに「ユーザー名@ホスト名: ~」のように表示されています。



変更を保存して終了するには、
(1) [Ctrl]キーを押しながら[X]キー
(2) 「Y」キー
(3) Enterキー
の順番に押します。これでエラーメッセージが表示されなくなるはずです。

なお、名前解決とは、ホスト名からIPアドレスを求める(名前から値を求める)ことです。/etc/hostsファイルは、管理者がホスト名とIPアドレスの対応を記述するシステム設定ファイルです。「127.0.0.1」は自分自身を表すIPアドレスです。

2017年1月12日

C#をコンパイルできるようにするには?

C#でプログラミングしたければWindowsのVisual Studioを使うのがもっとも手軽でしょう。しかし、Linux上に.NET Framework互換の環境を実現するMonoをインストールすることで、BoWでもC#をコンパイルできるようになります。

Monoパッケージには、Ubuntuが配布する公式パッケージと、Monoの開発を進めるXamarinが配布するパッケージがあります。Xamarinパッケージの方が新しいバージョンを使えるので、ここではその方法を示します。

まず、MonoのWebサイトに掲載されている以下のコマンドを実行し、リポジトリを追加します。

$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
$ echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list
$ sudo apt-get update

これで準備ができましたので、mono-completeパッケージをインストールします。

$ sudo apt-get install mono-complete

ちゃんとインストールされたかどうか、確認します。

$ mono --version
Mono JIT compiler version 4.6.2 (Stable 4.6.2.16/ac9e222 Tue Jan  3 11:48:26 UTC 2017)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
        TLS:           __thread
        SIGSEGV:       altstack
        Notifications: epoll
        Architecture:  amd64
        Disabled:      none
        Misc:          softdebug
        LLVM:          supported, not enabled.
        GC:            sgen

C#のソースコードをコンパイルするには、mcsコマンドを使います。

$ mcs hello.cs

生成された.exeファイルは、以下のコマンドで実行できます。

$ mono hello.exe
Hello World!

2017年1月11日

root権限を利用するには?

Linuxにおける管理者権限を持つユーザーはrootユーザーです(WindowsのAdministrator)。しかし、Ubuntuではrootユーザーに切り替えて作業をすることを推奨していません。どうしても管理者権限が必要なときは、sudoコマンドを使います。

【書式】 sudo 管理者コマンド

sudoコマンド実行時にパスワードを求められます。このとき入力するのは自分自身の(現在作業中のユーザーの)パスワードです。rootユーザーのパスワードではありません(そもそもrootユーザーのパスワードは設定されていないはずです)。パスワードが正しければ、指定した管理者コマンドが実行されます。一度sudoコマンドを実行すると、5分間はパスワードの入力なしでsudoコマンドを使うことができます。

このようにしているのは、rootユーザーで作業を続けることによるリスクを低減するためです。ほんの少しの操作ミスでも、rootユーザーではシステムに致命的なダメージを与えてしまう恐れがあります。

なお、sudoコマンドに-iオプション(もしくは-sオプション)を指定すると、rootユーザーに切り替えることができますが、あくまでも自己責任で行ってください。

2017年1月10日

Ctrl+Dでログアウトしないようにするには?

BashはCtrl+Dキーが押されるとログアウトします。BoWを使っている場合、うっかりCtrl+Dを押してしまうとBoWのウィンドウが閉じて終了してしまいます。これを禁止するには、次のコマンドを実行します。

$ export IGNOREEOF=1

毎回コマンドを実行するのが面倒な場合は、~/.bashrcファイルの末尾に書いておくとよいでしょう。

環境変数IGNOREEOFに数値を指定すると、その回数だけCtrl+Dが無視されます。「IGNOREEOF=1」では、1度だけCtrl+Dを押すと、次のようなメッセージが表示されます。


もう一度Ctrl+Dを押すとログアウトします。

2017年1月9日

フォントを変更するには?

デフォルトのフォントは「MSゴシック」、サイズは「12」になっています。文字が細かくて読みにくい場合などは、フォントを変更してみてください。

フォントを変更するには、まずタイトルバーの上で右クリックし、表示されるコンテキストメニューから「プロパティ」を選択してください。

「フォント」タブを選択すると、フォントの種類とサイズを選択できます。


2017年1月8日

ウィンドウのサイズを変更するには?

ウィンドウは、デフォルトでは幅80文字、高さ25行の設定になっています。この文字数を変更すると、ウィンドウのサイズが変わります。タイトルバーの上で右クリックし、表示されるコンテキストメニューから「プロパティ」を選択してください。


「レイアウト」タブを選択すると、中ほどに「ウィンドウのサイズ」で幅と高さを入力できるようになっています。


なお「画面バッファーのサイズ」は、スクロールアウトしたエリアをどのくらい保存しておくかの設定です。「ウィンドウの位置」で数値を指定すると、スクリーン上の位置を固定することもできます。


2017年1月7日

Java 8(OpenJDK)をインストールするには?

BoWのベースとなっているUbuntu 14.04では、OpenJDKのバージョンは7です。8をインストールするには、まず以下のとおりリポジトリを追加します。

$ sudo apt-add-repository ppa:openjdk-r/ppa
$ sudo apt update

これでリポジトリが追加され、aptコマンドでopenjdk-8-jdkをインストールすることができます。

$ sudo apt-get install openjdk-8-jdk

バージョンを確認します。

$ javac -version
javac 1.8.0_111

なお、Java 8ではなくJava 7がいい、という場合は、リポジトリを追加する必要はありません。次のコマンドでインストールできます。

$ sudo apt-get install openjdk-7-jdk

2017年1月6日

直前の作業ディレクトリに戻るには?

cdコマンドでディレクトリを移動しながら作業をしていると、直前までいたディレクトリに戻りたくなる場合があります。そのようなときは、

$ cd -

とすると、直前のディレクトリへ移動します。2つのディレクトリを行ったり来たりしながら作業をする際に便利です。

2017年1月5日

Chipmunk Basicを使うには?

Chipmunk Basicは、macOS、Linux、Windowsで利用できるBASICインタープリターです。Ubuntuのパッケージはありませんので、公式サイトからダウンロードし展開します。ダウンロードするのは「Chipmunk Basic for Linux/x86-64」です。

あらかじめディレクトリを作っておきましょう。

$ mkdir Basic
$ cd Basic

ファイルをダウンロードし、展開します。

$ wget http://www.nicholson.com/rhn/files/cbas367b5-linux-x86_64.zip
$ unzip cbas367b5-linux-x86_64.zip

展開されるファイルは以下の4つです。

ファイル名説明
READMEReadme
basic実行ファイル(インタープリター)
basic.man.txtドキュメント
man/basic.1manページ用ファイル

対話的に利用するには

かつてのBASICと同じように、BASICインタープリターを対話的に利用するには、実行ファイルbasicを実行します。

$ ./basic
Chipmunk BASIC 367b5
>

行番号からはじまるプログラムを入力したり、「new」「list」「save」「load」といったコマンドを実行したりで来ます。終了するには「quit」です。


BASICプログラムを指定して実行するには

BASICのプログラムファイルを指定して実行するには、引数にファイル(~.bas)を指定します。

$ ./basic sample.bas
Hello, BASIC!
>


2017年1月4日

Go最新版をインストールするには?

BoWでAPTを使ってGo言語(golang)をインストールすると、デフォルトではバージョン1.2.1がインストールされます。最新版を使いたい時は、公式サイト( https://golang.org/dl/ )からLinux版をダウンロードしてきてインストールしましょう。

$ wget https://storage.googleapis.com/golang/go1.7.4.linux-amd64.tar.gz

解凍し/usr/localディレクトリ以下に展開します。

$ sudo tar -C /usr/local -xzf go1.7.4.linux-amd64.tar.gz

.bashrcファイルに次のコマンドを追加します。

export PATH=$PATH:/usr/local/go/bin

Bashを再起動するか「exec bash」コマンドを実行し、設定を反映させます。最後に、バージョンを確認してみます。

$ go version
go version go1.7.4 linux/amd64

2017年1月3日

Ruby最新版をインストールするには?

BoWでAPTを使ってRubyをインストールすると、デフォルトではバージョン1.9.3がインストールされます。

$ ruby -v
ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-linux]

ここでは、最新のバージョン2.3.3をインストールする方法を紹介します。

まず、Gitがインストールされていないのであれば、インストールします。

$ sudo apt install git

次に、rbenvをインストールします。rbenv(RuBy ENVironment)はRubyのバージョン・環境管理ツールです。複数のバージョンを切り替えて利用することができます。

$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv

設定を「.bashrc」ファイルに追加します。

export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"

ruby-buildをインストールします。ruby-buildは、さまざまなバージョンのRubyをコンパイルし、インストールするツールです(rbenvのプラグインです)。

$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build

コンパイルに必要なツールをインストールします。少し時間がかかります。

$ sudo apt install gcc build-essential libssl-dev libreadline-dev zlib1g-dev

ここでBashをいったん終了して再起動するか、次のコマンドを実行して設定を反映させます。

$ exec bash

いよいよRubyバージョン2.3.3をインストールします。かなり時間がかかります。

$ rbenv install -v 2.3.3

インストールできたら、rubyコマンドでバージョン2.3.3が使えるよう切り替えます。

$ rbenv local 2.3.3

Rubyのバージョンを確認してみます。

$ ruby -v
ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-linux]

2017年1月2日

画面をクリアするには?

「Ctrl」+「L」を押すと、端末の画面がクリアされ、プロンプトは1行目に表示されます。「clear」コマンドを実行しても同様です。シェルスクリプト内ではclearコマンドを使うとよいでしょう。

$ clear

2017年1月1日

インターネット上のファイルを取得するには?

インターネット上のファイルをダウンロードして取得するには、いくつかの方法があります。一つめはwgetコマンドを使う方法です。wgetコマンドがインストールされていない場合は、wgetパッケージをインストールします。

$ sudo apt install wget -y

wgetコマンドは、ダウンロードしたいファイルのURLを引数に指定して実行します。例えば、「http://lpic.jp/command.html」をダウンロードしたいのであれば、次のコマンドを実行します。

$ wget http://lpic.jp/command.html

二つめは、curlコマンドを使う方法です。curlコマンドがインストールされていない場合は、curlパッケージをインストールします。

$ sudo apt install curl -y

ダウンロードしたいファイルを引数に指定し、-oオプションで出力ファイルを指定します(出力ファイルを指定しないと標準出力に出力されます)。

$ curl -o command.html http://lpic.jp/command.html

リダイレクトを使ってもかまいません。

$ curl http://lpic.jp/command.html > command.html