タグ

shellに関するsnomofのブックマーク (12)

  • What is the exact difference between a 'terminal', a 'shell', a 'tty' and a 'console'?

    A terminal is at the end of an electric wire, a shell is the home of a turtle, tty is a strange abbreviation and a console is a kind of cabinet. Well, etymologically speaking, anyway. In Unix terminology, the short answer is that terminal = tty = text input/output environment console = physical terminal shell = command line interpreter Console, terminal and tty are closely related. Originally, the

    What is the exact difference between a 'terminal', a 'shell', a 'tty' and a 'console'?
  • Stop using tail -f (mostly)

    Stop using tail -f (mostly) 12 Mar 2015 I still see a lot of people using tail -f to monitor files that are changing, mostly log files. If you are one of them, let me show you a better alternative: less +F The less documentation explains well what this +F is all about: Scroll forward, and keep trying to read when the end of file is reached. Normally this command would be used when already at the e

  • /bin/sh と /bin/bash の違い - 双六工場日誌

    みなさん、shebang書いてますか! Shebangというのは、スクリプトの最初の一行目に書く、「#!/bin/sh」とか「#!/usr/bin/perl」とかそういうあれです。詳しくはWikipediaさん(シバン (Unix))に聞いてくださいまし。 Twitter見てると、「そもそもこれにshebangなんて名前がついてるの知らなかったよ」という発言も見る不憫な子ではあるのですが、そこに何が書いてあるかで実は動作が違うよってのが今日の題です。それで、はまっていたのを最近見て、まああまりここで引っかかる人はいないと思いつつ、この点を書いた情報を見ないのでまとめてみました。*1 今日取り上げるのは、bashがデフォルト設定になっているLinuxでの「#!/bin/sh」と「#!/bin/bash」のお話。確認はCentOS5, 6で行なっています。 さて、上記の環境の場合、「/bin

    /bin/sh と /bin/bash の違い - 双六工場日誌
  • シェルスクリプトの中で1行ずつ変数を分割する際には、cutとかawkとか余計なプロセスを起動せずsetを使って分割した方が効率的 - 双六工場日誌

    シェルスクリプトの中で、スペース区切りもしくはタブ区切りのレコードを扱うことがよくあると思います。 たとえば、前回のエントリ「AWS CLIとjqを使って、AWSのELBボリュームがアタッチされているEC2インスタンス名を出力するワンライナーを書いた - 双六工場日誌」のスクリプトの出力は以下のようになります。 i-ec56a9f5 vol-07d00601 servername i-ec56a9f5 vol-8f550991 servername このようなレコードの特定の列を取り出して、処理する際にどうするのが効率的か、というのがこのエントリのお題です。 非常に古い話題なので、昔からシェルスクリプトを書いている人には自明な話ではありますが、最近、シェルの標準機能の話を聞く機会がなく、失われつつある技術になってきている気がしているので、改めて確認ということで。 例として挙げたレコードから

    シェルスクリプトの中で1行ずつ変数を分割する際には、cutとかawkとか余計なプロセスを起動せずsetを使って分割した方が効率的 - 双六工場日誌
  • rupa/z: z - jump around

    Z(1) User Commands Z(1) NAME z - jump around SYNOPSIS z [-chlrtx] [regex1 regex2 ... regexn] AVAILABILITY bash, zsh DESCRIPTION Tracks your most used directories, based on 'frecency'. After a short learning phase, z will take you to the most 'frecent' directory that matches ALL of the regexes given on the command line, in order. For example, z foo bar would match /foo/bar but not /bar/foo. OPTIONS

    rupa/z: z - jump around
    snomof
    snomof 2014/06/14
    ディレクトリの履歴を参照して、カレントディレクトリ以下の深いディレクトリに一気に飛べるコマンド。名前は最悪
  • 使いやすいシェルスクリプトを書く

    できればシェルスクリプトなんて書きたくないんだけど,まだまだ書く機会は多い.シェル芸やワンライナーのような凝ったことではなく,他のひとが使いやすいシェルスクリプトを書くために自分が実践していることをまとめておく. ヘルプメッセージ 書いてるシェルスクリプトが使い捨てではなく何度も使うものである場合は,体を書き始める前に,そのスクリプトの使い方を表示するusage関数を書いてしまう. これを書いておくと,後々チームへ共有がしやすくなる.とりあえずusage見てくださいと言える.また,あらかじめ書くことで,単なるシェルスクリプトであっても自分の中で動作を整理してから書き始めることができる.関数として書くのは,usageを表示してあげるとよい場面がいくつかあり,使い回すことができるため. 以下のように書く. function usage { cat <<EOF $(basename ${0})

    snomof
    snomof 2014/05/20
  • シェルのリダイレクトにまつわる失敗

    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 の標準エラー出力は画面に向いてし

    snomof
    snomof 2014/05/09
    [/dev/null][log]
  • seq で 0 padding した数字列を作る

    Linux の seq コマンドは、シンプルな数列を作ってくれる。例えば、1 から 10 までの数字を表示させるには次のやうにする。 $ seq 10 1 2 3 4 5 6 7 8 9 10 途中の数字から始めたい場合は、その数字を第一引数にとる。5 から 10 までの数字列を得る場合の例は次の通り。 $ seq 5 10 5 6 7 8 9 10 このコマンドを何に使うのかというと、shell script の中で連番ファイルを作成するのに活用する。例えば、こんな感じ。 #!/bin/bash for i in `seq 10`; do echo $i.jpg done echo コマンドの代わりに、wget を使えば、連番ファイルのダウンロード。touch コマンドを使えば、連番ファイルの作成。etc... さて、10 個以上の連番ファイルを作る場合、0 パディングを加えておくと便利

  • リボンを結ぶ日々 2008年12月24日

    2008/11 | 12345678910111213141516171819202122232425262728293031 | 2009/01 なんかまた文字コードの愚痴を書いちゃいます・・・ 前回はextractArchive.phpを作ったといいましたが、まだ未完でした。 どうしてかというとunzipにしか対応していなかったんです。 それでそのあとにlzh,rarにも対応させるプログラムを書いたんですが・・・ またそれぞれの解凍コマンドlha,unrarにも文字コードなどで色々問題があるんですよね。 lhaは何とかなります(さすがに日人の書いたものだけあって・・・) これは圧縮データ内のファイルの文字コードはSJISに必ず統一されています。 ですからこれをLinuxサーバー内で解凍すれば必ず文字化けするわけですが、 もう間違いなくSJISとわかっているのでconvmvで $ co

  • 【 nohup 】 ログアウトした後もコマンドを実行し続ける

    nohupでコマンドを実行した場合は,ログアウトしてもプログラムを実行し続ける。長い処理を行っており,席を外したいときなどに使用すると便利である。ログアウトした後は,ジョブではなくプロセスとして管理することになる。また,処理中に出力されたメッセージは"nohup.out"に保存される。 grepをlogout後も継続して実行し続ける $ nohup grep "Jan" access_log > result & [1] 3769 nohup: appending output to `nohup.out' $ exit logout. ←ログアウトしても実行し続ける

    【 nohup 】 ログアウトした後もコマンドを実行し続ける
  • シェルのリダイレクトを「こわいものなし」というくらい完全に理解しよう - 檜山正幸のキマイラ飼育記 (はてなBlog)

    Java BlockingQueueで遊ぶ:パイプラインごっこ」でパイプラインの話をしたので、来の、つまりUnixのパイプやリダイレクトを少し調べてみました。 たまに話題となる some-command >file 2>&1 と some-command 2>&1 >fileの挙動の違いについて、「シェルはコマンドラインリダイレクトの指定を右から左に解釈実行する」なんて説明が見つかりました。んなバカな! パージングは左から右にするものですよ。パーズツリーを逆順にたどることはできるけど、そんなことする必然性はなんにもないよ。 次の記事を読むと、「右から左」なんて事情じゃないことが分かるでしょう。 UNIXの部屋 検索: リダイレクト シェルのリダイレクトにまつわる失敗 さてここでは、複雑なリダイレクト処理も完全に理解できる処方箋を示しましょう。例えば、次のコマンドラインが何をするか分かる

    シェルのリダイレクトを「こわいものなし」というくらい完全に理解しよう - 檜山正幸のキマイラ飼育記 (はてなBlog)
    snomof
    snomof 2012/12/04
    リダイレクト怖くない
  • 標準入出力すりかえのテクニック

    このシェルスクリプトはいったい何をやっているのでしょう? これは誰が何を実行して、どうして画面に文字が表示されるのでしょうか? ふだんなにげなく使っているコマンドでも、少し深く突っ込んでみるとLinux(UNIX)の仕組みや特徴が見えてきます。 実はechoは、「bashの内部コマンド」の1つであり、bash自身によって実行されています。意外に思われた方も多いかもしれません。なぜなら「echo」は外部コマンドとしても存在する(通常は/bin/echo)からです。でも、普通に設定されたLinuxで実行されるechoはbashの内部コマンドのほうです。試しにやってみましょう。 上は“--version”という文字列をそのまま表示するだけですが、下は“--version”を「バージョンを表示しろ」というオプションと理解して、/bin/echoのバージョンを表示してます。 このように内部コマンドの

    標準入出力すりかえのテクニック
  • 1