タグ

unixに関するA13のブックマーク (19)

  • 初めてシェルスクリプトを書くときに知っておきたいこと - Unix的なアレ

    他の言語をを書き慣れてから、シェルスクリプトを書こうとするとしょうもない部分でハマったりすることがあります。「簡単な処理だからシェルスクリプトで書くか」と思っても無駄に時間がかかってしまっては仕方ないですよね。 今回は初めてシェルスクリプトを書くときに、ハマりそうな点について説明をしたいと思います。 実行権限をつける 単純にファイルを生成しても下記の用に実行しようとしても実行はできません。 # touch test # ./test sh: ./test: Permission denied # touch foo # ./foo sh: ./foo: Permission denied これはファイルに実行権限がついていないため、起きる現象です。 chmodコマンドを使って実行権限をつけてやりましょう。 # chmod +x test # ./test # chmod +x foo #

    初めてシェルスクリプトを書くときに知っておきたいこと - Unix的なアレ
  • シェルを覚えた経緯を詳し目に書いてみる - zenpouの日記

    perl - the best friend of find(1) 404 Blog Not Foundを見てて、シェルについて書いてみたくなりました。 丁度、Linuxを学ぶための10個の効果的な方法で言及したシェルを覚えた経緯を詳しく書いてみたかったのでだらだらと書いてみる。 前回書いた内容がこちら。 順を追って解説していきます。 シェル覚えた経緯。 第一段階としてはパイプラインを覚える | 第二段階はsort や grep など、パイプラインで処理するのに便利なコマンドを覚える。 第三段階でls | awk '{print $2}' とかやってみて、スペースで区切られた2列目が表示される事に感動してみる。 第四段階でls | awk '{print "ls "$2}'でコマンドを作ってみてls | awk '{print "ls "$2}'|sh でコマンドをばーっと処理してくれる事

    シェルを覚えた経緯を詳し目に書いてみる - zenpouの日記
    A13
    A13 2008/02/25
  • 初めてviエディタを使いたい人へ - Unix的なアレ

    Unix/Linuxを使おうとしてコマンドの次くらいに避けて通れないのが、viエディタ。 慣れてしまうと逆にこれじゃないと・・・というくらい染み付いてしまいますが、確かに最初は何をやっていいのかさえわからないものです。 過去に自分も立ち上げてしまってどうやって終了させていいのかさえわからなくて焦った記憶もあるくらいです。 今回はそのとっつきにくいviエディタを最低限使えるようになりましょう。 どうしてviエディタ? 実際に現役のエンジニアのつかっているエディタを見ると、様々だと思います。 vim,emacs,nanoやwindowsでは秀丸など。 確かに慣れているものが一番使いやすい(実際自分も普段はemacsです)のですが、Unix/Linuxを触る際にviは避けて通れない理由があります。 理由としては、ほぼ間違いなくデフォルトでインストールされているからがあげられます。 Unix/Li

    初めてviエディタを使いたい人へ - Unix的なアレ
  • ウノウラボ Unoh Labs: コマンドラインで作業する上で知っておくといいテクニック

    ちょうど入社から半年で有給発生しつつも日が退職日になりましたjokagiです.もう花見の季節ですね!! ちょうどラボブログの当番のようで,退職記念にjokagiが普段の開発で使っているテクニックとは呼ぶにはおこがましい小手先の技をつらつら書いてみたいと思います. これを覚えればjokagi程度には仕事をこなせるかも!? コマンドの使い方を覚えよう 基的なコマンドの使い方やコンソールなどの使い方は書籍やいろんなサイトで覚えてください. ここでは一応一通りなんとなくでもコマンドを扱える人がさらに覚えるといいかもしれないことだけを記述します. -03-20T23:59+0900"> また,これからの解説はシェルはbash,その他のコマンドの多くはGNU Toolsと呼ばれることのあるGNU findやcoreutilsなどを用いた環境でのオプション例や実行例になります. echo いわゆる指

    A13
    A13 2007/03/30
  • Geekなぺーじ:UNIX哲学の基本原則

    「Basics of the Unix Philosophy」でUNIX哲学の基原則がまとめられています。 UNIXの設計思想として紹介されていますが、多くは普通のソフトウェアを設計する場合にもあてはまると思われます。 1. Rule of Modularity(モジュール性): きれいなインターフェースで接続された、簡潔な部品を書きましょう。 2. Rule of Clarity(明瞭さ): 明瞭さは賢さよりも良いです。 3. Rule of Composition(構成): 他のプログラムと接続できるようにプログラムを設計しましょう。 4. Rule of Separation(分離): ポリシーとメカニズムを分離しましょう。エンジンとインターフェースを分離しましょう。 5. Rule of Simplicity(単純性): 単純化された設計をしましょう。複雑さは必要な時だけ追加しま

    A13
    A13 2007/03/04
  • 漢のzshに乗り換えた時にアッーってなるコト - 技術メモ帳

    男のbashユーザーが、バラ色の紳士こと漢のzshに乗り換えたときに アッーってなるコト事を先ほどいくつか思いついたので共有する。 !!とかの履歴実行はrコマンドで zshには、r というシェル組み込みコマンドがあって 履歴からの実行が簡単に行える。 たとえば、一番最後に実行したviコマンドを実行したいときなどだ。 bashなんかだと !vi で出来るのだが、 rコマンドだったら % r vi でよい。 直前に実行したコマンドを再び実行したいとき、 bashなんかだと !! というやり方になるが、 rコマンドでは、 % r とするだけでよい。 また、文字列を置き換えてからの履歴実行はどうだろう。 たとえば次のようなbashの例だ。 $ vi .zshrc $ !vi:s/zsh/bash/ これは、最後に実行したviコマンドの引数文字列を ":s/zsh/bash/" によりzshという文

    A13
    A13 2007/02/19
  • 【コラム】漢のzsh 第1回 最強のシェル、それは「zsh」 (MYCOMジャーナル)

    IDEの発展やAjaxなど現在のデベロッパにとってGUIとうまくお付き合いすることは開発効率を上げるうえで必須といえる。しかしながら、シェルというCUI環境も根強い人気がある。GUIと違ったカスタマイズ、アジリティ、効率の良さ、幅広い対応プラットフォームなど、なくてはならないものだ。 連載ではそうしたCUI環境の充実を補佐することを目的とし、"zsh"について語ってみようとおもう。かつてzshはUTF-8の扱いが弱いところがあったが、それもずいぶんと改善され、ここ1年でzshへ移行しやすい状況が整ってきている。はじめるには悪くないタイミングだ。 最初に軽くzshについて紹介しておこう。 名前につく"z"の文字は、「究極の」という意味がこめられているらしい。系統としてはsh系である。つまり、zshはsh系の超高機能シェルといえるだろう。Linuxなどのユーザーであればsh系であることの意味

    A13
    A13 2007/02/09
  • 技術メモ帳 - 単語抽出するちょっとしたテクニック

    shell のちょっとしたテクニック - odz buffer odzさんのところで単語の出現頻度を調べるためのワンライナーが紹介されている。 単語抽出についてはいくつかやり方があるので紹介する。 特に egrep -o は非常に実用的。 もちろん、この話はリンク先において主題ではない。 俺のただの自己満足。 tr -cs で単語抽出 $ tr -cs 'a-zA-Z' '\n' < ./.zshrc 上記コマンドで、a-zA-Zのみで構成される文字列を抽出できる。 -c オプションで、'a-zA-Z' の補集合(以外)を '\n' に変換し、 -s オプションで、最後の引数で指定される要素の重複を除去している。すなわち '\n' の連続を除去している。 grep -o で単語抽出 grepには、( -o、--only-matching ) オプションというのがある。 これは、指定された正

    A13
    A13 2007/01/31
  • shell のちょっとしたテクニック - odz buffer

    後輩が cat README | tr ' ' '\n' | sort | uniq -c | sort -nr | head てなテクニックを見て、びっくりしたみたいな話をしていたのだが、こういうパイプラインを利用するテクニックを学んでいないのは色々損な気がする。 ていうか、サーバで丸一日以上かかるような処理を実行するのもしょっちゅうなのに、GNU screen も nohup も知らないってのはいろいろ支障があるような気もするのだが、だれも教えないものかなぁ。 ということで、bash or zsh のちょっとしたテクニックとか*1。リダイレクトとかパイプラインは略。 連続実行 単純に連続実行。 % foo; barfoo が正常終了したときだけ bar を実行 % foo && barfoo が正常終了しなかったときだけ bar を実行 % foo || bar&&、||は来は論理演

    shell のちょっとしたテクニック - odz buffer
    A13
    A13 2007/01/30
  • xargsコマンドを使って指定したコマンドを並列実行させる - 技術メモ帳

    あまり知られていないが、GNUのxargsコマンドには、 プロセスの最大数を設定できるオプションというのが用意されている。 コレを使って、プロセスを並列実行させてみよう。 xargs --max-procs=MAX-PROCS -P MAX-PROCS command MAX-PROCSに数字を指定すると、 最大で、その数だけ command プロセスを生成する。 デフォルトは、1プロセスだけになっている。 いくつか例を交えて説明する。 サンプルとして、以下のようにURLが行ごとに記述されたファイルを元に curlをxargsで並列実行して、HTMLデータを取得してみよう。 $ cat ./url_list.txt http://www.google.co.jp/ http://www.yahoo.co.jp/ http://b.hatena.ne.jp/ まず、普通にxargsを使ってc

  • perl - Yet Another 10のUNIX小技 : 404 Blog Not Found

    2007年01月14日05:30 カテゴリLightweight Languages一日一行野郎 perl - Yet Another 10のUNIX小技 Geekなぺーじ:10のUNIX小技にperlを加えるとさらに幸せになれるというお話。 1.ディレクトリの作成 今時-pをサポートしていないmkdir(1)はないと思いますが、ない場合は perl -MFile::Path -e 'mkpath $_ for @ARGV' path/to/dir more/path/to/dir ... で代用が出来ます。 alias mkpath perl -MFile::Path -e \'mkpath \$_ for @ARGV\' と.bashrcや.cshrcとしておけば、 mkpath path/to/dir more/path/to/dir ... と出来ます。 2. tarの解凍先を指定

    perl - Yet Another 10のUNIX小技 : 404 Blog Not Found
    A13
    A13 2007/01/14
  • Geekなぺーじ:10のUNIX小技

    IBMのサイトで「Learn 10 good UNIX usage habits」という記事が発表されていました。 面白かったので要約してみました。 変な部分があるかも知れないので詳細は原文をご覧下さい。 原文とは一部異なります。 ページスペースなどの関係でコマンド引数などを短く省略しています。 原文のサンプルコマンドが間違っていたりするので、修正している部分もあります。 原文を修正しているのは、tar.gzをzオプションを使わないでxfvしようとしているところと、xargsにlsではなくls -lを渡している部分です。 あと、説明文を短くしてしまっています。 1. ディレクトリの作成 良く使うコマンドの一つであるmkdirですが、面倒臭い使い方をしていませんか? 悪い例 ~/ $ mkdir a ~/ $ cd a ~/a $ mkdir b ~/a $ cd b ~/a/b/ $ m

  • MacのUnix環境を整える。DarwinPorts / ターミナル設定 / emacs など:Goodpic

    This shop will be powered by Are you the store owner? Log in here

    A13
    A13 2007/01/03
  • lessでtail -f - 技術メモ帳

    less 起動中に、F と大文字で入力する事で、 tail -f のような挙動になるらしい。 知らなかった。 いつでも気軽に直前のログを見に戻る事が出来るのが良いね。 Ctrl + C で元のモードに戻る。 lessの場合 less +内部コマンド名 としておく事で起動時に内部コマンドを実行できるので とりあえず、ltailf という名前でエイリアスしておいた。 alias ltailf='less +F'

    A13
    A13 2006/12/02
  • 技術メモ帳: [unix]複数のファイルの名前をまとめて変更する

    複数のファイルの名前を変更する際に、 便利なコマンドというものがある。 いくつかご紹介させていただこう。 カレントディレクトリにあるファイルの名前を、 たとえば、*.html を *.htm と名前を変更するという課題に対し どのぐらいエレガントに書けるかというのを比較してみる。 まず、普通にやったらどうだろう。 おそらく、for文 をつかうことだろう。 for file in *.html do base=`basename $file .html` mv $base.html $base.htm; done; zshだともうちょっとスマートにかけて、 for file in *.html do mv $file:r.html $file:r.html; done; こんな具合。 for文 が嫌いなネット右翼のために、 xargs を使ってこの問題を解いてみよう。 ls -1 *.htm

    A13
    A13 2006/11/21
  • 技術メモ帳 - 拡張子ごとにコマンドを対応づける

    拡張子ごとにコマンドを対応づける事が出来る Suffix Alias という機能が zsh 4.2系から実装されていたらしい。 知らなかった。 どんな事が出来るのかというと たとえば、 alias -s txt=cat とした場合、 以下のようにするだけで、 % ./file.txt 先ほど設定したコマンドが自動で実行されるようになる。 % cat ./file.txt あとはもうアイデアしだいだが、 拡張子が *.log のときは、tail -f するなんて事も出来る。 alias -s log='tail -f' 参考: http://zshwiki.org/home/examples/aliassuffix http://slashdot.jp/articles/04/03/27/2333234.shtml?topic=80 http://zsh.dotsrc.org/Doc/Rel

    A13
    A13 2006/11/09
  • UNIXの歴史:Geekなぺーじ

    TOP > ブログ > UNIXの歴史 UNIXの歴史 2006/11/8 UNIX系OSの歴史と分岐を表している図です。 History of UNIX flowchart http://upload.wikimedia.org/wikipedia/commons/5/50/Unix_history-simple.png UNIX history (凄く細かい) http://www.levenez.com/unix/history.html Linux http://www.kde-files.org/content/files/44218-linuxdistrotimeline-6.8.2.png (消えてた 2009.6.9時点) http://commons.wikimedia.org/wiki/File:LinuxDistroTimeline.png MacosX入り http

    A13
    A13 2006/11/09
  • UNIX使いのパフォーマンスをあげる小技コマンド | I D E A * I D E A

    各所で話題ですが、やっぱり便利なのでメモ書きも兼ねてエントリー。 IBMにて「UNIX productivity tips」が紹介されています。いくつかありますが個人的にささったものをご紹介。 » UNIX productivity tips。IBMさんにはいい記事多いですね。 ■ よく使うコマンドを知るべし! 以下のコマンドでhistoryを頻出順に並び替えてくれます。 history|awk '{print $2}'|awk 'BEGIN {FS="|"} {print $1}'|sort|uniq -c|sort -r 僕の場合の結果。 163 ls 115 chmod 82 cd 54 ll 36 exit 35 su 25 vi 21 mkdir 21 less 17 mysql 14 rm 14 crontab 12 /usr/bin/php 10 pwd 9 iconv 7

    UNIX使いのパフォーマンスをあげる小技コマンド | I D E A * I D E A
    A13
    A13 2006/09/23
  • 1