タグ

shellに関するhohoho_ho2005のブックマーク (48)

  • dd コマンドでバイナリデータを編集する方法

    主に Linux (Ubuntu, Fedora) 関連の設定メモ&小技集です。たまに Windows 関連ネタも。 (プロンプトの $ は一般ユーザ権限、# は root 権限です。いちいち説明はせんよ。) バイナリエディタの無い環境で、バイナリファイルを編集する方法。 echo と dd の組み合わせでいけます。 サンプルとして、あらかじめ、128 byte の All 0x00 データ (hoge.dat)を作っておきます。 このファイルの作り方については、まさおのブログ (表): 任意サイズのファイルを作る 参照。 hexdump で内容確認。 $ hexdump -Cv hoge.dat 00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000010 00 00 00 00

  • 物理サーバを選定する際のポイント – Eureka Engineering – Medium

    Eureka EngineeringLearn about Eureka’s engineering efforts, product developments and more.

    物理サーバを選定する際のポイント – Eureka Engineering – Medium
  • /bin/shと/bin/bashの違い(とcronでのシェル)

    B! 29 0 1 0 シェルスクリプトを書く時にShebangに#!/bin/shの様にシェルの指定をしますが Bashの機能を使いたい場合はきちんとbashを指定しないといけません。 その辺の違いは早いうちに気づくことがあると思いますが、 cronの中でのシェルについてちょっと見落としていたのでその辺について。 /bin/shと/bin/bash RedHat系やMacなどでの/bin/sh UbuntuなどDebian系の/bin/sh シェルスクリプトに書くShebang cronジョブの時に使われるシェル /bin/shと/bin/bash RedHat系やMacなどでの/bin/sh RedHat系のLinuxで/bin/shを見てみると、 $ ls -l /bin/sh 0 lrwxrwxrwx 1 root root 4 Sep 27 2014 /bin/sh -> bas

    /bin/shと/bin/bashの違い(とcronでのシェル)
  • bashのパラメータのブレース展開での拡張子・ディレクトリ名・ファイル名の取得・拡張子の置換 - それマグで!

    bash のbrace 展開で文字列を置換する 文字の置換は、bashはとても楽ちんである。 NAME=www.example.com echo ${NAME//./_} # www_example.com echo ${NAME//./_} # www_example_com これをもう少し掘り下げる。 bash でファイル名から拡張子を取出す方法 ファイル名から拡張子を取出すのはカンタンでした。 path=/etc/apache2/httpd.conf extension=${path##*.} #=> conf 魔法の記述方法 ${varname##*.} を使うと 手軽に拡張子を取得できる。 拡張子を書き換える方法 拡張子を書き換えるには、変数の書き換えを使えば直ぐ出来る。 f_name=httpd.conf txt_name=${f_name/.*/.txt} #=> httpd

    bashのパラメータのブレース展開での拡張子・ディレクトリ名・ファイル名の取得・拡張子の置換 - それマグで!
  • Bashタブ補完自作入門 - Cybozu Inside Out | サイボウズエンジニアのブログ

    ドーモ、SREチームの湯谷(@yutannihilation)です。最近気になるモジュラーシンセはIntellijelです。 上司がいい感じのコマンドをつくるという記事を書いていましたが、いい感じのコマンドにはいい感じのタブ補完を付けたくなります。この記事ではBashのタブ補完を自作する方法を紹介します。 タブ補完の仕組み Bashのタブ補完自体はBashに組み込まれている仕組みです(参考:Bash Reference Manual - 8.6 Programmable Completion)。completeというBashの組み込み関数によって補完方法(compspec(completion specification)と言うらしいです)が規定されていて、これがタブなどによって起動されます。 タブ補完は、lsならファイル名、cdならディレクトリ名、というようにコマンドに応じたものが設定さ

    Bashタブ補完自作入門 - Cybozu Inside Out | サイボウズエンジニアのブログ
  • サーバー構築時にbashの設定を楽にする - @peccul is peccu

    普段利用しているメインマシンにbash-confというコマンドを用意して、サーバー構築時にその出力を.bashrcにコピペしています。 イメージ 前提として、下記の設定をしているので、echo 'hoge' | CのようにCコマンドでクリップボードにコピーできます。 mollifier.hatenablog.com # bashの設定をクリップボードにコピー bash-conf|C # サーバーの.bashrcにペースト ssh server vi .bashrc # 末尾でペーストする bash-confの内容 下記のシェルスクリプトを~/bin/等パスの通っているところに置いています。 内容はだいたい以下のとおり 履歴の件数を100000件にする 複数の端末で同時実行しても履歴をマージする プロキシの設定 ~/.aliasがあれば読み込む t でtmuxのセッションがあればアタッチして

    サーバー構築時にbashの設定を楽にする - @peccul is peccu
  • シェルスクリプトの出力に色をつけたい! - Qiita

    シェルスクリプトを書いていると、OKとかFAILEDとか 実行結果の出力に色をつけたいシチュエーションってありますよね。 使いたいときにぱっと頭にカラーコードが浮かべばいいけどなかなかそうは難しい。。。 なのでザクッと全部表示しちゃうコマンドをいつも使ってるので紹介します。 コマンド # 文字と背景の色の色見を表示する for fore in `seq 30 37`; do printf "\e[${fore}m \\\e[${fore}m \e[m\n"; for mode in 1 4 5; do printf "\e[${fore};${mode}m \\\e[${fore};${mode}m \e[m"; for back in `seq 40 47`; do printf "\e[${fore};${back};${mode}m \\\e[${fore};${back};${m

    シェルスクリプトの出力に色をつけたい! - Qiita
  • これだけ覚えておけばOK!シェルスクリプトで冪等性を担保するためのTips集 - Qiita

    「シェルスクリプトって冪等性ないじゃないですか」 そんなことをよく耳にします。しかし、if文を入れるだけで簡単に冪等性を担保したシェルスクリプトを書くことができます。 今回は、私が使う条件式を紹介します。基的な形式なものなので、組み合わせると幅が広がりますよっ! ファイル/フォルダ関係 ファイルの存在確認 -e 'ファイル名'で「ファイル名」が存在しているかチェックします。 if [ -e 'ファイル名' ]; then # ファイル/フォルダが存在していれば、ファイル/フォルダを削除するなど rm ファイル名 fi

    これだけ覚えておけばOK!シェルスクリプトで冪等性を担保するためのTips集 - Qiita
  • そこまで遅くないShellスクリプトの書き方

    この記事は Shell Script Advent Calendar 2015 10日目の記事です。 9日目の記事はryoana14さんの麗しきawkの世界でした。 Shellスクリプトがいつまで経ってもまともに書けないMasWagです。書けないなりにも人の書いた(昔の自分が書いたものも多く含む)スクリプトを見てこれは遅いなと思うことはたまにあります。書き方のコツというか考え方が幾つかあると思うのでまとめてみようと思います。基的な話なので多分Shellスクリプトをあんまり普段書かない人向けだと思います。ShellはBashを前提として書きます。zshだともっと色々できるのかもしれないです。細かい説明は(そんなに細かくなくても?)省いているので適宜manやinfoを参照すると良いでしょう。 forkを減らす Shellでコマンドを使うということは多くの場合プロセスをforkしていることにな

  • そのシェルスクリプトもうちょっとシンプルに書けそう Tips集(Golf/シェル芸ではない) - Qiita

    Shell Script Advent Calendar 2015 4日目 の投稿です。 以前から自分用にメモしていたものを文字起こししました。 はじめに 仕事でシェルを使い始めて3年くらい経ちました。 途中、pythonruby でスクリプト作ったり、ちょっと zsh に浮気したりしましたが、なんだかんだで今も Bash を使うことが多いです。 この3年間、スーパーシェル芸人(@ebanさん)にご教授頂いたり、Golfしたり(@ebanの影響)、シェル芸勉強会に参加したり(@ebanの影響)してきました。 そんな3年間のまとめとして、シェルスクリプト初めましてだった3年前の私に向けたTips集を書いてみました。 趣旨 各項目ごとに、まず初心者(過去の私がやってた)あるある実装を例示して、その次に、より良さげな実装を例示する構成としています。 実行環境 OS Mac OS X Yos

    そのシェルスクリプトもうちょっとシンプルに書けそう Tips集(Golf/シェル芸ではない) - Qiita
  • 実務で役立つシェル系Tips - Qiita

    パスの末尾に/があるかないかを気にしたくない 文字列を結合してパスを生成したりするときに、パスを格納した複数の変数を文字列結合するときがあります。 dirHome="/var/lib/hoge/" workDirName="work" echo "${dirHome}${workDirName}" # /var/lib/hoge/workと表示される しかし、dirHomeやworkDirNameのような変数をコンフィグファイルで設定していたり、実際に参照するところと定義箇所が遠いときがあると厄介なことが起こりえます。 例えば、下記のようにdirHomeの末尾に/がなかったらどうなりますでしょうか?

    実務で役立つシェル系Tips - Qiita
  • 改めてsudoについて調べてみた - Qiita

    要点 ⑴sudoした場合は環境変数を引き継がない。 ⑵sudoで環境変数を引き継ぐにはsudo -E some_commandかsudoersにenv_keepを書く。 ⑶sudo ${pathが通っているコマンド}を実行する場合、カレントユーザのpathによって実行するコマンドが決まる。 sudoについて調べたきっかけ 今まで「root権限でコマンドを実行したい場合」にsudoを使っていたのですが、 とあるrubyのスクリプトをsudoで実行したところ以下のようなエラーがでました。 $ sudo /usr/local/hoge/fuga.rb /usr/local/hoge/fuga.rb:3:in `require': no such file to load -- thor (LoadError) from /usr/local/hoge/fuga.rb:3 rootとカレントユーザ

    改めてsudoについて調べてみた - Qiita
  • 初心者向け、「上手い」シェルスクリプトの書き方メモ - Qiita

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

    初心者向け、「上手い」シェルスクリプトの書き方メモ - Qiita
  • Memo/Linux/ShellScript - DEX Lab

    配列内の要素と一致するか † 記事: 【Bash】配列に値が含まれているか確認する方法 #Bash - Qiita "grep -qx" を使う方法 #!/bin/bash key=$1 array=( val1 val2 ) if printf '%s\n' "${array[@]}" | grep -qx "$key"; then echo "$key exists." else echo "$key does not exist." fi ↑

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

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

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

    以前、シェルスクリプトを書くときに気をつける9箇条という記事を公開しましたが、あれから整理され洗練されてきたのでまとめてみました。今回は「気をつける」というよりも書くときに守っている/意識していることです。 1. 成功した時には何も返さない 簡単なコマンド mkdir を例に説明します。 ディレクトリをつくるときにこのコマンドを使用しますが、タイトル通り、正常にディレクトリの作成が行われれば、ターミナル画面上には何も表示されません。

    シェルスクリプトのコーディングルール2014 - Qiita
  • 第1回 一撃サーバー構築シェルスクリプト勉強会

    2014/09/06 開催の第1回 一撃サーバー構築シェルスクリプト勉強会 発表資料です。Read less

    第1回 一撃サーバー構築シェルスクリプト勉強会
  • シェルスクリプト入門 書き方のまとめ | Memo on the Web

    シェルスクリプト入門として, 基的な書き方をまとめました. 長いですが, 1ページにまとめてみました. 良かったら目次も参考にしてご覧になって下さい. 目次 シェルスクリプトとは 作り方, 実行の仕方 コメント ユーザーからのキーボード入力を受け付ける 変数 通常の変数 特別な変数 演算子 数値計算演算子 比較演算子 コマンドを繋げる演算子 条件文に使える比較演算子 条件文 制御構文(分岐) if文 case文 制御構文(ループ) for文 while文 until文 select文 文字列処理 文字列置換 削除 複数行のテキストの出力(ヒアドキュメント) 関数 シェルスクリプトとは シェルスクリプトとは, シェルの動作をまとめて記述したスクリプトのことです. 決められた文法にしたがって処理を記述することによって, シェルでの処理をまとめて行ったり, 作業を自動化できたりします(例 複数

  • nanapi勉強会vol2でshellについて話す会を企画した&話した&まとめた - UNIX的なアレ

    個人的なShellTipsをまとめてみた - UNIX的なアレ 以前に話題になったネタでこんなエントリーを書きましたが、どうならもっといろいろな人の話を聞いてみたいよね、というわけでid:sotarokと話しててこの勉強会をやることになりました。 もともとのコンセプトとしてはshellのウルトラなテクニックを紹介するというよりも、なんかイマイチ使いこなせてない感がある人とか、めんどくさい作業をめんどくさいと感じずにやっている人向けな内容です。 そんなわけで、私が発表した内容は以下のスライドです。 なんか途中からemacsの話してるんですけど、emacsは概念だしレイヤーが違うので特に問題はありません。なおやさんもemacsの話してたし。 その他、当日の資料が上がっていますのでまとめてみました。 当日の資料 当日の発表内容はこんな感じです。全体的にすごく興味深い話でした。まず今日からzaw使

    nanapi勉強会vol2でshellについて話す会を企画した&話した&まとめた - UNIX的なアレ
  • IDEA * IDEA

    ドットインストール代表のライフハックブログ

    IDEA * IDEA