タグ

linuxに関するblueribbonのブックマーク (212)

  • シェルスクリプトを書くときにいつもやるやつを調べた

    bash のシェルスクリプトを書くときに、いつも脳死で以下をやっている。(同僚が整備してくれたものをコピペしている) エディタなり CI で shellcheck をまわす set -euxo pipefail と冒頭に書く こんな感じ #!/bin/bash set -euxo pipefail いつまでもコピペではさすがにアレなので、意味を調べたメモ。 shellcheck koalaman/shellcheck: ShellCheck, a static analysis tool for shell scripts イケてない書き方に警告を出してくれる それぞれの警告にはエラーコード割り振られていてとても便利 エラーコードごとに正誤例、解説が書かれているのでわかりやすい SC1000 の例 CI もそうだし、エディタのプラグインも充実 しているのでとりあえず入れておくと良い set

    シェルスクリプトを書くときにいつもやるやつを調べた
  • Linuxコマンドの代替コマンド「ncdu」「htop」「tldr」「jq」「fd」とは?

    Opensource.comは6月25日(米国時間)、「5 modern alternatives to essential Linux command-line tools|Opensource.com」において、古くから使われているUNIX系コマンドの代替ツールを紹介した。代替ツールは古くから使われているコマンドと比べて、見た目が良かったり使いやすさが向上したりしているといった特徴があるという。 取り上げられている代替ツールは次のとおり。

    Linuxコマンドの代替コマンド「ncdu」「htop」「tldr」「jq」「fd」とは?
    blueribbon
    blueribbon 2020/06/27
    ・du→ncdu ・top→htop ・man→tldr ・JSONに対する操作→jq ・find→fd
  • 6万ミリ秒でできるLinuxパフォーマンス分析 | Yakst

    NetflixのシニアパフォーマンスアーキテクトであるBrendan Gregg氏による、Linuxサーバにログインして60秒でまず調べることのまとめ。 パフォーマンス問題でLinuxサーバーにログインしたとして、最初の1分で何を調べますか? Netflixには、多数のEC2 Linuxからなるクラウドがあり、そのパフォーマンスを監視したり調査したりするための数々のパフォーマンス分析ツールがあります。その中には、クラウド全体にわたる監視を行うAtlasや、オンデマンドにインスタンスの分析を行うVectorがあります。これらのツールは多くの問題を解決する手助けをしてくれますが、各インスタンスにログインし、標準的なLinuxパフォーマンスツールを実行する必要がある場合もあります。 この記事では、すぐ使えるはずの標準的Linuxツールを使いコマンドラインにおいて、最適化されたパフォーマンス調査を

    blueribbon
    blueribbon 2019/07/10
    「uptime」「dmesg | tail」「vmstat 1」「mpstat -P ALL 1」「pidstat 1」 「iostat -xz 1」「free -m」「sar -n DEV 1」「sar -n TCP,ETCP 1」「top」
  • VSCodeのRemote Development機能が革命的な話。 - Crieit

    背景 今月始めにMicrosoftからRemote Development Extension Pack. というのが発表された。簡単に言うと、VSCodeでコードを書くOSとプラグインが実行されるOSを別にすることが出来る。 よくあるパターンで、「MacでNokogiriがビルドできません」「WindowsでESLintを実行するにはどうしたら良いですか」みたいな質問がある。 最終的にサービスを公開するときにはどうせLinux使うのに、開発するときしか使わない別のOSで同じものを動かす苦労って無駄だよなあ、と思っていた。 じゃあ最初からLinuxで開発すればいいかというと、最近の高度化したWeb開発はIDEの支援なしに実行することが困難で、RubyだったらRuboCopJavaScriptだったらPrettierやESLintで文法チェックしてもらわないと人類にはついていけない。これら

    VSCodeのRemote Development機能が革命的な話。 - Crieit
    blueribbon
    blueribbon 2019/05/05
    「GitHubの買収、TypeScript、VSCodeの提供と、あっという間にWEB開発の主流を抑えつつあるMicrosoftが、唯一ネックだったIDEの実行環境を埋めるツールを出してきて、最近のMicrosoftはイケてるよね。」
  • Linux (Unix) の su コマンドの su は何の略か - 元RX-7乗りの適当な日々

    "man 1 su" すると頭には以下の記載がある。 NAME su - change user ID or become superuserまだ学生の頃、師匠に初めて su コマンドの存在を教わった時から、私は "Super User" ではなく "Switch User" であるという認識だったが、お恥ずかしながらどうやったら違ったらしい。 The Unix command su, which stands for substitute user is used by a computer user to execute commands with the privileges of another user account. su (Unix) - Wikipedia "Substitute User" なのですね。 代用するとか取り替えるの意だと思うので、確かにしっくりきますね。な

    Linux (Unix) の su コマンドの su は何の略か - 元RX-7乗りの適当な日々
    blueribbon
    blueribbon 2019/03/27
    "Substitute User"
  • bashスクリプティング研修の資料を公開します - エムスリーテックブログ

    こんにちは、エンジニアリングGの中村です。 以前にこのブログにてエムスリーでの社内研修について紹介しました。今回は、この中でのbashスクリプティング講座の資料を公開します。 www.m3tech.blog 弊社の中でもいろいろな用途でbashが使われていますが、bashは簡単に利用できるもののプログラミング言語としてはバグを生みやすい、辛い言語だと思います。 ここで紹介しているのはいわゆるコーディング規則というよりも、バグ防止と可読性向上のためのルールをTips集的にまとめたものです。 bashにおいてまだまだ注意するところはありそうですが、多少なりともわかりにくいスクリプトの削減になればと期待しています。 [追記: 2018-08-22] はてブにて以下のコメントをいただきました。 bashスクリプティング研修の資料を公開します - エムスリーテックブログ bashで50行以上になった

    bashスクリプティング研修の資料を公開します - エムスリーテックブログ
  • CSVの処理で使えそうなコマンドラインツール(column, textql, csvkit, xsv, visidata, csvtotable, daff, tabview) - もた日記

    column textql csvkit xsv visidata csvtotable daff tabview CSV(またはTSV)を処理するときにはcut, sort, awk, paste, joinといったコマンドを使うことが多いが、CSVの処理で使えそうなコマンドラインツールを簡単に試してみる。 テスト用のCSVデータは下記ページで作成した。 Mockaroo - Random Data Generator and API Mocking Tool | JSON / CSV / SQL / Excel column以外はGitHubのスター順で紹介している。 column stackoverflow.com columnはLinuxコマンドだが検索で結構ひっかかったので紹介。 以下のように見やすいように揃えて出力してくれる。 $ head -n5 test.csv id,fi

    CSVの処理で使えそうなコマンドラインツール(column, textql, csvkit, xsv, visidata, csvtotable, daff, tabview) - もた日記
    blueribbon
    blueribbon 2018/07/31
    ・column:見やすいように揃えて表示 ・textql:CSVデータに対してSQL文を実行 ・csvkit:CSV処理関連ツールキット ・visidata, tabview:コマンドラインビューア ・csvtotable:CSVをHTMLテーブルに変換 ・daff:表形式データを比較
  • Bashスクリプトのチートシートと便利なスニペットまとめ - オープンソースこねこね

    Bashでスクリプトを書く際によく自分が使っている小技や関数などです。 またBashでは他のプログラミング言語以上に$や:などの記号の使い方が独特でググラビリティが低いので、基文法などもチートシートとしてまとめておきます。 基文法 変数と配列 制御構文 while for-in if - elif - else if文のone-liner 文字列比較 文字列が等しい (=) 文字列が等しくない (!=) 空文字、文字列長が0 (-z) 空文字でない、文字列長が0でない (-n) 数値比較 数値が等しい (-eq) 数値が等しくない (-ne) 数値がより小さい (-lt) 数値がより大きい (-gt) ファイルの判定 存在する (-e) ファイルである (-f) ディレクトリである (-d) シンボリックリンクである (-L) 関数 便利なスニペット 実行スクリプトがあるディレクトリを

    Bashスクリプトのチートシートと便利なスニペットまとめ - オープンソースこねこね
  • 雰囲気でシェルを使っている人のためのシェル入門 | κ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
  • 日常から使えるUnix系OS業務効率up技 - Qiita

    気分転換に、普段からLinuxで作業する上で割と便利なツールだったり小技を共有します。知ってたらごめんね 一応全部MacでもLinuxでも動くはずです。 高速化系 axel , aria2c http://qiita.com/sarumonera/items/2b30999d7d41a4747d74 https://goo.gl/gsFrCT https://wiki.archlinuxjp.org/index.php/Aria2 http://qiita.com/TokyoMickey/items/cb51805a19dcee416151 こいつらは割と有名(?)かなと思います。やってることはcurlやwgetとほとんど変わらず、サーバにHTTPリクエストを送ってレスポンスを取ってくるだけなのですが、ダウンロードを高速化するためにtcpコネクションを何も貼って、相手サーバーに負担をかけ

    日常から使えるUnix系OS業務効率up技 - Qiita
  • [小ネタ] mkdir したディレクトリに cd する方法 9 選 +1 (BASH) ※追記あり | DevelopersIO

    $ mkdir /very/_very/Very-long/directory_name/20170915 なんて操作をしたあと、そのディレクトリにcdしたい場合ってまれによくありますよね。 どんなやり方があるか考えてみました。 1. コピペする そのまんまですが、これをやりたくなくてこの blog を書いてます。 2. TAB 補完で頑張る これも無いわけではないですが、間違えたりすることを考えると正直あんまりやりたくないです。 3. 上矢印キーで前コマンドを呼び出し、右矢印キーで先頭に戻ってmkdirをcdに書き直す よく見る方法ですが、もうすこし少ない手数でできないでしょうか。 4. 上矢印キーで前コマンドを呼び出し、Ctrl-Aで先頭に戻ってCtrl-Dx5 のあとにcd BASH のキーバインドはデフォルトだと emacs モードなので、このやり方が出来ます。 でもまだちょっと手

    [小ネタ] mkdir したディレクトリに cd する方法 9 選 +1 (BASH) ※追記あり | DevelopersIO
    blueribbon
    blueribbon 2017/09/16
    cd $_ → BASHの $_ という特殊変数を使うことで、「ひとつ前に実行したコマンドラインの最後の引数」を参照することができます。
  • trdsqlというコマンドラインツールを作った - Qiita

    trdsqlというコマンドラインツールを作りました。 Goで作ってます。 githubの trdsqlからダウンロード出来ます。 またLinux/Windows/macOSのバイナリもあります。 以下は、古くなっている内容もいくつかあります。 最新版に対応した、より詳細な内容は trdsql 目次 | Noboru Saito's page を参照して下さい。 これは何? 簡単に言えばCSV(TSV含む)やLTSVに対してSQLを実行できるツールです。 同様のツールが q や textql 等いくつかあります。 trdsqlはPostgreSQLドライバとMySQLドライバを含んでいて実際にDBに接続することでSQLite以上の機能を使用できるようにしています。 PostgreSQLMySQLの構文が使えるだけではなく、CSVファイルと実テーブルでJOINしたり、CSVファイルからテーブ

    trdsqlというコマンドラインツールを作った - Qiita
    blueribbon
    blueribbon 2017/08/19
    「CSV(TSV含む)やLTSVに対してSQLを実行できるツールです。」
  • bashスクリプトをデバッグする方法 - Qiita

    #!/bin/bash exec 5> debug_output.txt BASH_XTRACEFD="5" PS4='$LINENO: ' set -x するとdebug_output.txtにログが出力される。 exec 5>はファイルディスクリプタ5番をdebug_output.txtにするという意味。 PS4はトレース出力の際に表示されるプロンプト。$LINENOにより行番号を表示している。 set -xは実行するコマンドをトレース出力させる。 元記事にはbashdblog4bash、Eclipse、Visual Studioo Codeを使う方法なども紹介されているが、これが一番手軽でほとんどの場合十分だと思う。 Register as a new user and use Qiita more conveniently You get articles that match

    bashスクリプトをデバッグする方法 - Qiita
  • commandlinefu.comで見つけた便利・面白Linuxコマンド使用例 - もた日記

    commandlinefu.com コマンド使用例 ^foo^bar mount | column -t time read (ctrl-d to stop) echo "You can simulate on-screen typing just like in the movies" | pv -qL 10 mv filename.{old,new} diff <(sort file1) <(sort file2) !* !:- fc date -d@1234567890 ps awwfux | less -S bind -P mkdir -p work/{d1,d2}/{src,bin,bak} showkey -a ccze grep . filename > newfilename grep -Fx -f file1 file2 grep . * kill -9 $$ tail

    commandlinefu.comで見つけた便利・面白Linuxコマンド使用例 - もた日記
  • CPU使用率は間違っている | Yakst

    Netflixのパフォーマンスエンジニアである筆者からの、topコマンドなどで表示されるCPU使用率(%CPU)は、いまや当の使用率を表しておらず、チューニングなどのための指標として使えないという指摘。なぜそうなってしまったのか、何を見れば当のCPU使用率がわかるのかをわかりやすく解説した記事。 私たちみんながCPU使用率として使っている指標は非常に誤解を招くもので、この状況は毎年悪化しています。CPU使用率とは何でしょうか?プロセッサーがどのくらい忙しいか?違います。CPU使用率が表しているのはそれではありません。私が話しているのは、あちこちで、あらゆる人たちに、あらゆる監視製品で、あるいはtop(1)でも使われている、"%CPU"という指標のことです。 あなたの考えているであろうCPU使用率90% : 実際 : "stalled"(訳注 : 以下ストールと言う)とは、プロセッサーが

    CPU使用率は間違っている | Yakst
    blueribbon
    blueribbon 2017/06/17
    「サイクル毎の命令数(IPC)のような他の指標を使うことで、%CPUが実際何を意味しているかを知ることができます。IPCが1.0より小さければメモリーバウンド、IPCが1.0より大きければ命令バウンドである可能性が高い…」
  • 割りと便利だけど微妙に忘れがちな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
  • プログラマーが「ネットワーク怪しくない?」と思った時に覚えておくと便利なことまとめ - LIVESENSE ENGINEER BLOG

    インフラエンジニアの中西です。 最近プログラマーからこのような話を耳にします。 「ネットワークって難しい/よくわからない」 最近ではAWS,GCPをはじめとするクラウドサービスが充実しているのでWeb界隈のエンジニアはなおさら気にするシーンが少なくなったように思います。 今日は最低限これだけ覚えていたら有事の際にちょっとは役に立ちますよという話が出来たらなと思います。 書式統一のため sudo を省略しています。ご容赦下さい。 コマンド編 ping ping です。疎通確認を行う時のコマンドです。 さすがに分かると聞こえてきそうですね。 例えば、192.168.1.1 というサーバに通信を確認したい場合はこうです。 $ ping 192.168.1.1 繋がる場合はこうなります。 $ ping 192.168.1.1 PING 192.168.1.1 (192.168.1.1): 56 d

    プログラマーが「ネットワーク怪しくない?」と思った時に覚えておくと便利なことまとめ - LIVESENSE ENGINEER BLOG
  • Linuxの背後にある精神

    Linus Torvalds / 青木靖 訳 2016年2月 (TED2016) クリス・アンダーソン 奇妙な話です。あなたのソフトウェアであるLinuxは何百万というコンピュータの中にあり、インターネットのかなりの部分を動かしています。さらに実際に使われているAndroid端末が15億台くらいあって、その1台1台にもあなたのソフトウェアが入っています。これはすごいことで、その開発部ともなれば、さぞ大層な施設なんだろうなと思っていたので、この写真を見たときはびっくりしました。これがその — Linux世界部なんですよね?(笑)(拍手) リーナス・トーバルズ 大したものには見えませんよね。この写真の中で最も興味深く、多くの人が反応する部分は、あのトレッドミル・デスクです。私の仕事場で一番興味深いものですが、私はもう使っていません。この2つは関連していると思います。私の働き方として、外的な

    Linuxの背後にある精神
    blueribbon
    blueribbon 2016/05/07
    「私がオープンソースの本当に好きな点は、異なる人々が一緒に働けるようにしてくれるということです。互いを好きな必要はなく、本当に互いに嫌っていることもあります。」
  • Windows で Ubuntu バイナリ(bash)が動作することの概略 - 蒼の王座・裏口

    マイクロソフトのハンセルマンのBlog: Developers can run Bash Shell and user-mode Ubuntu Linux binaries on Windows 10 Ubuntuの中の人のBlog: Ubuntu on Windows — The Ubuntu Userspace for Windows Developers この2つのBlogで実態が明確になったのでまとめてみます。 使用可能になるOSまもなくリリースされる予定のWindows 10 ”Anniversary” アップデートで使用可能になります。このアップデートで、開発者向けの機能として追加されます。 機能の追加で、Windowsの設定で開発者モードを有効にすると使用できるようになります。これでネイティブなユーザー モードのLinuxシェルが使えるようになり、bashを起動するとWind

    Windows で Ubuntu バイナリ(bash)が動作することの概略 - 蒼の王座・裏口
    blueribbon
    blueribbon 2016/03/31
    「リアルタイムに、LinuxのsyscallsをWindowsのsyscallsに変換し処理します。仮想マシンでも、コンテナーでもなく、CygwinのようなWindows用にリコンパイルしたものでもなく、Ubuntuのバイナリがそのままネイティブに動作します。」
  • [速報]マイクロソフト、BashシェルをWindowsに搭載。Emacs、VT100などサポート。Build 2016 - Publickey

    [速報]マイクロソフト、BashシェルをWindowsに搭載。Emacs、VT100などサポート。Build 2016 マイクロソフトは開発者向けの年次イベント「Build 2016」を米サンフランシスコで開催しています。初日の基調講演では、Windows 10が登場して1年を記念した大型アップデートWindows 10 Anniversary Update」を発表。 その中で、UNIXやLinuxで使われているシェルの1つ「Bash」がWindowsに搭載されると発表がありました。 物のBashがWindowsで走る Kevin Gallo氏。Corporate Vice President, Windows and Devices Group。 Bash on Windowsを発表する。 これは物のBashだ。仮想マシンでもクロスコンパイルされたツールでもなく、ネイティブのUbu

    [速報]マイクロソフト、BashシェルをWindowsに搭載。Emacs、VT100などサポート。Build 2016 - Publickey
    blueribbon
    blueribbon 2016/03/31
    「これは本物のBashだ。仮想マシンでもクロスコンパイルされたツールでもなく、ネイティブのUbuntu Linuxバイナリが、Canonicalとの協業による新しいWindowsサブシステムのマジックによって実行される。」