タグ

Shellとbashに関するkazuph1986のブックマーク (12)

  • ターミナルのディレクトリ移動を高速化する - Qiita

    tl;dr よく使われるコマンドの一つに cd コマンドがあります。ターミナル生活の 80% 近くは cd と ls である、という英文記事を何処かで見かけました。それを効率化しようという Tips です。 目的 cd はよく使われるのに使い勝手が悪いコマンドである気がしてなりません。cd コマンドは有効なパス(相対パス、絶対パスは問わず)しか解釈してくれないからです。つまり、存在していて尚且つパスが解決できるものに限るのです。例えば、ホームディレクトリにいるときに、/home/lisa/work/dir に行こうとして cd dir とだけタイプしても no such file or directory (そんなディレクトリは見当たらないよ!)と言われてしまいます。きちんとした経路でなければならないのです。いちいちパスを覚えていない場合や、部分的にしか思い出せない場合には結構面倒ですよね

    ターミナルのディレクトリ移動を高速化する - Qiita
    kazuph1986
    kazuph1986 2015/10/31
    zが死ぬほど遅くなっていたので、こっちに乗り換えた。cdしたときに毎回fzfが起動してしまうのがうざい以外は良いので、ちょっと我慢して使ってみる。
  • 初心者向け、「上手い」シェルスクリプトの書き方メモ - Qiita

    ここ最近、沢山シェルスクリプトを書くようになりました。 元々あまりシェルスクリプトを書いたこと無かったので、色々と勉強しつつ書いてるのですが、 他のプログラミング言語とはちょっと違って独特なクセというか、発見の度におぉー!ってなることが沢山あって楽しいです。 そんなわけで、最近学んだり参考にした中で特に感動したシェルの上手い書き方をまとめてみます。 きっとまだ知らないこととかもっと上手くやる方法なんかが沢山見つかりそうなので、 もっといいやり方あるよ!って方はコメントください 何もしない : (コロン)コマンド シェルを書いていた時に非常に欲しかったコマンドがこれ!何もしない! : というコマンド(?)を利用すると、何もせずに終了ステータス0(つまり正常終了)を返します。 これが様々な事に使える万能コマンドで、これによって面倒なエラー処理を簡潔にできたり、 入力や出力のリダイレクト元/先と

    初心者向け、「上手い」シェルスクリプトの書き方メモ - Qiita
    kazuph1986
    kazuph1986 2015/02/02
    このまとめ良い
  • https://qiita.com/geta6/items/199faca823e84026c10a

    kazuph1986
    kazuph1986 2013/12/27
    お手軽並列化!
  • Bashでコマンドの存在チェックはwhichよりhashの方が良いかも→いやtypeが最強→command -vも - Qiita

    コマンドのパスを知りたいんじゃなく、コマンドの存在をチェックしたいだけならwhichよりhashを使ったほうが良いかもっていう話。→追記: typeが最強っぽい。 追記: command -vも良い。プログラムの存在チェックorパスを探したいだけなら互換性を考えると一番良いかも。 比較してみる whichよりhashよりtype=command -vが高速→typeまたはcommand -vの勝ち whichは実ファイルという実体があるプログラムです。hashとtypeはbashの組み込みコマンドです。なので当然ですがプログラムの起動コストがない分hashやtypeの方が速いです。 $ time bash -c 'for((i=0;i<10000;i++));do which perl; done >/dev/null' real 0m7.739s user 0m2.928s sys 0m

    Bashでコマンドの存在チェックはwhichよりhashの方が良いかも→いやtypeが最強→command -vも - Qiita
    kazuph1986
    kazuph1986 2013/10/02
    おもしろい!
  • 私が他人のシェルスクリプトから学んだこと | Yakst

    私はシェルスクリプトの大ファンで、他人のスクリプトから面白い方法を学ぶのが大好きだ。最近、SSHサーバの2要素認証を簡単にするためのauthy-sshスクリプトに出会った。このスクリプト群を見まわしていて、みんなと共有したいたくさんのクールなことを見つけた。 出力に色付けする 出力文字列を、成功した時は緑に、失敗した時は赤に、警告は黄色に色づけしたいと思うことはたくさんあるだろう。 NORMAL=$(tput sgr0) GREEN=$(tput setaf 2; tput bold) YELLOW=$(tput setaf 3) RED=$(tput setaf 1) function red() { echo -e "$RED$*$NORMAL" } function green() { echo -e "$GREEN$*$NORMAL" } function yellow() { e

    私が他人のシェルスクリプトから学んだこと | Yakst
  • Shell Script での文字列操作 - Qiita

    #!/bin/bash FILE="/usr/local/var.piyo/hoge.piyo" # 先頭から = # # 文字列の先頭から、最初に一致するパターンを取り除く (${VAR#pattern}) echo ${FILE#*.} # => piyo/hoge.piyo echo ${FILE#*/} # => usr/local/var.piyo/hoge.piyo echo ${FILE#*a} # => l/var.piyo/hoge.piyo # 文字列の先頭から、最後に一致するパターンを取り除く (${VAR##pattern}) echo ${FILE##*.} # => piyo echo ${FILE##*/} # => hoge.piyo echo ${FILE##*a} # => r.piyo/hoge.piyo # 末尾から = % # 文字列の末尾から、最

    Shell Script での文字列操作 - Qiita
    kazuph1986
    kazuph1986 2013/01/30
    この辺全く別の調べ物をしている時に初めて発見した。なんだこれ便利すぎだろう。
  • 複数のファイル拡張子を一括で変更するには

    複数のファイル拡張子を一括変更するには、bashのコマンドを使うのが簡単だ。例えば、*.tiffというファイルを*.tifに一括変更するには、以下のように行う。 $ ls 01.tiff  02.tiff  03.tiff  04.tiff  05.tiff ←拡張子はすべて.tiff $ for fname in *.tiff; do ←拡張子がtiffのファイルが存在する限り、以下の命令を繰り返す > mv $fname ${fname%.tiff}.tif; > done $ ls 01.tif  02.tif  03.tif  04.tif  05.tif

  • mintty を使えるようにする - dogmap.jp

    Cygwinのターミナルエミュレータ mintty が MSYS に対応したため、cygwin なしでも MSYS のパッケージマネージャからインストールできるようになったとのことなので、早速インストールしてみました。 Windows 上でのターミナルエミュレータとしては、今まで PuTTY とか Tera Term とか使ってたんですが、これは良いっすね。 もう、乗り換え確定です。 via. tanakh.jp – Windowsで最高のターミナルを構築する方法 Windows に mintty を入れて、とりあえず使えるようにするための設定をメモ代わりに書いておきます。 MinGW/MSYSのインストール MSYS はインストーラからのインストールできます。 以下のURLから新しいものをダウンロードしてください。 http://sourceforge.net/projects/ming

    mintty を使えるようにする - dogmap.jp
  • 最新Rubyを使いたいけど「動かない」の心配をしている人へ|rbenv。 - むかぁ~ どっと こむ

    WEB系技術屋の管理人が、ネット・デジタル中心に日歩をつらつら LinuxやらRubyJavascriptなどなど記事を載せています mukaer.com 構成&準備する物 Linux ( CentOS 6.2 環境を想定しています) コンパイルできる環境 git rbenv ruby-build (rbenvのplugin) rbenv-gemset (rbenvのplugin) git外部アクセスPort 9418 ( git://github.com ) CentOS だと下記コマンドでgitも含め一括インストール可能です。 $ yum -y groupinstall "Development Tools" rbenvのインストール rbenvのフォルダは/home/${HOME}/.rbenv/versions/1.9.2-p290 このように$HOMEディレクトリの直下で管理す

  • 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

  • bashのhistoryに時刻を表示する - (ひ)メモ

    追記: HISTTIMEFORMATが使用可能なbashのバージョンを明記。あざーっす> id:kdaiba bash 3.0から(2.05bを含んでそれより以前のはダメ)使用可能なHISTTIMEFORMATという環境変数を使うと、ヒストリに時刻も記録できると同僚に教えてもらた。これは便利。 $ HISTTIMEFORMAT='%Y-%m-%d %T '; export HISTTIMEFORMAT $ man ci $ man co $ shutdown now && echo nigeteeeee | wall && shutdown -c $ history 1 2008-01-17 15:42:48 HISTTIMEFORMAT='%Y-%m-%d %T '; export HISTTIMEFORMAT 2 2008-01-17 15:42:52 man ci 3 2008-01

    bashのhistoryに時刻を表示する - (ひ)メモ
  • 1