タグ

shellに関するma_koのブックマーク (59)

  • なぜ今シェルスクリプトを学ぶのか・シェルスクリプトのTips - 理系学生日記

    会社の中でシェルスクリプトについての話をすることにしたので、このエントリはそのためのものです。 個人的な好みとかもいろいろ入ってしまっているので、そのあたりは取捨選択してください。 なぜ今シェルスクリプトを学ぶのか 公開されているSREをマルっとPDF化する SpotBugsのViolationレポートをMerge Requestのコメント投稿する ぼくの互換性についての考え方 何で書くか シェルスクリプトをうまく書くには ShellCheckを使う バッドパターンとその修正 line-by-lineの処理が多い lsを使う ls /directory | grep mystring ls | grep -v 'log$' lsの結果をループさせる 良いシェルスクリプトを書くためのTIPS set -euする 文字列は基的にクオートする 局所変数にはlocalを使う 定数は読み取り専用

    なぜ今シェルスクリプトを学ぶのか・シェルスクリプトのTips - 理系学生日記
    ma_ko
    ma_ko 2022/05/01
  • fish shellチュートリアル

    fishはフル装備のコマンドラインシェル(bashやzsh同様)で、賢くユーザフレンドリーです。 fishは シンタックスハイライト 、 オートサジェスチョン 、知識ゼロ・設定ゼロでそのまま動作する TAB補完 をサポートしています。 もし、コマンドラインをもっと生産的に、便利に、楽しい(難解な文法や設定オプションを学ぶことなく)環境にしたいならば、fishはあなたの求めていたシェルかもしれません! このチュートリアルはコマンドラインシェルやUnixコマンドの知識があり、fishがインストールされていることを前提とします。 もし、他のシェルについての深い理解があり、fishとの相異点を知りたいならば、 「 他のシェルと違って 」 という魔法の語句を検索してください。 それは重要な相異点を表してます。 fishを立ち上げると、このように表示されます。 Welcome to fish, the

    fish shellチュートリアル
    ma_ko
    ma_ko 2018/09/09
  • fish-shell でシェルの海をスイスイ泳いでみた | 株式会社ヌーラボ(Nulab inc.)

    Backlog開発チームの佐藤です。自宅と会社でWindows/Macを併用しているせいか、日語と英語を切り替えるとき、自宅のWindowsではWindows+スペース、会社のMacではescキーをよく押してしまいます。 それはさておき、私がコンソールで操作するときはデフォルトで入ってるものをそのまま使います。Macデフォルトのbashのディレクトリ移動にいい加減疲れを感じたのと同時に、zshに憧れを抱いていました。そんな最中、「fish shell」というシェルを見つけて超快適になったので、その素晴らしさをお伝えします。 fishとは? 後ろがshとなっている通り、シェルの名前です。お魚じゃないよ!githubにてthe friendly interactive shellと自称しているだけあり、ユーザーフレンドリーさに重点を置いて開発されています。 fishの特徴として、他のシェルと

    fish-shell でシェルの海をスイスイ泳いでみた | 株式会社ヌーラボ(Nulab inc.)
    ma_ko
    ma_ko 2018/09/09
    家と会社のだけ fish-shell にしてみた
  • bashのそれって実はこういう書き方できるよ一覧 - Qiita

    bashで普段こう書いているけど、実はこういう書き方もあるんですよというのをまとめてみました。 ->の右側がmanに載ってるテク名です。 例えばどういったものが書けるかはガチャガチャした前回の記事で…。 `command` -> Command Substitution 書く量は増えるけど、視認性が良い(ネストした時が特に)。 尚、これは書き方が違うだけでどっちもCommand Substitutionです。

    bashのそれって実はこういう書き方できるよ一覧 - Qiita
    ma_ko
    ma_ko 2017/04/01
    Brace expansion ってこんなこともできたのか “echo {1..11..2}”
  • 統合シェルやインライン画像機能で便利になった「iTerm2 v3」を使ってみた。

    iTerm2は現在v3のベータ版のv2.9から画像のls「imgls」や画像のcat「imgcat」に対応しており、公式サイトで配布されているスクリプトを実行することで以下の様な画像のインライン表示が可能です。(*v 2.9.20150512 からはアニメーションGIFにも対応しています) iTerm2 is able to display images within the terminal. Using a similar mechanism, it can also facilitate file transfers over any transport (such as ssh or telnet), even in a non-8-bit-clean environment.Inline images and file transfers are only available i

    統合シェルやインライン画像機能で便利になった「iTerm2 v3」を使ってみた。
    ma_ko
    ma_ko 2017/03/07
    imgcat だけじゃないんだな、色々追加されてる
  • 割りと便利だけど微妙に忘れがちなbashのコマンド・チートシート - Qiita

    自分用にメモしておく コマンド実行 CMD1; CMD2, CMD1 && CMD2 ;はCMD1の結果に関わらずCMD2も実行される &&はCMD1の結果が正常な場合のみCMD2が実行される CMD1 || CMD2 - 失敗時に後続コマンドを実行する CMD || printf "%b" "MSG"でエラーメッセージを表示する エラーメッセージ表示後exit 1したい場合 = CMD || { printf "%b" "FAILED.\n" ; exit 1 } CMD || printf "%b" "FAILED.\n" ; exit 1と波括弧無しで書くと期待通り動作しない(CMDが成功時もexit 1してしまう) CMD & - バックグラウンド実行 CMD &で[1] 4592のようにジョブ番号とプロセスIDが表示される killしたければkill %ジョブ番号 か kill

    割りと便利だけど微妙に忘れがちなbashのコマンド・チートシート - Qiita
  • Linuxサーバにログインしたらいつもやっているオペレーション - ゆううきブログ

    主にアプリケーション開発者向けに、Linuxサーバ上の問題を調査するために、ウェブオペレーションエンジニアとして日常的にやっていることを紹介します。 とりあえず調べたことを羅列しているのではなく、当に自分が現場で使っているものだけに情報を絞っています。 普段使っているけれども、アプリケーション開発者向きではないものはあえて省いています。 MySQLNginxなど、個別のミドルウェアに限定したノウハウについては書いていません。 ログインしたらまず確認すること 他にログインしている人がいるか確認(w) サーバの稼働時間の確認 (uptime) プロセスツリーをみる (ps) NICやIPアドレスの確認 (ip) ファイルシステムの確認(df) 負荷状況確認 top iostat netstat / ss ログ調査 /var/log/messages or /var/log/syslog /

    Linuxサーバにログインしたらいつもやっているオペレーション - ゆううきブログ
  • bashのTips色々 - Qiita

    概要 bashの記法は独特なものが多く毎回ググってしまうのでまとめて(と言いつつまとまりがないですが。。。)おこうと思います。 ある程度まとまってからpostしようとか思ってたらごちゃごちゃになっちゃいました。 bashで使えるという意味なのでposixシェル共通のネタも混ざってます。 随時更新します。参考になれば幸いです。 参考 man bash リファレンスマニュアル Advanced Bash-Scripting Guide カッコ色々 bashでは色々なカッコがありますが、よく違いが分からず使っていたりするのでまとめてみます。 []と[[]] []はtestコマンドのaliasです。[[]]じゃないとできないこととしては、以下のようなものがあります。 空白を含む文字列をクォートしなくてOK var='abc 123' # []の中だとクォートしないとエラーになる [ $var =

    bashのTips色々 - Qiita
    ma_ko
    ma_ko 2015/11/11
  • シェルスクリプトで、ある順番以降の引数を取得する - Qiita

    $#には、引数の数が格納されています。なので、この場合は3番目以降の全部なので、全体の数から、いらない2つを引いているわけです。 てか、↑をやんなくても、3番目以降「全部」なら${@:3}でもよかった。つまり、開始の順番だけでよい。3番〜5番目とかなら「3番目以降の3つ」という意味で ${@:3:3}と書く必要がある。 応用例として、2個の引数のあと、--以降にオプションとして解釈されたくない文字列がある場合、以下のように書けます。

    シェルスクリプトで、ある順番以降の引数を取得する - Qiita
  • root権限がないときのpython・numpy・scipyのソースからのインストール on Linux - Qiita

    root権限がない一般人が,python2系列をインストールする手順についてのメモ. 一言概要 ソースからビルドします. なぜ必要か root権限を持つユーザはこんなことを考える必要はほとんどない. しかし,root権限のないただの人の場合,pipやeasy_installなどでたった1行で済むパッケージのインストールすらできない(というのは一部嘘ですが :-p ).また,共用マシン環境の場合,自分の都合だけで勝手にpythonのバージョンを上げたりパッケージを追加更新したりできない点もネックになる. インストールする インストール先: /home/akisato/src/downloads/python-2.7.6rc1とする. python: ちょっと古いけど,python 2.7.6 RC1を想定. OS: CentOS 6系列を想定するが,たぶん他のlinux OSでもOK. bz

    root権限がないときのpython・numpy・scipyのソースからのインストール on Linux - Qiita
    ma_ko
    ma_ko 2015/06/05
    libfblas.a や libfblas.so のセットアップとか
  • bash スクリプトの先頭によく書く記述のおさらい - Money Forward Developers Blog

    こんにちは。 マネーフォワードでアグリゲーション開発を担当しています中川です。 今回のブログは、私が bash スクリプトを書く際に心がけている事のおさらいをします。 知ってて当たり前のことかも知れませんが、意外と理解されていないアレです。 では、私が bash スクリプトを書く際によく使う記述を一つずつ紹介します。 2種類の shebang シェルスクリプトの一行目に必ず記述する #! で始まる行を shebang と言います。 bash スクリプトの shebang は、bash を絶対パスで指定する方法と、env を使って指定する方法の二種類あります。 bash を絶対パスを指定する方法 #!/bin/bash env を使ってを指定する方法 #!/usr/bin/env bash 前者は /bin/bash が使われます。 (/bin/bash が存在しなければスクリプトの起動時に

    bash スクリプトの先頭によく書く記述のおさらい - Money Forward Developers Blog
  • zsh で編集子を使ってグロブ展開とかをその場で編集する - Qiita

    zsh には編集子(modifiers)というのがある。 こいつを使うと、グロブ展開(ワイルドカード展開)の結果をいろいろと編集できるようになる。 簡単な例 とりあえず例を見てもらったほうが早いと思う。 # 今このディレクトリにいる % pwd /home/mollifier/tmp # ファイルが2つある % echo * fuga.txt hoge.txt # :a は編集子の一種で、フルパスに変換する % echo *(:a) /home/mollifier/tmp/fuga.txt /home/mollifier/tmp/hoge.txt # :r も編集子の一種で、ファイルの拡張子の部分を取り除く % echo *(:r) fuga hoge # 並べて書けば2つ以上使うこともできる % echo *(:a:r) /home/mollifier/tmp/fuga /home/mo

    zsh で編集子を使ってグロブ展開とかをその場で編集する - Qiita
    ma_ko
    ma_ko 2015/05/26
    zsh での編集子
  • Bashの変数パラメータ展開のまとめ - harry’s memorandum

    Bashのパラメータ展開はすぐに忘れてしまうのでメモ。 変数の文字数 ${#parameter}で変数の文字数を調べることができます。 name=/var/log/boot.log echo ${#name} 17 wcやawkコマンドを使う方法がありますがスマートではありません。*1 $ n=`echo $name | wc -c`; echo $(($n-1)) 17 $ echo $name | awk '{ print length($0)}' 17 配列も同じように配列数を調べることができます。 $ array=(a b c d e) $ echo ${array[0]} a $ echo ${#array[@]} 5 変数パラメータ展開 変数を切り出せます。ファイル名やディレクトリ名を簡単に切り出すことができます。 $ name=/var/log/boot.log $ echo

    Bashの変数パラメータ展開のまとめ - harry’s memorandum
    ma_ko
    ma_ko 2015/05/26
    “echo ${name%.*}” bash での編集子 (拡張子の削除)
  • シェルスクリプトのLinterとか文法チェックとか - @peccul is peccu

    シェルスクリプト、大きめのものを書いているとどんどん不安になってくる。 あと、こう書くとよい。みたいなものがわかりにくい。 Linterを探してみた。 シェルの-nオプション シェルに実行せず確認だけというオプション-nがあるとのこと。下記は各種シェルで試すループ。 for shell in zsh ksh bash dash sh do echo "Testing ${shell}" ${shell} -n my_script.sh done stackoverflow.com ShellCheck Linterがあった。Web上のフォームにコピペすると指摘してくれる。 www.shellcheck.net コマンドラインツールとしても利用できる。 cabalかbrewで入れられる。 cabal install shellcheck brew install shellcheck 使い方

    シェルスクリプトのLinterとか文法チェックとか - @peccul is peccu
  • Lessの便利な使い方

    最近 Stop using tail -f (mostly) や 「tail -f」を使うのは情弱、情強は「less +F」を使う などless押しな記事が幾つか上がっているんだけど、タイトルが煽り気味なのか若干反感を呼んでいるようなのでless派が職場で肩身の狭い思いをしないようにもう少し便利な使い方を紹介したい。 tail -fの様なScroll forward less +Fで起動またはless起動中にF 元記事にもあるtail -fと同様の振る舞い。正直この機能と検索だけでいいのであればtailで十分。lessの便利なところは様々な機能との組み合わせにあって、これから紹介する機能は基的にこのモードと組み合わせが可能だ。あと、less開いてFのほうがタイプが面倒くさくないのでおすすめ。 1行で表示する (改行しない) less -Sで起動またはless起動中に-Sr(-Sでモード切

    Lessの便利な使い方
    ma_ko
    ma_ko 2015/04/07
    grep的に検索して表示、非表示は知らなかった。いいな、それ。
  • 初心者向け、「上手い」シェルスクリプトの書き方メモ - Qiita

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

    初心者向け、「上手い」シェルスクリプトの書き方メモ - Qiita
    ma_ko
    ma_ko 2015/02/12
  • インフラエンジニアとしてよく使うコマンド集 - Qiita

    私がよく使うコマンド集となります。 参考に頂けたら幸いです。 随時更新するかと思います。 コマンドを打つ前に覚えておく事 ①サーバに負荷がかかるコマンドを打つ場合、下記をコマンドの先頭に付けましょう $ ionice -c 2 -n 7 nice -n 19 # -c 2:ディスクI/Oの実行優先度をベストエフォートで実行 # -n 7:さらにこのコマンドの優先度を低くする # -n 19:プロセスの実行優先度を一番低くする

    インフラエンジニアとしてよく使うコマンド集 - Qiita
  • 今更ながら抑えておきたいシェルスクリプト用チートシート - Qiita

    シェルスクリプト書くときになかなか覚えていなくて、かつググラビリティが低い情報をまとめてみました。 6/19 コメントを元に一部修正しました hnakamurさんありがとうございます! 参考になる文献 test bash manual zsh manual 特殊な変数 変数 説明

    今更ながら抑えておきたいシェルスクリプト用チートシート - Qiita
    ma_ko
    ma_ko 2014/07/19
    変数処理とかあるんだ…
  • 使いやすいシェルスクリプトを書く

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

  • シェルスクリプト入門 書き方のまとめ | Memo on the Web

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