MacOSX の shell でいろいろのメモ

あとで整理する予定
MacOSX というか bash でいろいろ。

  • PATH の追加について
  • ファイルのパーミッション(実行権限)の変更について
  • shutdown コマンドについて
現在 PATH に登録されているディレクトリを確認
echo $PATH
printenv PATH

どちらでも大丈夫みたい。

PATH にディレクトリを追加
export PATH=追加するディレクトリ名:$PATH

bash の場合は上記の書式で設定する。shell の種類によって書式は異なるらしい。

echo "export PATH=/usr/local/bin:$PATH" > .bash_profile
追記(2010/06/06)

> だとファイル(今回は .bash_profile)を上書きすることになり、下記のように >> だとファイルに追記になるとコメントで教えてもらった。次からは >> を使おう。

echo "export PATH=/usr/local/bin:$PATH" >> .bash_profile

参考にした情報

パスに新しいディレクトリを追加するには

http://www.atmarkit.co.jp/flinux/rensai/linuxtips/035addnewpath.html

sh/bashでのリダイレクト - コード溜め

  1. コマンド > ファイル 標準出力を上書き
  2. コマンド >> ファイル 標準出力を追記
http://blog.goo.ne.jp/techu1999/e/459763b6187930634b92b2c12691d418

【 リダイレクトの使い方 】 - Linuxコマンド逆引き大全:ITpro

http://itpro.nikkeibp.co.jp/article/COLUMN/20060228/231012/
ls コマンドのオプション
ls -a 

オプション -a をつけると不可視ファイルを含めた全てのリストを表示する

ls -l 

オプション -l をつけるとサイズ、作成日、ファイル属性(実行権限)など詳細情報を含めて表示する

実行権限の変更について
chmod 755 ファイル名

とした。

chmod u+x ファイル名

確かこういう風に書いてあるサイトもあったけれど試していない。
変更が出来ているかどうかを ls -l で確認する。

shutdown コマンドについて
shutdown -h now

今すぐシステムをシャットダウン

shutdown -r +3

3分後にシステムをリブートする

shellscript にする
#!/bin/sh

sudo shutdown -h now

これを shutdown.sh というファイル名で保存して、PATH の通ったディレクトリに置くと、shell からすぐに実行できる。

参考にした情報

shutdown システムをシャットダウンする

http://x68000.q-e-d.net/~68user/unix/pickup?shutdown
less コマンド

PATH の追加について調べている際に「現在の設定を確認する」というような文脈で less コマンドが使われていたので、less が何か知らないまま見よう見まねで入力。(詳細は忘れた)
Terminal の表示が少し変わって、表示した内容の最後に END とか出ているけれど、プロンプトが表示されない(元の状態に戻れない)ので困った。ESC 押してもだめ、そうだ Ctrl - z だ、と思いついて入力したらもとに戻った。
と思いきや戻っていなかったようで、別件で Terminal を再起動しようとしたら、下記のようにメッセージが出てきて再起動できない。

There are stopped jobs.

Ctrl - z は less コマンドの job を終了させたのではなく、バックグラウンドに回して停止させていたということらしい。

バックグラウンドで停止している処理が残っています。Cシェルを使っているときは、 [ctrl]+[z]で画面に表示している処理をバックグラウンドに回して停止することができます。ある処理を実行中に ちょっと別の処理をしたい、というときに便利な機能ですが、バックグラウンドの処理をそのまま放ったらかして ログアウトしようとすると、このようなメッセージが出てきます。 バックグラウンドの処理をフォアグラウンドに持ってきたいときは、fgコマンドを使います。 これで、停止中の処理を終了させてください。

http://www.tokaido.co.jp/syoko/qa/logina.htm

fg を入力すると、先ほどの less コマンドの画面が表示される。less の終了の仕方について調べたところ q とか :q とか :Q とか入力すればよいとのこと。無事に解決した。

UNIXの部屋 コマンド検索:less (*BSD/Linux)
最初に使うときは

  • q で終了 (more と違って、less はファイルの最後に到達しても終了しない)
  • カーソルキー・Ctrl-p・Ctrl-n で上下スクロール
  • <・>で先頭行・最終行に移動
  • / で検索 (正規表現として扱われる)

ということを覚えておくとよい。

http://x68000.q-e-d.net/~68user/unix/pickup?less

他にも jobs コマンドで残っている job を把握して、 ps コマンドでプロセス id を調べて、 kill コマンドでそのプロセス id を指定して終了させるという方法もあるらしい。

FAQs on Psych. computer usage

http://www.psy.senshu-u.ac.jp/man/logout.html