curl
tidak tersediaMakefile
db
untuk Utilitas Basis Data & db top
db
lainnyadb
db connections
Sub-Perintahdb pga
(mis. pg_activity
)bin/tablet
bin/specs
yang disediakanbin/spec -P
Makefile
Makefile
Lencana | Pemindaian FOSSA | |
---|---|---|
FOSSSA | ||
Tes CI | ||
Instal CI | ||
Periksa Shell | ||
Gitter |
|
Bashmatic® adalah kerangka kerja BASH, artinya kumpulan fungsi BASH (hampir 900 di antaranya) yang, kami harap, membuat pemrograman BASH lebih mudah, lebih menyenangkan, dan yang lebih penting, menyenangkan - karena fokus perpustakaan dalam menyediakan pengembang dengan a umpan balik konstan tentang apa yang terjadi, sementara skrip yang menggunakan pembantu Bashmatic sedang berjalan.
Tip | Kami menyarankan Anda mempelajari Bashmatic dari versi PDF dokumen ini yang jauh lebih baik untuk dicetak.
|
Setelah Anda menginstal perpustakaan (lokasi defaultnya adalah ~/.bashmatic
), sadari bahwa Anda memiliki pilihan:
Secara otomatis mencari perpustakaan (dan semua 900+ fungsi) dari 'dotfiles' shell Anda seperti ~/.bash_profile
dengan menambahkan baris ini: source ~/.bashmatic/init.sh
. Pada laptop Apple M1 terbaru, ini menambahkan total sekitar 100ms.
ATAU, dapat melewatinya selama inisialisasi login Anda , dan hanya memuatnya di bagian atas skrip yang menggunakan perpustakaan.
Peringatan | Kedua pendekatan tersebut benar-benar valid dan memiliki pro dan kontra. Memuat bashmatic di dotfiles Anda bisa jadi sedikit berisiko. Dengan satu atau lain cara, kami akan segera memberikan cara untuk memverifikasi bahwa bashmatic yang Anda unduh adalah versi yang aman dan benar, setiap saat. |
Apa yang akan kami katakan mengenai masalah ini adalah kami mengelola optimalisasi sumber perpustakaan. Berikut ini contohnya:
Gaya pemrograman Bashmatic® sangat dipengaruhi oleh bahasa DSL Ruby. Jika Anda melihat sekilas skrip is.sh, skrip ini mendefinisikan sekumpulan fungsi DSL yang dapat dihubungkan dengan &&
dan ||
untuk membuat kode yang ringkas dan mendokumentasikan diri seperti ini:
[panah melingkari ke bawah]
# An example of a DSL-like function
function bashmatic.auto-update() {
local dir= " ${1 :- " ${BASHMATIC_HOME " }} "
is.a-directory " ${dir} " && {
file.exists-and-newer-than " ${dir} /.last-update " 30 && return 0
(
cd ${BASHMATIC_HOME} &&
git.is-it-time-to-update &&
git.sync-remote
)
}
}
# check if the function is defined and call it
is.a-function.invoke bashmatic.auto-update " $@ "
Untuk menggunakannya dalam skrip Anda sendiri, Anda sebaiknya mempelajari terlebih dahulu Contoh yang disediakan di bawah, dan memanfaatkan setiap modul yang tersedia di bawah lib
.
Catatan terakhir, - setelah Bashmatic diinstal dan dimuat oleh file init shell Anda, Anda dapat mengetik is.<tab><tab>
untuk melihat fungsi apa yang tersedia untuk Anda yang dimulai dengan is
. Setiap modul di bawah lib
biasanya mendefinisikan fungsi publik yang dimulai dengan nama file. Misalnya, fungsi dalam array.sh
biasanya dimulai dengan array.<something>.<action>
Bashmatic® menawarkan sejumlah besar fungsi pembantu yang terus berkembang untuk menjalankan perintah, mencoba ulang secara otomatis, berulang, kerangka kerja eksekusi yang mengukur waktu proses dengan fungsi utama run
. Ada bantuan untuk setiap kesempatan, mulai dari menggambar kotak, garis, header, hingga menampilkan bilah kemajuan, mendapatkan masukan pengguna, menginstal paket, dan banyak lagi.
Catatan | Sebagian besar pembantu dalam Bashmatic® ditulis untuk OS-X, meskipun banyak fungsi berguna juga dapat berfungsi di linux. Seluruh rangkaian pengujian kami berjalan di Ubuntu. Ada upaya yang sedang dilakukan untuk mengubah fungsi khusus Homebrew menjadi pembantu netral OS seperti package.install yang akan bekerja dengan baik di linux. |
Mulailah menjelajahi Bashmatic® di bawah ini dengan bagian contoh kami. Jika Anda sudah siap, seluruh rangkaian fungsi kemaluan (hampir 500 di antaranya) dapat ditemukan di halaman indeks fungsi.
Dan yang terakhir, jangan khawatir, Bashmatic® sepenuhnya open source dan gratis untuk digunakan dan diperluas. Kami hanya menyukai tampilannya dengan sedikit ® :)
BASH versi 4+
BASH versi 3 (kompatibilitas sebagian, beberapa fungsi dinonaktifkan)
ZSH – pada pembaruan terkini, Bashmatic hampir 90% kompatibel dengan ZSH.
Saat ini Tidak Didukung
FISH (walaupun Anda bisa menggunakan Bashmatic melalui bin/bashmatic
script helper, atau executable-nya)
Proyek ini lahir dari realisasi sederhana yang dilakukan oleh beberapa insinyur yang sangat senior dan berpengalaman, bahwa:
Seringkali lebih mudah menggunakan BASH untuk menulis hal-hal seperti penginstal universal, alias skrip pengaturan , pengunggah , pembungkus untuk semua jenis fungsi, seperti NPM , rbenv , memasang permata, rubi, menggunakan AWS, menerapkan kode, dll.
Nilai kembalian fungsi BASH cocok untuk DSL kompak (bahasa khusus domain) di mana beberapa fungsi dapat dirangkai dengan logika AND &&
dan OR ||
untuk memberikan logika eksekusi yang sangat kompak. Yang terpenting, menurut kami logika ini sangat mudah dibaca dan dipahami.
Terlepas dari poin-poin di atas, secara umum juga diterima bahwa:
Banyak skrip BASH yang ditulis dengan sangat buruk dan sulit dibaca dan dipahami.
Seringkali sulit untuk memahami apa yang terjadi ketika skrip sedang berjalan, karena skrip tersebut tidak mengeluarkan sesuatu yang berguna, ATAU mengeluarkan terlalu banyak keluaran.
Ketika kesalahan BASH terjadi, hal-hal buruk biasanya terjadi dan seseorang memutuskan bahwa mereka harus menulis ulang skrip BASH 20 baris dalam C++ atau Go, karena, ya, itu adalah skrip BASH sialan dan tidak berfungsi.
Tip | Tujuan Bashmatic adalah membuat pemrograman BASH menyenangkan, konsisten, dan memberikan banyak keluaran yang terlihat kepada pengguna sehingga tidak ada misteri mengenai apa yang sedang terjadi. |
Mungkin cara termudah untuk menginstal Bashmatic® adalah menggunakan curl
seperti yang ditunjukkan di bawah ini.
Pertama, pastikan Anda telah menginstal Curl, jalankan which curl
yang ingin dilihat. Kemudian salin/tempel perintah ini ke Terminal Anda.
[panah ke bawah]
bash -c " $( curl -fsSL https://bashmatic.re1.re ) ; bashmatic-install -q "
[panah ke atas]
Di mana:
-q berarti "tenang";
-v untuk "bertele-tele"
Tip | URL https://bashmatic.re1.re dialihkan ke HEAD skrip bin/bashmatic-install di Github Bashmatic Repo. Kami menggunakan URL ini agar kami tetap dapat mengalihkan instalasi ke skrip lain di masa mendatang, jika diperlukan. |
Jika Anda lebih memilih untuk memeriksa skrip sebelum mengeksekusi kode yang disalurkan langsung dari Internet, saya tidak menyalahkan Anda. Anda berhati-hati dan cerdas.
Untuk orang seperti Anda, berikut cara yang sedikit lebih aman untuk melakukan hal yang sama:
export script= " /tmp/install "
curl -fsSL https://bashmatic.re1.re > /tmp/install
chmod 755 /tmp/install
# At this point you can examine /tmp/install
/tmp/install --help
/tmp/install --verbose --debug # install with extra info
Metode ini memungkinkan Anda memeriksa skrip /tmp/install
sebelum menjalankannya.
Di bawah ini beberapa penjelasannya
Anda dapat memasang cabang atau tag Bashmatic dengan meneruskan tanda -b / --git-branch <tag|branch>
.
Anda dapat meneruskan tanda ke fungsi bashmatic-install
untuk mengontrol bagaimana, di mana Bashmatic diinstal, dan dari mana Bashmatic diunduh, termasuk:
-v
atau --verbose
untuk menampilkan keluaran tambahan, atau sebaliknya:
-d
atau --debug
akan mencetak keluaran debugging tambahan
-f
atau --force
akan mengganti folder bashmatic yang ada dengan yang baru
-q
atau --quiet
tanpa keluaran
-l
atau --skip-on-login
untuk TIDAK memasang hook yang memuat Bashmatic saat login.
Jika Anda lebih suka menginstal Bashmatic di lokasi non-standar (defaultnya adalah ~/.bashmatic
), Anda dapat menggunakan flag -H PATH
Misalnya, di sini kita menginstal Bashmatic ke tujuan non-default, sambil mencetak informasi verbose & debug tambahan, serta menggunakan -f
(force) untuk kemungkinan menimpa folder tujuan (jika sudah ada) dengan checkout Bashmatic menurut ke tag v2.4.1
:
bash -c " $( curl -fsSL https://bashmatic.re1.re ) ;
bashmatic-install -d -v -f -b v2.4.1 -H ~/workspace/bashmatic "
Jika kunci SSH Anda terinstal secara lokal, dan kunci publik dikonfigurasi dengan akun Anda di Github, Anda mungkin ingin menginstal Bashmatic menggunakan [email protected]:kigster/bashmatic
asal, bukan https://github.com/kigster/bashmatic
:
Berikut adalah daftar lengkap opsi yang diterima oleh penginstal:
Saat Anda menjalankan bash -c "$(curl -fsSL https://bashmatic.re1.re); bashmatic-install"
, hal berikut biasanya terjadi:
curl
mengunduh skrip bin/bashmatic-install
dan meneruskannya ke BASH bawaan untuk evaluasi.
Setelah dievaluasi, fungsi bashmatic-install
dipanggil, yang sebenarnya melakukan instalasi.
Ini adalah fungsi yang menerima argumen yang tercantum di atas.
Skrip mungkin meminta kata sandi Anda untuk mengaktifkan akses sudo - ini mungkin diperlukan pada OS-X untuk menginstal alat Pengembang XCode (yang mencakup git
)
Jika versi BASH Anda 3 atau lebih lama, skrip akan diunduh dan dibuat dari sumber BASH versi 5+, dan menginstalnya ke /usr/local/bin/bash
. SUDO mungkin diperlukan untuk langkah ini.
Di OS-X skrip akan menginstal Homebrew di OS-X, jika belum ada.
Setelah Brew diinstal, paket brew coreutils
dan gnu-sed
diinstal, karena keduanya diperlukan dan diandalkan oleh Bashmatic.
Skrip kemudian akan mencoba untuk git clone
repo bashmatic ke dalam folder utama Bashmatic, atau - jika sudah ada - ia akan git pull
perubahan terbaru.
Terakhir, kecuali Anda menentukan -l
atau --skip-on-login
skrip akan memeriksa file bash dot Anda, dan akan menambahkan pengait untuk memuat Bashmatic dari ~/.bashrc
atau ~/.bash_profile
.
Bagian terakhir saya memerlukan penjelasan.
Sekarang, Anda mungkin ingin atau tidak ingin memuat Bashmatic saat login.
Dengan kata lain, Anda memiliki sesuatu seperti ini di ~/.bashrc
:
# Let's see if ~/.bashrc mentions Bashmatic:
$ grep bashmatic ~ /.bashrc
[[ -f ~ /.bashmatic/init.sh ]] && source ~ /.bashmatic/init.sh
Akses cepat ke 800+ fungsi kenyamanan yang ditawarkan dan pembantu Bashmatic©. Bashmatic akan memperbarui secara otomatis setiap kali dimuat dari cabang utama.
Sekitar 134ms penundaan saat login, dan potensi vektor serangan keamanan (misalnya, jika seseorang meretas repo).
Tip | Kami baru-baru ini secara dramatis meningkatkan waktu pemuatan keseluruhan fungsi Bashmatic©. Sebelumnya dibutuhkan hampir 900ms, hampir satu detik penuh untuk memuat 854 fungsi. Hari ini tidak lebih dari 180ms: |
❯ time source init.sh
real 0m0.134s
user 0m0.078s
sys 0m0.074s
Jika perintah di atas menunjukkan keluaran yang Anda lihat di atas, saat Anda mengambil bashrc
atau zshrc
, maka semua Fungsi Bashmatic akan dimuat ke dalam shell Anda. Ini bisa sangat memudahkan, misalnya,
Anda dapat memanggil ruby.install-ruby-with-readline-and-openssl 3.0.1
untuk menginstal Ruby.
Anda dapat memanggil gem.remote.version sym
untuk melihat bahwa versi sym
yang terakhir diterbitkan adalah 3.0.1
.
Anda dapat menggabungkan array nilai dengan array.join ", " apple pear orange
PEMBERITAHUAN: Biasanya Bashmatic membutuhkan waktu tidak lebih dari 200-300 md untuk memuat. Meskipun demikian, Anda mungkin tidak ingin memiliki banyak fungsi shell di lingkungan Anda, jadi dalam hal ini Anda dapat melewati kaitan login dengan meneruskan -l
atau --skip-on-login
.
Instal dengan:
bash -c " $( curl -fsSL https://bashmatic.re1.re ) ; bashmatic-install -l "
Dalam hal ini kami menyarankan Anda cukup menambahkan folder bin
Bashmatic ke $PATH
.
Misalnya:
# ~/.bashrc
export BASHMATIC_HOME= " ${HOME} /.bashmatic "
export PATH= " ${BASHMATIC_HOME} /bin: ${PATH} "
Kemudian Anda akan memiliki akses ke skrip bashmatic
yang dapat dieksekusi yang dapat digunakan *sebagai "pintu gerbang" ke semua fungsi bashmatic:
Anda menggunakannya seperti ini: bashmatic <function> <args>
:
Penting | Contoh di bawah ini mengasumsikan Anda telah menyetel PATH untuk menyertakan ${HOME}/.bashmatic/bin |
# Eg, if as in the previous example you sourced in Bashmatic:
$ bashmatic.version
2.1.2
# If you have not, you can still invoke 'bashmatic.version':
$ bashmatic version
# Or another function, 'array.join' — if you sourced in init.sh:
$ array.join ' | ' hello goodbye
hello | goodbye
# Or using the script:
$ bashmatic array.join ' | ' hello goodbye
hello | goodbye
Jika Anda mendapatkan kesalahan, mungkin Bashmatic® tidak menginstal dengan benar.
curl
tidak tersedia Oleh karena itu untuk situasi di mana curl
mungkin tidak tersedia, tawarkan fungsi shell berikut yang berfungsi pada sistem berbasis Linux/Ubuntu dan OS-X. Itu dapat dengan mudah diperluas dengan sistem operasi baru:
# @description Installs bashmatic dependency into the ~/.bashmatic folder.
function install_bashmatic() {
# install bashmatic using https:// URL instead of git@
command -v curl > /dev/null || {
local OS= $( uname -s )
local code
case ${OS} in
Linux)
apt-get update -yq && apt-get install curl -yqq
code= $?
(( code )) && sudo apt-get update -yq && sudo apt-get install curl -yqq
;;
Darwin)
command -v brew > /dev/null || /bin/bash -c " $( curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh ) "
hash -r
brew install curl
;;
* )
echo " OS ${OS} is not supported. "
;;
esac
}
[[ -d ~ /.bashmatic ]] || bash -c " $( curl -fsSL https://bashmatic.re1.re ) ; bashmatic-install -q -m https "
return 0
}
Untuk mengetahui luasnya fungsi yang tersedia, ketikkan perintah berikut untuk melihat semua fungsi shell yang diimpor:
# List all functions using 4-column mode; print top 5 lines.
❯ bashmatic functions 4 | head -5
7z.a db.psql.connect.db-set hl.yellow-on-gray run.inspect-variables
7z.install db.psql.connect.db-set hr run.inspect-variables-
7z.unzip db.psql.connect.just-d hr.colored run.inspect.set-skip-f
7z.x db.psql.connect.table- http.servers run.on-error.ask-is-en
7z.zip db.psql.connect.table- https.servers run.print-command
# or, to get the count of all functions, use 1 column output:
$ bashmatic functions 1 | wc -l
773
Untuk menginstal Bashmatic secara manual, ikuti langkah-langkah berikut (silakan ubah BASHMATIC_HOME
jika Anda mau):
export BASHMATIC_HOME= " ${HOME} /.bashmatic "
test -d " ${BASHMATIC_HOME} " ||
git clone https://github.com/kigster/bashmatic.git " ${BASHMATIC_HOME} "
cd " ${BASHMATIC_HOME} " && ./bin/bashmatic-install -v
cd - > /dev/null
Terkadang Anda mungkin tidak dapat menggunakan git
(saya telah melihat masalah mulai dari ketidakcocokan sertifikat lokal hingga git versi lama, dan banyak lagi), tetapi mungkin dapat mengunduh dengan curl
. Dalam hal ini, Anda dapat mencari tag terbaru (gantikan "v1.6.0" di bawah dengan tag tersebut), lalu jalankan perintah ini:
export BASHMATIC_TAG= " v2.4.1 "
set -e
cd ${HOME}
curl --insecure -fSsl
https://codeload.github.com/kigster/bashmatic/tar.gz/ ${BASHMATIC_TAG}
-o bashmatic.tar.gz
rm -rf .bashmatic && tar xvzf bashmatic.tar.gz && mv bashmatic- ${BASHMATIC_TAG} .bashmatic
source ~ /.bashmatic/init.sh
cd ${HOME} /.bashmatic && ./bin/bashmatic-install -v
cd ~ > /dev/null
Anda selalu dapat memuat ulang Bashmatic® dengan fungsi bashmatic.reload
. Ini hanya melakukan sumber ${BASHMATIC_HOME}/init.sh
.
Saat Anda menginstal Bashmatic, secara otomatis menambahkan kait ke ~/.bash_profile
Anda, tetapi jika Anda menggunakan ZSH Anda mungkin perlu menambahkannya secara manual (untuk saat ini).
Tambahkan yang berikut ke file ~/.zshrc
Anda:
[[ -f ~ /.bashmatic/init.sh ]] && source " ~/.bashmatic/init.sh "
Catatan | Seluruh perpustakaan membutuhkan waktu kurang dari 300 ms untuk dimuat di ZSH dan MacBook Pro terbaru. |
Makefile
Makefile
tingkat atas sebagian besar disediakan untuk kemudahan karena merangkum beberapa tugas umum yang digunakan dalam pengembangan oleh Penulis Bashmatic, serta tugas lain yang berguna bagi siapa pun yang menjelajahi Bashmatic.
Anda dapat menjalankan make help
dan membaca target yang tersedia:
❯ make
help Prints help message auto-generated from the comments.
open-readme Open README.pdf in the system viewer
docker-build Builds the Docker image with the tooling inside
docker-run-bash Drops you into a BASH session with Bashmatic Loaded
docker-run-fish Drops you into a FISH session with Bashmatic Loaded
docker-run-zsh Drops you into a ZSH session with Bashmatic Loaded
docker-run Drops you into a BASH session
file-stats-git Print all files known to ` git ls-files ` command
file-stats-local Print all non-test files and run ` file ` utility on them.
install-dev Installs the Development Tooling using dev-setup script
install-ruby Installs the Bashmatic default Ruby version using rbenv
install install BashMatic Locally in ~ /.bashmatic
release Make a new release named after the latest tag
tag Tag this commit with .version and push to remote
setup Run the comprehensive development setup on this machine
shell-files Lists every single checked in SHELL file in this repo
test Run fully automated test suite based on Bats
test-parallel Run the fully auto-g mated test suite
update-changelog Auto-generate the doc/CHANGELOG (requires GITHUB_TOKEN env var set)
update-functions Auto-generate doc/FUNCTIONS index at doc/FUNCTIONS.adoc/pdf
update-readme Re-generate the PDF version of the README
update-usage Auto-generate doc/USAGE documentation from lib shell files,
to doc/USAGE.adoc/pdf
update Runs all update targets to regenerate all PDF docs and the
Changelog.
Saya telah menambahkan spasi di sekitar serangkaian tugas umum yang mungkin berguna bagi Anda.
Mari kita lihat sekilas apa yang tersedia di sini.
Makefile disediakan sebagai kemudahan untuk menjalankan sebagian besar tugas umum dan untuk menyederhanakan menjalankan beberapa tugas yang lebih kompleks yang memerlukan mengingat banyak argumen, seperti make setup
. Anda mungkin ingin menggunakan Makefile karena beberapa alasan:
make open-readme
Tugas ini membuka README versi PDF di penampil sistem PDF Anda.
make install
Ini memungkinkan Anda untuk menginstal Kerangka Bashmatic secara lokal. Itu hanya menjalankan skrip bin/bashmatic-install
. Paling-paling ini akan menambahkan kait ke file init shell Anda sehingga Bashmatic dimuat saat login.
make setup
Tugas ini memanggil skrip bin/dev-setup
di bawah tenda, sehingga Anda dapat menyiapkan pengaturan pengembang komputer lokal untuk pengembangan perangkat lunak.
Sekarang, skrip ini menawarkan antarmuka CLI yang sangat kaya, sehingga Anda dapat menjalankan skrip secara langsung dan memiliki kontrol yang baik atas apa yang dilakukannya, atau Anda dapat menjalankannya dengan flag default melalui target make ini.
Target make khusus ini menjalankan skrip bin/dev-setup
dengan tindakan berikut:
dev, cpp, fonts, gnu, go, java, js, load-balancing, postgres, ruby
make test
dan make test-parallel
keduanya ditujukan untuk Pengembang dan kontributor Bashmatic. Silakan lihat bagian Berkontribusi tentang cara menjalankan dan apa yang diharapkan dari pengujian UNIT.
make update
adalah tugas yang harus dijalankan oleh kontributor perpustakaan setelah mereka membuat perubahan dan ingin dokumentasi yang dibuat secara otomatis mencerminkan fungsi baru yang ditambahkan dan seterusnya dan seterusnya. Tugas ini juga menghasilkan indeks fungsi, menghasilkan kembali PDF terbaru dari file README
, USAGE
, atau CHANGELOG
.
Catatan | Menjalankan make update diperlukan untuk mengirimkan permintaan penarikan apa pun. |
Bashmatic hadir dengan Dockerfile yang dapat digunakan untuk menjalankan tes atau hanya memvalidasi berbagai fungsi secara manual di linux, dan mungkin untuk bereksperimen.
Jalankan make docker-build
untuk membuat gambar buruh pelabuhan bashmatic:latest
.
Jalankan make docker-run-bash
(atau …-zsh
atau …-fish
) untuk memulai container dengan shell favorit Anda, lalu validasi apakah fungsi Anda berfungsi seperti yang diharapkan.
Perhatikan bagaimana ini membawa saya langsung ke prompt lingkungan Linux dengan Bashmatic sudah diinstal.
Mengapa kita memerlukan kerangka BASH lain?
BASH diketahui terlalu bertele-tele dan tidak dapat diandalkan. Kami mohon berbeda. Inilah sebabnya kami ingin memulai README ini dengan beberapa contoh.
Lihat saja skrip kecil lima baris ini:
#! /usr/bin/env bash
source ${BASHMATIC_HOME} /init.sh
h2 " Installing ruby gem sym and brew package curl... "
" Please standby... "
gem.install " sym " && brew.install.package " curl " &&
success " installed sym ruby gem, version $( gem.version sym ) "
Hasil dari keluaran ASCII yang mendetail ini dan, sejujurnya, cantik :
Katakan padaku Anda sama sekali tidak bersemangat untuk segera mulai menulis alur instalasi yang rumit di BASH?
Anda tidak hanya mendapatkan output yang bagus, tetapi Anda juga dapat menjalankan setiap perintah, status keluarnya, apakah berhasil (hijau/merah), serta durasi setiap perintah dalam milidetik. Apa yang tidak disukai?!?
Masih belum yakin?
Lihatlah contoh yang lebih komprehensif selanjutnya.
Dalam contoh ini, kita akan mengunduh dan menginstal binari kubectl
dan binari minikube
ke /usr/local/bin
Kami menyediakan contoh skrip di examples/k8s-installer.sh
. Silakan klik dan lihat sumbernya.
Berikut adalah output dari menjalankan skrip ini:
Mengapa menurut kami penginstal jenis ini cukup mengagumkan, dibandingkan dengan skrip shell yang sunyi namun mematikan yang ditulis oleh "Jim-in-the-corner" dan sekarang tidak ada yang mengerti?
Karena:
Skrip berupaya mengkomunikasikan secara berlebihan apa yang dilakukannya kepada pengguna.
Ini memungkinkan dan mengingatkan tentang liburan yang bersih (Ctrl-C)
Ini membagikan perintah persis yang dijalankannya dan pengaturan waktunya sehingga Anda dapat melihat masalah seperti kemacetan jaringan atau alamat jaringan, dll.
Ini ditampilkan dalam kode keluar berwarna hijau '0' dari setiap perintah. Jika salah satu perintah gagal, Anda akan melihatnya berwarna merah.
Kode sumbernya singkat, eksplisit, dan mudah dibaca. Tidak ada keajaiban. Hanya fungsi BASH.
Catatan | Jika Anda perlu membuat penginstal BASH, Bashmatic® menawarkan beberapa penghemat waktu yang luar biasa. |
Mari kita kembali ke Bumi, dan membahas tentang cara menginstal Bashmatic, dan cara menggunakannya secara lebih rinci setelahnya.
Contoh terakhir dan paling kaya fitur ini bukan sekadar contoh – ini adalah alat yang berfungsi dan dapat digunakan untuk menginstal sekumpulan dependensi pengembang di Laptop Apple Anda .
Catatan | skripnya bergantung pada Homebrew di belakang layar, dan oleh karena itu tidak akan berfungsi di linux atau Windows (kecuali Brew di-porting ke sana). |
Itu terletak di bin/dev-setup
dan memiliki banyak tanda CLI:
Pada contoh di bawah ini kita akan menggunakan skrip dev-setup
untuk menginstal yang berikut ini:
Alat Pengembang
PostgreSQL
ulang
Memcache
Rubi 2.7.1
NodeJS/NPM/Benang
Meskipun daftarnya panjang, kita dapat menginstal semuanya dalam satu perintah.
Kami akan menjalankan ini dari folder tempat aplikasi kami diinstal, karena Versi Ruby akan terdeteksi secara otomatis dari file .ruby-version
kami, dan selain menginstal semua dependensi, skrip juga akan menjalankan bundle install
dan npm install
(atau yarn install
). Lumayan, ya?
${BASHMATIC_HOME} /bin/dev-setup
-g " ruby postgres mysql caching js monitoring "
-r $( cat .ruby-version )
-p 9.5 # use PostgreSQL version 9.5
-m 5.6 # use MySQL version 5.6
Baris perintah ringkas ini menginstal banyak hal, tetapi jangan percaya begitu saja - jalankan sendiri. Atau, setidaknya nikmati tangkapan layar yang sangat panjang ini :)
Ini adalah alat hebat yang mewarnai hampir semua keluaran alat lainnya.
Jalankan seperti ini:
${BASHMATIC_HOME} /bin/install-grc
Anda mungkin perlu memasukkan kata sandi untuk SUDO.
Setelah selesai, jalankan source ~/.bashrc
(atau shell apa pun yang Anda gunakan), dan ketik sesuatu seperti ls -al
atau netstat -rn
atau ping 1.1.1.1
dan perhatikan bagaimana semua hal di atas diwarnai dengan indah.
db
untuk Utilitas Basis Data & db top
Jika Anda menggunakan PostgreSQL, Anda beruntung! Bashmatic menyertakan banyak pembantu untuk utilitas CLI PostreSQL psql
.
Catatan | Sebelum memulai, kami menyarankan Anda menginstal file .psqlrc dari direktori conf Bashmatic ke folder home Anda. Meskipun tidak diperlukan, file ini menyiapkan prompt Anda dan berbagai makro untuk PostgreSQL yang akan sangat berguna jika Anda menggunakan psql dengan teratur. |
Apa sih db top
itu?
Sama seperti top
biasa Anda dapat melihat proses yang menghabiskan sumber daya "atas" yang berjalan di sistem lokal Anda, dengan dbtop
Anda dapat mengamati laporan yang menyegarkan sendiri dari kueri yang berjalan secara aktif di hingga tiga server database pada saat yang bersamaan.
Berikut adalah tangkapan layar piksel dari dbtop
yang berjalan pada dua database langsung:
Agar ini berfungsi, Anda harus terlebih dahulu menentukan parameter koneksi database dalam file YAML yang terletak di PATH berikut: ~/.db/database.yml
.
Berikut cara mengatur file (jika Anda pernah menggunakan Ruby on Rails, file config/database.yml
standar harus sepenuhnya kompatibel):
development :
database : development
username : postgres
host : localhost
password :
staging :
database : staging
username : postgres
host : staging.db.example.com
password :
production :
database : production
username : postgres
host : production.db.example.com
password : " a098098safdaf0998ff79789a798a7sdf "
Dengan adanya file di atas, Anda seharusnya dapat menjalankan perintah berikut untuk melihat semua koneksi yang tersedia (terdaftar di file YAML di atas):
$ db connections
development
staging
production
Setelah berhasil, Anda seharusnya dapat menjalankan dbtop
: