Indexed and Searchable Saves context like exit status and directory Support for Bash and Zsh with a sweet cli for everything
はじめに 面接官「ほう。得意な言語はPerlですか」 学生「はい!」 面接官「では、10000までの素数を出力してください」 学生「system "seq 2 10000 | factor | awk 'NF == 2' | cut -d: -f1"」 面接官「げぇっ シェル芸人」 — ぐれさん (@grethlen) February 27, 2014 面接官「ほう。得意な言語はPerlですか」 学生「はい!」 面接官「では、10000までの素数を出力してください」 学生「system “seq 2 10000 | factor | awk ‘NF == 2’ | cut -d: -f1″」 面接官「げぇっ シェル芸人」 まあ!素敵! あら?Perl でと出題されていますのに、シェルで解答なさっていらっしゃるようですわね。それで、面接官が「げぇっ」となってしまいましたのね!面白いですわ♪
UNIXやLinuxのエキスパートになるのに避けて通れないのが、Bashに代表されるコマンドラインシェルによる操作だ。そこで本記事では、「Bashのカスタマイズ」「シェルスクリプトの高等テクニック」「Bash以外の高機能シェル」の3つについて、SourceForge.JP Magazineで過去に掲載された解説記事を紹介する。 Bashをカスタマイズして使いこなす Bashは非常にカスタマイズの幅が広く、またちょっとした改良や簡単なシェルスクリプトの利用により、大きく作業効率が改善する。ここでは、Bashのカスタマイズテクニックを解説する記事を紹介する。 コマンドラインでシェルのエイリアスと関数を使って作業を効率化する GNU/Linuxシステムを最大限に活用するには、やはりコマンドプロンプトとシェルスクリプトへの習熟が欠かせない。とはいえ、そうした処理はなるべく手早く済ませたいものだ。本
2009年05月13日13:30 カテゴリiTech findを極めたかったら、statを押さえよ find(1)ねたというのは、定期的にblogosphereを賑わせるものだし、それはそれでよいし、私自身いくつか書いているのだけど.... findを極める! - IDEA*IDEA 〜 百式管理人のライフハックブログ 〜 タグ「find」を含む新着エントリー - はてなブックマーク 404 Blog Not Found:perl - the best friend of find(1) 404 Blog Not Found:勝手に添削 - find(1) さすがに何年もblogosphereにいると、いいかげん見飽きてくる。ましてや「極めたい」ともなると、findばっか見ていても絶対無理なのだし。 というわけで、findとは何かを改めて説明したあと、その背後にあるstatを抑えてみること
ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは、ショッピング事業部開発部の吉野です。 Yahoo!ショッピング開発部では新人エンジニア向けにコマンドのソースコードを読むことを奨励しています。 その初期の題材として、lsコマンドがよく挙げられます。 今回は「lsコマンドをハックしてみよう」と題し、lsコマンドについてお話しさせていただきます。 突然ですがエンジニアの皆さん、lsコマンドのソースコードを読んだことはありますか? 読んだことのない方はぜひ一度、目を通しておくことをおすすめします。 意外と知られていませんが、lsはcd,pwdなどのコマンドと違いシェルの組み込みコマンドではありません。 一口にlsと言っても、複数のソースコードが存在します。 代表的なのはGN
CoreutilsはcatやlsといったUNIX上の基本的なコマンドを集めたGNUのパッケージである。これをMacPortsからインストールしたからGNUのコマンド群が使えるようになるぞ、と思っているとハマることになる。Coreutilsを普通にインストールしても、「ls」はインストールされないのである。 % port file coreutils /opt/local/var/macports/sources/rsync.macports.org/release/ports/sysutils/coreutils/Portfile <- coreutilsはインストールされている % ls --help ls: illegal option -- - <- GNUのlsではない usage: ls [-ABCFGHLPRSTWabcdefghiklmnopqrstuwx1] [file .
しばらく前から、コマンドの終了ステータスをプロンプトの色に反映させるようにしている。 終了ステータスとは C言語なら int main(int argc, char* argv[]) { ... return 0; } この return している 0 が終了ステータス。この整数値の下位 8bit がプロセスの終了時に親 (そのプロセスを起動したプロセス) にわたる。 終了ステータスの指定方法はいろいろある。C言語の場合 main 関数の戻り値以外にも exit 関数の引数でも指定できる。Ruby, Perl の場合、そもそも main 関数は無くて exit 関数に引数を与える方法だけがつかえる。 この値はシェル上で $? で参照できる。 % perl -e 'exit(0xdead)'; echo $? 173 % 慣例として、正常終了のときは 0 を返すことになっている。 % ls
「エディタで保存すると自動で実行」な環境をさくっと作ります。 新しい言語の勉強中や、ちょっとしたCUIアプリを作るとき、他人のマシンを借りて開発するときなどに。 Windows用 ruby -e "fn,cmd=ARGV;loop{system 'cls';system cmd;l=File.mtime(fn);sleep 1 while l==File.mtime(fn)}" "hoge.php" "php hoge.php" その他用 ruby -e "fn,cmd=ARGV;loop{system 'clear';system cmd;l=File.mtime(fn);sleep 1 while l==File.mtime(fn)}" "hoge.php" "php hoge.php" この例だと hoge.php が更新されるたびに php hoge.php が実行されます。 要R
NYACUS 「はじめに」でも書きましたが、CygwinのBash以外のシェルを探しました。 もちろんWindowsの標準コマンドラインシェルのcmd.exeもありますし、doskey.exeを使えばそれなりに便利だとは思いますが、 もう少しUNIX風のシェルを探してみました。 探し当てたのが葉山薫氏の NYACUSです。(WindowsNT系用。Windows9x用はNYADOS) 特徴は tcsh ライクな編集機能(Ctrl-F/B/A/E等) 強力なファイル名補完機能 ヒストリ機能(Ctrl-P) エイリアス機能(alias命令) 等です。 NYACUSの設定-作業フォルダ NYACUS起動用にnyacus.exeのショートカットを作成します。 そのショートカットのプロパティの作業フォルダに環境設定で作ったホームディレクトリ (C:\home\%USERNAME%)を設定しました。ま
See EshellAlias for solutions to simpler problems. Very Simple ExampleThis example is so simple, it could have been solved using an alias. This example is also from KaiGrossjohann. (defun eshell/pcvs-update (&rest args) "Invoke `M-x cvs-update RET' on the given directory." (cvs-update (pop args) nil)) Dealing With Wildcards and Multiple FilesAssume you want to define an alias ‘emacs’ for ‘find-fil
編集 or 閲覧するには パスワードをかけてもSpamが減らないし私自身が対応できないので、ちょっと強硬策を取ることとしました。 閲覧でも同じパスワードをかけさせていただきました。 不便になりますが、ご了承くださいませ。 簡易に編集できるようにとこれまでパスワードなどをかけておりませんでしたが、あまりにもspamが多いのでパスワードをかけることにしました。 ユーザー名:meadow パスワード:memo で編集できますので、編集の都度、入力ください。 この状態でspamが増えるようなら、適当にパスワードなどを変えていきますので、ここをチェックくださいませ。 ↑ はじめに このページは Emacs 電子書棚のWiki です.Meadowの設定などの解説は Meadow/Emacs Memo にありますので,そちらをまず参照してください. 一応,Meadow memo Wiki ということで
最近Perl人口が増えつつある気がするのでここでおさらい。myとは一体なにをするものか。まずは下記スクリプトの実行結果を予測してみて、実際の結果と比べてもらいたい。 #!/usr/bin/perl $foo = 111; print "$main::foo / $foo\n-----------\n"; { local $foo = 222; print "$main::foo / $foo\n-----------\n"; my $foo = 333; print "$main::foo / $foo\n-----------\n"; package Bar; $Bar::foo = 444; print "$main::foo / $foo\n-----------\n"; } { package Baz; local $foo = 555; print
9月6日、技術評論社から『ゲームで極める シェルスクリプトスーパーテクニック』という書籍が出版された。大抵の方は最初「いや、シェルスクリプトでゲームって」、次に「どうせ数当てゲームとかクイズとかだろ」と思われるところだろうが、さにあらず。Amazon.co.jp での内容紹介によると、 本書は、シェルスクリプトを使ったリアルタイムシューティングなどのゲーム作成を通して、今まで知られていなかったシェルスクリプトの新たな可能性を紹介します。 「リアルタイム」で「シューティング」である。正確にはシューティング風タイピングゲームが正しいが。掲載されているゲームとしては他にテトロミノゲーム(いわゆるテトリス)と、スネークゲームがある。FreeBSD にリモートログインして実行した様子を YouTube に投稿してみたので参考にして欲しい(キャプチャの都合でカクカクがひどくなっている)。
Jash: JavaScript Shell Jash is a DHTML-based window that gives you command-line JavaScript access to the current browser window. JavaScriptの開発等にかなり使えるJavaScriptシェル「Jash」。 Jashサイトのダウンロードページでブックマークレットがダウンロードでき、このブックマークレットを設定し、実行することでサイト内に小窓が開きます。 小窓には JavaScript シェルが統合されていて、小窓にJavaScriptコードを入力して、JavaScript の対話的な実行が可能です。 (入力欄は、TABキーによる補完も可能です) Jashを使って、例えば、次のようなことが可能になります。 サイト上で定義されているJavaScript変数の中身
Tera Term 等の端末を複数同時に立ち上げて作業したり、screenにて複数の仮想端末を同時並行で操作する際、コマンド実行履歴が端末間で共有できなくて困る事が多々あります。「さっきのfindコマンドをもう一度... 引数どう書くんだっけなぁ... あ、確かコマンド履歴にあったはずだなぁ... ちっ、それはあっちの端末の履歴だったか」みたいな。zshには端末間のコマンド履歴を常に同期できる'SHARE_HISTORY' なるオプション(*1)があって素敵なのですが、同じことを bash で実現する方法を調べたのでご紹介。 (*1) zshの同機能について詳しくはITmedia記事 "豪傑の三種の神器【後編】" を参照の事 不具合) 通常設定のbashで困る事 1. 複数端末間でコマンド履歴の共有ができない 同時に立ち上げている端末間で履歴の共有ができなくて不便に感じることがある。 2.
任意なコマンドの結果をメールで通知するスクリプトです。 メール送信スクリプト:mailsendsh.txt 初期設定 上記のシェルスクリプトを参照し、各々を設定します。 address= 送信先のメールアドレスを設定します subject= メールの件名を設定します cmd= コマンドを設定します(この場合はdfコマンド) その他の説明 subject=`echo $subject | nkf -j` ※設定した件名の文字コードをJISコードに変換しています(メール件名のヘッダがJISのため) mail -s $subject $address << HONBUN `$cmd | nkf -s` HONBUN ※mailコマンドを使って送信しています。 ※<< HONBUN から HONBUN の間がメールの内容部分になります。また、メール本文中にコマンドの実行結果を文字コード
木村 孝道 平林 浩一 監修 1993年6月21日 もくじ シェルとは シェルの機能 プログラムの実行 ファイル名の置換(展開) 入出力の切り換え(I/O redirection) ヒアドキュメント(here document) エラー出力を標準出力にマージする パイプ機能 コマンドの区切り文字 コマンドのグルーピング バックグランド処理 ユーザの環境設定 HOME Prompt String( PS1, PS2) PATH TERM .profileによるログイン環境の設定 インタプリタ型のプログラミング言語 シェルプログラミングの基礎 シェルスクリプトと実行方法 シェル変数 シェル変数の初期化と参照 エクスポート変数 readonly変数 引用符 単一引用符 ' 二重引用符 " 逆引用符 ` 特殊なシェル変数 IFS $# 位置パラメータ($1〜$9, $0) と shif
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く