タグ

Linuxに関するadillaのブックマーク (133)

  • Linux用キーリマッパーxremapをRustで書き直した - k0kubun's blog

    このエントリはRust Advent Calendar (3) 22(-10)日目 の記事です。 5年前にxremapというLinux向けのキーリマッパーを作った (Linux向けの最強のキーリマッパーを作った - k0kubun's blog) のだが、X11のレイヤーで実装したため、GNOMEのActivitiesでリマップが効かなかったり、WaylandではXWayland内でしか動かないといった問題があった。 これらの問題を解決すべく、xkeysnailやwayremapといったツールが後に作られたのだが、xkeysnailはWaylandで動かずwayremapはX11で動かない方針なのと、やはり全てのキー入力を中継するようなツールはPythonのような遅い言語よりRustみたいな速い言語で書かれるべきだと思ったので、後発のツール*1の良いところ取りをしながら今回xremapを作

    Linux用キーリマッパーxremapをRustで書き直した - k0kubun's blog
    adilla
    adilla 2021/12/23
  • Introduction · Linux Inside

    linux-insides A book-in-progress about the linux kernel and its insides. The goal is simple - to share my modest knowledge about the insides of the linux kernel and help people who are interested in linux kernel insides, and other low-level subject matter. Feel free to go through the book Start here Questions/Suggestions: Feel free about any questions or suggestions by pinging me at twitter @0xAX,

  • 実践的低レイヤプログラミング

    はじめに 学校で習わないが(習う学校もある)、現実に必要になるプログラミング技術に、低レイヤプログラミングなどと呼ばれるものがある 厳密な定義は聞いたことがないし、おそらく存在しないとは思うが、大体のみんなの共通認識として、 「高級プログラミング言語を使わないプログラムを書き、OSで抽象化されないデバイスの機能を使う」といったような認識があると思う。 筆者の経験から言わせてもらうならば、低レイヤプログラミングに関する知識は、プログラミングにおいてあらゆる場面で、常に、少しずつ役立てられる知識だと言えると思う。 普段はRubyPHPなどを書いてる人であったとしても、メモリが足りなくなった場合や、デバッガを使っている場合、性能が足りなくなった場合など、 厳しい環境におかれた時に低レイヤプログラミングに関する知識が必ず役に立つ場面が来ると信じている。 また、役に立つかどうかは置いておいても、「

  • あなたの知らない less の世界 - Qiita

    最近 prezto 入れたんですよ。prezto。そしたらいつものシェル世界が見違えるほど使いやすくなって身長も 3 メートルくらい伸びたんですが、それは余談でして、prezto 入れた後に less 使ってみたら余りの変わりっぷりに驚いたんです。 これを機に man page を読み直してみたら更に驚き。less ってこんなスゴイ物だったのか!みたいな。今回はそんな less の底力を紹介します。 環境変数 $LESS less には様々なオプションがあるのですが、これを予め環境変数 $LESS に設定しておくと、毎度 less ファイル名 と打つだけでそれが有効になります。更に、後述しますが、この設定は less 起動中にオン・オフして切り替えることが可能です。 # 最低限でもこれくらいは設定しておこう export LESS='-i -M -R' # 僕は後述の物を全部付けてます(-

    あなたの知らない less の世界 - Qiita
  • あなたの知らない time(1) の世界 - kuenishi's blog

    自分が書いたプログラムのメモリ使用量を測定したいことがある。プログラムがOOM Killerによってお亡くなりになった場合や、ページフォルトをなくして高速化したい場合などだ。定常的に起動するサーバーのプログラムなら、sarや meminfo など(今なら Datadog とかだろうか)を使ってじーっと見つめるわけだ。もっとモダンにやるなら perf や DTrace を使ってもよいかもしれない。しかしこれらのツールは基的にプロセスIDを渡してサンプリングして外から覗く方法だ。 わたしのユースケースはデーモンプロセスではなく、 main から入って必要な計算をして、それが終わったら main を抜けるバッチジョブ(単にコンソールから実行して終わるまで待つ、いわゆる "Hello world!" 的なやつ)だ。これだと、プログラムが起動して終わるまでそこそこの時間で終わってしまって、外部プロ

    あなたの知らない time(1) の世界 - kuenishi's blog
    adilla
    adilla 2016/11/06
  • Linuxパフォーマンス調査などで使うコマンドメモ - Qiita

    パフォーマンスなどの調査をする時に利用する便利コマンドメモ。 これないぞ、あれないぞなどあると思いますがとりあえずなどを参考にまとめたものをピックアップしています。 参考 [24時間365日] サーバ/インフラを支える技術 ‾スケーラビリティ、ハイパフォーマンス、省力運用 (WEB+DB PRESS plusシリーズ) 絵で見てわかるシステムパフォーマンスの仕組み CPU使用率やメモリなど全体の概要把握 top デフォルトでは3秒ごとにOSで利用しているプロセスの数や状態、またOS全体のシステムリソース状況が分かります。 パフォーマンスが悪い場合にOS全体としてどのリソースの利用が多いのか(CPU負荷なのかメモリ利用率が高いのか)などの判断に有用だと思われます。 top - 22:36:56 up 28 min, 2 users, load average: 0.00, 0.02, 0.

    Linuxパフォーマンス調査などで使うコマンドメモ - Qiita
  • tailの結果をgrepの複数条件でフィルターしてリアルタイムで表示する - hoge256ブログ

    リアルタイムでアクセスログ等を表示するtailですが、単純に表示するだけではなく、grepで結果をフィルターしたい場合があります。そんな場合の技術メモです。 通常のログ監視等では-fをつけて次のような感じになります。 tail -f access.log grepでフィルターする場合はパイプで繋げます。 例えば、次の例では”.html”の含まれる行のみを表示します。 tail -f access.log | grep ".html" もちろん複数条件もできます。 次の場合は”.html”の含まれる行でかつ、”.gif”は含まれない行が表示されます。 tail -f access.log | grep ".html" | grep -v ".gif" ただし、上記の場合、grepが勝手に結果をバッファーしてしまい、ある程度たまってからでないと表示されません。 リアルタイムで表示されないと

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

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

    Linuxサーバにログインしたらいつもやっているオペレーション - ゆううきブログ
    adilla
    adilla 2016/02/19
  • Linux共有ライブラリの簡単なまとめ - wagavulin's blog

    Linuxで共有ライブラリ(*.so)を作るようになったのでちょっと勉強してみた。今までは使うだけだったので、以下のようなことは知っていた。 作るときはgccの-sharedオプションを使う。 使うときはgccの"-lライブラリ名"でリンクするライブラリを指定する。 リンク時のライブラリ探索パスは-Lオプションで指定する。 実行時のライブラリ探索パスは/etc/ld.so.confに書いてあるディレクトリ。環境変数LD_LIBRARY_PATHでも指定可能。 ライブラリを作るときは、.cから.oを作るときに-fPICをつけるといいらしい。 新しくライブラリを入れたときはldconfigするといいらしい。 逆に今まであまり知らなかったこと。 ほとんどのライブラリはlibhoge.so, libhoge.so.1, libhoge.so.1.1のように3つくらいのファイルがあり、libhoge

    Linux共有ライブラリの簡単なまとめ - wagavulin's blog
    adilla
    adilla 2016/02/09
  • そのシェルスクリプトもうちょっとシンプルに書けそう 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
  • Linuxに関わる人が一度は読むべきStackOverflowまとめ - Qiita

    なぜStackOverflowか Upvote/Downvoteの仕組みにより、自然とベストプラクティスが蓄積されている 世界中のプログラマの目に晒されているため質が高い 答えが幾つか出されているため視野が広がる・一つの手法に固執することがない 英語の勉強にもなる StackOverflowのおすすめの見方 質問はまずしっかり理解する それに対する答えを比較してみて、なぜそう動くのかを考える コメント欄はFont Size的には小さいが、かなり濃いコメントが書かれていることが多いので暇なら目を通す 10. Looping through the content of a file in Bash? ファイルの内容をループで取得するためのベストプラクティス。 (2015/10/23 : 節修正しました。@heliac2000 さん、@kawazさん、ありがとうございました。詳しくは記事コ

    Linuxに関わる人が一度は読むべきStackOverflowまとめ - Qiita
    adilla
    adilla 2015/11/22
  • Linux サーバの基本的なシステム性能とOSジッタを計測するためのツールキット | FAworks

    Jean Dagenaisは、mechanical-sympathyのスレッドで、Gil Teneの記事「Linux OSのジッタを体系的に低減する魔術」(訳注:日語版)へのresponseとして、素晴らしい内容の記事を投稿しました。ジッタの問題を調査するために役立つツールが満載です。出典が不完全であることをお詫びします。Jeanのことを示すウェブページを確認できませんでした。 「Linuxのジッタを見つけるための体系的な方法」で得られた素晴らしい情報を補うためにツールキットを作成しました。現在および今後のトレーディング・プラットフォームを評価するためにそれを使用しています。 皆様にとっても役に立つかもしれませんので、含まれているツールと、それらのソースコードや使用方法に関する情報を得るためのURLをここに紹介します。私はソースコードや関連するブログ記事を読むことにより多くのことを学んで

    Linux サーバの基本的なシステム性能とOSジッタを計測するためのツールキット | FAworks
  • Linuxで無線LANをコマンドで接続する(raspi 用) - それマグで!

    wlan を設定するコマンドなど 無線LANの接続をコマンドで処理したいと思って少し調べましたのでメモを残しておきます。 SSID のスキャン sudo iwlist wlan0 scan wlan0 が設定されてば、SSIDをスキャンすることが出来る。 接続先のssid を変える wlan0が設定されているとssidを切り替えられる。 sudo iwconfig wlan0 essid 接続先ssid key s:接続キー wlan0 がまだ未設定なら、インターフェイスを使えるように設定していく必要がある。 ifup wlan0 # これが使えるように 現在の接続の確認 iwconfig で現在の設定を確認することが出来る。 takuya@raspberrypi:~$ iwconfig wlan0 IEEE 802.11bgn ESSID:"ocu.xxxxxssidxxxx" Nick

    Linuxで無線LANをコマンドで接続する(raspi 用) - それマグで!
    adilla
    adilla 2015/05/18
  • xargs コマンド | コマンドの使い方(Linux) | hydroculのメモ

    xargs コマンド 2015/05/13 ファイル名の一覧を標準入力から受け取って、そのファイル一覧を任意のコマンドに引数として渡すコマンド。ファイル一覧でなくてもなんでもよい。 わかりづらいので、例として、カレントディレクトリの配下にある拡張子が .txt のファイルをすべて削除したいとする。 まずはfindコマンドでリストアップする。 $ find . -name "*.txt" この結果が以下のようだったとする。 foo.txt sub/bar.txt これらを削除するには $ rm foo.txt sub/bar.txt を実行すればよいが、findの結果が大量にある場合はrmコマンドを手で書くのは手間なので、 findの結果をそのままrmに渡したい。rmコマンドが標準入力からファイル名を受け取ってくれるならパイプでつなぐだけだが、残念ながらrmにはパラメータで渡す必要がある。こ

    adilla
    adilla 2015/05/09
  • tree コマンドが無い環境で tree コマンドを実現 - Qiita

    tree コマンドは便利 Linux における tree コマンドは便利ですね。しかし標準コマンドではないため初めて操作するサーバや手軽に tree をインストール出来ない環境だとディレクトリ構造を奇麗にツリー上に表示することが出来ません。 その場合は find や sed を使って tree コマンドを代替しましょう。 find と sed で代替 pwd;find . | sort | sed '1d;s/^\.//;s/\/\([^/]*\)$/|--\1/;s/\/[^/|]*/| /g'

    tree コマンドが無い環境で tree コマンドを実現 - Qiita
    adilla
    adilla 2014/10/22
  • lsコマンドで覚えておきたい使い方16個(+4個) | 俺的備忘録 〜なんかいろいろ〜

    Linuxを用いる上で必須とも言えるlsコマンド。 そのコマンドについて、個人的に覚えておきたい使い方についてまとめてみることにした。 内容としては、覚えておきたいオプションと他のコマンドとの組み合わせでの使い方、計16個18個だ。(2個増えた) なお、例として使用しているのはUbuntu 14.04LTSを用いている。 1.基の使い方 まずは基的な使い方から。 オプションを使用しないで使用すると、以下のように出力される。 test@test-vm-ubuntu:~/test$ ls aaa abc abcd abd archey-0.2.8.deb screenfetch-dev test1 test@test-vm-ubuntu:~/test$ リストとして表示させたい場合は、「-l」オプションを付加する。 test@test-vm-ubuntu:~/test$ ls -l 合計

  • サーバをメンテする時に便利な Linux コマンド 3つ - bekkou68 の日記

    はじめに サーバを運用したり環境を構築したりしていて「あれ。あのプロセスで吐いてるログどこだっけ・・」など困るときがあります。 そんなときに頼りになるかもしれないコマンドを 3つご紹介します。 @madeth 師匠に教えていただきました。 1. proc でプロセスが使っているファイルを見る 困ったこと プロセスの吐くログのパスがどうしても分からない・・。 解決法 (編集 2014/09/10) 知りたいプロセスの ID を調べます。 $ ps aux | grep unicorn deploy 3335 xxx xxx xxx xxx X XX 15:14 0:07 unicorn master -c /var/www/myproject/unicorn/staging.rb -E staging -D プロセスID (この場合は 3335) をもとに root 権限でファイルディスクリ

    サーバをメンテする時に便利な Linux コマンド 3つ - bekkou68 の日記
    adilla
    adilla 2014/06/30
  • 訳:非推奨になったLinuxネットワークコマンドの代替コマンド - aws memo

    これはちゃんとチェックしておかないとなぁ。 Deprecated Linux networking commands and their replacements « Doug Vitale Tech Blog ==== この記事で詳しく説明する非推奨のLinuxネットワークコマンドは:arp, ifconfig, iptunnel, iwconfig, nameif, netstat, route である。iwconfig以外の コマンドは、net-toolsパッケージという、数年間メンテナンスされていないパッケージに含まれている。これらのユーティリティによって提供される機能は、新しいipコマンドを主に使うiproute2 スイートで再提供され、改善され続けている。iproute2ソフトウェアのコードとドキュメントは、Kernel.orgとLinux Foundationで見ることができ

    訳:非推奨になったLinuxネットワークコマンドの代替コマンド - aws memo
  • 16 Commands to Check Hardware Information on Linux

    Hardware information Like for every thing, there are plenty of commands to check information about the hardware of your linux system. Some commands report only specific hardware components like cpu or memory while the rest cover multiple hardware units. This post takes a quick look at some of the most commonly used commands to check information and configuration details about various hardware peri

    16 Commands to Check Hardware Information on Linux