タグ

bashに関するhirafooのブックマーク (10)

  • Bashのよくある間違い | Yakst

    原文は2015年8月22日時点のものを利用しており、それ以降に追記、更新されている可能性があります。 翻訳は原作者の許可を得て公開されています。 Thanks for GreyCat! このページはBashプログラマーが陥りがちなよくあるエラーについてまとめました。以下の例は全てなんらかの欠陥があります。 クオートをいつも使い、どんな理由があっても単語分割を使わなければ、多くの落とし穴からあなた自身を守ることができます!単語分割はクオート表現をしない場合にはデフォルトでオンになっている、Bourneシェルから継承された壊れたレガシーな設計ミスです。落とし穴の大半はクオートされていない展開になんらか関連し、単語分割しその結果をグロブします。 1. for i in $(ls *.mp3) BASHプログラマーたちがループを書く際にもっとも犯しがちなよくあるミスは以下のような感じです。: f

    Bashのよくある間違い | Yakst
    hirafoo
    hirafoo 2019/03/12
  • シェルのワンライナーの再利用性を高めるたった一つの方法 | Webシステム開発/教育ソリューションのタイムインターメディア

    問題 シェルはお友達です。 一見すると役に立たないように思えるコマンドでも、 組み合わせ次第で複雑な処理をこなすための道具になります。 例えば head – ファイルの先頭10行を出力する。cut – ファイルの各行のうち特定の部分を選んで出力する。shasum – SHA-1 ハッシュ値を出力する。 という、一つ一つでは大して役に立ちそうにないコマンドも、 このように組み合わせることで「ランダムなパスワードを自動生成する」という偉業を達成することができます。 シェルをある程度使っていると上記のようなワンライナーをしばしば入力することがあります。 覚え易いものや短いワンライナーなら即席で入力しても構わないのですが、 先ほどの例のようなものになると少々入力するのが面倒です。 そこで役に立つのがコマンドラインの入力履歴です。 入力履歴があれば、例えば 三か月前に試行錯誤の末に編み出した git

    シェルのワンライナーの再利用性を高めるたった一つの方法 | Webシステム開発/教育ソリューションのタイムインターメディア
  • bashにて複数端末間でコマンド履歴(history)を共有する方法 (iandeth.)

    Tera Term 等の端末を複数同時に立ち上げて作業したり、screenにて複数の仮想端末を同時並行で操作する際、コマンド実行履歴が端末間で共有できなくて困る事が多々あります。「さっきのfindコマンドをもう一度... 引数どう書くんだっけなぁ... あ、確かコマンド履歴にあったはずだなぁ... ちっ、それはあっちの端末の履歴だったか」みたいな。zshには端末間のコマンド履歴を常に同期できる'SHARE_HISTORY' なるオプション(*1)があって素敵なのですが、同じことを bash で実現する方法を調べたのでご紹介。 (*1) zshの同機能について詳しくはITmedia記事 "豪傑の三種の神器【後編】" を参照の事 不具合) 通常設定のbashで困る事 1. 複数端末間でコマンド履歴の共有ができない 同時に立ち上げている端末間で履歴の共有ができなくて不便に感じることがある。 2.

  • bashをzshに負けないぐらい高機能化するためのtips - 計算機と戯れる日々

    はっきり言って先方予測と複数行編集は無理。だけど代替手段がありそうだ。 ということで、bashでどこまでzshに近づけるかチャレンジしてみる。 使用環境は環境はubuntu8.10 以下を.bashrcに追加 if [ -f /etc/bash_completion ]; then . /etc/bash_completion fi function share_history { history -a; history -c; history -r; } PROMPT_COMMAND='share_history' shopt -u histappend export HISTTIMEFORMAT="%y/%m/%d %H:%M:%S: " export HISTSIZE=300000 function fceditor () { tt=/tmp/$$.sh; cat $1 | ( re

    bashをzshに負けないぐらい高機能化するためのtips - 計算機と戯れる日々
  • bash-completion

    zshの補完は魅力でもbashを捨てられないという人も多いだろう。自分もそのひとり。その悩みを解決してくれるのが、bash-completionである。例えば、manの引数にコマンド名を補完しようとしても[Tab]では補完されない(コマンド名補完は[Alt-!]で可能だが)といった経験があると思う。bash-completionはそのコマンドの文法(オプション)に合わせて補完してくれるので[Tab]を叩いていればよい。ただし、manの場合は存在するコマンドから補完するのでなく、manが存在するコマンド名を補完しようとするみたいなので、初回はその検索に時間を多少要する。それが、rpm や yum のパッケージ名になるとDBが大きいので顕著になるので注意。キャッシュに残っていれば速いがそうでない場合は、"rpm -qa"とかをしているのと同じスピードになってしまうので。次にtarコマンドの

    hirafoo
    hirafoo 2009/08/06
  • .vimrcをさらしたついでに.bashrcも - ここにタイトルを入力|

    ついでなんでさらしてみた。 bashrc # .bashrc # User specific aliases and functions # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi if [ -f ~/.bash_aliases ]; then . ~/.bash_aliases fi export PATH="/usr/local/bin:${PATH}" export PATH="/usr/share/colorgcc/:${PATH}" export PATH="${HOME}/bin:${PATH}" export PATH="/usr/lib/ccache/bin/:${PATH}" #export PATH="/usr/local/texlive/bin/:${PATH}" #

    .vimrcをさらしたついでに.bashrcも - ここにタイトルを入力|
    hirafoo
    hirafoo 2009/07/18
  • bashrc/vimrc再び。 - ここにタイトルを入力|

    .bashrcはじめ設定ファイルのたぐいはちょくちょく書き加えるので少しずつカオスになっていく。 ということで、整理しつつ、いくつかtips的なアレコレをまとめてみた。 .bashrc編 まずは.bashrcから 環境変数をいじる糖衣function in .bashrc .bashrcを見てみるとやたら目に付くのが"export HOGEHOGE=hoge:${HOGEHOGE}"という記述。 単に環境変数を拡張しているだけなのだが、何を追加しているのか分かりづらいし、なにより環境変数が空だったときに余分な":"がつくのが嫌い。 ということで書いてみたのがこんな。 function AddPathPre() { if [ -z "${!1}" ]; then eval "export ${1}=${2}" else eval "export ${1}=${2}:\${${1}}" fi

    bashrc/vimrc再び。 - ここにタイトルを入力|
  • Free Dynamic DNS(DDNS) by POP3,IMAP4,FTP,HTTP-BASIC for Home Server, VPS | MyDNS.JP

    aerith.mydns.jp is not accessible... Sorry. I do not know why this site is not working. If you know Administrator of this site, please contact directly. You may be able to see it in Google cache. For administrator ... MyDNS.JP did not received IP address from you over One week. Please check your notify system. If you restart notification of IP address, MyDNS.JP will apply your IP address to DNS in

  • bash のプロンプトを変更した - ドレッシングのような

    bash のプロンプトを次のように変更し、カレントディレクトリをプロンプト行に右寄せで表示するようにしてみた。これでプロンプトがバカみたいに長くならない。さらに、左側に時刻 (date +%H:%M:HS) とコマンド番号 (\#) を出してみた。コマンド番号は、ヒストリ番号 (\H) と迷った。どっちが良いのかは今はよく分かっていない。 WORKING_DIRECTORY='\[\e[$[COLUMNS-$(echo -n " (\w)" | wc -c)]C\e[1;35m(\w)\e[0m\e[$[COLUMNS]D\]' PS1=${WORKING_DIRECTORY}'${debian_chroot:+($debian_chroot)}\[\e[0;33m\][$(date +%H:%M:%S)#\#]\[\e[1;32m\]\u@\h\[\e[00m\]\$ ' (2009-0

    hirafoo
    hirafoo 2009/07/16
  • Bash Prompt HOWTO: BashとBashのプロンプト

    次のページ 前のページ 目次へ 2. BashとBashのプロンプト 2.1 Bashとは Bourne Shell の流れをくむ Bash は、GNU で開発されており、 Bourne Again SHell から名付けられています。 多くの Linux では標準のコマンドライン・インターフェースになっています。 対話性や、コマンドラインの編集、補完、履歴といった機能に卓越しています。 プロンプトを設定変更できることは多くの人が知っていますが、 どこまでのことができるかはあまり知られていません。 2.2 Bash プロンプトをいじるとよいことがあるのですか? 多くの Linux のデフォルトのプロンプトは、1色(通常グレイ)で、ユーザー名、 マシン名、現在のディレクトリを示すものになっています。これは役に立つ 情報です。でもプロンプトはもっと多くのことを示せます。どんな情報でも 示す

    hirafoo
    hirafoo 2009/07/08
  • 1