Linux bash shell 將 檔案清空

Linux (於 Bash shell) 要將一個檔案砍掉, 但是因為權限問題, 不能砍, 只能夠清為空, 要怎麼做?

  • 註: echo '' > xxx # 會是 1 byte 的檔案
  • 感謝 Clyde 指點: 那個1 byte是換行字元 echo -n '' > xxx 就可以了~

閱讀全文〈Linux bash shell 將 檔案清空〉

Bash prompt PS1 設定 與 產生器

Linux 使用 Bash shell 可以自訂 prompt 的格式(設定 Shell 的 PS1 變數), 先把自己現在和以前有做過的一些設定列出來~

  • PS1='\u@\h:\w\$ '
  • PS1='\[\u@\h:\e[32m\w\e[0m$ \]'
  • PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
  • PS1='${debian_chroot:+($debian_chroot)}\A/$? \[\033[01;32m\][\u@\h] \[\033[01;34m\]\w \$ \[\033[00m\]'

閱讀全文〈Bash prompt PS1 設定 與 產生器〉

Bash shell 連接 Socket 寫法

想要於 Bash shell 連接 Socket (tcp、udp), 要如何寫?

語法:

  • tcp: /dev/tcp/<hostname>/<port>
  • udp: /dev/udp/<hostname>/<port>
  • 註1: /dev/tcp, /dev/udp 都是不存在的檔案, 需要 Bash 透過 exec 才可執行, 若於其他程式執行, 需要確定他是跑在 Bash shell 才可以用.
  • 註2: PHP 可以參考此篇: PHP shell_exec() 使用 Bash shell 執行

閱讀全文〈Bash shell 連接 Socket 寫法〉

Bash ssh 由歷史資料來自動補齊主機名稱

Bash shell 打 ssh [Tab] * 2, 會列出不少網址, 通常都是 hosts 檔案內 設定的網址, 會秀出蠻多不相關的東西.

此自動補齊的功能, 主要是撈 .bash_history (歷史資料) 來做補齊, 就是 ssh [Tab] * 2, 只會出現之前有連線過的網址, 應該會方便不少.

閱讀全文〈Bash ssh 由歷史資料來自動補齊主機名稱〉