タグ

shellに関するtohokuaikiのブックマーク (21)

  • 【脱sed】いい加減シェルスクリプトで文字列をsedで置換するなんてやめよう - Qiita

    はじめに もう文字列の置換で sed コマンド使うの禁止して良いんじゃないですかね? 言いすぎだとわかってあえて言っていますが。 悪い書き方(外部コマンドに頼る方法) # 変数 line に入ってる文字列を echo コマンドで出力して sed コマンドに渡し、 # sed の s コマンドで "from" を "to" に置換して出力したものを ret 変数で受け取る ret=$(echo "$line" | sed "s/from/to/")

    【脱sed】いい加減シェルスクリプトで文字列をsedで置換するなんてやめよう - Qiita
    tohokuaiki
    tohokuaiki 2023/09/02
     sed使  

    shell
     
  • 今どきのシェルスクリプトは数値計算にexprを使わない(POSIX準拠) - Qiita

    はじめに 1992 年に POSIX でシェルが標準化されて以来、シェルスクリプトの数値計算に expr コマンドは使いません。expr コマンドを使って計算していたのは Bourne シェル(古い UNIX の sh)時代の話で、現在の POSIX sh (dash、bash、ksh 等)時代では数値計算に expr コマンドは不要です。今どきはシェルの機能だけで整数の計算を行うことができます。「今どき」って一体いつからだって話なわけですが……。 注意 シェルスクリプトでパフォーマンスの話をするとすぐに「他の言語で〜」という方がいますが、私はどんなことにでもシェルスクリプトを使えなんて一言も言っていません。パフォーマンスを気にしている理由は、そこが実際にシェルスクリプトのボトルネックになるポイントだからです。そもそもシェルスクリプトと一般的な言語は言語設計レベルで得意なことが違います。ユ

    今どきのシェルスクリプトは数値計算にexprを使わない(POSIX準拠) - Qiita
    tohokuaiki
    tohokuaiki 2022/10/08
    へー。知らんかった。
  • POSIX 準拠のシェルスクリプトでは find | xargs よりも find -exec {} + を使うべき! - Qiita

    POSIX 準拠のシェルスクリプトでは find | xargs よりも find -exec {} + を使うべき!ShellScriptBashshellPOSIX はじめに find の出力を xargs にパイプで渡すというのはよく見かける使い方ですが、find -print0 | xargs -0 が使えない POSIX 準拠のシェルスクリプトでは find -exec {} + を使った方が良いです。安全かつ十分に速いからです。よく見かける -exec {} ; ではなく -exec {} + ですので間違えないようにしてください。多くのケースでは + の方が優れているのですが ; ばっかり使われているのを見ると、意外と知られてない気がします。 少しだけ予備知識として、-exec {} ; は -exec {} \; と ; をバックスラッシュでエスケープするのがよく見る使い方

    POSIX 準拠のシェルスクリプトでは find | xargs よりも find -exec {} + を使うべき! - Qiita
    tohokuaiki
    tohokuaiki 2021/09/14
    ファイル名にスペースあってもxargs -I{} でいけるやん?自分は昔のド素人時代に-execでなくxargs 勧めてたブログ記事読んでからずっとそのまま。
  • 世の中のエンジニアのalias設定 - Qiita


    aliasGitHub1000調 2019/04/10  2019/04/11  使vimrc 2019/04/15 使vim top20 alias wikipedia UNIX  alias 調 GitHub APIdo
    世の中のエンジニアのalias設定 - Qiita
    tohokuaiki
    tohokuaiki 2019/04/10
    “alias d='date +%Y%m%d'” くらいかな。あんまり定義しないな。
  • 雰囲気でシェルを使っている人のためのシェル入門 | κeenのHappy Hacκing Blog

    κeenです。雰囲気でシェルを使ってる人が多いとのことだったので少しばかり込み入った知識を。 あと一応POSIX準拠かどうかも気にしながらやっていきます。 基礎知識編 シェルの種類 まず、POSIXにシェルが定義されています。 これに最低限の機能で準拠しているものをPOSIXシェルと呼ぶことにします。いわゆる/bin/shです。具体的な実装はbsh、ash、dashあたりでしょうか。 最低限の機能以上に色々拡張されているシェルを拡張POSIXシェルと呼ぶことにします。具体的な実装はbash、zsh、kshなどでしょうか。 ここでは触れませんがPOSIX準拠でないシェルも存在してcshやtcshなどのシェルがあります。あと確か最近話題のfishも違ったような。 さて、1つ問題になるのは普段使いのコマンドラインはおおむね拡張POSIXシェルでしょうが、サーバで使うシェルやデプロイスクリプトで呼

    雰囲気でシェルを使っている人のためのシェル入門 | κeenのHappy Hacκing Blog
    tohokuaiki
    tohokuaiki 2017/10/30
    確かに雰囲気で使っている。こまけぇことはいんだよ、動けばいいやー、的な。つか、bash : とかで検索して「:は何もしないコマンド」とか出てくるわけねぇンだよ!!(言い訳)
  • 特定ファイルの合計サイズを計算 - Qiita

    Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark themeWhat you can do with signing up

    特定ファイルの合計サイズを計算 - Qiita
    tohokuaiki
    tohokuaiki 2016/04/13
    du -S *.log | awk '{total = total + $1} END{print total}'
  • シェルスクリプトの処理境界が鮮明になる「名前付きブロック記法」なるものを考えてみた

    シェルスクリプトは長くなると処理の境界が不鮮明になりがち。 コメントで処理の境界を表現する工夫はよく見かけるが、もっと良い方法はないか考えてみた。 :コマンド、&&演算子、複合コマンド()や{}を組み合わせて書くと、処理の境界線がはっきりする。

    シェルスクリプトの処理境界が鮮明になる「名前付きブロック記法」なるものを考えてみた
  • プリキュアで学ぶワンライナーWebスクレイピング - Qiita


    Linuxcurlgrep   (@grethlen) 2014, 1021Web Advent Calendar 20157 ITFizzBuzz100 Web W
    プリキュアで学ぶワンライナーWebスクレイピング - Qiita
  • うっかりnohup無しで長時間かかるコマンドを実行したときに後から終了しないようにする - Glide Note

    いつまで経っても終わらないから帰れない… 途中で終了してしまうと困るので、ログアウトしても終了しないように。 作業の流れ Ctrl+Zでコマンドの中断 bgでバックグラウンドに回す jobsでジョブの確認 disownでログアウトしても実行されるようにする 実際のコマンドだと

    tohokuaiki
    tohokuaiki 2015/04/02
    rpmbuild -ba hoge.spec/ # Ctrl+Zで中断 / bg 1 #バックグラウンドにまわす/jobs 1 #ジョブNo.確認 / disown %1 #バックグラウンド処理へ切り替え
  • コンソールから切れたプロセスを標準出力につなげなおす - 絶品ゆどうふのタレ


      setup ssh   screennohup使 shellHUP    stdout    #!/bin/bash wh
    コンソールから切れたプロセスを標準出力につなげなおす - 絶品ゆどうふのタレ
    tohokuaiki
    tohokuaiki 2014/02/06
    普通に諦めてたわ。
  • Hack 3. 1つのコマンドで mkdir と cd を実行する - bobchinの日記

    ときどき新しくディレクトリを作成するときに、 以下に示したように何らかの仕事をするためにすぐに新しいディレクトリに移動するかもしれません。 # mkdir -p /tmp/subdir1/subdir2/subdir3 # cd /tmp/subdir1/subdir2/subdir3 # pwd /tmp/subdir1/subdir2/subdir3mkdir と cd を1つのコマンドに結合したらよいのではないでしょうか? ~/.bash_profile に次の記述を追加し再ログインします。 $ vi .bash_profile function mkdircd () { mkdir -p "$@" && eval cd "\"\$$#\""; }これで次に示したように1つのコマンドを使用して mkdir と cd を同時に実行します。 # mkdircd /tmp/subdir1/

    Hack 3. 1つのコマンドで mkdir と cd を実行する - bobchinの日記
  • シェルのリダイレクトにまつわる失敗

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

  • xargs を使ってカジュアルに並列処理 - たごもりすメモ


     ()bzip2 $ find . -not -name '*.bz2' | xargs bzip2bzip2 CPUHyperThreadingOSCPU8使
    xargs を使ってカジュアルに並列処理 - たごもりすメモ
  • [shell] スクリプトをヒアドキュメントに書く - おもてなしの空間

    ●背景 P言語つかうようになって ~/bin の下に沢山スクリプトファイルを作ってしまってウザくなってきた。 そこで、小さなスクリプトプログラムは、シェルのヒアドキュメントの上に書いてしまうことにした。 これをスマートに行なうには、ヒアドキュメントをシェル変数に格納することが必要になる。 ● シェル変数にヒアドキュメントを代入する $ bar=`cat <<'EOF' > This is a pen. > That is a desk. > EOF > ` # そのままエコーすると改行が失なわれる $ echo $cat This is a pen.That is a desk. # ダブルクォートすると改行も再現される $ echo "$cat" This is a pen. That is a desk. ● ヒアドキュメント中に書いたスクリプトを実行する #!/usr/bin/env

    [shell] スクリプトをヒアドキュメントに書く - おもてなしの空間
    tohokuaiki
    tohokuaiki 2011/03/17
    奥が深い・・・
  • 技術メモ帳 - pgrep, pkill を使用してプロセスを殺す


     pgrep / pkill / skill / pidof  便     kill   $ ps aux | grep  | grep -v 'grep' #  pid  12345 ... .. hoge .. .. $ kill 12345 退   grep  grep -v grep
  • bashによるシェルスクリプトの小技(1) - shibainu55日記

    今回から何度かに分けてシェルスクリプト(主にbash)の小技を紹介する予定です。まずは第一弾として、変数の特殊な参照方法を紹介。 変数の特殊参照方法 変数の状態に応じて振る舞いを変える特殊な参照方法。変数に値が設定されていない場合に一時的に値を与えて参照する、などの特殊な参照が可能。知っているとなかなか便利な機能ではあるが、これらをむやみに使用するとシェルスクリプトの可読性が低下し、思わぬバグを生む可能性があるので、あまり多用はしないほうがよさそう。 参照方法 参照結果 ${VAR=aaa} 変数 VAR が未使用の場合に限り、変数VARへ文字列「aaa」を代入し文字列「aaa」を返す。変数VARがNULL値を含み既に使用されている場合は、変数 VAR への代入を行わず、変数 VAR の値を返す。 ${VAR:=aaa} 変数 VAR が未使用もしくは NULL の場合に限り、変数 VAR

    bashによるシェルスクリプトの小技(1) - shibainu55日記
  • bashによるシェルスクリプトの小技(2) - shibainu55日記

    前回(bashによるシェルスクリプトの小技(1))に引き続き、シェルによって自動的に値が設定される特殊な変数について紹介する。特殊な変数を参照することにより、様々な情報を取得することができる(ただし、これらの変数には自分で任意の値を設定することはできない)。 さて、まずは特殊変数を一覧でまとめてみる。お馴染みのものが多いが、最後の2つ(特に最後のPIPESTATUS)についてはきっと今まで知らなかった人もいるんじゃないだろうか。シェルの中でパイプすると途中のコマンドのリターンコード、拾えないとか思っていませんか?今回のポイントとしては、「1. PIPESTATUS変数について」と「2. 特殊変数 $@と$*の違いについて」の2点を主に説明する。 特殊変数一覧表 変数名 自動的に設定される値 $? 直前に実行されたコマンドの終了ステータスが設定される変数。正常終了の場合は「0」、異常終了の場

    bashによるシェルスクリプトの小技(2) - shibainu55日記
  • ファイル名の一括変更 - すぎゃーんメモ


    $ ls hoge1.txt fuga1.txt piyo1.txt $ ls hoge2.txt fuga2.txt piyo2.txt調  $ for a in `ls *1*`; do mv $a `echo $a | sed "s/1/2/"`; done鹿 $ for a in `ls *1*`; do mv $a ${a/1/2}; done  http://matsui.homeunix.com/index.php?Bash%A5%B7%A5%A7%A5%EB%A5%B9%A5%AF%A5%EA%A5%D7%A5%C8
    ファイル名の一括変更 - すぎゃーんメモ
    tohokuaiki
    tohokuaiki 2009/09/18
    いやーん、これもすごい。
  • シェルを覚えた経緯を詳し目に書いてみる - 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の日記
  • いまさらxargsの便利さを主張してみる — ディノオープンラボラトリ

    タイトルの通りですが、xargsコマンドの便利さを紹介する記事を書いてみました。xargsは私が大好きなコマンドの一つで、標準入力から渡されたファイル名などを引数とみなして、別のコマンドの引数として起動するというものです。 例えばfindで見つけたファイルを全部削除したい場合、xargsなしでも下記のように書くことができます。