押さえておきたい変数あれこれ

まだ記述途中〜
pre記法?のzsh、やけにカラフルで逆に見難いような:(

シェル変数

シェルが内部で保持している変数であり、子プロセスには引き継がれない。

設定

$ shell_var="shellvar"

削除(変数そのものを削除する)

$ unset shell_var

シェル変数の一覧を表示

$ set

環境変数

環境変数は子プロセスに引き継がれる。
環境変数は慣例として大文字で記述する。

設定

$ ENV_VAR="envvar" #<= この時点ではシェル変数
$ export ENV_VAR   #<= exportにより環境変数となる
$ export ENV_VAR
$ ENV_VAR="envvar"
$ export ENV_VAR="envvar"

削除

$ unsetenv ENV_VAR

環境変数の一覧を表示

$ env

環境変数に関するtips

1. 一度exportされた変数はunsetするまで環境変数であり続ける

$ echo $LANG
ja_JP.utf8
$ date
$ LANG=C
$ bash     #<= 子プロセス
$ date     #<= 親プロセスで変更された環境変数(LANG=C)を引き継いでいる

2. commandを実行するときだけ一時的に環境変数を設定

$ varname=value command
$ date
$ LANG=C date
$ date

#!行で見かけるenvってなんだ?

#!/usr/bin/env ruby

#!*1行により、スクリプトをコマンドのように実行することが出来る。
しかし、#!行は絶対パスで記述する必要があるために実行環境が異なるとrubyコマンドを実行出来ない可能性がある*2
そこで、実行環境に依存せずrubyコマンドを実行させるためにenvコマンド*3を用いる。
envコマンドでrubyコマンドに環境変数(実行環境のPATH)をセットすることにより、実行環境が異なる場合でもrubyコマンドを実行することが可能となる。

そうそう、#!行では1つしかオプションを使えない、らしい。

#!/usr/bin/env ruby -Ke

とは指定出来ないとかとか。

*1:shebang

*2:rubyコマンドのPATHが/usr/binであるとは限らない

*3:実行するコマンドに環境変数を一時的にセットするコマンド

RubyGems nicovideo ニコニコ動画

$ gem search --remote nicovideo                                                                                                             
*** REMOTE GEMS ***
nicovideo (0.1.1, 0.1.0, 0.0.6, 0.0.5, 0.0.4, 0.0.3, 0.0.2, 0.0.1)
    utils for nicovideo
$ sudo emacs /etc/portage/package.keywords
 #dev-lang/ruby ~x86
   dev-ruby/mechanize ~x86  # required by $ gem install nicovideo
    dev-ruby/hpricot ~x86
$ sudo emerge -av dev-ruby/mechanize
$ gem install nicovideo
$ emacs ~/.nicovideo/account.yml
  mail: "Your E-MailAddress"
  password: "Your PassWord"

RubyGems 使い方 メモ

RubyGems の使い方 - WebOS Goodiesを参考に簡素化しまんた。
詳細はこちらのサイトをご覧下さい。

Gentooでgemる場合はdev-ruby/rubygemsをインストールでおk.
Rubyのパッケージ管理システムなのにdev-lang/rubyの依存関係でインストールされないのね。
まあいいや。ということで、

$ sudo emerge -av rubygems

以下、<>は必須、[]は任意となっております。

検索

パッケージを検索するよ!

$ gem search --remote <pattern>

システムにインストールされているパッケージ検索

$ gem search

パッケージに含まれるファイル一覧取得

$ gem contents <package>

インストール

パッケージインストール

$ gem install --remote <package>

更新

更新が必要なパッケージ一覧取得

$ gem outdated

パッケージ更新([package]を指定しないと、全てのパッケージを更新する)

$ gem update [package]

古いバージョンを削除([package]を指定しないと古いバージョン全てを削除する)

$ gem cleanup [package]

アンインストール

パッケージアンインストール

$ gem uninstall <package>

日本タイル

日本タイル型ウィンドウマネージャ推進委員会 Wiki - 日本タイル型ウィンドウマネージャ推進委員会 - OSDN
awesome可愛いよawesome

$ sudo emacs /etc/portage/package.keywords
   x11-wm/awesome ~x86
    dev-libs/confuse ~x86
$ sudo emerge -vp awesome

メモ

* Messages for package dev-util/cmake-2.4.6-r1:
 * Site-initialisation files of Emacs packages are now installed in
 * /usr/share/emacs/site-lisp/site-gentoo.d/. You may consider using
 * /usr/sbin/emacs-updater to rebuild the installed Emacs packages.
 * However, the old location is still supported.