タグ

コマンドに関するheguroのブックマーク (23)

  • 【完全版】歴史でシェルの設定ファイルを理解する - 全POSIXシェル対応 (.profie, .bash_profile, .bashrc, .zprofile, zshrc, etc.) - Qiita

    プロファイルでできることは環境の設定だけです。シェルの設定は実際にはできないことはないのですが、やっても無意味なことになるのでできないとします。無意味なことになるというのは新しく起動したシェルにはプロファイルで行うシェルの設定は反映されないということです。環境の設定とは、特定のシェルに依存しない初期化処理のことで、その一つが環境変数の設定です。環境変数は OS の機能であってシェルの機能ではありません。環境の設定には、他に stty コマンドによる端末の設定や umask コマンドによる umask の設定などがありますが、プロファイルで設定することはあまりありません。 rc ファイルでは環境の設定とシェルの設定の両方ができます。シェルの設定、例えばプロンプト文字列の設定やシェルの機能を有効にしたり補完スクリプトの読み込みなどは rc ファイルに書きます。つまり、ほとんどのことは rc フ

    【完全版】歴史でシェルの設定ファイルを理解する - 全POSIXシェル対応 (.profie, .bash_profile, .bashrc, .zprofile, zshrc, etc.) - Qiita
    heguro
    heguro 2024/11/04
    .bashrc と .bash_profile と .profile の違いが分からず、とりあえず全部に `. $HOME/.myprofile` を書いてる自分にとって有難い記事
  • 1Passwordを利用したSSH時のToo many authentication failuresを回避する | DevelopersIO

    SSHキーを1Passwordに保存しておき、 ~/.ssh/configに IdentityAgent "~/Library/Group Containers/2BUA8C4S2C.com.1Password/t/agent.sock" という設定を書いておくと秘密鍵を1Passwordから出すことなくサーバに接続することができます。 こちらの内容については下記ブログなどをご参照ください。 https://dev.classmethod.jp/articles/1Password-git-ssh/ 私はこの方法を愛用していたのですが、 ある日次のエラーが出るようになりました。 Received disconnect from UNKNOWN port 65535:2: Too many authentication failures Disconnected from UNKNOWN p

    1Passwordを利用したSSH時のToo many authentication failuresを回避する | DevelopersIO
  • tmuxとかの仮想端末で複数の画面間でBashのコマンド履歴を共有すると同じ履歴が何度も記録されてしまう問題を解決する - Qiita

    function share_history { # 最後に実行したコマンドを履歴ファイルに追記 history -a # メモリ上のコマンド履歴を消去 history -c # 履歴ファイルからメモリへコマンド履歴を読み込む history -r } # 上記の一連の処理を、プロンプト表示前に(=何かコマンドを実行することに)実行する PROMPT_COMMAND='share_history' # bashのプロセスを終了する時に、メモリ上の履歴を履歴ファイルに追記する、という動作を停止する # (history -aによって代替されるため) shopt -u histappend ところが、これを使用しているとコマンド履歴に同じ項目がどんどん溜まっていくという問題が起こるようになります。自分の場合だと、git commit -pしてからgit pushするとか、その前にgit pul

    tmuxとかの仮想端末で複数の画面間でBashのコマンド履歴を共有すると同じ履歴が何度も記録されてしまう問題を解決する - Qiita
  • Vimの思想について

    ここでいくつかのルールとして motion-count-multiplied 例えば10jで十行下へ移動、d2kで上2行を削除など operator-doubled 例えばyy, dd, cc, >>とか、2回繰り返すとカーサーのある行に動作する upper case operator 例えばc->C、d->D, y->Yのように、現在のカーサーから行の最後まで動作するケースと、対になっている(逆の機能を持つ)ケース、例えばp->P, o->O, n->N, a->A, i->I, f->Fなど)に大まかに分けられる exclusive inclusive 例えば、yiw vs yaw, cib vs cabの違いで、テキストオブジェクトの内部(inner)だけか、境界線も含めるか(around) があります。これらのルールは他のプラグインにもよくみられるので、Vim wayに慣れればプラ

    Vimの思想について
  • mount コマンドはもう古い? findmnt を使おう

    「このディレクトリって何のファイルシステム?」とか「マウントオプションは?」を確認するときに、手癖で mount コマンドを実行してるけど、 $ mount proc on /proc type proc (rw,nosuid,nodev,noexec,relatime) sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel) devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=4096k,nr_inodes=118922,mode=755) securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime) tmpfs on /dev/shm typ

    mount コマンドはもう古い? findmnt を使おう
  • macOS のデフォルト状態でコマンドラインからOCR処理を行う - TeX Alchemist Online

    macOS 12 Monterey では,OSビルトインでのOCR機能が搭載されました。Preview.app で,画像やスキャンPDF(中身がスキャン画像のPDF)に対して,ただマウスでドラッグするだけで,中身の文字を認識して選択し,コピーできるようになっています。さらに,macOS 13 Ventura では,それが日語にも対応しました。 たとえば,(今や入手困難となってしまった)The TeXbook のアスキーによる日語版をスキャンしたものを Preview.app で開くと,何もしなくても,文字選択できます。 これをコピーして他のエディタにペーストすると, TEXの名称で気をつけなければならないことがほかにもある。Eの文字が不揃いになっていることだ。Eの文字を少し下げてあるのは、TeXが組版のためのシステムであることを印象づけるためであり、またほかのシステムの名称と区別するた

    macOS のデフォルト状態でコマンドラインからOCR処理を行う - TeX Alchemist Online
  • MacOS ユーザが WSL では無い Windows のコンソール環境を整える - 2nd life (移転しました)

    先日、メインの開発環境を MacOS から Windows 10 Professional へと移しました。理由としては主に2点で、現在仕事を自宅の固定席で行っており PC を持ち運びする必要がなくなったため Mac より高速で安価な Windows デスクトップ機を使いたいこと(Ryzen 9使いたい!)、WSL2 が正式版となり使ってみた感じ問題なく WSL2仕事の開発ができそうだったことが挙げられます。 WSL2 はふつうに Linux なので問題なく開発環境の構築が行なえ、Windows からも VSCode Remote のおかげでで違和感なくWSL2上のコードを編集、実行ができ快適な開発が行えています。(なお、WSL2 についての記事は山程溢れているので、ここでは殆ど触れません。) しかしながら、WSL2 ではないふつうの Windows 上で開発する機会が出てきたので、M

    MacOS ユーザが WSL では無い Windows のコンソール環境を整える - 2nd life (移転しました)
  • Emacs をとにかくそれなりに使えるようにする

    最近 GNU Emacs 関連の諸々をいろいろ見直していてしみじみ思ったのだが、やはり Emacs は一通り使えるようにするまでがめんどくさいですな。昔に比べればインストール自体は簡単になったが、そこから先がよく分からない。素のままの Emacs はかなり使いにくい代物で、VSCode あたりに慣れた今の目からすると、見ため的にもちょっとしょぼい。設定を解説するウェブページ等はいくらでもあるのだが、何せ約40年の歴史があるソフトウェアで、おまけになんだかんだ言って結構活発に開発が続いているので、解説といっても内容が古くなっていることが多く、混乱に拍車を掛けている。そのあたりが人々を Emacs から遠ざけているとしたら残念なことである。 近年は Doom Emacs や Spacemacs といった設定フレームワークがそのへんを補おうとしているようだが、個人的な好みで言えば、これらはちょっ

    Emacs をとにかくそれなりに使えるようにする
  • シェルスクリプトの [ ] と [[ ]] の違いを歴史的に解説 〜 言語設計者の気持ちになって理解しよう - Qiita

    はじめに bash などのシェルには [ ... ] と [[ ... ]] の二種類の比較方法があります。一つはコマンド、もう一つはシェルの文法なのですが、具体的にはこの二つは一体何が違うのでしょうか? そもそもなぜ似ている機能が二つもあるのでしょうか? この記事は言語設計者の気持ちになって考えることで、その理由を解き明かそうという記事です。 なお、違いについての簡単な説明については「test と [ と [[ コマンドの違い - 拡張 POSIX シェルスクリプト Advent Calendar 2013 - ダメ出し Blog 」の記事がよくまとめられていますので紹介します。一通りの違いを素早く知りたい方はこちらを参照してください。 参考 シェルの歴史や種類については「シェルの歴史 総まとめ(種類と系統図)と POSIX の役割」に詳しくまとめています(系統図とか頑張って書いたので見

    シェルスクリプトの [ ] と [[ ]] の違いを歴史的に解説 〜 言語設計者の気持ちになって理解しよう - Qiita
  • manがあるコマンドは偉いし、manを付けるべき - Lambdaカクテル

    社内で、crontabのtabは実はtableだからクーロンタブじゃなくてクーロンテーブルなんだよね、という話が盛り上がった。 ファクトチェックとして、crontab(5)が紹介されていた(cron tableという言葉が出現している)。 manで事実確認がすぐできてすごいと思う一方、それを可能たらしめているmanもありがたいと思った。 man(1) とかの数字って何? 意外なものにmanがある 最近のコマンドにman pageが無い件 manまわりのコマンドの紹介 man(1) とかの数字って何? ちなみに、manのマニュアルやコマンド自体をアドレスするときに使うman(1)といった記法のカッコ内の数字は、manのセクション番号である。 コマンドと設定ファイルが同名であることがしばしばあるため、カッコ内にセクション番号を書くことで識別できるようにしている(例えば、crontab(1)はそ

    manがあるコマンドは偉いし、manを付けるべき - Lambdaカクテル
  • Facebookが開発した圧縮アルゴリズムZstandardについて調べた(非常に高速)(今日から使えます) - Lambdaカクテル

    Common Lispの処理系であるSBCLをインストールしようとしたら、追加でlibzstd-develというのを新たに要求されるようになっていた。見るからに圧縮系のライブラリだけれど聞き慣れないのでちょっと調べてみた。 ちょろっと調べたところ、以下のことが分かった: Zstandard(ゼットスタンダード?)というのが正式な名前。 Facebookが開発した。 Deflateよりも速いことを主眼においている。 BSDライセンス。 Linuxカーネルまわりで使えるようになっているほか、一部のディストロではパッケージの圧縮フォーマットとして使われているようだ。 Webというよりはどちらかといえばバックエンド的な箇所で使われている印象がある。 facebook.github.io zstd コマンド使ってみた 他の名だたる圧縮アルゴリズム同様、Linuxで直接ファイルに対してこれを実行して圧

    Facebookが開発した圧縮アルゴリズムZstandardについて調べた(非常に高速)(今日から使えます) - Lambdaカクテル
  • 今どきのシェルスクリプトは数値計算にexprを使わない(POSIX準拠) - Qiita

    はじめに 1992 年に POSIX でシェルが標準化されて以来、シェルスクリプトの数値計算に expr コマンドは使いません。expr コマンドを使って計算していたのは Bourne シェル(古い UNIX の sh)時代の話で、現在の POSIX sh (dash、bash、ksh 等)時代では数値計算に expr コマンドは不要です。今どきはシェルの機能だけで整数の計算を行うことができます。「今どき」って一体いつからだって話なわけですが……。 注意 シェルスクリプトでパフォーマンスの話をするとすぐに「他の言語で〜」という方がいますが、私はどんなことにでもシェルスクリプトを使えなんて一言も言っていません。パフォーマンスを気にしている理由は、そこが実際にシェルスクリプトのボトルネックになるポイントだからです。そもそもシェルスクリプトと一般的な言語は言語設計レベルで得意なことが違います。ユ

    今どきのシェルスクリプトは数値計算にexprを使わない(POSIX準拠) - Qiita
  • 【Ubuntu日和】 【第12回】ショートカットとByobuを駆使して、UbuntuのCLI操作を効率化しよう

    【Ubuntu日和】 【第12回】ショートカットとByobuを駆使して、UbuntuのCLI操作を効率化しよう
  • サーバ作業を安全に行うための工夫

    こんにちは。 2021年7月にハートビーツに入社後、エンジニアリンググループに所属している北岡です。 以前は同じMSP企業で10年以上勤務しておりましたが、自身のスキル向上などを目的としてハートビーツへ入社しました。 私の転職の経緯やハートビーツへ入社して感じたことなどは今後お話するとして、今回はお客様のLinuxサーバ上で作業する際、私がオペレーション中に意識していることやミスを防ぐために行っていることについて紹介します。 コピー、ペーストのショートカットキーを変更する コピー「Ctrl + c」とペースト「Ctrl + v」はキーが隣り合っており、タイピングミスによってコピーしようとしたつもりがペーストしてしまったということが起こりえます。 メモ帳などで起きた場合は特に問題にはなりませんが、サーバ上で起きると不要なコマンド実行に繋がります。小さなことではありますが防止策をとるべきです。

    サーバ作業を安全に行うための工夫
  • シェルスクリプトで安全簡単な二重起動防止・排他/共有ロックの徹底解説 - Qiita

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

    シェルスクリプトで安全簡単な二重起動防止・排他/共有ロックの徹底解説 - Qiita
  • nvidia-smi(1) で GPU にパワーリミットを設定して消費電力や発熱を減らす - CUBE SUGAR CONTAINER

    自宅にあるオンプレマシンでグラフィックカードを GPGPU の用途に使用していると、消費電力や発熱は切実な問題になりうる。 特に昨今は電気代の値上がりも著しいし、発熱は製品寿命の短縮や夏だと室温の上昇につながる。 そこで、今回は Linux の環境で nvidia-smi(1) を使って NVIDIA の GPU にパワーリミットを設定することで消費電力や発熱の低減を目指してみる。 使った環境は次のとおり。 Ubuntu 20.04 LTS のマシンに、Docker と nvidia-container-toolkit がインストールしてある。 $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.4 LTS Release: 20.04 Codenam

    nvidia-smi(1) で GPU にパワーリミットを設定して消費電力や発熱を減らす - CUBE SUGAR CONTAINER
  • Deno でコマンドラインツールを雑に作ったので感想

    趣味で TC39 のアクティビティを追ったり https://cybozu.github.io/frontend-expert/ にそういう記事を書いたりすることがあるのですが、その作業をする中でややめんどい手作業みたいなのがあったりします。 そういうのを自動化するコマンドラインツールを作ろうと思って、最初いつもどおり Node.js で作り始めました。30分くらいしていつもどおり Node.js じゃつまらないなと思ったので Deno で作ってみました。 実は Deno を使ったのは初めてだったので感想を書いてみます。哲学とかは置いといて単純にユーザーとしての利便性について。 deno lintdeno fmt が便利 自分は ESLint と Prettier に精通している方だけどとは言えそういう設定なしにシュッと動くのはかなり楽。速いし。 標準ライブラリが便利 Node.js

    Deno でコマンドラインツールを雑に作ったので感想
  • JSON を行単位にわかりやすく展開してくれるコマンド gron がピンポイントでとても便利

    JSON を行単位にわかりやすく展開してくれるコマンド gron がピンポイントでとても便利 2022-06-13-1 [Programming] コマンドラインでの JSON の操作には jq (軽量JSONパーサ)[2017-10-24-1] を使っています。万能で便利なんですが、奥まったところにある値だけを取りたいときとかちょっと面倒なんですよね。ちらっと値を見たいだけなのにおおげさになっちゃいがち。 ということで、 gron というのを使ってみました。 GitHub - tomnomnom/gron: Make JSON greppable!JSONをgrepしやすくするコマンドラインツールgronの紹介 - Qiitagronでjsonの扱いが楽になった話 – Tower of Engineers あ、これでいいや。 いわゆる「顧客(=私)が当に必要だったもの」だわ。 例えば、

    JSON を行単位にわかりやすく展開してくれるコマンド gron がピンポイントでとても便利
  • CLIツールを作るためにoclifを試してみたら簡単すぎて吃驚した | Trial and Spiral

    CLI用のコマンドを作ってみようと思いたったのですが、CLI開発フレームワークoclifを試してみたらとても簡単で環境構築もすんなりできたのでびっくりしたという話。 概要 ある用途で思いたってCLIのコマンド作ろうと思った oclifというCLI用のフレームワークがあったので試してみた 簡単すぎてびっくりした 追加でPrettierとJestも対応してみました 動機 誰しもCLIのコマンドをつくりたくなることがたまにある。僕はある。 今回はGUIを作るまでもなく、コマンドでシュッと実行したい作業があったので勉強と遊びを兼ねてコマンドを作ることにしました。CLIの開発ツールはいろいろありますが、今回はやりたいことを実現するのにすでに知見としてあるものを流用したい背景aからNode.jsでやることにしまた。 Node.jsにもCLI用を作るためのライブラリがさらにいくつかありますが、今回はoc

    CLIツールを作るためにoclifを試してみたら簡単すぎて吃驚した | Trial and Spiral
  • Windowsでコマンドラインから画面キャプチャーをする (1/2)

    コマンドラインから画面キャプチャーを実行して PNG形式で保存する 画面キャプチャー(スクリーンショットとも)は、ソフトウェアのドキュメント作成やメモ代わりにすることが多い。こうしたとき、コマンドラインから画面キャプチャーをしたくなることがあるが、残念ながら、Windowsには直接可能なコマンドは用意されていない。しかし、PowerShellを使えば、まったく不可能というわけではない。 まず画面が1つだけ、マルチディスプレイではない環境で、デスクトップ全体の画面キャプチャーをする方法を考える。 最初に、PowerShellでSystem.Windows.FormsとSystem.Drawingクラスを使えるように以下のコマンドを実行しておく。PowerShellのウィンドウを閉じるまでに1回だけ実行しておけばよい。複数のキャプチャー方式を解説するが、どの方法でも、このAdd-Typeコマン

    Windowsでコマンドラインから画面キャプチャーをする (1/2)