
Bash 程式設計教學:平行執行背景子行程,用 wait 等待工作結束
本篇介紹在 Bash shell 中如何使用 wait 等待背景子行程的執行,並取回每個行程執行結果。 在 shell 程式設計中,為了讓程式執行起來更有效率,有時會讓多個子行程(subprocess)以 spawn 的方式放在背景執行,平行處理多項不同的工作,通常將需要等待硬碟 I/O 或網路回應的工作放在背景,可以程式執行的速度加快很多。 ...

本篇介紹在 Bash shell 中如何使用 wait 等待背景子行程的執行,並取回每個行程執行結果。 在 shell 程式設計中,為了讓程式執行起來更有效率,有時會讓多個子行程(subprocess)以 spawn 的方式放在背景執行,平行處理多項不同的工作,通常將需要等待硬碟 I/O 或網路回應的工作放在背景,可以程式執行的速度加快很多。 ...

這裡介紹如何在 CentOS Linux 7 中安裝 MySQL/MariaDB 資料庫。 MySQL 資料庫分家之後,社群版本變成 MariaDB,不過目前大部分的指令都沒有變。以下我以 CentOS Linux 內建的 MariaDB 套件示範 CentOS Linux 安裝與設定 MySQL/MariaDB 資料庫的過程。 ...

這裡整理了一些常用的 Docker 指令操作方式,包含容器的啟動、停止、監看、檔案複製與目錄掛載等。 啟動 Docker 容器 docker run 可以用來啟動 Docker 虛擬容器環境: ...

這裡介紹如何使用 ssh-agent 管理 SSH 登入認證用的金鑰,免除登入遠端伺服器要重複輸入密碼的麻煩。 資深的 Linux 伺服器的管理者最常使用的管理介面應該就是 SSH 安全加密的連線,而比較注重系統安全防護的人,甚至還會將 SSH 的密碼認證關掉,只留下 SSH 金鑰認證來登入,若沒有金鑰,連管理者自己也進不了系統,讓系統更安全。 ...

這裡介紹在 CentOS Linux 7 之下自己載 gcc 6 編譯器原始碼、編譯與安裝的過程。 gcc 是 Linux 系統上最常被使用的編譯器,而 CentOS Linux 7.2 中的 gcc 版本比較舊: gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper Target: x86_64-redhat-linux Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux Thread model: posix gcc version 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC) 如果想要使用比較新的功能,就會有問題。以下是自己下載 gcc 6.3.0 原始碼來編譯與安裝的過程。 ...