タグ

shellに関するkoko1000banのブックマーク (35)

  • 本を読む 関数型言語shの基礎文法最速マスター

    関数型言語shの文法一覧です。他の関数型言語をある程度知っている人がこれを読めば、shの基礎をマスターしてshを書けるようになっています。以下、Clojureあたりを想定して説明します。 注意:これは基礎文法最速マスターねたのパロディです。動作は物ですが、意味はコジツケです。 REPL shの処理系は、POSIX準拠のUnix系環境であれば標準で用意されています。REPLを起動するには、shを実行します。 sh すると、プロンプトが表示されます。 $ shのほかに、REPLに行編集機能を付けたbash・zsh・tcshなどもありますが、ここでは割愛します。 なお、REPLとして使うほかに、あらかじめ用意したスクリプトをshで実行することもできます。 sh hoge シーケンス shの扱うデータは、すべて、ある単位(ラインと呼びます)のデータが並んだシーケンスです。たとえば、seq関数(L

  • shell-pop.el と ansi-term の設定 - mooz deceives you

    shell-pop.el + ansi-term 先日 shell-pop.el を導入し, その中で ansi-term を使うようにしてみた. 非常に軽快に動いてくれとても快適なのだけれど, ansi-term はデフォルトのままだとかなり癖があって使い辛い. そんなわけで, 自分好みにカスタマイズしてみることにした. 設定 (defvar my-shell-pop-key (kbd "C-t")) (defvar my-ansi-term-toggle-mode-key (kbd "<f2>")) ;; ============================================================ ;; ansi-term ;; ============================================================ (def

  • シェルのリダイレクトにまつわる失敗

    Landscape トップページ | < 前の日 2004-03-27 2004-03-28 次の日 2004-03-30 > Landscape - エンジニアのメモ 2004-03-28 シェルのリダイレクトにまつわる失敗 当サイト内を Google 検索できます * シェルのリダイレクトにまつわる失敗この記事の直リンクURL: Permlink | この記事が属するカテゴリ: [bash] シェルのリダイレクトについての理解が不十分なためにやってしまった失敗。 標準出力も標準エラー出力も /dev/null に捨てたいとき、間違えて以下のようにしてしまうことがときどきあった。最近はやらなくなったが。 # 間違い $ command 2>&1 >/dev/nullこれだと command の標準出力は /dev/null に向けられるが、command の標準エラー出力は画面に向いてし

  • [shell script][bash] 同じ入力で複数処理をしたい - いちいの日記

    たいした話ではないですが、何度も忘れて書けなくなるのでメモ。 ある入力に対して複数の処理をしたいとき、入力がただのファイルだったら、まあcatを2回やりゃあいいんですが、プログラムの出力だったり、ファイルが圧縮されててbzcatしなきゃいけなかったりだとちょいと面倒です。入力の量がたいしたことなければいったんメモリに書いてあげればよくて、多くて大変だったら一時ファイルに書いてあげれば(その後の試行錯誤も見越すと)いいかと。 とはいうものの、ワンライナーでさくっとやってしまいたいときに、ゴミファイルが散乱するのも気持ち悪いので、pipe(2)してdup2(2)して楽をしたいですよね。というかほんとに楽できてるのかな? と思ったので、軽く調べてみました。 お題 1から10,000,000までの数字のうち、123と456を含むものの数を求めよ。 fizz buzzにしようかと一瞬思ったけど、ぜん

    [shell script][bash] 同じ入力で複数処理をしたい - いちいの日記
  • 任意のプログラムを実行するとき開始/終了時のタイムスタンプを出力する方法 - http://rubikitch.com/に移転しました

    [update] <2010-03-30 火> シグナルで終了したときには、プロセスオブジェクトを表示してみた。 任意のRubyスクリプトを実行するとき開始/終了時のタイムスタンプを出力する方法 - 今日もスミマセン。はたしかに便利なのだが、わざわざRubyスクリプトに限定する必要はない。 次のようなスクリプトにしてしまえば、任意のプログラムのタイムスタンプを出力することができる。ついでに終了ステータスと経過時間も出力してみた。timestampという名前で保存する。 #!/usr/local/bin/ruby191 start_time = Time.now cmdline = ARGV.join ' ' $stderr.puts "-" * 60 $stderr.puts "#{Time.now} start: #{cmdline}" $stderr.puts "-" * 60 sys

    任意のプログラムを実行するとき開始/終了時のタイムスタンプを出力する方法 - http://rubikitch.com/に移転しました
  • シェルの処理順序 - はてブロ@ama_ch

    詳解 シェルスクリプト 作者: Arnold Robbins,Nelson H. F. Beebe,日向あおい出版社/メーカー: オライリージャパン発売日: 2006/01/16メディア: 大型購入: 6人 クリック: 193回この商品を含むブログ (37件) を見る 今読んでる詳解シェルスクリプトにシェルの処理順序が詳しく書いてあり、とっても参考になったのでメモしておきます。 p.176 7.8 処理の順序とevalコマンド より 標準入力やスクリプト中の各行からシェルへと読み込まれる1行分のデータを、パイプラインと呼ぶ。パイプラインには1つまたはそれ以上のコマンドが記述され、それぞれの間にはパイプ記号(|)やその他の記号(;, &, &&, ||)が記述される。シェルは読み込んだパイプラインをコマンド単位に分割し、それぞれについて以下の順に処理を行う。 スペース、タブ、改行、;、(、

    シェルの処理順序 - はてブロ@ama_ch
  • Emacs でシェルを好きな時に呼び出す その 4 - 8tree にっき

    前回に続き内部で shell じゃなくて ansi-term や eshell を使いたい人向けに以下の機能を追加した。また使えるシェルも選択できるようにした。これでこのシリーズはひとまず終わりの予定。(^_^; ■EmacsWiki http://www.emacswiki.org/emacs-en/ShellPop ■Elisp http://www.emacswiki.org/emacs/shell-pop.el ■追加機能 - shell, terminal, ansi-term, eshell どれでも好きなのを使えるように修正。設定インタフェイス関数として shell-pop-set-internal-mode を追加。 - bash, zsh, tcsh どれでも好きなのを使えるように修正。設定インタフェイス関数として shell-pop-set-internal-mode-

    Emacs でシェルを好きな時に呼び出す その 4 - 8tree にっき
  • Emacs でシェルを好きな時に呼び出す その 3 - 8tree にっき

    追記:より使いやすいように修正しました。こちらが最終版です。 前回に続き、さらに以下の 3 点を修正してみた。 ■修正点 1. リファクタリングを実施し、関数を 3 つに分割。インタフェイス関数名を shell-pop に変更。 2. *shell* バッファを映しているウィンドウから移動した際に再度関数を呼ぶと新たにウィンドウを作成してしまっていたので、その場合既存の *shell* バッファに移動するように修正。 3. *shell* バッファの高さの計算方法が間違っていたので修正。また高さ調節のためのインタフェイス関数 shell-pop-set-window-height を新規に作成。 ■実装 ;;; shell-pop.el --- pop up and out shell buffer on the bottom of the window. (defvar shell-po

    Emacs でシェルを好きな時に呼び出す その 3 - 8tree にっき
  • Emacs でシェルを好きな時に呼び出す その 2 - 8tree にっき

    追記:より使いやすいように修正しました。こちらが最終版です。 荒削りだった前回の以下の 2 点を修正してみた。 ■修正点 1. フレームが複数のウィンドウに分割されていた場合、トグル後に全ウィンドウを削除してひとつにしてしまっていたので、元のウィンドウ/元のバッファを保持するように修正。 2. *shell* バッファの高さが 50% 固定だったのを調整できるように修正。変数 my-shell-buffer-height に% で与える。デフォルトは 10%。 ■実装 (defvar my-shell-buffer "*shell*") (defvar my-last-buffer nil) (defvar my-last-window nil) (defvar my-shell-buffer-height 10) ; percentage for shell-buffer window

    Emacs でシェルを好きな時に呼び出す その 2 - 8tree にっき
  • Emacs でシェルを好きな時に呼び出す - 8tree にっき

    追記:より使いやすいように修正しました。こちらが最終版です。 エディタで文章を編集している時は、それに意識を集中させ分散させたくないものだ。とはいえその最中でも何らかの用事をシェルに頼まなくてはいけないことがある。shell-mode や term-mode に切り替えてコマンドを打つのはいいのだけれど、バッファ切り替えによる集中力のオーバーヘッドをなるべく減らせないかと思った。 ■要求 - 文章を編集している時にはウィンドウを他のことに使いたくない。画面リソースは貴重だ。 - 時折シェルは打つ必要があるんだけど、集中は切らせたくない。簡単に切り替えたい。 ということで、この要求を満たすような機能を作成し、インタフェイスとして CapsLock キーをホットキーにしてトグルで呼び出せるようにしてみた。好きな時に *shell* バッファを呼び出してコマンドが打てるようになり、用事が済んだら

    Emacs でシェルを好きな時に呼び出す - 8tree にっき
  • getopts - コマンド "getopt", "getopts" の使い方を把握する - spikelet days

    目的 "getopt"は、Cライブラリもコマンド版も、どちらも使い方を覚えにくい。 ここでは、コマンド版 "getopt" と、sh/bash built-in の "getopts" の使い方をまとめる。 結果 sh/bash built-inのgetoptsが使える場合は、そちらを使った方が良い。 外部コマンド getopt 使用時は、クォート処理に気をつける。 速度的には、getoptとgetoptsどっちでも大して差はない。 getopts.sh https://sssvn.jp/svn/spikelet/sh/getopts.sh getopt-o.sh https://sssvn.jp/svn/spikelet/sh/getopt-o.sh 以下、詳細。 getopt を使う(クォート考慮なし) getopt(1)を参考にしつつ、素直に作成。 getopt.sh https:/

    getopts - コマンド "getopt", "getopts" の使い方を把握する - spikelet days
  • bashの設定ファイルの読み込みが複雑すぎて混乱する - ぱせらんメモ

    /etc/profileとか~/.bash_profileとか~/.bash_loginとか~/.profileとか~/.bashrcとか多すぎてわかんねーよヽ(`Д´)ノ というわけで、調べてみた。 ディストリビューションによって若干異なったりするかもしれない。 ログイン時 /etc/profile ↓ (/etc/bash.bashrc) ※Debian系 ↓ ~/.bash_profile (ない場合)↓ ↓ ~/.bash_login (ない場合)↓ ↓ ~/.profile ↓ ↓ ~/.bashrc ←←←←←←←←←←←←←←←←←← ↓ (/etc/bashrc) ※RedHat系 まず/etc/profileが読み込まれる。 また、最近のディストリビューションだと/etc/profileの中で/etc/profile.dの中身を読み込むような設定がされていたりもする。 D

    bashの設定ファイルの読み込みが複雑すぎて混乱する - ぱせらんメモ
    koko1000ban
    koko1000ban 2009/03/13
    よく忘れる設定ファイルの読み込み順
  • 電子書籍.club - 

    This webpage was generated by the domain owner using Sedo Domain Parking. Disclaimer: Sedo maintains no relationship with third party advertisers. Reference to any specific service or trade mark is not controlled by Sedo nor does it constitute or imply its association, endorsement or recommendation.

  • シェルのコマンド履歴から再利用、のいろいろ - 元RX-7乗りの適当な日々

    覚えていると、たまに便利かもしれない"bash"のコマンド履歴の展開に関する技を、例を交えながらまとめてみました。 最後にも書きましたが、他にもたくさんありますので、色々試してみてください。 直前に実行したコマンドを実行 "!!"コマンドで、1つ前に実行したコマンドを再度実行できます。 $ ls -l 合計 0 -rw-rw-r-- 1 rx7 rx7 0 2009-02-26 02:20 test $ !! ls -l 合計 0 -rw-rw-r-- 1 rx7 rx7 0 2009-02-26 02:20 test n個前に実行したコマンドを実行 "!-n"コマンドで、n個前に実行したコマンドを再度実行できます。 例えば、以下の例では、"!-2"とすると、2個前に実行したコマンドを実行しています。 $ ls test $ ls -l 合計 0 -rw-rw-r-- 1 rx7 rx7

    シェルのコマンド履歴から再利用、のいろいろ - 元RX-7乗りの適当な日々
  • Linux/Unix のシェルで高速タイピングをするためのTips | フッ君の日常

    当たり前すぎて、だれも書かないシリーズ。 Linux/Unix のシェルでは、Ctrl+何かのキー という組み合わせで、ホームポジションから手を離さずに、各種の入力を行うことができる。この辺がまとまってる記事をあまり見たことが無いのでまとめてみた。bash と zsh で確認 (Bourne系は共通?)。Emacs と共通したキーバインドが多い。 カーソルCtrl + f => カーソル右 (Forward)Ctrl + b => カーソル左 (Back)Ctrl + p => カーソル上 (過去に入力したコマンドの表示、Previous)Ctrl + n => カーソル下 (Next)Ctrl + a => 行の先頭に移動 (a はアルファベットの最初の文字)Ctrl + e => 行の最後に移動 (End) 特殊キーCtrl + i => TAB (コマンドの補完)Ctrl + j =

    Linux/Unix のシェルで高速タイピングをするためのTips | フッ君の日常
  • eshell で grep したら便利だった - 僕ト云フ事@はてな出張版

    emacs の eshell で grep かけたら 結果が別 buffer に開く。 後は dired モードみたいに開きたい行にフォーカスしてエンターでそのファイルが開ける。 知らんかった。

  • Copy/Cut/Paste:【Emacs】term-modeでshellを活用する。

    最近、Emacsの環境の見直しをしていてまだまだ拡張できるなあと思っていたのだけれども、shellだけはついついC-zでsuspend-emacsをしてbashを直接触っていた。 というのもshell-mode(M-x shell)が使いづらかったというのが理由で、若干あきらめていた。 そしたらArielの松山さんの発言。 「そもそもsuspend-emacsする時点でEmacsenとして負けです。」 ぐはっ! 効いた。かなりぐさっときた。 「Emacsは単なるエディタではない。統合環境だ。」とよく言われるように、自分もIRCTwitterEmacs上で触れている。 こういうところがEmacsで面白いところ。 だけれども肝心のshellは使いこなせていなかった。C-zとfgを行き来していた。負けてた。 そしたらtermというのがあるらしいことを発見。Emacs21でもデフォルトで入って

  • lookup

    term ansi term what? term-4.0.el です. こちらで見つけてきました. 一言で云うと, shell-mode と terminal-emulator を足して 2 で割った感じか な. 何がスゲーかとゆーと, エスケープシーケンスを解し ls の結果が色付で見えるの であります. もうサイコーでしょ. 準備 いろいろ機能をカスタマイズしたいので, まず起動時に term.el を読み込んどくように してください. たとえばこう (require 'term) (load "my-term-init") autoload ではダメです. 必ず require か load で読みま しょう. これに限らず, カスタマイズしたい elisp は先に必ず読み込まれているという 保証がないと, 「defun したのに変ってないよー」と独りで悩むことになります.

  • GT Nitro: カーレーシング・ドラッグレーシングゲーム - Google Play のアプリ

    GT Nitro: Car Game Drag Raceは、典型的なカーゲームではありません。これはスピード、パワー、スキル全開のカーレースゲームです。ブレーキは忘れて、これはドラッグレース、ベイビー!古典的なクラシックから未来的なビーストまで、最もクールで速い車とカーレースできます。スティックシフトをマスターし、ニトロを賢く使って競争を打ち破る必要があります。このカーレースゲームはそのリアルな物理学と素晴らしいグラフィックスであなたの心を爆発させます。これまでプレイしたことのないようなものです。 GT Nitroは、リフレックスとタイミングを試すカーレースゲームです。正しい瞬間にギアをシフトし、ガスを思い切り踏む必要があります。また、大物たちと競いつつ、車のチューニングとアップグレードも行わなければなりません。世界中で最高のドライバーと車とカーレースに挑むことになり、ドラッグレースの王冠

    GT Nitro: カーレーシング・ドラッグレーシングゲーム - Google Play のアプリ
  • オレのメモ シェル fish を試した

    巷で話題かどうか知らないけれども、 新しいっぽいシェル、fish を Linux 上で試してみた。 参考 http://fishshell.org/ http://ja.wikipedia.org/wiki/Friendly_interactive_shell 感想 ○ 実行可能コマンドだと色が変わってわかりやすい ○ Tab で候補が色分けされて出る、しかも説明付き ○ オプションまで出てすごい見やすい、またまた説明付き × 候補表示が重い、数は少ないのに表示まで3秒ぐらいかかることも × 以前のシェルスクリプトに対し、色々互換が無い 設定 ~/.config/fish/config.fish が設定ファイルの模様。 色んなタイミングで読み込まれるっぽい。 (if status --is-login みたいな記述もあるため) 以下をとりあえず設定。 しばらく使ってみよう。 config.