タグ

shellに関するa2ikmのブックマーク (157)

  • fzfを活用してTerminalの作業効率を高める

    はじめに 今回は作業効率化をすすめるにあたって有用なfzfの利用例を紹介したいと思います。 似たようなものでpecoというのもありますが、fzfの記事が少ないと思うので、今回はfzfについて書いていきたいと思います! (あとfzfはVimでも使えるようにサポートされているので、Vimmerの方はpecoよりもfzfかなということもあり…。) fzfとは fzf https://github.com/junegunn/fzf fzfとはCLIでインクリメンタルに曖昧な検索が可能になるGO言語製のツールです。 標準出力をパイプでfzfコマンドで渡すだけで、標準出力の内容を対象に検索できます。 上部の入力箇所でインクリメンタル曖昧検索しながら、(CLIとしては慣れ親しんだキーバインドの)Ctrl-n,Ctrl-pで下部のリストから選択することができます。 (もちろんカーソルキーでもOK) 最初は

    fzfを活用してTerminalの作業効率を高める
  • systemdのenvfileを普通のコマンド実行時に流用する - たごもりすメモ

    普段はsystemd経由で実行しているコマンドをCLIから実行したい、環境変数もsystemd経由で起動するときと同様にセットしたいのでenvfile(EnvironmentFile)をそのまま使いたいんだけどなんか微妙にやりにくくないか、と思って何度か調べたことがあるんだけど、あんまりうまい方法が検索結果に出てこない。 んだけど、あれ、これ簡単じゃん。(追記: これはごく単純なケースでしか動かなかった、後段参照) $ env $(cat myenvfile | grep -v '^#') target-commandenvfileをシェルスクリプトとして実行して追加された変数をなんとかexportすれば……みたいに考えてたけどenvコマンドで一発だった。変なコメントとか入ってると厄介だけど、こんな感じでいいのでは。ということでメモ。 空白を含む値の処理 まあいいやとスルーしてたけど値が空

    systemdのenvfileを普通のコマンド実行時に流用する - たごもりすメモ
    a2ikm
    a2ikm 2020/08/18
  • シェルを作っている - ぶていのログでぶログ

    シェルスクリプトじゃなくてシェル。 前回の記事でGNU bison/flexのことを書いたのはこれの副産物だったのであった。 なぜ作っているかというと面白そうだからという理由以外ないのだけど、きっかけはxonshというPython-powerdなシェルがあることを知って「PythonがあるならRubyもほしい」と思ったのであった。 reddish-shell シェルの名前は reddish-shell としている。 reddishは赤みを帯びたという意味らしく、Rubyも赤っぽいし、shで終わっているし*1でこれにした。 もしかしたら、そのうち変えるかもしれないし変えないかもしれない。 コンセプト ただ普通にシェルを実装しても面白くないし実用性もないので、ある程度コンセプトを考えている。 まず、大前提として前述したとおりRuby-powerdにしたい。 Rubyの構文が使えるようにしたいと

    シェルを作っている - ぶていのログでぶログ
  • コマンドラインプログラムにおける引数、オプションなどの標準仕様 | プログラマーズ雑記帳

    コマンドラインプログラムの引数、オプションといったインターフェースには ちゃんと仕様、ガイドラインといったものが存在しています。 Unix(Linux) では慣習としてなんとなく合うものなのですが、 WindowsJava のプログラムなどでは、インターフェースがめちゃくちゃなプログラムも結構あります。 今回はコマンドラインプログラムの標準的なインターフェースの仕様、動作を紹介します。 プログラムを作る際の参考にしてもらえればと思います。 標準インターフェースはよくあるケースを考慮されて作られているものです。 自分の作っているプログラムは標準的なケースと違うといったことがあるかもしれません。 しかし、 標準のスタイルは合わせること自体に意味があります。 作成する場合にはなるべく標準インターフェースにあわせて作るべきだと思います。 Windows or Unix スタイル コマンドライ

    a2ikm
    a2ikm 2020/05/21
  • GitHub - ktr0731/evans: Evans: more expressive universal gRPC client

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

    GitHub - ktr0731/evans: Evans: more expressive universal gRPC client
  • shellの-cオプションについてUbuntuのsh(dash)、bash、zshはそれぞれ違う挙動をする - Qiita

    shellの-cオプションについてUbuntuのsh(dash)、bash、zshはそれぞれ違う挙動をするBashZshshellshDash manコマンドで見てみるとこんな感じ。 For sh(dash) ubuntuの場合shはdashという軽量シェルにリンクしています Read commands from the command_string operand instead of from the standard input. Special 0 will be set from the command_name operand and the positional parameters (\$1, \$2, etc.) set from the remaining argument operands. For bash If the -c option is present,

    shellの-cオプションについてUbuntuのsh(dash)、bash、zshはそれぞれ違う挙動をする - Qiita
  • 単純作業を自動化して人類の無駄な時間をなくそう - 竹迫の近況報告

    このエントリーは Recruit Engineers Advent Calendar の 5日目の記事です。 www.adventar.org 目次 自己紹介 時間は有限、大切に使おう sshで30台のサーバをセットアップする expect コマンドを使おう StrictHostKeyChecking no chpasswdでパスワード設定 chmod u+sとSUID seqコマンドとbash拡張構文{1..9} Excel業務を自動化しよう Win32::GuiTest でキーボード入力を自動化 MouseMoveAbsPix でマウス操作を自動化 マインスイーパーの自動化 BadUSBによるキーボード入力の自動化 まとめ 1. 自己紹介 @takesakoです。最近、まつもとゆきひろさんと岸川克己さんが技術フェローと技術顧問に就任した会社で専門役員を担当しています。 会社ではホールデ

    単純作業を自動化して人類の無駄な時間をなくそう - 竹迫の近況報告
  • Makefileの基本的な書き方について

    最近研究室Wikiに後輩向けの文章書いてたのですが,いくつかはclosedにするのも勿体無いので編集してブログで公開しようかと思います。 概要 Makefile は自分の書いたコードのビルドの自動化に便利なため基的な記法は知っておくとよい いちいちシェルの履歴を確認したりコマンドをミスする悲しいことがなくなる Makefile はビルドだけでなく実験やらなんやらの task runner としても便利 ビルド・実験を回す・結果をグラフにする,などをまとめてやったりすることも可能 上記は shell script でも可能だがメリットとして あるタスクに対して依存関係が記述できる 実験タスクの依存にビルドタスクを記述すれば,実験タスクを実行したら自動でビルドしてくれる あるタスクについて,依存先が更新されていなければ実行しないという機能が標準で存在 二行上のような依存を記述していたときに,

    a2ikm
    a2ikm 2019/12/30
  • Your Makefiles are wrong

    Your Makefiles are full of tabs and errors. An opinionated approach to writing (GNU) Makefiles that I learned from Ben may still be able to salvage them. An opinionated approach to (GNU) Make This is my second hand account of the approach to Make that I learned from Ben. If something is wrong, assume it was lost in translation. The big things I hope you take away are: The file system is a fundamen

  • GitHub - nushell/nushell: A new type of shell

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

    GitHub - nushell/nushell: A new type of shell
  • xargs で function を呼び出す話。[shell xargs function] - Qiita

    内容としては、パイプラインとサブシェルのよくある話だった。 https://fumiyas.github.io/2013/12/10/lastpipe.sh-advent-calendar.html 失敗理由としては、 メインシェルとサブシェルがあって、パイプラインはサブシェルで実行される事。 そしてbash -cは新しいプロセスで実行するという事。 ということはつまり、一つ目のexport -f <function>がサブシェルで行われるとすれば、サブシェルの中でexportされるが、しかしbash -cで実行される新しいプロセスでは余所のサブシェルがexportした物は当然ながら見れないので、失敗します。 ではどうするかというと、メインシェルの方でexportしておけばよいわけで上述の通りexportしてからパイプラインを実行するという形になるわけですね。 敢えて1行にするのであれば、

    xargs で function を呼び出す話。[shell xargs function] - Qiita
    a2ikm
    a2ikm 2019/08/09
  • bashでdotenvファイルを環境変数に読み出す | おそらくはそれさえも平凡な日々

    .env みたいな環境変数設定ファイルを読み込んでから指定プログラムをexecするみたいなラッパーが欲しくなる事あると思います。 Goだとgithub.com/joho/godotenvとかあるけど、Goでやるほどでもないよねーという感じだったので、bashで書くなどした。 #!/bin/bash set -e if [[ "$#" = "0" ]]; then echo "usage: env-wrap.sh cmd [args...]" >&2 exit 1 fi # declare -x を引数無しで呼び出して、現状の環境変数をexportableな形式で書き出す orig_env="$(declare -x)" envfile=.env # allexportは`KEY=VALUE`をシェル変数じゃなくて、環境変数としてexportする危険なオプション set -o allexpo

    bashでdotenvファイルを環境変数に読み出す | おそらくはそれさえも平凡な日々
  • tail -Fなどの標準出力を一定時間ごとに指定のコマンドに渡し、その実行結果をシーケンシャルに出力するコマンド evry を作った - Copy/Cut/Paste/Hatena

    ログの流量やサマリを、カジュアルに、そしてリアルタイムに確認したかったので作ってみました。 github.com これはなに 標準入力の内容を、一定時間ごと(もしくは一定行ごと)にまとめて指定のコマンドに渡し、その実行結果をシーケンシャルに出力するコマンドです。 使い方 例えば、「NGINXの10秒あたりのリクエスト数を確認する」には、以下のように evry で10秒ごとにまとめた標準入力を wc -l に渡します。 $ tail -F /var/log/nginx/access.log | evry -s 10 -c 'wc -l' 8700 1260 8580 6430 [...] 例えば、「Apacheの1000リクエストあたりのアクセス先ランキング上位5を確認する」には、以下のように書けます(GNU sedを使用)。 $ tail -F /var/log/httpd/access.

    tail -Fなどの標準出力を一定時間ごとに指定のコマンドに渡し、その実行結果をシーケンシャルに出力するコマンド evry を作った - Copy/Cut/Paste/Hatena
  • ghq + peco/percol

    This has been rocking my Twitter developer community for the past few days, but mostly only in Japanese — here’s an attempt #1 to fix this. tl;dr ghq allows you to organize git clones via a simple CLI and peco or percol makes cd’ing to these directories on your shell a snap. GOPATH/src for everything Go has an interesting directory structure that forces you to adopt when you write your own Go prog

  • iSH

    Wait, what's iSH? iSH is a project to get a Linux shell environment running locally on your iOS device, using a usermode x86 emulator. iPadOS? You bet. iSH also runs on iPad, bringing a terminal to larger displays as well.

  • どの環境でも使えるシェルスクリプトを書くためのメモ ver4.60 - Qiita

    シェルスクリプトは環境依存が激しいから…… などとよく言われ、敬遠される。それなら共通しているものだけ使えばいいのだが、それについてまとめているところがなかなかないので作ってみることにした。 「どの環境でも使える=POSIXで定義されている」と定義 「どの環境でも使える」とは、なかなか定義が難しい。あまりこだわりすぎると「古いものも含め、既存のUNIX全てで使えるものでなければダメ」ということになってしまう。しかし、私個人としては 今も現役(=メンテナンスされている)のUNIX系OSで使いまわせること にこだわりたい。 とはいっても全てのOSやディストリビューションについて調べられるわけではないので、この記事では基的に最新のPOSIXで定義されていることをもって、どの環境でも使えると判断するようにした。(飽くまで「基的に」ということで) 従って、互換性確保のため、シェルの中で使ってよい

    どの環境でも使えるシェルスクリプトを書くためのメモ ver4.60 - Qiita
  • Ctrl-D の話 - ひげぽん OSとか作っちゃうかMona-

    Mosh の REPL が Ctrl-D で抜けられないとご指摘いただいていた件。 そもそも Ctrl-D って何だっけ?と立ち止まり調べましたが当たり前すぎて(?)記事にすらなってないので書いておきます。 ユーザーから見た Ctrl-D 入力終了を対話型のプログラムにしらせることに使う。 例えば irb から抜けるとき。 dekisugi% irb irb(main):001:0> puts "Hello" Hello => nil irb(main):002:0> # Ctrl-D で irb から抜ける その対話型プログラムが持つ exit や quit などの終了コマンドを入力するよりも楽ですね。 人によっては Ctrl-C を使う場合もあるかもしれません。(そのプログラムが SIGINT をどう扱っているかに依存するので、Ctrl-c で終了しない場合もよくあります。) 追記 i

    Ctrl-D の話 - ひげぽん OSとか作っちゃうかMona-
  • Tutorial - Write a Shell in C - Stephen Brennan

    Stephen Brennan • 16 January 2015 It’s easy to view yourself as “not a real programmer.” There are programs out there that everyone uses, and it’s easy to put their developers on a pedestal. Although developing large software projects isn’t easy, many times the basic idea of that software is quite simple. Implementing it yourself is a fun way to show that you have what it takes to be a real progra

    Tutorial - Write a Shell in C - Stephen Brennan
  • bashのヒアドキュメントを活用する - Qiita

    ヒアドキュメントはシェルスクリプトの中にちょっとした別のスクリプトを埋め込むときに便利です。 数行のスクリプトのためにわざわざファイルを作る必要がなくなり、見通しがよくなります。 # ちょっとしたスクリプトを動かすのに便利 # 例) oracleDBのテーブル一覧を出力する sqlplus -S user/pass@sid << EOS set pagesize 0 set feedback off select table_name from tabs order by table_name; EOS 要点 ヒアドキュメントを理解するうえで重要なのは、ヒアドキュメントは標準入力として扱われる、ということです。 文字列リテラルでないことに注意してください。 これを把握していれば、最初の例でcatにヒアドキュメントを渡していた理由がわかるかと思います。 catはファイルを省略した場合に標準入

    bashのヒアドキュメントを活用する - Qiita
    a2ikm
    a2ikm 2018/09/21
    "ヒアドキュメントは標準入力として扱われる"よく間違える
  • GitHub - thisredone/rb: Turns Ruby into a versatile command line utility

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

    GitHub - thisredone/rb: Turns Ruby into a versatile command line utility