タグ

ShellとLinuxに関するU1and0のブックマーク (19)

  • Awkワンライナー (最小値、最大値、合計、平均、中央値) - 雨の歌をいつか書く

    簡単な解析はワンライナーでやっちゃおう。ということでまずは簡単に最小値と最大値と平均を求めるAwkワンライナーを書きます。 たとえば以下のようなログファイルがあるとする。僕はいま、3列目の数値に対して統計値を出したいのだ。 0 0 147.086 0 10 141.269 0 20 10000 0 30 2805.22 0 40 152.003 0 50 144.762 0 60 144.926 最大値 cat test.log | awk '{if(m<$3) m=$3} END{print m}' { if(m<$3) m=$3 } END { print m } $3ってのが第3番目の列という意味なので、ここを変えれば別のところも参照可能。BEGINの中で初期値を設定する必要があるのかなと思っていたけど、いきなりif(m>$3)を実際にやってみたら大丈夫だった。 最小値 基的には同

    Awkワンライナー (最小値、最大値、合計、平均、中央値) - 雨の歌をいつか書く
    U1and0
    U1and0 2019/01/07
    awkで中央値
  • bashのキー操作一覧まとめ - 元RX-7乗りの適当な日々

    bashでは、"Ctrl"や"Esc"キーと組み合わせることで様々な操作ができるので、メモ代わりにまとめておきます。 よくやるのが「Ctrl + s」キーを押してしまうと、フリーズしたかのように見えるので一瞬焦ってしまう。そんな時は・・・ Ctrl + b カーソルを左へ1文字移動 (←キーでもOK) Ctrl + f カーソルを右へ1文字移動 (→キーでもOK) Esc + b カーソルを右へ1単語移動 Esc + f カーソルを右へ1単語移動 Ctrl + p historyの1つ前に入力したコマンドを表示 (↑キーでもOK) Ctrl + n historyの1つ後に入力したコマンドを表示 (↓キーでもOK) Ctrl + h カーソルの左1文字を削除 (BackspaceキーでもOK) Ctrl + d カーソルの右1文字を削除 (DeleteキーでもOK) Ctrl + a カー

    bashのキー操作一覧まとめ - 元RX-7乗りの適当な日々
  • lessの一歩踏み込んだ使い方

    B! 44 0 2 0 ターミナルでドキュメントを開く手軽なコマンドのlessですが、 小さなものならcatで良かったり、 サイズがそこまで大きく無ければvim等のエディタで開いてみてしまったりすることが多いです。 というのもlessの機能を余り知らないのでvimなどで見た方が色々と便利だったりするので。 しかしlessも実は結構高機能で便利だったりするので知っていると 使えることも結構あります。 その辺の一歩踏み込んだlessの使い方について。 less オプションのプレセット指定 表示中にオプションを切り替える シンタックスハイライト(source-hilight、ついでにlesspipe.shについて) 途中からエディタで開く 複数のファイルを扱う tail -fの代わりに使う less lessはMark Nudelman氏によって書かれたもので、今は GNU Projectの一つ

    lessの一歩踏み込んだ使い方
    U1and0
    U1and0 2018/05/12
    less +F. :n :p :e
  • 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
    U1and0
    U1and0 2018/05/01
    “whichは実ファイルという実体があるプログラムです。hashとtypeはbashの組み込みコマンドです。なので当然ですがプログラムの起動コストがない分hashやtypeの方が速いです。”
  • Supercharge Vim with Fzf and Ripgrep

    Looking for something a little more light weight than Ctrlp or Unite or just wanting to refresh your existing fzf setup, well then this guide is for you. For those of you that don’t know fzf is a command line fuzzy finder, it is insanely fast and super easy to extend. ripgrep is a new tool similar to ack and ag but even faster and ships with some really useful additional parameters out of the box.

    Supercharge Vim with Fzf and Ripgrep
    U1and0
    U1and0 2018/04/28
    export FZF_DEFAULT_COMMAND='rg --files --no-ignore --hidden --follow --glob "!.git/*"'
  • zshのalias -s (suffix alias)が神な件 - プログラムモグモグ

    まず, 他のシェルをお使いの人にはごめんなさい. aliasコマンドの-sが使えるのは zsh 4.2.x- で, 他のシェルでは実装されていないと思います. あと, もう既に alias -s 知ってるよーって人は読まなくていいです. alias -s って何? 打ったコマンドの後ろ(suffix)を見て, 適当に宜しくやってくれるやつです. 次の例を見て下さい. ~$ echo "print ('hello, world')" > hello.py ~$ python hello.py hello, world ~$ alias -s py=python py=python ~$ ./hello.py hello, world ~$ Pythonのコードは python hello.py で実行出来ますが, お尻が py なら python を使います, とaliasしておけば, ./

    zshのalias -s (suffix alias)が神な件 - プログラムモグモグ
    U1and0
    U1and0 2018/03/03
    alias -s で拡張子を見て実行
  • 多重起動を防ぐシェルスクリプト - zenpouの日記

    cron等でシェルを複数回実行した時、多重起動するとまずいので、それを回避するスクリプト。 業務上必要だったので作ってみた。 #!/bin/sh SCRIPT_PID="/home/takase/work/run_script.pid" if [ -f $SCRIPT_PID ]; then PID=`cat $SCRIPT_PID ` if (ps -e | awk '{print $1}' | grep $PID >/dev/null); then exit fi fi echo $$ > $SCRIPT_PID (この辺にバッチの処理) rm $SCRIPT_PIDpidでプロセスの有無を確認しているので起動中は2重に実行されないし、 何か理由があって落ちてた場合は再実行される。 後はcrontabにこのシェルを設定してやればOK

    多重起動を防ぐシェルスクリプト - zenpouの日記
  • Tmux Yank plugin on Vimeo

  • bashの変数($,ダラー,ドル)まとめ - nori3tsu's blog

    書式説明 $?直前に実行したコマンドの終了ステータス $@スペース区切りの実行引数 $*変数$IFS区切りの実行引数 $0ファイル名 $n実行引数のn番目の値 ${@:n}スペース区切りの配列のn番目以降 ${@:n:o}スペース区切りの配列のn番目からo番目 $$プロセスID ${!var}varの値を変数名としてeval実行 ${#var}varの文字数 $((1+2))算術演算 ${foo-bar}fooの変数がない場合にbarを使う ${foo:=bar}fooの変数がない場合にbarを使いfooにbarの値を設定 n,o=数値 var=変数名 参考 BASHでの変数について Bash変態文法最速マスター? - programming 2006-10-27 - 明日=今日×(反省+前向き)+努力

    bashの変数($,ダラー,ドル)まとめ - nori3tsu's blog
  • シェルスクリプト文字列の処理について

    はじめましてよろしくお願いします。 質問サイトもシェルも初心者なので至らない点がございましたら ご容赦の程よろしくお願いします。 下記シェルスクリプトを実行すると下記エラーが発生します。 「test2」変数に空白無しで「abc」と入力するとエラーは発生しません。 変数test2の値(a bc)を変更せずにエラーが発生しない方法はないでしょうか? 手段でもかまいませんので教えてください。 ========================= testsh110207.sh ====================================== #!/bin/sh test1="abc" test2="a bc" if [ ${test1} = ${test2} ] then echo "=:文字列1と文字列2が等しい場合に真" echo "test1の「${test1}」と、test2の

    シェルスクリプト文字列の処理について
    U1and0
    U1and0 2017/09/16
    if \[ ${test1} = ${test2} \]   ↓ if \[ "${test1}" = "${test2}" \] 値にスペースを含む変数を引数に渡すときはダブルクォーテーショ ンで括らないと展開されて複数の引数が渡されたという風にみなさ れてしまいます。
  • [Bash] ファイルやディレクトリの存在をチェックする方法

    Bashで、ファイルやディレクトリの存在を確認する方法を紹介します。 if testによる確認方法 ファイルやディレクトリの存在を確認するには、以下の構文を使います。 if [ -e パス ]; then # 存在する場合 else # 存在しない場合 fi 「パス」の部分に、チェックしたいファイルやディレクトリのパスを指定します。 (実際は、testコマンドを実行することになります。) ファイルtest.txtと、ディレクトリtestdirを用意した状態で、サンプルcheck.shを実行してみます。 test-check-file$ ls check.sh test.txt testdir check.shの内容は以下のとおりです。 #!/bin/bash file=test.txt dir=testdir # test.txtが存在するかチェック if [ -e $file ]; th

    U1and0
    U1and0 2017/07/22
    ; then echo "$file found." else echo "$file NOT found." fi”
  • はてなブログ | 無料ブログを作成しよう

    オーベルジーヌ実レポ べ物の鼻塩塩(未だに通じるのかな) オーベルジーヌというカレーをご存知だろうか 都内にあるデリバリー専門のカレー屋で、 ロケ弁などで大人気の格欧風カレーが楽しめるらしい いいな〜 いいな〜オブザイヤー 都内の奴らはこんな良いモンってんのか 許せねえよ………

    はてなブログ | 無料ブログを作成しよう
    U1and0
    U1and0 2017/05/09
    $ find . -name *.sublime-project | xargs -i mv {} ~/SublimeText3/Packages/User/Projects/
  • lsでディレクトリのみ,ファイルのみ,表示する - yuyunko's blog

    あるディレクトリに,ファイルとディレクトリがたくさんあって,ディレクトリのみ見たい! ファイルのみ見たい!っていうときの方法がわからなかったので調べた. ディレクトリのみ ls -F | grep / ファイルのみ ls -F | grep -v / 世の中には賢い人がいるもんだ.

    lsでディレクトリのみ,ファイルのみ,表示する - yuyunko's blog
    U1and0
    U1and0 2016/12/04
    ディレクトリのみ ls -F | grep / ファイルのみ ls -F | grep -v /
  • 大量のファイルをシェルのコマンドで一括リネームする | DevelopersIO

    コマンド $ ls | sed -e s/\.txt// | awk '{print $1 ".txt " $1 "_document.md"}' | xargs -n 2 mv 戦略について まず前提として、ファイルのリネームを行うには、 xargs -n 2 mv にパイプで 元ファイル名 リネーム後のファイル名 のようなフォーマットの文字列を渡せば OK です。 $ ls before.txt $ echo "before.txt after.txt" before.txt after.txt $ echo "before.txt after.txt" | xargs -n 2 mv $ ls after.txt この文字列が複数行ある場合、 xargs -n 2 mv は1行ずつ順次処理します。 $ ls 1.txt 2.txt $ echo "1.txt 11.txt\n2.tx

    大量のファイルをシェルのコマンドで一括リネームする | DevelopersIO
  • Windows 10 および Windows Server 2016 の更新履歴

    Windows 10 バージョン 1703 の更新プログラム Windows 10 は、サービスとして設計されています。つまり、定期的なソフトウェアの更新を通じて改善されます。 喜ばしいことに、何もする必要ありません!自動更新を有効にしている場合は、新しい更新プログラムが利用可能になった際に自動的にダウンロードされ、インストールされますので、何も考える必要ありません。 このページの左側に、このバージョンの Windows 用にリリースされたすべての更新プログラムの一覧が表示されています。リリースと既知の問題に関する詳細な情報もご確認いただけます。最新の更新プログラムをインストールすると、見逃していた可能性のある以前の更新プログラムもすべて取得されます。これには重要なセキュリティ更新プログラムも含まれます。 Windows 10 バージョン 1703 の現在の状態 Windows 10 バー

    U1and0
    U1and0 2016/08/11
    bash on Ubuntu on Windows http://qiita.com/Aruneko/items/c79810b0b015bebf30bb 使いたいのでWindows 10 Anniversary Update 行う
  • ディレクトリ内のファイル数をカウントする - Qiita

    カウント速度を比較してみる 10万ファイルを作成し比較 $ seq -f "file_%06g" 100000 | xargs touch $ time ls -1 | wc -l 100000 real 0m0.357s user 0m0.320s sys 0m0.044s $ time find . -type f |wc -l 100000 real 0m0.162s user 0m0.020s sys 0m0.152s lsの方が遅いのか? lsはデフォルトでソートを実施するので時間がかかる。 そこで、-Uオプションを用いるとソートを実施しないようにする

    ディレクトリ内のファイル数をカウントする - Qiita
    U1and0
    U1and0 2016/08/06
    lsを使ってカウント $ ls -1 | wc -l -1オプションで1行に1ファイル表示させ、wc -lで行数をカウントする
  • sed に関するメモ

  • sed の区切り文字 - Invalid signature

    URLリライティングのための/etc/apache2/sites-available/defaultの 修正が手動だったため、自動化するために新しくゲストを作ると sedがunknown option to `s'というメッセージを 出していた。 調べてみるとスラッシュをアットマークで置き換えてみろというアドバイスを 見つけた。 ただ、リファレンスページみたいなところではその事は一切触れて おられず、気持ち悪い。 調べを進めると納得出来る情報を見つけた。 sed コマンドは「s」の直後に指定した文字を区切り文字として認識する。 したがって、使用する区切り文字は "/" でなくともよい。 特に "/" 自体を置換対象とする場合は、"/" の代わりに "%" や "|" などを 区切り文字に使用すると、"/" をエスケープする必要がなくなる。 http://shellscript.sunone

    sed の区切り文字 - Invalid signature
    U1and0
    U1and0 2016/06/29
    sedがunknown option to `s' "/" 自体を置換対象とする場合は、"/" の代わりに "%" や "|" などを 区切り文字に使用すると、"/" をエスケープする必要がなくなる。
  • はじめてのpacmanパッケージ管理ガイド | DevelopersIO

    はじめに はじめてのsystemdサービス管理ガイドを書いた関係で、2012年からsystemdをinitシステムとして採用していたArch Linuxをうっかり触り始めてしまいました。「Simplicity」(簡潔さ)を理念として掲げ、最小限の基システムで構成されているArch Linuxは、古き良きSlackwareを思い出しますね。 さて、そのArch Linuxはパッケージ管理システムにpacmanを使っています。これまでyumだのaptだのに慣れ親しんだ身としては、また新しい仕組みかぁ...と思わずにはいられませんが、なにはともあれ色々と弄ってみましたので、ここにまとめてみました! Arch LinuxをEC2にインストールする projects::arch linux on ec2でArch LinuxのAMIがリンクされているので、手軽にさくっとEC2でLaunchすること

    はじめてのpacmanパッケージ管理ガイド | DevelopersIO
    U1and0
    U1and0 2016/02/20
    # pacman -Syu Sは--sync(同期)、yは--refresh(リポジトリデータベースと同期)、uは--upgrades(更新)です。
  • 1