タグ

shに関するkiyo_hikoのブックマーク (24)

  • gtrashというrmコマンド代替えアプリが-r再帰不要ですごく面白い。ゴミ箱リサイクル対応。 $HOME/.local/share/Trashで他のファイラー互換あり。Go言語なのでNetBSDでも簡単にビルド出来ます。

    Kapper@Linuxガジェヲタ&異世界小説家&電子工作大好き @kapper1224 gtrashというアプリ どうやらコマンドラインでファイルのゴミ箱を操作するツール。GOで書かれたrm代替えコマンド $HOME/.local/share/Trashに保存したデータのやりとりするために他のファイラーとゴミ箱互換性がある。 github.com/umlx5h/gtrash pic.twitter.com/4UvnHEcA2O 2024-01-10 03:14:42

    gtrashというrmコマンド代替えアプリが-r再帰不要ですごく面白い。ゴミ箱リサイクル対応。 $HOME/.local/share/Trashで他のファイラー互換あり。Go言語なのでNetBSDでも簡単にビルド出来ます。
  • 『マスタリングLinuxシェルスクリプト 第2版』、こういう1冊手元に有るとずっと使える本はちゃんと買っておきたいですね - Magnolia Tech

    マスタリングLinuxシェルスクリプト 第2版 ―Linuxコマンド、bashスクリプト、シェルプログラミング実践入門 作者:Mokhtar Ebrahim,Andrew MallettオライリージャパンAmazon 令和最新版のシェルスクリプトの入門書とリファレンスがセットになった1冊。手元に置いておくと安心感ありますよね。 令和最新版なので、冒頭からデバッグしたいならVisual Studio Code がオススメ、と出てきます。 コンテナ使おうと思ったらシェルスクリプトの読み書きの出番がどんどん増えていって、コンテナに一番必要なスキルはシェルスクリプトのスキルでは?と思っている今日この頃です(違います)が、そのくらいの用途に必要な要素は全部盛り込んであり、シェルスクリプトの文法と実践的な使い方に加えて、一緒に利用されることの多いgrep、awk、sedといったコマンドの解説も併せて載

    『マスタリングLinuxシェルスクリプト 第2版』、こういう1冊手元に有るとずっと使える本はちゃんと買っておきたいですね - Magnolia Tech
    kiyo_hiko
    kiyo_hiko 2023/01/22
    電書で検討しようかな https://www.oreilly.co.jp/books/9784814400119/
  • シェルスクリプトの $* と $@ の違いと雑学色々 - Qiita

    まず位置パラメータを含め変数を参照する時にダブルクォートしないのは無しです。理由は予期せぬ変数展開やパス名展開が行われるからです。詳細は「シェルスクリプトの変数はダブルクォートしなければいけない!という話」を参照してください。この理由により上半分は「使いません」で終わりです。 ダブルクォートはほぼ必須ですが { } は必要な時だけ書けば十分です。常に ${var} のように { } を書く人がいるようですが、そういう人に限って面倒なのかダブルクォートをしてないことをよく見かけます。逆です。省略可能なのは { } であり、ダブルクォートは(当に不要な場合を除き)省略できません。常に { } を使ってもかまわないと思いますがダブルクォートも書きましょう。 ❌ ${var} ・・・ ダブルクォートが抜けている! ⭕ "$var" ・・・ このように書け! ⭕ "${var}" ・・・ 問題ない

    シェルスクリプトの $* と $@ の違いと雑学色々 - Qiita
    kiyo_hiko
    kiyo_hiko 2023/01/04
    "通常は複数の引数を一つに結合したりしないので "$@" を使いましょう。またダブルクォートなしの $* や $@ はバグに近いレベルの間違った使い方なので覚えなくてよいです" はい
  • もっと使いやすいコマンドラインツール10選

    背景 ls、cd、psなどのコマンド。 いずれも30年前のもので、今でも毎日使っていますが、"オープンソースの世界には、これらの「古い」Linuxコマンドに代わり、より優れたコマンドラインツールがあるのだろうか?"と思いました。 記事では、Linuxのコマンドと同じことができるだけでなく、より使いやすいパラメータ、一目でわかる表示、クロスプラットフォーム対応など、使い方、パフォーマンス、表示の面でより優れた新機能を追加したオープンソースのコマンドラインツールを10個まとめてみました。 1. dust(du) 開発言語: Rust Github: https://github.com/bootandy/dust スター数: 4.4k 代替コマンド: du 使用方法: dust プラットフォーム: WindowsLinuxmacOS 説明: ディレクトリやファイルのサイズを一目でわかるよ

    もっと使いやすいコマンドラインツール10選
    kiyo_hiko
    kiyo_hiko 2022/09/12
    gitignore無視できるのいいな
  • シェルスクリプトは変数代入で = の前後にスペースを置けない!・・・の本当の理由を知ると優れた文法が見えてくる - Qiita

    シェルスクリプトは変数代入で = の前後にスペースを置けない!・・・の当の理由を知ると優れた文法が見えてくるShellScriptBashUNIXshellPOSIX はじめに シェルスクリプトの変数代入で = の前後にスペースを置くことができない理由は、検索すれば「プログラマーの君! 勘違いするな! シェルスクリプトでは読みやすさのためにスペースを置くな!! という話」のような記事がすぐに見つかります。記事に書いてあるとおり変数代入とコマンド呼び出しと区別がつかないからです。それは間違いではないんですが、私はもう少し説明が足りないと感じています。そこで今回は = の前後にスペースを置けない当の理由を解説したいと思います。 の前に皆さんにはこの話を読みながら、自分がシェルスクリプトの言語設計者だったとしたら、どういう言語仕様にするかを考えて欲しいです。なぜかと言うとシェルスクリプトの文

    シェルスクリプトは変数代入で = の前後にスペースを置けない!・・・の本当の理由を知ると優れた文法が見えてくる - Qiita
    kiyo_hiko
    kiyo_hiko 2021/11/11
    へーすごい。こうなって居たのか。という驚きはあるがそのうち忘れて行き当たりばったりに戻る。
  • 排他制御の基礎の基礎

    はじめに システムに存在するリソースには同時にアクセスしてはいけないものが多々あります。身近な例を挙げると、Ubuntuのパッケージ管理システムのデータベースがあります。aptコマンドの動作によってこのデータベースは更新されるのですが、同時に2つ以上のaptが動作できたとすると、データベースが破壊されてシステムが危機的状況に陥ります。 このような問題を避けるために、あるリソースに同時に1つの処理しかアクセスできなくする排他制御というしくみがあります。排他制御はOSが提供する重要な機能の一つです。 排他制御が必要なケース 排他制御は直感的ではなく非常に理解が難しいのですが、ここでは比較的理解が簡単なファイルロックというしくみを使って説明します。説明には、あるファイルの中身を読みだして、その中に書いてある数字に1を加えて終了するincというという単純なプログラムを使います。

    排他制御の基礎の基礎
  • ‪データの集計ではsort | uniq -c をシェル芸で良く使うけど大量データには向かないのでawkでもっと高速な処理を書く‬ - Qiita

    ‪データの集計ではsort | uniq -c をシェル芸で良く使うけど大量データには向かないのでawkでもっと高速な処理を書く‬ShellScriptAWK sort | uniq -c という操作は、データの集合から件数を数えるのによく使いますね。 uniq はデータから重複データを取り除いたり、重複したデータだけを取り出したり、あるいは件数を数える、という処理ができるコマンドですが、実行時の前提条件として予めソートされたデータが必要です。だから先に sort しています。 しかしデータの母集団が大きいと sort の処理時間がボトルネックとなって、数分単位のオーダーで処理待ちが起きることがあります。そのような場合に sort | uniq -c とは違う方法で集計を行えば、処理速度を大幅に改善できる可能性があります。 例:1から1000までのランダムな値の集合1億件について、値ごとの

    ‪データの集計ではsort | uniq -c をシェル芸で良く使うけど大量データには向かないのでawkでもっと高速な処理を書く‬ - Qiita
  • 【 awk 】コマンド(基本編その4)――テキストの加工とパターン処理、printとprintfの使い方

    LinuxコマンドTips一覧 連載では、Linuxの基的なコマンドについて、基的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、テキストのパターン処理を行う「awk(gawk)」コマンドです。連載第115回、第116回、第117回に続き、awkの基的な使い方を説明します。 awk(オーク)コマンドとは? 「awk」は空白などで区切られたテキストを処理するコマンドです。演算機能もあり、プログラミング言語としても使用されています。 Linux環境で使用されているのは、GNUプロジェクトによる「gawk」コマンドが多く、例えばCentOS 7の場合、awkは/usr/bin/gawkへのシンボリックリンクとなっています。 Ubuntu 15では、Michael D. Brennan氏による「mawk」が収録されています(awkは/etc/altern

    【 awk 】コマンド(基本編その4)――テキストの加工とパターン処理、printとprintfの使い方
  • Vimのterminal機能が便利すぎる。 | ガジェット好きの日記

    ふと、下記のSoftware Designを読んでいたところ、、、Vimの細道という連載でterminalという機能が追加されたらしく、Vimのウィンドウ内で端末が利用できるようになったとのこと。。。 面白そうなので早速使ってみました。 ●Software Design2018年1月号 特集が面白そうなので買いました。シェルスクリプトが上手く書けないという方は参考になるかもしれません。 シェルスクリプトによるWebスクレイピングについても簡単に例示されているので分かりやすかったです。 もくじ ビルドUbuntu18.04以降ではビルドは不要です。 terminal機能は2018に実装された機能なので、基的にビルドが必要です。configureのオプションに --enable-terminalを追加してください。 詳しい手順は【Ubuntu】Vimをビルドする手順を参照してください。

    Vimのterminal機能が便利すぎる。 | ガジェット好きの日記
    kiyo_hiko
    kiyo_hiko 2019/09/13
    vimを起動して「:term」 / ONIにもあり、ONIでSBCLのREPLを起動するのに > vim → :term → > ros run → :set filetype=lisp で便利になった
  • 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株式会社
  • 検索してファイルを消す時に高速に行う方法 - Qiita

    「プロフェッショナル イチロースペシャル」を見て 真っすぐに自分と向き合う姿にホレた千葉です。 今日は、あるファイルを検索して消す時に、高速になる方法です。 find + xargs = 高速 速い find /XXXX/XXXX/*.txt -type f | xargs rm -rf 遅い find /XXXX/XXXX/*.txt -type f -exec rm -rf {} ¥; 消すファイル数が多ければ多い程、xargsを使った方が速い。 なぜなら、 「-exec」を使用すると、内部的には見つけたファイルに対して毎回rmを行う。 「xargs」を使用すると、内部的にはコマンド1発で終了。 例えば、 「-exec」

    検索してファイルを消す時に高速に行う方法 - Qiita
    kiyo_hiko
    kiyo_hiko 2019/04/10
    find -execではなくfind | xargsを使う
  • 間違って入力したコマンドのhistoryの削除 - Qiita

    historyの恥をかき消す方法 共用サーバーなどbashでコピペとかで間違ったコマンドとか打って historyに書かれた恥をかき消す方法 1行の履歴を消す 失敗したのが1行の場合 history -d offset offsetに削除したい行番号を入れる しかしコレ実行すると history -d の履歴は残る罠 複数行の履歴を消す historyファイルを直接編集 vi ~/.bash_history コレが一番手っ取り早いと個人的には思う 全部消す 履歴を全部消す男気あふれるコマンド、コレをやると逆に怒られる可能性大 history -c Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back

    間違って入力したコマンドのhistoryの削除 - Qiita
  • Install latest version of Docker Compose

    kiyo_hiko
    kiyo_hiko 2018/12/17
    ここで記載されている"curl -s https://api.github.com/repos/docker/compose/releases/latest | grep 'tag_name' | cut -d\" -f4"の結果をdc_versionにregisterしてdc_version.stdoutを組み込んで最新docker-composeをインストールするプレイブック書けた。有り難し。
  • Bashの便利な構文だがよく忘れてしまうものの備忘録

    Bashでスクリプトを書く場合のポイントをまとめた Bashなどで書くシェルスクリプトは文法がシンプルで覚えると便利。他のプログラム言語だと何行もかかなければならないファイル操作や中身のデータ処理を、ちょちょいと数行レベルで書けとても強力だ。コマンドとの親和性が高い恩恵だろう1。 旧来バッチ処理で領を発揮するシェルスクリプトだったが、昨今はDockerDockerfileや起動スクリプトなど)で活用される機会も多いだろう。 しかしながら他のプログラム言語ではみられない記法があったり、逆に似た書き方もあったりと、混乱しがちなのもシェルスクリプトの特徴かもしれない。 いちいちGoogle先生に確認するのもめんどうなので、このページに整理した2。 主な参照先(よくお世話になっているページ): UNIXの部屋(68user's page) - http://x68000.q-e-d.net/~

    Bashの便利な構文だがよく忘れてしまうものの備忘録
    kiyo_hiko
    kiyo_hiko 2018/12/17
    "直前のコマンドの実行結果は、特殊変数 $? に格納される"
  • シェルスクリプトを高級言語のような書き味に近づける Tips 集 | 創作メモ帳

    Bash は言わずと知れた歴史あるコマンド言語です。テキストにコマンドの羅列を記述するだけで、手軽にシェルスクリプトとして実行することができます。 シェルスクリプトの実体はシェルコマンドの羅列に過ぎませんが、手続き型プログラミング言語にあるような制御構文も備えています。変数や条件分岐、ループ、関数などです。これらを使えばシェルスクリプトでプログラミングも可能です。 もちろん、現代の一般的なプログラミング言語と比べると機能は限られます。他の言語には見られないシェルスクリプト特有の癖や記法も数多くあり、最近の言語に慣れている人ほど、つまずくポイントが多いです。 しかし、シェルスクリプトだからこその良さもあります。Bash は現在でも多くの OS で標準シェルとして採用されており、普段使っているシェルコマンドを書くだけで動かせる手軽さは何者にも代えがたいです。一度身につけておくと長く使えるお得な

    シェルスクリプトを高級言語のような書き味に近づける Tips 集 | 創作メモ帳
    kiyo_hiko
    kiyo_hiko 2018/12/12
  • bash print array elements on separate lines - Stack Overflow

    Collectives™ on Stack Overflow Find centralized, trusted content and collaborate around the technologies you use most. Learn more about Collectives Teams Q&A for work Connect and share knowledge within a single location that is structured and easy to search. Learn more about Teams

    bash print array elements on separate lines - Stack Overflow
  • bashの変数展開によるファイル名や拡張子の取得 - Qiita

    沢山のファイルの名前を変更したり、拡張子を変更する際には、シェル上での操作が便利なことがあります。この場合、ファイル名や拡張子、ファイル名から拡張子を取り除いたものを取得できると便利です。 basenameとdirnameの利用 MacOSLinuxではbasenameコマンドやdirnameコマンドを利用すると、パス名からのファイル名の取り出しやパス名からのディレクトリ部分の取り出しが出来ます。この2つのコマンドの動作は

    bashの変数展開によるファイル名や拡張子の取得 - Qiita
  • プログラマーの君! 騙されるな! シェルスクリプトはそう書いちゃ駄目だ!! という話 - Qiita

    記事が切っ掛けとなってお声がけを頂き、記事の増補リファイン版となる記事をSoftwareDesign 2018年1月号のシェルスクリプト特集第2章として執筆しました。リファイン版には、この記事で触れていない文法面での分かりにくさについての解説が含まれています。その文法面での分かりにくさの解説の一部に相当する記事もありますので、ぜひそちらも併せてご覧下さい。 Shell Script Advent Calendarをご覧の皆様、図々しくも5日目に続く2度目のエントリーのPiroです。 前回は自作のBashスクリプト製Twitterクライアントをネタに実装を解説しましたが、今日は他の言語で多少のプログラミング経験はあるんだけど、どうにもシェルスクリプトは苦手だ……という人のための、シェルスクリプトによるプログラミングの勘所を解説してみようと思います。多分、プログラミング入門レベルの人や上級

    プログラマーの君! 騙されるな! シェルスクリプトはそう書いちゃ駄目だ!! という話 - Qiita
    kiyo_hiko
    kiyo_hiko 2016/12/08
    解説が充実してた
  • Engadget | Technology News & Reviews

    Pick up the 9th-gen iPad with two years of AppleCare+ for only $298

    Engadget | Technology News & Reviews
  • 何もしない組み込みコマンド ":" (コロン)の使い道

    Bash でシェルスクリプトを勉強していくと出会うのが : (コロン)という名前の組み込みコマンド。このコマンドは何もしないコマンドです。 こんなコマンドの存在は不思議だなと思う反面、C言語にも void という型があったり(関数のような形で存在するのは JavaScript とかですね)、LaTeX にも \relax があったり、何もしない命令というものは機械語の NOP からある普通のものです。 この Bash の : の使い道についてまとめてみました。 何か書かなければならないところに仮置きする 例えば「ここに制御構造を置くんだけど、この節に入るものは後で書くんだけどな〜」といった場合、制御構造の節の中に何も書かないと Bash は構文エラーとなります。 #!/bin/bash arg="$1" if [ -z "$arg" ] ; then echo "デフォルトモード開始" e

    何もしない組み込みコマンド ":" (コロン)の使い道