MacOSX の shell でいろいろのメモ
あとで整理する予定
MacOSX というか bash でいろいろ。
- PATH の追加について
- ファイルのパーミッション(実行権限)の変更について
- shutdown コマンドについて
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でのリダイレクト - コード溜め
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 で確認する。
追記(2010/06/06)
Wikipedia にも詳しく解説が載っていた。
chmod - Wikipedia
http://ja.wikipedia.org/wiki/Chmod
パーミッションの操作 - [物理のかぎしっぽ]
http://hooktail.org/computer/index.php?%A5%D1%A1%BC%A5%DF%A5%C3%A5%B7%A5%E7%A5%F3%A4%CE%C1%E0%BA%EE
chmod - ファイルのアクセス権の変更 - 会津大学UNIXウィキ
http://technique.sonots.com/?UNIX%2F%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%2F%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E7%AE%A1%E7%90%86%2Fchmod
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