Bash、ターミナル関連の面白いURLまとめ(?)

# この記事について

なんとなく面白いなぁという小ネタや、地味に便利な小ネタの乗ったURLを載せてるURL集~~(になる予定の何か)~~です
利便性とか見やすさとかそんなん全く気にしていないのでご了承ください。
~~一種のブックマークである~~


# 実用的なものたち

## まとめ系

色々とまとめて解説してくださってるところ
[rsooo  --  検索ではあんまり出ないbashの便利技](https://qiita.com/rsooo/items/ef1d036bcc7282a66d7d)

## tips

[sachaos  --  私のCLI仕事術](https://qiita.com/sachaos/items/ed06f09375b2cef55dda)
[m-yamashita  --  初心者向け、「上手い」シェルスクリプトの書き方のメモ](https://qiita.com/m-yamashita/items/889c116b92dc0bf4ea7d)
[simeji  --  ターミナルの作業が捗るかもな小技5つ](https://qiita.com/simeji/items/cae94349a2ae02d3204d)
[c18t  --  シェルでインラインコメントを書く方法](https://qiita.com/c18t/items/95dc159b8c835d81d883)
[yudoufu  --  bash/zshでsourceされたスクリプト内で、ファイル自身の絶対パスをとるシンプルな記法](https://qiita.com/yudoufu/items/48cb6fb71e5b498b2532)

## 配列

配列って、言語によって結構違うからわかりづらいよね...
[b4b4r07  --  bash配列まとめ](https://qiita.com/b4b4r07/items/e56a8e3471fb45df2f59)
[YumaInaura  --  シェル|スペースが含まれる配列要素をループする](https://qiita.com/YumaInaura/items/934fc415a497753995e7)

## ストリーム処理（名前付きパイプ、process置換など）

これも知ってると便利...
[@debug-ito  -- bashでストリームデータ処理](https://qiita.com/debug-ito/items/1bc877d62ec04dfa938a)

[ FreeBSDでbashのプロセス置換を使う時の注意点](http://papiro.hatenablog.jp/entry/2016/02/26/010530)

[ザリガニが見ていた...。  -- 名前付きパイプでプログレスバーを操作する](http://d.hatena.ne.jp/zariganitosh/20130712/named_pipe_progressbar)

## 1文字ずつ入力する

これを使えば、ちょっと昔風な(?)`カタカタカタと1文字ずつ画面に表示されるメッセージ`が簡単に生成できますね
[俺的備忘録  --  bashでファイルから1文字づつ読み込んで処理をさせる](https://orebibou.com/2017/05/bashでファイルから1文字づつ読み込んで処理をさせ/)

## 乱数

`/dev/random`でも十分ランダムですが、そこから加工する
[piroor  --  シェルスクリプトでランダムにあれをやる](https://qiita.com/piroor/items/6300e665bc8ac314211b)

## include

m4が気になりますね
[piroor  --  テキストファイルの中に書いたincloude文をsedで解決する](https://qiita.com/piroor/items/04c38089ca172c8a1d93)

## 並列・直列処理

意外と簡単にできる並行処理、便利だったものすごく...
[nyango  --  シェルスクリプトで単純に並列実行・直列実行を行う](https://qiita.com/nyango/items/7b6b719f248b2ee8d379)

## コーディング規約類

ここら辺は使いやすいものを使えばいいんだと思う
[Google  --  Shell Stype Guide](https://google.github.io/styleguide/shell.xml)
[mashumashu  --  bashコーディング規約](https://qiita.com/mashumashu/items/f5b5ff62fef8af0859c5)
[b4b4r07  --  シェルスクリプトのコーディングルール2014](https://qiita.com/b4b4r07/items/62d56b7de2b9d6844bb5)

## builtinコマンド作成
[satoru_takeuchi  --  bashの組み込みコマンド自作によるスクリプトの高速化](https://qiita.com/satoru_takeuchi/items/7d424fa5ef1e33ace4df)

## tput, エスケープシークエンス系(文字色変更、カーソル移動その他制御）

一応エスケープシークエンス系も載せておくけども`tput`使ったほうが汎用性があるし使いやすい
[pandora2000  --  Shellの出力でカーソルを移動させる](https://qiita.com/pandora2000/items/d37fab15c64bdf6c1481)
[onokatio  --  【シェル芸奥義】tputを使ってみる【エスケープシークエンス】](https://qiita.com/onokatio/items/5d282b72ac5565ae4569)
[tdrk  --  ターミナルの大きさを取得する](https://qiita.com/tdrk/items/e580f2f97b2586a607c0)
`man tput`
`man terminfo`

## Vim関連
vimmerなのにいまだにbashはEmacs仕様（デフォルト）なあなたへ
~~私もだけど~~
[Pseudonym  --  vim色に染まれ. 機能紹介のついでにbashをvi仕様に](https://qiita.com/Pseudonym/items/2cb442ff257a2f9f9d70)

## オプション解析

自分は自己解析してしまう派です...`getops`使いづらい的なことを聞いていたし、単純なオプションしかないので...
[b4b4r07  --  bashによるオプション解析](https://qiita.com/b4b4r07/items/dcd6be0bb9c9185475bb)

## 変数展開

これを覚えるとめっちゃ便利...ちなみに以下のリンクに書かれている以上にも様々あるので調べてみると良いぞ。
[yumetodo  --  sedなんか投げ捨てて変数展開で高速に文字列を置換しよう](https://qiita.com/yumetodo/items/3665e343c8063f56ab6a)
[koara-local  --  bashで変数から部分文字列を取得する](https://qiita.com/koara-local/items/04d3efd1031ea62d8db5)
`man bash`

## 式展開

[akinomyoga  -- Bash $((算術式))のすべて - A 基本編](https://qiita.com/akinomyoga/items/9761031c551d43307374)

## Exit code

戻り値ってつい1と0にしたくなりません...??
自分はこれにしました
[Linda_pp](https://qiita.com/Linda_pp/items/1104d2d9a263b60e104b)
[ Advanced Bash-Scripting Guide: Appendix E. Exit Codes With Special Meanings
](http://tldp.org/LDP/abs/html/exitcodes.html)
`/usr/include/sysexits.h`

## バイナリ

ちなみに自分は、バイナリは`vim + xxd`で読み書きする派です()
[richmikan@github  --  シェルスクリプトはバイナリを扱えない。さてどうしよう……](https://qiita.com/richmikan@github/items/6b763519a28b4ce40031)
[akinomyoga  --  Bash/Zshスクリプトならバイナリを扱える。さて何をしよう……](https://qiita.com/akinomyoga/items/215faa630508ffc6e6e0)



# Terminalカスタマイズ

Let's customize the Terminal!
[gekkoukisi  --  bashの「command not found」をカスタムする](https://qiita.com/gekkoukisi/items/9bf6c0d1a6cbd0bda210)
[b4b4r07  --  さいつよのターミナル環境を構築しよう](https://qiita.com/b4b4r07/items/09815eda8ef72e0b472e)

## PS{1-4} プロンプト関連

PlaySta*ionではないですよ
[kawaz  --  PS4の設定でシェルスクリプトのデバッグが捗る](https://qiita.com/kawaz/items/65cdbeaa739c4e6b7776)
[amidaku  --  Bashのプロンプト変更](https://qiita.com/amidaku/items/841d62335a03792424d5)
[key-amb  --  Bashで PROMPT_COMMANDを使わずにPS1を動的に変更](https://qiita.com/key-amb/items/de671b42e90a87146bed)


# ネタ系


## 便利系

なんかもうなんてカテゴライズして良いのかがわからなくなってきたよ
[nyango  --  シェル上で🍣🍣（Unicode絵文字）を表示させる](https://qiita.com/nyango/items/671a14ae2834c045fe27)
## ユーティリティ作成

[richmikan@github  --  シェルスクリプトでメール送信、「さよならnkf」編](https://qiita.com/richmikan@github/items/0aea653765e485e16945)
[trkbt10  --  ShellScriptで作るウェブサーバー](https://qiita.com/trkbt10/items/0faf7a3e48d22c650abc)

## 完全ネタ系

aptとかね
[Hiroki_lzh  --  仕事の役には立たない、Linuxにおけるジョークプログラムの話](https://qiita.com/Hiroki_lzh/items/8cf206d54f91e29b3912)
[kkk627  --  いろんなX11アプリケーション](https://qiita.com/kkk627/items/42e6280a02338fa62700)
[cympfh  --  AtCoderに登録したらとくべき精選過去問10問をbashで解いてみた](https://qiita.com/cympfh/items/b860ecb5f5415b15f3c9)




---


### 書き終えた感想

いや書くってほどのことしてないんだけどね。
~~Safariの開きすぎたタブの整理をしたかったので...~~
...カテゴライズが難しいのと、コメントがんばっt(
この他にも、`git`やその他便利ツールたちに関するリンクも色々あるのですがいつか足します...
もしくは僕の[いいねした投稿](https://qiita.com/Cj-bc/like)見に行くと面白いのあるかもしれません。
他の人が`いいね`したのって地味に掘り出し物がありそうな気がしている。

今後も不定期更新をしようと思っています。
新しいリンクだとか、何かありましたらぜひコメントください！
リンク集好きなので()