タグ

shellに関するamino_acid9のブックマーク (35)

  • How to use bookmarks in bash/zsh

    How to installHere is where the magic is. Add these 4 lines of code to your bashrc or zshrc file. if [ -d "$HOME/.bookmarks" ]; then export CDPATH=".:$HOME/.bookmarks:/" alias goto="cd -P" fiAdditionally, you need to create the directory in your home folder or wherever it suits you, just remember to update the CDPATH variable above. mkdir ~/.bookmarksHow to useTo add a new bookmark, you just need

    How to use bookmarks in bash/zsh
    amino_acid9
    amino_acid9 2021/09/05
    単にCDPATHに追加していくだけだと補完候補にずらずらと余計なものまで列挙されて鬱陶しいのを、シンボリックリンクとプレフィックスを付けることで解決してる。うまいアイデアだなあ
  • シェルスクリプトの [ は /bin/[ と言ったり [ "x$var" = "xval" ] と書く人はオジサン - Qiita

    # Ubuntu 20.04 の bash での実行結果 # シェルから [ が何として見えているか $ type [ [ is a shell builtin # PATH から見つかる全ての [ コマンドを出力する # 補足 zsh では which がシェルビルトインコマンドで、シェルビルトイン版の [ も出力される $ which -a [ /usr/bin/[ /bin/[ $ type [[ [[ is a shell keyword # zsh では [[ をパターンとして認識してしまうのでダブルクォートが必要 $ type "[[" [[ is a reserved word ちなみに [ の外部コマンド版が /usr/bin/ と /bin/ の両方にあるのは Ubuntu 20.04 では /bin が /usr/bin へのシンボリックリンクになっているからです。Ub

    シェルスクリプトの [ は /bin/[ と言ったり [ "x$var" = "xval" ] と書く人はオジサン - Qiita
    amino_acid9
    amino_acid9 2021/09/02
    xhack懐かしい、いつの間にか使わなくなってたけどただのバグだとは知らなんだ。-a, -o が非推奨になったのも知らなんだ
  • あなたはps -ef派なのか、auxf派なのかをちょっとだけまとめてみた | ten-snapon.com

    あなたはps -ef派なのか、auxf派なのかをちょっとだけまとめてみた | ten-snapon.com
    amino_acid9
    amino_acid9 2021/05/23
    auxww 派、というか由来によるオプション違いやらman長すぎて読む気しないので、出来るなら ps 以外を使いたい派
  • Rust製コマンドでTerminal操作を快適にしよう! | DevelopersIO

    はじめに CX事業部のshuntakaです。 Terminalで作業をする人に馴染みの深いlsやfindといったOSコマンドの改善や拡張を目的としたRust製CLIが多く公開されています。 記事は、自分がTerminal操作で利用しているRust製CLIとその利用例を紹介したいと思います。 Rust製ですが、紹介するツールは基brewでインストール可能なので、気軽に試せます。 お盆が終わる前に入れておくと、お盆開けから一味違う自分になれます。 コマンド紹介 exa 該当するOSコマンド ls, tree 特徴 出力の色付けに加え、Gitのステータス表示もしてくれます(後述) 利用例1 lsを使う局面 exa -ahl --git aliasに登録しています alias ls='exa' alias ll='exa -ahl --git' 動作イメージ Gitのステータス上差分があるフ

    Rust製コマンドでTerminal操作を快適にしよう! | DevelopersIO
    amino_acid9
    amino_acid9 2021/01/05
    なんかいつの間にか便利なコマンドがめっちゃ増えてる…
  • 第640回 gioコマンドを使ってコマンドラインからリモートのファイルを制御する | gihyo.jp

    今回は一連のgvfsコマンドに代わって、gioコマンドを使用する方法を紹介します。 Ubuntu 20.10リリースとその変更点 既報のとおり10月22日にUbuntu 20.10がリリースされました。今回のリリースはあまり大きな変更点はありません。 Ubuntu 20.10ではカーネルのバージョンが5.8になってAMD Ryzen PRO 4000Gシリーズに対応[1]⁠、メモリ4/8GBのRaspberry Pi (4)で動作するUbuntu(デスクトップ)インストールイメージがリリースされたなどが特徴でしょうか。前者はさておき、後者に関してはまたいずれ別の機会に紹介しようと思います。 地味な変更点としては、gvfs-binパッケージがインストールされなくなりました。このパッケージにはgvfs-openやgvfs-mountといったgvfs関連コマンドが収録されていました。もちろんリポ

    第640回 gioコマンドを使ってコマンドラインからリモートのファイルを制御する | gihyo.jp
    amino_acid9
    amino_acid9 2020/12/19
    gvfs コマンド、いつのまにか gio になってた
  • bash の危険な算術式 - どさにっき

    ■ bash の危険な算術式 _ 使ってる人がいちばん多いだろうからタイトルでは bash としてるけど、ここで取り上げることは zsh および ksh 一族(家 ksh、pdksh、mksh)にも該当する。ash、dash などでは該当しない。 _ 以下のシェルスクリプトには脆弱性がある。わかるだろうか。 #!/bin/bash # "品目,単価,個数" の形式の CSV を読んで、"品目,合計金額" の形式で出力する csv="foo.csv" while IFS=, read item price num; do echo "$item,$((price*num))" done < "$csv" これ、細工された CSV ファイルをわせることで、任意コードの実行ができてしまう。数ある脆弱性の中でもとくにヤバいやつだ。どこが穴なのかというと、タイトルにもあるとおり算術式なのだが、し

    amino_acid9
    amino_acid9 2019/09/02
    bashやzshはこういう(自分が)理解できない挙動があるので、シェルスクリプトは/bin/sh(dash)で処理が簡単なものしか書かないようにしてる。
  • sourceコマンドを誤って使ってしまいゾッとした話 - Qiita

    ってやってしまった。 ぎゃぁぁあああああああーーーーーーーー!!!!!!!! と叫んでも遅し、、、処理が走ってしまい止められなくなってしまいました。 処理の途中に 「公開鍵を上書きするかどうか?」とか出てきて、 n として回避した後、今は無くなっているレポジトリから git clone しようとしたところで、アカウント確認のために処理が止まり、そこで、 Ctrl + c で強制終了できました。 解説 source コマンドは、ファイルに書かれたコマンドを現在のシェルで実行するコマンドです よって、私がミスして実行してしまった処理の内容は、 .zsh_history にファイルに書かれたコマンドが1行ずつ実行する。という内容になります。 .zsh_history には私が過去に打ったコマンドがすべて記録されているため、つまり、それらのコマンドが順に実行されていくということになってしまいます。

    sourceコマンドを誤って使ってしまいゾッとした話 - Qiita
    amino_acid9
    amino_acid9 2019/08/04
    自分の環境だと"source ~/.zsh" からのTab補完で .zsh_history 出てこないので、ウン?ってなったけど、.zshrc で HISTFILE="${HOME}/.zsh/etc/zsh_history" ってしてた
  • 実行してはいけないLinuxコマンド(9) インストーラを誤りUSBメモリではなくHDDに書き込む・Ubuntu Server編 | マイナビニュース

    1文字間違えると大惨事、ddでインストーラ書き込み USBメモリを使ってLinuxをインストールしたことがある方なら、ddコマンドを使ってインストーライメージをUSBメモリに書き込んだことがあるのではないかと思う。ddコマンドは実に便利で、次のような感じで直接インストーライメージをUSBメモリに書き込むことができる。 Ubuntu ServerインストーラをUSBメモリに書き込むサンプル dd if=ubuntu-18.04.1-live-server-amd64.iso of=/dev/sd? of=/dev/sd?の部分がUSBメモリのデバイスファイルを指定する部分で、例えば、ここがデバイスなどによって/dev/sdbだったり/dev/sddだったりする。ここで多くの方が「デバイスファイルの指定を間違えると、とてもまずいことになるんじゃないか」と感じたことがあるのではないだろうか。1文

    実行してはいけないLinuxコマンド(9) インストーラを誤りUSBメモリではなくHDDに書き込む・Ubuntu Server編 | マイナビニュース
    amino_acid9
    amino_acid9 2018/11/04
    わかる。ddで0書き込み(/dev/zero)するときゲシュタルト崩壊起こりそうなぐらい確認してる
  • #/usr/binとその同種の周辺を探る | POSTD

    (注:2017/04/10、いただいたフィードバックを元に翻訳を修正いたしました。) はじめに 私はLinuxが大好きです。コンピュータとのやりとりが楽しくなるし学ぶことも多くなります。OSとハードウェアの基盤となる基原則を学びたい人にとって、Linuxはとてもいい出発点と言えるでしょう。 ご存じのとおりLinuxとは大抵の場合プログラム(コマンド)を通してやりとりします。Linuxと他のUNIX系システムが持っている特徴は、コマンドラインと、パイプのコンセプトです。プログラムの提供する入力と出力を統合すれば、データを操作するのに非常にパワフルなプラットフォームになります。 Linuxのコマンド、プログラム、バイナリ(何と呼んでもいいのですが)の大部分は、/usr/bin、/usr/sbin/、/binそして/usr/local/binに存在しています。これらのディレクトリを見れば、プロ

    #/usr/binとその同種の周辺を探る | POSTD
    amino_acid9
    amino_acid9 2017/04/08
    知らないのかなりある。この辺も探検しだしたら時間泥棒なんだろうな
  • シェルスクリプトの書き方

    12月にTwitterに流れていたPOSIX何とかという話題を読んでいたらこの記事にたどり着いた。もう3年以上前の記事だけれど、内容がとても偏っていると思う。 シェルスクリプトの書き方について解説しているウェブ上の資料は少なく、当該記事も検索に引っかかりやすい。最近の初学者はまず検索して調べることが多いが、反論が検索に引っかからないとそれが正しいと受け入れてしまう可能性が高いように思う。きちんと反論している日語の記事が引っかからないので、あえて問題と思う点をまとめてみた。 そんなこと書いているあなたは誰? わたしはシェルスクリプトの専門家でも職業プログラマでもないけれど、シェルスクリプトを書いた量はそれなりにあると思う。環境はSunOS4, Solaris, HP-UX, IBM AIX, FreeBSD, OpenBSD, Linuxを経験していて、移植性や性能の問題がどこで発生しやす

    amino_acid9
    amino_acid9 2017/01/13
    bash拡張使うなら他の言語でよくね&POSIXに入った機能は積極的に使おう派です
  • サーバ業者が「rm -rf /」で全サーバを誤消去、復旧法をQ&Aサイトに尋ねる。実は書籍執筆のための「引っ掛け問題」 - Engadget 日本版

    Nintendo Switch 2: Everything we know about the coming release

    サーバ業者が「rm -rf /」で全サーバを誤消去、復旧法をQ&Aサイトに尋ねる。実は書籍執筆のための「引っ掛け問題」 - Engadget 日本版
    amino_acid9
    amino_acid9 2016/04/17
    良かった、バックアップまで削除してクビや損害賠償におののく管理者は居なかったんだ!
  • レンタルサーバー業者、「rm -rf /」で誤って全サーバーのデータを削除 - BusinessNewsline

    米雇用統計の発表後に、一撃でドル円が40PIP~100PIPS動くことが多いので、一気に数万円~数十万円の爆益を得たいFXトレーダーが米雇用統計前に、ドル円のポジションをとっています。この米雇用統計の結果を予測するのは、とても難易度が高いため、米雇用統計前にポジションを取ることはギャンブルだと言われているので、お金を絶対にうしないたくないFXトレーダーは米雇用統計前にポジションを取ることをしないようにしましょう。そうはいっても、米雇用統計の魅力に負けてしまい、米雇用統計前後にポジションをとってしまうんですよね。今回は、米雇用統計について詳しく書いていくぜ。 米雇用統計に参加することの利点。 米雇用統計の予想を的中させれば、自分の予想を大きく上回る利益を得ることができる 米雇用統計の予想を的中させれば、自分の予想を大きく上回る利益を得ることができるため、一日で会社員の数倍ものお金を稼ぎたい人

    レンタルサーバー業者、「rm -rf /」で誤って全サーバーのデータを削除 - BusinessNewsline
    amino_acid9
    amino_acid9 2016/04/16
    変数が空の場合のチェックせずにってのはままあってSteamもやらかしたけど(http://linux.srad.jp/story/15/01/18/0438239/)バックアップも削除ってのホントなのかね
  • Windows 10のbash on Windowsを試す - kkamegawa's weblog

    はじめに blogs.windows.com Windows 10のInsiderビルド14316が公開されました。//Buildで発表されたbash on Windowsも入っています。bashなのでbashそのものの挙動はともかく、Windowsで実際にどう見えるのか確認してみます。ベータなので将来変わると思いますので、その点はよろしく。 インストール 初回起動時のbash.exeはコンソールのストアアプリ(Windows Runtimeを使うアプリ)のようで、ちょっと違います。ご注意。公になるものでは初めてのWindows Runtimeを使ってストアにアクセスするコンソールアプリケーションってことになるんでしょうか。理屈上はできることはわかっていましたが。 まずはプログラムの追加と削除からWindowsの機能で「Windows Subsystem for Linux」を追加します。

    Windows 10のbash on Windowsを試す - kkamegawa's weblog
  • 恐怖!シェルショッカーの POSIX原理主義シェルスクリプト

    シェルスクリプトがいかに最強の言語であるかを、POSIX原理主義集団「シェルショッカー日支部」がとくと教えてやる。 ― 2016/03/20@歌舞伎座.tech#9Read less

    恐怖!シェルショッカーの POSIX原理主義シェルスクリプト
    amino_acid9
    amino_acid9 2016/03/21
    bash等の独自拡張は使うなとか文法とかそういう次元の話じゃなかった。かっこいい
  • 【たのしいな】様々なコマンド達を何も考えずにつないで遊ぶ - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    【たのしいな】様々なコマンド達を何も考えずにつないで遊ぶ - Qiita
    amino_acid9
    amino_acid9 2015/12/23
    シェル芸人だ
  • シェルスクリプトの平文パスワードをセキュアにする方法 - 余白の書きなぐり

    追記: (2015/8/3) 大量のはてブが付いたので 続き を書きました。 sshを使用している人は文字列を手軽に暗号化・復号化できるという話。 このテクニックを使えば色々セキュアになるのでおすすめ。 今回はシェルスクリプト中の平文パスワードをセキュアに代替する。 平文パスワードはやめよう シェルスクリプト中でパスワードが必要になったとき、 とりあえず平文で書いてしまいがち。 #!/bin/sh PASSWORD="hoge" これをセキュアにしたい。 面倒くさいのは嫌なので、なるべく手持ちのツールで暗号化、復号化したい。 ssh用の rsa 秘密鍵と、openssl(大抵の環境に入っている)を使って改善しよう。 秘密鍵の準備 パスワードを暗号化するにあたって、秘密鍵を使用する. sshを常用している場合は ~/.ssh/id_rsa という秘密鍵が存在するだろう。 もし秘密鍵が無ければ

    シェルスクリプトの平文パスワードをセキュアにする方法 - 余白の書きなぐり
    amino_acid9
    amino_acid9 2015/08/02
    秘密鍵を使って暗号化、スクリプトを共有したり公開する場合は効果があり…なのかな
  • 大きなテキストファイルをawkで処理するときにcatで投げ込むのと、ファイル読み込みするのどっちが速いか比較 - カメニッキ

    追記が増えたので整理 経緯 2.5GBのテキストファイルを加工する必要があり、①vimで開いて加工→vim死亡②sublime textで開いて加工→sublime text死亡となったため、awkを用いて以下の様なコマンドを実行した。 $ cat sample.txt | awk '$5 ~ /((26|27|28|29|30)\/Jun|(01|02|03)\/Jul)/{ print }' > result.txt すると 「catいらなくね?」と指摘 さらにMATSUMOTO, Ryosuke (@matsumotory) | Twitter < 「キャッシュに入れて高速化してるんかと思った」 とコメントをもらいました。ので、どっちが速いかの検証です。 注意 加工の目的はログファイルからある期間だけの行を抜き取りたい 正規表現がいけてないのは気にしない 比較 awkにファイル指定す

    大きなテキストファイルをawkで処理するときにcatで投げ込むのと、ファイル読み込みするのどっちが速いか比較 - カメニッキ
    amino_acid9
    amino_acid9 2015/07/23
    コメのリンク(https://uec.usp-lab.com/JOURNAL/CGI/JOURNAL.CGI?POMPA=KAIGAN_journal08)も読むと処理が並列で走るから今時のマルチCPUなら結構差が出るってことかな
  • シェルスクリプトの中で1行ずつ変数を分割する際には、cutとかawkとか余計なプロセスを起動せずsetを使って分割した方が効率的 - 双六工場日誌

    シェルスクリプトの中で、スペース区切りもしくはタブ区切りのレコードを扱うことがよくあると思います。 たとえば、前回のエントリ「AWS CLIとjqを使って、AWSのELBボリュームがアタッチされているEC2インスタンス名を出力するワンライナーを書いた - 双六工場日誌」のスクリプトの出力は以下のようになります。 i-ec56a9f5 vol-07d00601 servername i-ec56a9f5 vol-8f550991 servername このようなレコードの特定の列を取り出して、処理する際にどうするのが効率的か、というのがこのエントリのお題です。 非常に古い話題なので、昔からシェルスクリプトを書いている人には自明な話ではありますが、最近、シェルの標準機能の話を聞く機会がなく、失われつつある技術になってきている気がしているので、改めて確認ということで。 例として挙げたレコードから

    シェルスクリプトの中で1行ずつ変数を分割する際には、cutとかawkとか余計なプロセスを起動せずsetを使って分割した方が効率的 - 双六工場日誌
    amino_acid9
    amino_acid9 2015/01/26
    "set --"で位置パラメータを再セットするのは、なんか抵抗あるんだよなあ
  • Steam for Linuxのバグ、予期せぬ「rm -rf "/"*」 | スラド Linux

    Steam for LinuxSteamのデータ保存用ディレクトリを別の場所に移動した結果、ユーザーのファイルがすべて消去されてしまったというバグリポートが出されている(Neowinの記事、 家/.)。 このユーザーは「~/.local/share/steam」フォルダーを別のドライブに移動し、元の場所にシンボリックリンクを張った。その結果Steamが起動しなくなり、新しい場所を指定しても解決せずにSteamはクラッシュ。再起動すると自動的に再インストールが行われ問題は解決したように見えたが、ルートディレクトリ以下すべての場所(マウントされている外付けドライブも含む)から、このユーザーのファイルが再帰的に消去されてしまっていたという。 同様のトラブルに遭遇した他のユーザーが、Steamのスクリプトで見つかった問題点を指摘している。スクリプトはある時点でデータの保存場所を「$STEAMR

    amino_acid9
    amino_acid9 2015/01/18
    おそろしい /「$STEAMROOT」にセットし、後で「rm -rf "$STEAMROOT/"*」を実行する。しかし、データの保存場所が移動されると「$STEAMROOT」が空の文字列を返すため、「rm -rf "/"*」が実行
  • bashにコードインジェクションの脆弱性「Shellshock」、管理者に大きなショック

    bashにコードインジェクションの脆弱性「Shellshock」、管理者に大きなショック:影響範囲はどこまで? UNIX系OSのシェル「bash」に極めて深刻な脆弱(ぜいじゃく)性が発見された。すでにこの脆弱性をスキャンする通信を観測したという報告もあり、修正パッチの適用や継続的な情報収集が望まれる。 米国時間の2014年9月24日、LinuxMac OS XなどのUNIX系OSで使われているシェル「bash(Bourne Again Shell)」に、極めて深刻な脆弱性(CVE-2014-6271)が発見された。シェルの環境変数として外部入力を受け入れる設定となっている環境では、最悪の場合、リモートから任意のコマンドを実行される恐れがある。bashの配布元であるGNU Projectやパッケージ配布を行っている各Linuxディストリビューションがパッチを公開済みで、速やかに適用するよう

    bashにコードインジェクションの脆弱性「Shellshock」、管理者に大きなショック