タグ

Linuxに関するhitsujibaneのブックマーク (140)

  • Bash: .bashrcと.bash_profileの違いを今度こそ理解する|TechRacho by BPS株式会社

    こんにちは、hachi8833です。社内Slackで見かけたmorimorihogeさんの以下の書き込みで目から鱗が落ちました。 ~/.bashrcで何かを出力してしまうと、rsyncなどのsshパイプで問題が生じることがあるそうです。 参考: 知らないとrsyncでもハマるシェル初期化 - Qiita これをきっかけに、できるかぎり一次情報を元になるべく一般的になるようにまとめてみました。 シェルスクリプト(.bashrcや.bash_profileなども含む)はあまりに自由に書けてしまい、LinuxディストリビューションやmacOSによって作法がまちまちだったりするので、外してはいけないポイントがどこかを知りたかったのでした。 対象はbashとsh(Bourne Shell)に限定します。また、デスクトップGUIの設定ファイルについては最小限にとどめます。 bashのmanページ 元記

    Bash: .bashrcと.bash_profileの違いを今度こそ理解する|TechRacho by BPS株式会社
  • Linux Applications Performance: Introduction

    Articles in this series Part I. Iterative ServersPart II. Forking ServersPart III. Pre-forking ServersPart IV. Threaded ServersPart V. Pre-threaded ServersPart VI: poll-based serverPart VII: epoll-based server On HackerNews There are several interesting takeaways from the HackerNews thread for this article series. Do check it out. Web apps are the staple of consumers and enterprises. Among the man

    Linux Applications Performance: Introduction
  • The 101 of ELF files on Linux: Understanding and Analysis - Linux...

    Some of the true craftsmanship in the world we take for granted. One of these things is the common tools on Linux, like ps and ls. Even though the commands might be perceived as simple, there is more to it when looking under the hood. This is where ELF or the Executable and Linkable Format comes in. A file format that used a lot, yet truly understood by only a few. Let’s get this understanding wit

    The 101 of ELF files on Linux: Understanding and Analysis - Linux...
  • ベテランエンジニアも意外と知らない「パッケージ管理システムの仕組み」 - Qiita

    この記事はNuco Advent Calendar 2023の16日目の記事です。 1. はじめに 世の中には、複雑な計算や面倒な分析を1行で済ませてくれるような便利なパッケージが数多くあります。それらをインストールするときには、以下のようなOSやプログラム言語に応じた簡単なコマンドを実行していることでしょう。 あなたがパッケージをインストールする裏で、それらのパッケージを管理するシステムが地獄のような処理を人知れず行なっていることはご存知でしたか? 稿ではそんな縁の下の力持ちであるパッケージ管理システムが、一体どのような仕組みで動いているのか、その全貌を明らかにしていきたいと思います! 弊社Nucoでは、他にも様々なお役立ち記事を公開しています。よかったら、Organizationのページも覗いてみてください。 また、Nucoでは一緒に働く仲間も募集しています!興味をお持ちいただける方

    ベテランエンジニアも意外と知らない「パッケージ管理システムの仕組み」 - Qiita
  • Ubuntu 24.04 LTS サーバ構築手順書

    0 issue "letsencrypt.org" 0 issuewild "letsencrypt.org" 0 iodef "mailto:yourmail@example.jp" §OS再インストール 初期設定で期待通りの設定ができていない場合は、OSの再インストールをする。 さくらVPSのコントロールパネルから、OSを再インストールするサーバを選ぶ。 www99999ui.vs.sakura.ne.jp §OSのインストール操作 Ubuntu 24.04 LTS を選ぶ。 OSインストール時のパケットフィルタ(ポート制限)を無効にして、ファイアウォールは手動で設定することにする。 初期ユーザのパスワードに使える文字が制限されているので、ここでは簡単なパスワードにしておき、後ですぐに複雑なパスワードに変更する。 公開鍵認証できるように公開鍵を登録しておく。 §秘密鍵と公開鍵の作成 ク

    Ubuntu 24.04 LTS サーバ構築手順書
    hitsujibane
    hitsujibane 2023/12/30
    久しぶりに自前のサーバを立ててみるのもいいかもしれない
  • Linuxの新しいsandbox機構「Landlock」 - Qiita

    はじめに この記事ではLinuxの新しいsandbox機構であるLandlockのサンプルの使い方を概説します。 詳細で正確な情報は公式のページ https://landlock.io/ やLinux kernelのソースコード中にありますので、必要な場合はそちらを参照してください。 サンドボックスが欲しいわけ 一般的なLinuxディストリビューションとスマートフォンOSの両方を使い、それぞれで様々なアプリを使っている方は大きな違いに気付くと思いますが、前者はユーザーのデータはホームディレクトリと呼ばれる共通のディレクトリに格納され、他のアプリのためのデータを自由に参照できます。それに対し、スマートフォンの場合は各アプリが独自のデータ領域を持ち、他のアプリのデータを参照するには手間のかかるプログラミングとユーザーの同意が必要になります(バイパスできてしまう場合は脆弱性とみなされます)。 L

    Linuxの新しいsandbox機構「Landlock」 - Qiita
  • Linux Performance

    static, benchmarking, tuning: sar, perf-tools, bcc/BPF: bpftrace, BPF book: Images license: creative commons Attribution-ShareAlike 4.0. This page links to various Linux performance material I've created, including the tools maps on the right. These use a large font size to suit slide decks. You can also print them out for your office wall. They show: Linux observability tools, Linux static perfor

  • シェルスクリプトで安全簡単な二重起動防止・排他/共有ロックの徹底解説 - Qiita

    はじめに シェルスクリプトで二重起動防止やロックをする方法を検索すると、いろいろな方法や書き方が見つかりますが、どれを使えばよいのか、当に正しく動くのか、不安になりますよね? ディレクトリ (mkdir) やシンボリックリンク (ln) を使った独自実装の例も見かけますが、エラー発生時や予期せぬ電源断、CTRL+C で止めたときなどでも問題は発生しないのでしょうか? まず、ディレクトリやシンボリックリンクを使った独自実装はしない。これを肝に銘じてください。シェルスクリプトでのロック管理はとても難しく、一般的な排他制御の知識に加えて、シェルスクリプト特有の問題、シグナルやトラップ、サブシェルや子プロセスの問題、さらには特定のシェル固有の仕様やバグなどさまざまな問題に対処する必要があり大変です。独自実装の例では古いロックファイルが残ってしまい、それをいつどのタイミングで片付ければ安全なのか?

    シェルスクリプトで安全簡単な二重起動防止・排他/共有ロックの徹底解説 - Qiita
  • systemd serviceから呼ぶシェルではsudoではなくsetprivを使う - 赤帽エンジニアブログ

    Red Hatの森若です。 自分でsystemdのservice unitを作るときに、起動用のいくつかのコマンドを記述したシェルスクリプトを呼ぶ事は(理想的ではないですが)あるかと思います。 今回はこの場合に、sudoを利用するとまずい理由を説明して、かわりにsetprivを使うほうがよいという話です。 例題用のservice 実行してみる 別のcgroupだと何がまずいのか? 対策はsetprivコマンド 例題用のservice sudoによるまずい動作を確認するためのできるだけ単純な例として、hoge.service を用意します。 /opt/hoge/hoge.sh #!/bin/bash sudo -u moriwaka sleep 5000 /etc/systemd/system/hoge.service [Unit] Description=hoge [Service] Ty

    systemd serviceから呼ぶシェルではsudoではなくsetprivを使う - 赤帽エンジニアブログ
  • Linuxカーネルから見た「コマンド名」

    はじめに Linuxを使っているみなさんは普段からLinux上で様々なコマンドを実行していると思います。それらを識別するときに「コマンド名」という単語を使っていると思いますが、文脈によってこの単語が意味するものは異なります。記事ではLinuxカーネルがいうところのコマンド名がどういうものかについて書きます。 一番最初に短い結論、その次に具体的な説明、そして最後にこれについて調べようとしたきっかけ、およびその後の調査プロセスについて書きます。 結論 Linuxカーネルから見たコマンド名は実行ファイル名のbasename(ファイル名からディレクトリ部分を除いたもの)の先頭15バイト カーネルのメモリ内のプロセス(正確にはカーネルレベルのスレッド)ごとに存在するtask_structという名前の構造体の中のcommという16バイトのフィールドにNULL終端文字列として格納されている カーネルの

    Linuxカーネルから見た「コマンド名」
  • Rust製の高性能コマンド3選

    Rustで作られたコマンドラインツールに良いものが多いと聞いて、Rust製の便利なコマンドをまとめてみます。RustがC/C++を置き換える言語というのもありますが、GNUの伝統的なツールをブラッシュアップしたツールがRustでいろいろ出てきているのはとても興味深いです。 findコマンドを置き換える fd fdはGNUの伝統的な検索ツールfindの置き換えです。findよりも簡潔にファイルの検索が可能です。 GitHubのリポジトリはこちらで、インストールも各パッケージマネージャーから使えます。 # mac $ brew install fd # ubuntu $ sudo apt install fd-find # win $ choco install fd 使い方は、検索したりディレクトリでfd キーワードと書くだけです。ポイントはfindと違って特にオプションをしていしなくても良

    Rust製の高性能コマンド3選
  • 自作PCからUbuntu22.04開発環境構築してみた - Qiita

    アップルをはじめとして、最近スペックがそこそこ良いPCがわけわからないくらい高くなり、誰でも使える個人用のコンピュータというPersonal Computerの趣旨と乖離しています。独断と偏見ですが、せっかく数十万円でPCを購入したのにもかかわらず、 パーツ交換不可なので、数年後は電子ゴミになり、自然環境に優しくない 不要なソフトウェア・サービスが多い(たとえば、2022年なのに、バージョン管理非対応のクラウドサービスiCloudが大きなシェアを占めているっていう皮肉) なんとかStoreの通知がうるさい。利用するのにアカウント(個人情報)が必要 プライバシー侵害問題 ... 別にゲーマーではないですが、数十万払ったのに自由が奪われる感じがどうしても気に入らないので、自作PCからLinuxの開発環境を構築することにしました。 ハードウェア 秋葉原まで行く元気がなかったので、すべてのパーツは

    自作PCからUbuntu22.04開発環境構築してみた - Qiita
  • 名著「入門UNIXシェルプログラミング」の超詳細なレビューをしてみた(古い内容の訂正) - Qiita

    はじめに そりゃまあ 30 年も経てば古くなりますよ。「入門UNIXシェルプログラミング」は今もシェルスクリプトに関するオススメのとして名前が挙がる名著です。しかしこのは古いです。POSIX でシェルが標準化される以前ので、内容から判断するとおそらく 1990 年ぐらいの常識に基づいて書かれています。 古いから参考にならないと言うつもりはありません。しかしどれだけ優れたでも時間の流れには勝てません。良書であると思っているからこそ、古くなってしまった内容は訂正する必要があると考えています。なおシェルスクリプトに関する古いはこれだけではありません。オライリーから出版されているも古いばかりです。いつ頃に(原書が)書かれたなのかを確認した方が良いでしょう。 ということでレビューというていで、古くなってしまった内容の訂正を行いたいと思います。新しく「入門UNIXシェルプログラミング

    名著「入門UNIXシェルプログラミング」の超詳細なレビューをしてみた(古い内容の訂正) - Qiita
  • 後悔しているがやめられない開発効率向上術 - k0kubun's blog

    僕はdotfiles系リポジトリ*1のコミット数を合計するだけで2261コミットある、.vimrcばっかりいじっていて開発が全然進まないタイプの人間で、つまり開発環境にとてもこだわりがある。 こだわりすぎて他に誰もやってなさそうな数々のカスタマイズを生み出してしまったが、やらなければよかったと後悔しているものが多くあるので、僕のような人が新たに生まれないよう、やめておけばよかったテクニックとその法則のようなものを紹介したい。 後悔しているもの C-h, C-y, C-u, C-oでウィンドウ切り替え Windows, macOS, Linux問わず以下のグローバルなキーバインドを設定している。 C-h: ターミナルにウィンドウ切り替え C-y: IntelliJかCLionにウィンドウ切り替え C-u: Google Chromeにウィンドウ切り替え C-o: TwitterSlack

    後悔しているがやめられない開発効率向上術 - k0kubun's blog
  • 開発環境へのこだわり

    巨大なテーブルのテーブル定義を無停止で安全に誰でも変更できるようにする / Table-definitions-for-huge-tables-can-be-modified-by-anyone-safely-and-non-disruptively

    開発環境へのこだわり
  • How fast are Linux pipes anyway?

    In this post, we will explore how Unix pipes are implemented in Linux by iteratively optimizing a test program that writes and reads data through a pipe.1 We will begin with a simple program with a throughput of around 3.5GiB/s, and improve its performance twentyfold. The improvements will be informed by profiling the program using Linux’s perf tooling.2 The code is available on GitHub. The post w

    How fast are Linux pipes anyway?
  • シグナルハンドラにprintf()を書いてはいけない - Qiita

    三行でまとめると シグナルハンドラ内でprintf()してはいけない というより、余計な処理を書いてはいけない もう一度言う、シグナルハンドラで余計なことをするな、非常に大事なことだ はじめに シグナルハンドラでやってよい処理は非常に限られるのに、全くルールを守らないサンプルコードが世の中に大量に出回っている。printf()するなんてもってのほかなのだが、カジュアルにそこらじゅうで見かけて非常に悲しい。 この記事では、そんな状況を少しでも改善したいと思い初心者向きに書いたものだ。そのため、下記では、回避するにはどう実装すればよいのか、ルールを破るとどうなるのか、といった点を先に簡潔に記述する。 なぜしてはいけないのか、POSIXだとかリエントラントだとか、は下の方に追いやっている。玄人は読んでてウズウズするだろうが、細かい話はできるだけ目につかないような構成としたため了解いただきたい。

    シグナルハンドラにprintf()を書いてはいけない - Qiita
  • なぜ今シェルスクリプトを学ぶのか・シェルスクリプトの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 - 理系学生日記
  • 業務で使っているPCをLinuxデスクトップにしてから3年半が経った - ぶていのログでぶログ

    この記事はGMOペパボエンジニア Advent Calendar 2021の5日目とLinux Advent Calendar 2021の10日目*1の記事です。 昨日ははらちゃんのブログをもっといい感じにするでした。 差分転送することでアップロードを高速化するのは目から鱗でしたね。 データのアップロードが遅いと更新のモチベーションが下がってしまうことがあるので、ブログを長く続けるためにも高速化は重要ですね! 2018年のアドカレで業務で使っているPCLinuxデスクトップにしてから半年が経ったという記事を書いたのですが、それから3年経って今はどうなったかという記事を書いていきたいと思います*2。 現状はどうなのか? 相変わらずUbuntuデスクトップをインストールして開発環境として利用している。 前回の記事では、Ubuntu18.04であったが順当にバージョンアップを繰り返し今はUbu

    業務で使っているPCをLinuxデスクトップにしてから3年半が経った - ぶていのログでぶログ
  • 業務端末としてLinuxデスクトップを使うために設定したこと - Plan 9とGo言語のブログ

    2021年の11月に、業務端末としてDELL XPS 13を購入して、Linuxデスクトップに移行しました。いまでは快適に使えるようになりましたが、Linuxデスクトップに慣れていないこともあって思ったように動かず困ったところがあったので、導入にあたって悩んだところをまとめました。 ディスクの暗号化 業務利用の要件にディスクの暗号化があるので、bootパーティションを除いて暗号化しました。手順は過去記事に追記しました。 blog.lufia.org GNOME KDE Plasmaの方がスタイルは好みですし、実際に業務端末でも2ヶ月ほど使っていましたが、Wayland環境ではタッチパッドの左右スワイプが動かないとか、XWaylandで動作するアプリケーションを4Kディスプレイで表示するとぼやけた表示になるなど厳しいなと思いました*1。個人で使うものなら、少し効率が悪い程度なら問題にしません

    業務端末としてLinuxデスクトップを使うために設定したこと - Plan 9とGo言語のブログ