と言われてしまいます。 どうやらMacにはstandard shellというものがあるらしく、 それは/etc/shellsファイルで指定されているようです。 そこで、'/etc/shells'ファイルにMacportsからインストールした zshのPATHを追加してあげることにします。 /etc/shells
Scsh is an open-source Unix shell embedded within Scheme, running on all major Unix platforms including AIX, Cygwin, Linux, FreeBSD, GNU Hurd, HP-UX, Irix, Mac OS X, Solaris, and some others. Scsh is a variant of Scheme 48 (an R5RS compliant new-tech Scheme system) Scsh is designed for writing real-life standalone Unix programs and shell scripts. Scsh spans a wide range of application, from “scrip
「Java BlockingQueueで遊ぶ:パイプラインごっこ」でパイプラインの話をしたので、本来の、つまりUnixのパイプやリダイレクトを少し調べてみました。 たまに話題となる some-command >file 2>&1 と some-command 2>&1 >fileの挙動の違いについて、「シェルはコマンドラインリダイレクトの指定を右から左に解釈実行する」なんて説明が見つかりました。んなバカな! パージングは左から右にするものですよ。パーズツリーを逆順にたどることはできるけど、そんなことする必然性はなんにもないよ。 次の記事を読むと、「右から左」なんて事情じゃないことが分かるでしょう。 UNIXの部屋 検索: リダイレクト シェルのリダイレクトにまつわる失敗 さてここでは、複雑なリダイレクト処理も完全に理解できる処方箋を示しましょう。例えば、次のコマンドラインが何をするか分かる
シェルスクリプトで標準入力を加工する際に若干ハマリかけたので、今回はそのお話をしたいと思います。 みなさんのシェルスクリプトライフの一助になれば幸いです。 標準入力を加工するシェル関数、例えば、 入力を本文とするメールを送るシェル関数 ログを入力として受け取り、集計や解析をするシェル関数 を書く場合、みなさんどういう風に書いているでしょうか。 私は今までこんな風に書いていました… send_mail() { from='sender@example.org' to='receiver@example.org' { echo "From: ${from}" echo "To: ${to}" echo "Subject: test" echo cat - } | qmail-inject -A -f${from} } make_mail_body | send_mail これの何が問題かという
Bash is the default command-line shell on most Linux distributions, from Ubuntu and Debian to Red Hat and Fedora. Bash is the default command-line shell on Linux, macOS, and most WSL Virtual Machines. It features various keyboard shortcuts for managing processes, controlling the screen, moving the cursor, deleting text, fixing typos, cutting and pasting, capitalizing characters, and using tab comp
Named Directory という機能があるらしい。 やり方は簡単で、 hash コマンドの -d オプションを利用する。 hash -d 名前=ディレクトリパス 以後、cd ~名前 で移動できるようになる。 たとえば以下のようにすると、 % hash -d test=/usr/local/src こんな感じで移動できるようになる。 % cd ~test ~test% # ここはプロンプトの設定にもよる ~test% pwd /usr/local/src ちなみに、 setopt auto_cd としておくと、 もっと簡単に移動できる。 % ~test ~test% 追記: どうも、hash -d でなくともよく 実際には任意の変数に cd ~変数 とすることでその変数の文字列が指すパスに 移動することが出来るようだ。 したがって、変数なら何でも良いので % src=/usr/loca
すごい便利なのを見つけてしまった。 これはいい。 ESC + " と入力する事で、 カーソル位置までをエスケープする事が出来るみたいだ。 たとえば、以下のように文字列を入力した状態で、 $ hello world hello の o の次の位置で ESC + " と入力すると $ 'hello' world とシングルクォートで囲ってくれる。 複数回入力する事で、 $ ''\''hello'\''' world どんどんエスケープしていく。 ESC + $ でこの逆を行う。 $ 'test test' $ test test
Esc + ドット(.) と入力すると、 直前に入力したコマンドの最後の引数を補完してくれる。 複数回入力する事によって、 過去にどんどんさかのぼっていく。 追記: ブックマークコメントにも書かれてますが、 Esc は、正確には Meta キーです。 さらに追記: 他にも、色々あるようで、 id:hiboma さんの以下のページに非常に詳しく書かれています。 http://d.hatena.ne.jp/hiboma/20061005/1160015116
これは、決して顔文字ではなく ヒストリ置き換えというシェルの機能です。 前、上司が使ってるのをみて かっこいいなぁと思っていました。 自分の勉強のためにもメモ。 $ ^from^to の形式で入力することによって、 直前に実行したコマンドの from という文字列を to に置き換えた後で実行することができます。 以下は例です。 直前に編集していた test.txt というファイル名を sample.txt に置き換えて直前のコマンドを実行しています。 $ vi test.txt $ ^test^sample # sample.txt の編集モードへ移行する。 これだと便利さがわからないですが、 もうちょっと長かったときとかは便利かもしれません。 $ vi /usr/local/apache2/conf/httpd.conf $ ^httpd^backup ただ、viとか なら全く問題ない
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く