ってやってしまった。 ぎゃぁぁあああああああーーーーーーーー!!!!!!!! と叫んでも遅し、、、処理が走ってしまい止められなくなってしまいました。 処理の途中に 「公開鍵を上書きするかどうか?」とか出てきて、 n として回避した後、今は無くなっているレポジトリから git clone しようとしたところで、アカウント確認のために処理が止まり、そこで、 Ctrl + c で強制終了できました。 解説 source コマンドは、ファイルに書かれたコマンドを現在のシェルで実行するコマンドです よって、私がミスして実行してしまった処理の内容は、 .zsh_history にファイルに書かれたコマンドが1行ずつ実行する。という内容になります。 .zsh_history には私が過去に打ったコマンドがすべて記録されているため、つまり、それらのコマンドが順に実行されていくということになってしまいます。
fishはフル装備のコマンドラインシェル(bashやzsh同様)で、賢くユーザフレンドリーです。 fishは シンタックスハイライト 、 オートサジェスチョン 、知識ゼロ・設定ゼロでそのまま動作する TAB補完 をサポートしています。 もし、コマンドラインをもっと生産的に、便利に、楽しい(難解な文法や設定オプションを学ぶことなく)環境にしたいならば、fishはあなたの求めていたシェルかもしれません! このチュートリアルはコマンドラインシェルやUnixコマンドの知識があり、fishがインストールされていることを前提とします。 もし、他のシェルについての深い理解があり、fishとの相異点を知りたいならば、 「 他のシェルと違って 」 という魔法の語句を検索してください。 それは重要な相異点を表してます。 fishを立ち上げると、このように表示されます。 Welcome to fish, the
2019年4月15日: fisher version 3.2.8にアップデートしました。これに伴い、もともと記事内で記載していた fisher install コマンドを 、fisher add に変更しました ずっとbashを使っていました。zsh、興味はありましたが、プラグインのための設定を書くのがなんとなく大変そうだという理由で、敬遠していました。そこに fish shell (以下 fish) が手を差し伸べてくれたのです。結論から書くと、bash と同程度の設定ファイルの記述量で、ディレクトリ間の移動やコマンド履歴の呼び出しといった利便性は飛躍的に向上しました。そして見た目が良い。入れて損はありません。 想定読者 Mac で bash を使っている方。 バージョン情報 ソフトウェア バージョン どこまでやるか このたぐいの作業、はじめるとキリがありません。調べるうちにさらに便利な
tl;dr よく使われるコマンドの一つに cd コマンドがあります。ターミナル生活の 80% 近くは cd と ls である、という英文記事を何処かで見かけました。それを効率化しようという Tips です。 目的 cd はよく使われるのに使い勝手が悪いコマンドである気がしてなりません。cd コマンドは有効なパス(相対パス、絶対パスは問わず)しか解釈してくれないからです。つまり、存在していて尚且つパスが解決できるものに限るのです。例えば、ホームディレクトリにいるときに、/home/lisa/work/dir に行こうとして cd dir とだけタイプしても no such file or directory (そんなディレクトリは見当たらないよ!)と言われてしまいます。きちんとした経路でなければならないのです。いちいちパスを覚えていない場合や、部分的にしか思い出せない場合には結構面倒ですよね
bash とか zsh とかで Ctrl-R で発動するアレ。Ctrl-R に続いて過去に実行したコマンドのどこか一部を適当にタイプすると一致するものを探してきてくれる。便利。 ポイントは部分一致なところ。よくあるのは「コマンドじゃなくて、それに続くパラメータの方がユニークなので、そちらで探す方が効率が良い」みたいなパターン。たとえば、こんな感じの履歴があるとしよう。 $ curl 'http://api.example.com/users?q=foobar' -X GET -H 'Accept: application/json' | jq ".users[] | .name" ここで困ったことに curl で始まる履歴はこれ以外にも山ほどある。^Rcurl とタイプしても似たようなものがいろいろ出てきて絞りきれない。探したいのは curl に渡したパラメーターに foobar というキ
とうとうこの時がやってきましたね。 fish 3.0がリリースされました!! すごい。いいぞ。 fish 2.0がリリースされたのが2013年とからしいので、実に5年ぶりのメジャーアップグレードとなります。 fishってなによ the friendly interactive shell です。 カスタマイズなしで高機能な補完が効くなど、とにかくユーザーに優しく便利なシェルです。 とりあえず試す 以下よりどうぞ。 GitHub: https://github.com/fish-shell/fish-shell Ubuntuであれば以下のコマンドでインストールできます。 sudo apt-add-repository ppa:fish-shell/release-3 sudo apt-get update sudo apt-get install fish 注目の変更点など waitコマンド
Fishermanは名前を変更しFisherとなったため、それにともない内容を修正しました。 Yaourtはすでに開発が終了しているため、Yayを使うよう修正しました。 Fisherのインストール方法やコマンド体系の情報が古くなっています。プラグイン紹介以下もすべて修正する必要があるため、修正していません。FisherのREADMEを参考にしてください。 「fishいいよ」みたいな話は何度かちらっと聞いていたんですけど、ちょっと調べてみたところPOSIX非互換ということで、あまり興味を持てずにいました。 しかし最近Twitterで勧められて試しに使ってみたところ、すごく良かったので導入方法とかおすすめプラグインとか紹介してみたいと思います。 僕も入門したところなので、あんまり詳しくはないですけど。 似たような内容ですが、目的を絞った記事も書いたので興味があれば読んでみてください。 こっちの
デフォルト の設定が貧弱→fishならば 無設定で便利機能満載 シェルスクリプト が苦手→fishスクリプトならば シンプル でわかりやすい 無駄に 多機能 で覚えきれない→fishは必要な機能を 厳選 している マニュアルが わかりづらい →fishのマニュアルは 具体例満載 でわかりやすい 設定ファイル を書くのが面倒→fishならば Webブラウザ で設定できる! 補完設定 を書くのが面倒→fishならばmanページを解析して 自動で 補完設定をしてくれる シングルクォート 中にシングルクォートを書けない→fishならば \’ と書ける 関数や環境変数を保存 するのに設定ファイルの書換えが面倒→fishならばその場で 永続化 できる 和訳 マニュアルがない→fishの 最新版公式文書を全訳済 他にもこんな便利機能があります。 Webブラウザのような Auto suggestion ま
これはだいぶ前に書いたエントリです。MINCS作者による最新の解説があるのでそちらもご覧ください。 (2016-11-21追記) コンテナは使いたいけど、たくさんコンテナを起動すると結局それぞれのコンテナに対するセキュリティアップデートなどのメンテナンスは必要だし、コンテナ内独自のプログラムやライブラリ以外はホストと共有したいよね、って話が出てきたりします。みんな考えることは同じで、bind mount を使えば良いよね、って話はでてきてました。 こないだもブログで紹介した kazuho さんの jailing 私が LXC でも結構簡単にできるよ、っていう提案を兼ねて作った lxc-bind こないだのLinuxConでもDockerでたくさんのオプションを並べて、色々工夫して bind mount を使ってやってる発表もありました (Using Docker for existing
以前にSheetというスニペットツールを利用すると大変便利と書いた。 CUIなスニペットツールsheetが便利なのでzshでsheetファイルを補完 - Glide Note - グライドノート で、障害対応で使うコマンドとかよく忘れるコマンドを大量に登録してて、毎日使ってて重宝してるんですが、スニペットが 増えると管理が破綻する問題があって、pecoやpercolを使えば解決出来そうと思ってやってみた。 仕組み snippets用のファイル or sheetのスニペットファイルをpeco/percolで絞りこんで、クリップボードに送ったりして簡単に利用できるようにする よく使うコマンドのスニペットファイルを用意 sheetの資産をそのまま利用も出来るんですが、今回は下記のような感じでファイルを~/.snippetsで用意。私が使ってるやつから一部抜粋。 1 2 3 4 5 6 7 8 9
概要 Emacs を利用していると全部 Emacs でやりたくなるのは Emacs 使いとして当然だと思います。 Shell だって Terminal など利用せず Emacs 上で動作させたくなることでしょう。 この文書では Emacs 上で Shell を快適に利用するための設定を記述していきます。 目次 概要 検証環境 Emacs での Shell Mode に関する基礎知識 shell term (ansi-term) eshell どのモードを利用するか 利用する Shell について Windows での Shell の準備 Mac OS X での Shell の準備 Emacs 側の設定 PATH の設定 利用する Shell の設定 文字コードの設定 システムの terminfo を利用しない設定 エスケープを綺麗に表示する term 呼び出しキーの割り当て Shell 側
test(1)を使ってあるファイルがシンボリックリンクか否か判定しようと思い、Linuxのjmanを見てみた。該当するオプションは-hと-Lのようだ。 -hと-L、どちらを使うべきかについてはjmanには書いてなかった。ということはどちらを使っても問題なさそうな気がするけど、かえってどちらを使おうか迷ってしまう。 同じ機能が割り当てられているオプションが2つ存在することには、何か歴史的経緯が絡んでいる気がする。多分、過去との互換性とか、そんなものだ。 ネットでSlackware 3.1(1996/07)のmanを見つけたのだけど、この頃は-Lの記述しかなく、-hは書かれていない。ちなみに、厳密にはGNU Shell Utilitiesのmanのようだ。 他の古いLinuxディストリビューションのmanも見てみた。Red Hat Linuxは7.3の頃まで-Lのみで、8.0以降で-hと-Lの
こんな表示が出て、Terminal.app が起動しなくなった。 ターミナルが起動しないと仕事にならんぞ….。原因は、昨日 macports で zsh-devel をインストールし、それをデフォルトシェルにしたことしか考えられない。 設定した直後は動作していたが、ログアウト/ログインをしてから起動しなくなった。 X11の Terminal からは起動できることを確認。 とりあえず、エラー文「このアプリケーションの実行が認証されていません。」でぐぐってみた結果、数少ない情報を探せた。 http://wiki.hadai.net/?MacOSXTips ここに答えが! どうやら、 /etc/shells という設定ファイルがあって、そこに macports の zsh のPATHを書き加えれば良いらしい。 # List of acceptable shells for chpass(1).
% /bin/ls -laF /var/log ⏎ -rw-r--r-- 1 neko nyaan 117649 Feb 22 2022 azumakuniyuki % /bin/cat /var/log/azumakuniyuki ⏎ まだブログの練習中(´∇`) 去年Perl Shell(psh)というものを見つけて、今度試してみようと思ったまま時間が過ぎて、八十八夜も過ぎてしまったので、思い出したようにPerl Shellを試してみました。 いつも使っているtcshやBourneシェルとはかなり違った文化な感じで、とりあえず入れて少し触ってみた、という程度の内容です。 Perl Shellのインストール cpanmでもインストールできるのですが、最初にそれで入れたpshは動作がおかしかったので、githubからソースを持ってきて、必要なモジュールを入れてからmake
成金クソ眼鏡prn野郎に嫌気がさした僕は、家のメインマシンのOSをubuntuにしてしまったわけです。 で、なんかサーバ入ったりして作業する際、windows環境だとteratermとかputtyとかってターミナルソフトが必要なんですが、僕はサーバのログを見ながらとか別のサーバの設定を参考にしながら作業とかって状況が多かったので、ウィンドウ分割と多タブ(複数シェル)管理の楽なpoderosaを使っていたのですが、ubuntuだとそういうことの出来るものはscreenしか知らなかったので、そのままscreenを使うことにしました。 が、これがまたとんでもなく使いにくい。使いにくいというか、設定の仕方がまったく分かりません。screenの売りの1つはコマンドで多タブ表示やウィンドウ分割が出来るところなのですが、キーバインドを変更しようにもどうやったら変更出来るのかがman screenみてもい
Bashでバックグラウンドで起動したアプリの戻り値の取得 - Linux Square 検索すればすぐ見つかるんじゃないのかと思ったが意外にも出てこない。あまり知られていない機能なので仕方がないかも。 で、どうやればよいかというと、こうする。 foo 1 & foo1pid=$! foo 2 & foo2pid=$! foo 3 & foo3pid=$! wait $foo1pid echo $? wait $foo2pid echo $? wait $foo3pid echo $? 変数 $! には最後に起動した非同期リスト (バックグラウンドプロセス) のプロセス ID が入っている。これは別の非同期リストを起動すると上書きされてしまうので、非同期リストを一つ起動するたびに個別の変数に保存しておく。 非同期リストの終了ステータス (戻り値) を得るには、保存しておいたプロセス ID を
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く