タグ

bashに関するU1and0のブックマーク (54)

  • ターミナルマルチプレクサ tmux をカスタマイズする - Qiita

    前提 ターミナルマルチプレクサとは、 GNU screen tmux などの仮想端末マネージャのことです。 メリット マウスを使わず端末内でコピペできる(スクロールバックで端末画面外に流れてしまった情報にアクセスできる) アタッチ・デタッチ機能で一時停止ができる 画面分割により、一画面でコマンドラインとエディタを表示できる 画面管理もできるので、すべてのウィンドウをタブのように管理できる すべて設定ファイルでカスタマイズできる ことが挙げられます。デメリットとしては、VimEmacs のように初期の導入コストが高いことでしょうか。これらの類はとっつきにくいイメージが有りますが、エディタのそれよりは簡単です。 参考 tmuxのコマンド tmuxを使い始めたので基的な機能の使い方とかを整理してみた こんな感じ これが普段使いの環境です。私の場合ですが、OS X 10.10 で利用し

    ターミナルマルチプレクサ tmux をカスタマイズする - Qiita
  • Bash使いなら覚えておきたい!変数値を置換する方法まとめ!

    *(アスタリスク)長さ0以上の文字列にマッチします。?(疑問符)任意の一文字にマッチします。[文字](角括弧で括られた文字)括られた文字のうちいずれかにマッチします。[a-z](アルファベットの小文字aからzまでの文字)のように範囲で指定することもできます。[^文字] もしくは [!文字]括られた文字以外の文字のいずれかにマッチします。[^0-9](数字以外の文字)のように範囲で指定することもできます。 変数値の置換例$ f=/etc/systemd/system $ echo $f /etc/systemd/system # 先頭の「/etc」を削除して出力 $ echo ${f#/etc} /systemd/system # 先頭から「/*/」に最短一致する部分を削除して出力 $ echo ${f#/*/} systemd/system # 先頭から「/*/」に最長一致する部分を削除し

    Bash使いなら覚えておきたい!変数値を置換する方法まとめ!
    U1and0
    U1and0 2019/02/09
  • Loading...

  • bashでif に正規表現を使った文字列マッチ条件分岐 - それマグで!

    bash の使い方 bash の使い方の正規表現編です。 bash で正規表現マッチのif も出来ます。 Version 3.2 くらいから、=~ によるマッチ判断ができるようになっています。 正規表現マッチで条件分岐の例 とてもかんたんなマッチングの例を見ておきましょう。 name='<h1>takuya</h1>' if [[ $name =~ takuya ]] ; then echo match fi if の条件のなかに [[ ]] のダブルブラケットを書くのがポイントです。正規表現はクオテーションは不要です。クオートしたら動かないので注意してね。 これで、文字列が存在したらマッチ。文字がアレば何かする事ができます。 すこし複雑な正規表現マッチ 最初の例だと単なる文字列マッチと区別がつかないので、もうすこし正規表現らしいマッチングをしてみます。 電話番号にマッチ tel='090

    bashでif に正規表現を使った文字列マッチ条件分岐 - それマグで!
    U1and0
    U1and0 2018/06/11
    [[ダブルで使うのが大事
  • Yes/Noで答えるプロンプト - Qiita

    ちょっとしたshellscriptを書いていたときに分からなかったので調べた。zsh, bashでreadコマンドのオプションが違ったのでメモしておく。 #!/bin/zsh while true; do read Answer\?'Do you like coffee? [Y/n]' case $Answer in '' | [Yy]* ) echo Yes! break; ;; [Nn]* ) echo No! break; ;; * ) echo Please answer YES or NO. ;; esac done #!/bin/bash while true; do read -p 'Do you like coffee? [Y/n]' Answer case $Answer in '' | [Yy]* ) echo Yes! break; ;; [Nn]* ) echo N

    Yes/Noで答えるプロンプト - Qiita
    U1and0
    U1and0 2018/06/10
    zsh ではread -q
  • bashのキー操作一覧まとめ - 元RX-7乗りの適当な日々

    bashでは、"Ctrl"や"Esc"キーと組み合わせることで様々な操作ができるので、メモ代わりにまとめておきます。 よくやるのが「Ctrl + s」キーを押してしまうと、フリーズしたかのように見えるので一瞬焦ってしまう。そんな時は・・・ Ctrl + b カーソルを左へ1文字移動 (←キーでもOK) Ctrl + f カーソルを右へ1文字移動 (→キーでもOK) Esc + b カーソルを右へ1単語移動 Esc + f カーソルを右へ1単語移動 Ctrl + p historyの1つ前に入力したコマンドを表示 (↑キーでもOK) Ctrl + n historyの1つ後に入力したコマンドを表示 (↓キーでもOK) Ctrl + h カーソルの左1文字を削除 (BackspaceキーでもOK) Ctrl + d カーソルの右1文字を削除 (DeleteキーでもOK) Ctrl + a カー

    bashのキー操作一覧まとめ - 元RX-7乗りの適当な日々
  • bashで変数から部分文字列を取得する - Qiita

    bashで変数から部分文字列を取得する方法まとめ パラメータ展開を利用して部分文字列を取得する オフセットと長さを指定して文字列を取得する #!/bin/bash HOGE="abcdef" # オフセット位置から長さ分を取得 echo ${HOGE:0:2} # -> ab echo ${HOGE:2:2} # -> cd echo ${HOGE:4:2} # -> ef # 長さを省略した場合はオフセットから最後まで出力 echo ${HOGE:2} # -> cdef # 長さにマイナスを指定した場合は最後からマイナス分引いた位置までの長さになる echo ${HOGE:0:-2} # -> abcd # オフセットの位置にマイナスを指定した場合は文法として別のパラメータ展開になる(デフォルト値の指定) # 指定した変数が空文字列の場合は右に指定した文字が入る echo ${HOGE

    bashで変数から部分文字列を取得する - Qiita
    U1and0
    U1and0 2018/05/05
    # オフセット位置から長さ分を取得 echo ${HOGE:0:2}
  • VISUAL vs. EDITOR – what’s the difference?

    Stack Exchange Network Stack Exchange network consists of 183 Q&A communities including Stack Overflow, the largest, most trusted online community for developers to learn, share their knowledge, and build their careers. Visit Stack Exchange

    VISUAL vs. EDITOR – what’s the difference?
    U1and0
    U1and0 2018/05/01
    “The EDITOR editor should be able to work without use of "advanced" terminal functionality (like old ed or ex mode of vi). It was used on teletype terminals. A VISUAL editor could be a full screen editor as vi or emacs.”
  • Bashでコマンドの存在チェックはwhichよりhashの方が良いかも→いやtypeが最強→command -vも - Qiita

    コマンドのパスを知りたいんじゃなく、コマンドの存在をチェックしたいだけならwhichよりhashを使ったほうが良いかもっていう話。→追記: typeが最強っぽい。 追記: command -vも良い。プログラムの存在チェックorパスを探したいだけなら互換性を考えると一番良いかも。 比較してみる whichよりhashよりtype=command -vが高速→typeまたはcommand -vの勝ち whichは実ファイルという実体があるプログラムです。hashとtypeはbashの組み込みコマンドです。なので当然ですがプログラムの起動コストがない分hashやtypeの方が速いです。 $ time bash -c 'for((i=0;i<10000;i++));do which perl; done >/dev/null' real 0m7.739s user 0m2.928s sys 0m

    Bashでコマンドの存在チェックはwhichよりhashの方が良いかも→いやtypeが最強→command -vも - Qiita
    U1and0
    U1and0 2018/05/01
    “whichは実ファイルという実体があるプログラムです。hashとtypeはbashの組み込みコマンドです。なので当然ですがプログラムの起動コストがない分hashやtypeの方が速いです。”
  • 何もしない組み込みコマンド ":" (コロン)の使い道

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

    何もしない組み込みコマンド ":" (コロン)の使い道
    U1and0
    U1and0 2018/04/30
    “${parameter:-word} $parameter が未定義か空の場合、word を展開 $parameter or "word"”
  • シェルスクリプト内でaliasを設定する - Qiita

    シェルスクリプト内でaliasを設定する要因 作成したシェルスクリプトを様々な環境で使用する場合に、aliasをシェルスクリプト内で設定したかった。 bash_profileなどに入れると他の環境で叩いた時に解決出来ないため。 以下、サンプルスクリプト。 #!/bin/bash shopt -s expand_aliases # GNUとBSDのsedでは-iのサフィックス仕様が異なる if sed --version 2>/dev/null | grep -q GNU; then alias sedi='sed -i ' else alias sedi='sed -i "" ' fi sedi -e “s/aaa/bbb/g” test.txt

    シェルスクリプト内でaliasを設定する - Qiita
  • Linuxで入力したコマンドの履歴を消去する方法 - システム構築もできる伝説のプログラマへの道

    Linuxでコマンドを入力していくと、入力したコマンドは、履歴として蓄積されていきます。その履歴は、 $ historyで、それまでに入力したコマンドを表示することができます。 その中で、ある履歴のみ消したいと思うことがないでしょうか。 すべての履歴を消すのであれば、 $ history -cで、一括消去することができます。 でも、消したいのは、人に見られるとまずいと思うコマンドのみ。 そんなときは、これ。 $ history -d 履歴番号historyで、消去したいコマンドの番号を確認し、上記コマンドの書式で実行すると、指定の履歴のみ消去ができます。

    Linuxで入力したコマンドの履歴を消去する方法 - システム構築もできる伝説のプログラマへの道
    U1and0
    U1and0 2018/04/01
    history 一括削除“ history -c”
  • MSYS2 の ホームディレクトリ以下に C:\hoge をマウントしたい

    ###前提・実現したいこと MSYS2 の 独立環境 に cドライブ 以下の任意のフォルダをマウントしたい C:\hoge を ~/hoge (C:\msys64\home\username\hoge) に mount したい ###発生している問題 C:\hoge と ~/hoge (C:\msys64\home\username\hoge) がリンクしない ###試したこと MSYS2 上で $ mkdir ~/hoge ↓ /etc/fstab で下記のように設定 $ cat /etc/fstab # For a description of the file format, see the Users Guide # http://cygwin.com/cygwin-ug-net/using.html#mount-table # DO NOT REMOVE NEXT LINE. I

    MSYS2 の ホームディレクトリ以下に C:\hoge をマウントしたい
    U1and0
    U1and0 2018/03/26
    下記のいずれかを行うことで、MSYS2 から `ln -s`が可能になりました。 * 環境変数 `MSYS=winsymlinks:nativestrict` をセットする * 起動スクリプト(C:¥msys64¥msys2_shell.bat)内のコメントイン → `REM set MSYS=winsymlinks:nativestrict` という行の頭
  • How to change default user in WSL Ubuntu bash on Windows 10

    I installed the WSL Bash on Windows 10 and set my user to e.g. 'abc' but now I want to change it to something else. How can I change the user name of the user I'm logged in as? When I open bash it automatically logs me in with my current user.

    How to change default user in WSL Ubuntu bash on Windows 10
    U1and0
    U1and0 2018/03/07
    “LxRun.exe /setdefaultuser <new_name>” or "ubuntu config --default-user <username>"
  • Windows10 の "Bash on Ubuntu on Windows" で困ったこと - Qiita

    インストール記事はすでに沢山あるので、使用中に困ったことと、インストール直後のカスタマイズに焦点を絞って記事にする。 インストール手順 Qiita上の下記記事が丁寧でわかりやすかった。 http://qiita.com/Aruneko/items/c79810b0b015bebf30bb 要は次の3ステップを実行すれば良い。 1. 開発者モードを有効化する 2. Windows Subsystem for Linux(Beta) を有効化して再起動する 3. コマンドプロンプトを開いて bash と打ち込み、ユーザ名とパスワードを入力する 日語文字化け 上記の bash の打ち込みの後に、ダウンロードとファイル展開が始まるのだが、その時点で画面の日語が激しく文字化けした。途方にくれて管理者コマンドプロンプトから lxrun /uninstall /full で一旦削除し、lxrun /

    Windows10 の "Bash on Ubuntu on Windows" で困ったこと - Qiita
    U1and0
    U1and0 2018/03/07
    [ubuntu[BoW]フォント文字化け
  • Windows 10 Anniversary Update適用してもbash使えるようにするには手順がめんどくさい 2016年08月02日 – y2k – alt

    U1and0
    U1and0 2018/03/07
    [ubuntu[BoW]
  • 第504回 インタラクティブフィルター「fzf」の活用 | gihyo.jp

    前述の通り、fzfは標準入力からリストを受け取り、それをフィルタするのが基です。たとえば以下はfindコマンドでカレントディレクトリ以下にあるディレクトリのリストを出力し、それをfzfでフィルタする例です。 カレントディレクトリにあるディレクトリの一覧を対話的に選択する例 $ find . -maxdepth 1 -type d | fzf fzf上で検索ワードを入力すると、リストから候補を絞り込めます。リストの項目が多い場合は、全体を目視できる程度まで検索で絞り込み、最後にカーソルを使って候補を選択するのが基です。 図1 findコマンドの出力をfzfに渡した状態。ここから検索ワードを入力して絞り込んだり、カーソルで項目を選択する 図2 「⁠mai」と入力してみたところ。Mailディレクトリはもちろんのこと、あいまい検索によりこれらのアルファベットを含む「.thumbnails」ディ

    第504回 インタラクティブフィルター「fzf」の活用 | gihyo.jp
  • msys2 を fish shell にしてみた : (*x).b=z->a+y/c

    ◆ 単純にシェル切り替えても動かない ◆ デフォルトシェルは bash のままで .bashrc の最後に exec fish ◆ bash で初期化処理済ませて fish shell に切り替える 何が良いのかよくわかってないけど便利だとか Linux は zsh にしてて困ってないし設定がめんどそうなのでこのままでいい Windows でたまに使う msys2 はたまにしか使わないので bash のまま放置してました pacman で検索してみるとインストールできるようだったのでインストールしてみました fish と実行すると というプロンプトになって (ユーザ名@ホスト名  です)コマンド打ってると薄く補完候補が出ています zsh ではこうなるプラグイン入れていましたがデフォルトでこんな機能がついてるのはいいですね デフォルトを fish にするmsys2 ではデフォルトシェルを変え

    msys2 を fish shell にしてみた : (*x).b=z->a+y/c
    U1and0
    U1and0 2018/01/22
    iniとかbatファイル書き換えるのめんどい。bashrcだかprofileにexec fish追加してあげればよい
  • おい、peco もいいけど fzf 使えよ - Qiita

    (続編; --expect オプションの酷使について)私の fzf 活用事例 peco 便利ですよね。正直、使い始めてしまうと使わない日はありません。最近の CLI 界隈では選択的インターフェイスやインタラクティブフィルタなどと呼ばれるツールが盛んに開発されています。特に peco は ghq との連携で一躍人気が出た気がします。 ghqを使ったローカルリポジトリの統一的・効率的な管理について こんなやつですね。以下は ghq のリポジトリへのアクセスを簡単にするためにスクリプトです。 # Require Bash 4.0+ peco-src() { local selected selected="$(ghq list --full-path | peco --query="$READLINE_LINE")" if [ -n "$selected" ]; then READLINE_LI

    おい、peco もいいけど fzf 使えよ - Qiita
  • zshやbashでa-zや0-9を連番にする方法

    このドキュメントの内容は、以下の通りです。 はじめに bashの場合 zshの場合 はじめに zshやbashで0,1,2,3,4といった感じで連番を扱う方法を紹介します。 よくやるのは、seqコマンド(FreeBSDならjotとか)を使ったりします。 しかしながら、bashやzshでは外部コマンドに頼らなくてもできます。 bashの場合 $ echo {a..z} a b c d e f g h i j k l m n o p q r s t u v w x y z $ echo {0..9} 0 1 2 3 4 5 6 7 8 9 zshの場合 zshの場合は、bracecclが設定されている必要があります。 $ setopt braceccl $ echo {a-z} a b c d e f g h i j k l m n o p q r s t u v w x y z $ echo