curl
no está disponibleMakefile
db
para utilidades de base de datos y db top
db
db
db connections
del subcomandodb pga
(por ejemplo, pg_activity
)bin/tablet
bin/specs
proporcionadobin/spec -P
Makefile
Makefile
Insignias | Escaneo FOSSA | |
---|---|---|
FOSSSA | ||
Pruebas de CI | ||
Instalación de CI | ||
ShellCheck | ||
gitter |
|
Bashmatic® es un marco BASH, lo que significa que es una colección de funciones BASH (casi 900 de ellas) que, esperamos, hagan que la programación BASH sea más fácil, más agradable y, lo que es más importante, divertida , debido al enfoque de la biblioteca en brindar al desarrollador una retroalimentación constante sobre lo que está sucediendo, mientras se ejecuta un script que utiliza los ayudantes de Bashmatic.
Consejo | Le sugerimos que conozca Bashmatic en la versión PDF de este documento, que es mucho mejor para imprimir.
|
Después de instalar la biblioteca (la ubicación predeterminada es ~/.bashmatic
), tenga en cuenta que puede elegir entre:
Obteniendo automáticamente la biblioteca (y las más de 900 funciones) desde los 'archivos de puntos' de su shell como ~/.bash_profile
agregando esta línea: source ~/.bashmatic/init.sh
. En una computadora portátil Apple M1 reciente, esto agrega aproximadamente 100 ms en total.
O puede omitirlo durante la inicialización de inicio de sesión y cargarlo solo en la parte superior de los scripts que usan la biblioteca.
Precaución | Ambos enfoques son absolutamente válidos y tienen sus pros y sus contras. Cargar bashmatic en sus archivos de puntos podría ser un poco arriesgado. De una forma u otra, pronto brindaremos formas de verificar que bashmatic que descargue sea la versión segura y correcta, en todo momento. |
Todo lo que diremos sobre este asunto es que gestionamos la optimización al máximo del abastecimiento de la biblioteca. Aquí hay un ejemplo:
El estilo de programación de Bashmatic® está fuertemente influenciado por los lenguajes DSL de Ruby. Si echa un vistazo rápido al script is.sh, define un montón de funciones DSL que se pueden encadenar con &&
y ||
para crear un código compacto y autodocumentado como este:
[círculo de flecha hacia abajo]
# 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 " $@ "
Para usarlo en sus propios scripts, primero querrá estudiar los ejemplos que se proporcionan a continuación y aprovechar cada módulo disponible en lib
.
Nota final: una vez que Bashmatic esté instalado y cargado mediante los archivos de inicio de su shell, puede escribir is.<tab><tab>
para ver qué funciones están disponibles para usted que comienzan con is
. Cada módulo de lib
normalmente define funciones públicas que comienzan con el nombre del archivo. Por ejemplo, las funciones en array.sh
normalmente comienzan con array.<something>.<action>
Bashmatic® ofrece una amplia gama de funciones auxiliares en constante crecimiento para ejecutar comandos, reintentos automáticos, marco de ejecución repetible y que mide el tiempo de ejecución con la función clave run
. Hay ayudas para cada ocasión, desde dibujar cuadros, líneas, encabezados hasta mostrar barras de progreso, obtener entradas del usuario, instalar paquetes y mucho más.
Nota | Una buena parte de los asistentes dentro de Bashmatic® están escritos para OS-X, aunque muchas funciones útiles también funcionarán en Linux. Todo nuestro conjunto de pruebas se ejecuta en Ubuntu. Se está realizando un esfuerzo para convertir funciones específicas de Homebrew en ayudas neutrales para el sistema operativo, como package.install que funcionarían igualmente bien en Linux. |
Comience a explorar Bashmatic® a continuación con nuestra sección de ejemplos. Cuando esté listo, podrá encontrar el conjunto completo de funciones públicas (casi 500 de ellas) en la página de índice de funciones.
Y, finalmente, no te preocupes, Bashmatic® es totalmente de código abierto y de uso y ampliación gratuitos. Simplemente nos gusta cómo queda con un poco de ® :)
BASH versión 4+
BASH versión 3 (compatibilidad parcial, algunas funciones están deshabilitadas)
ZSH: según la actualización reciente, Bashmatic es casi un 90% compatible con ZSH.
Actualmente no compatible
FISH (aunque podrías usar Bashmatic a través del asistente de script bin/bashmatic
, o sus ejecutables)
Este proyecto nació de una simple comprensión realizada por varios ingenieros muy experimentados y experimentados de que:
A menudo es más fácil usar BASH para escribir cosas como instaladores universales, también conocidos como scripts de configuración , cargadores , contenedores para todo tipo de funcionalidades, como NPM , rbenv , instalación de gemas, rubíes, uso de AWS, implementación de código, etc.
Los valores de retorno de la función BASH se prestan muy bien a un DSL (lenguaje específico de dominio) compacto donde se pueden encadenar múltiples funciones mediante AND lógico &&
y OR ||
para proporcionar una lógica de ejecución muy compacta. Lo más importante es que creemos que esta lógica es extremadamente fácil de leer y comprender.
A pesar de los puntos anteriores, también se acepta generalmente que:
Muchos scripts BASH están muy mal escritos y son difíciles de leer y comprender.
A menudo es difícil entender qué diablos está pasando mientras se ejecuta el script, porque o no genera nada útil o genera demasiado.
Cuando ocurren errores de BASH, la mierda generalmente se vuelve loca y alguien decide que debe reescribir el script BASH de 20 líneas en C++ o Go, porque, bueno, es un maldito script BASH y no funciona.
Consejo | El objetivo de Bashmatic es hacer que la programación BASH sea divertida, consistente y proporcione muchos resultados visibles al usuario para que no haya ningún misterio sobre lo que está sucediendo. |
Quizás la forma más sencilla de instalar Bashmatic® sea utilizando curl
como se muestra a continuación.
Primero, asegúrese de tener Curl instalado, ejecute which curl
desea ver. Luego copie/pegue este comando en su Terminal.
[flecha hacia abajo]
bash -c " $( curl -fsSL https://bashmatic.re1.re ) ; bashmatic-install -q "
[flecha hacia arriba]
Dónde:
-q significa "silencioso";
-v para "detallado"
Consejo | La URL https://bashmatic.re1.re redirige al HEAD del script bin/bashmatic-install en Github Bashmatic Repo. Usamos esta URL para conservar la capacidad de redirigir la instalación a un script diferente en el futuro, si es necesario. |
Si prefiere poder examinar el script antes de ejecutar el código transmitido directamente desde Internet, no lo culpo. Eres cauteloso e inteligente.
Para gente como usted, aquí hay una forma un poco más segura de hacer lo mismo:
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
Este método le permite examinar el script /tmp/install
antes de ejecutarlo.
A continuación se muestran algunas de las explicaciones.
Puede instalar una rama o una etiqueta de Bashmatic pasando el indicador -b / --git-branch <tag|branch>
.
Puede pasar indicadores a la función bashmatic-install
para controlar cómo, dónde se instala Bashmatic y desde dónde se descarga, incluyendo:
-v
o --verbose
para mostrar resultados adicionales, o lo contrario:
-d
o --debug
imprimirá resultados de depuración adicionales
-f
o --force
reemplazarán cualquier carpeta bashmatic existente con la nueva
-q
o --quiet
para que no haya salida
-l
o --skip-on-login
para NO instalar el gancho que carga Bashmatic al iniciar sesión.
Si prefiere instalar Bashmatic en una ubicación no estándar (la predeterminada es ~/.bashmatic
), puede usar el indicador -H PATH
Por ejemplo, aquí estamos instalando Bashmatic en un destino no predeterminado, mientras imprimimos información adicional detallada y de depuración, además de usar -f
(forzar) para posiblemente sobrescribir la carpeta de destino (si ya existe) con un check-out de Bashmatic según a una etiqueta v2.4.1
:
bash -c " $( curl -fsSL https://bashmatic.re1.re ) ;
bashmatic-install -d -v -f -b v2.4.1 -H ~/workspace/bashmatic "
Si tiene sus claves SSH instaladas localmente y la clave pública se configuró con su cuenta en Github, es posible que desee instalar Bashmatic usando [email protected]:kigster/bashmatic
origin, en lugar del https://github.com/kigster/bashmatic
:
Aquí está la lista completa de opciones aceptadas por el instalador:
Cuando ejecuta bash -c "$(curl -fsSL https://bashmatic.re1.re); bashmatic-install"
, normalmente sucede lo siguiente:
curl
descarga el script bin/bashmatic-install
y lo pasa al BASH integrado para su evaluación.
Una vez evaluada, se invoca la función bashmatic-install
, que realmente realiza la instalación.
Esta es la función que acepta los argumentos enumerados anteriormente.
El script puede solicitar su contraseña para habilitar el acceso a sudo; esto puede ser necesario en OS-X para instalar las herramientas XCode Developer (que incluyen git
).
Si su versión de BASH es 3 o anterior, el script se descargará y compilará a partir de la versión 5+ de BASH y lo instalará en /usr/local/bin/bash
. Es posible que se requiera SUDO para este paso.
En OS-X, el script instalará Homebrew en OS-X, si aún no está allí.
Una vez instalado Brew, se instalan los paquetes de cerveza coreutils
y gnu-sed
, ya que Bashmatic los requiere y confía en ambos.
Luego, el script intentará git clone
el repositorio bashmatic en la carpeta de inicio de Bashmatic o, si ya existe, git pull
los últimos cambios.
Finalmente, a menos que especifique -l
o --skip-on-login
, el script verificará sus archivos bash dot y agregará el gancho para cargar Bashmatic desde ~/.bashrc
o ~/.bash_profile
.
La última parte puede requerir alguna explicación.
Ahora, es posible que desees o no cargar Bashmatic al iniciar sesión.
En otras palabras, tienes algo como esto en tu ~/.bashrc
:
# Let's see if ~/.bashrc mentions Bashmatic:
$ grep bashmatic ~ /.bashrc
[[ -f ~ /.bashmatic/init.sh ]] && source ~ /.bashmatic/init.sh
Acceso instantáneo a más de 800 funciones de conveniencia que ofrece y ayudantes Bashmatic©. Bashmatic se actualizará automáticamente cada vez que se cargue desde la rama principal.
Aproximadamente 134 ms de retraso en el inicio de sesión y un posible vector de ataque a la seguridad (por ejemplo, si alguien piratea el repositorio).
Consejo | Recientemente mejoramos dramáticamente el tiempo de carga de la totalidad de las funciones de Bashmatic©. Anteriormente, se necesitaban casi 900 ms, casi un segundo completo, para cargar 854 funciones. Hoy no supera los 180 ms: |
❯ time source init.sh
real 0m0.134s
user 0m0.078s
sys 0m0.074s
Si el comando anterior muestra el resultado que ve arriba, cuando grep su bashrc
o zshrc
, todas las funciones Bashmatic se cargarán en su shell. Esto podría ser muy conveniente, por ejemplo,
puede invocar ruby.install-ruby-with-readline-and-openssl 3.0.1
para instalar Ruby.
Puede invocar gem.remote.version sym
para ver que la última versión publicada de sym
es 3.0.1
.
Puede unir una serie de valores con array.join ", " apple pear orange
AVISO: Bashmatic normalmente no tarda más de 200-300 ms en cargarse. Dicho esto, es posible que no quieras tener tantas funciones de shell en tu entorno, por lo que en ese caso puedes omitir el enlace de inicio de sesión pasando -l
o --skip-on-login
.
Instálalo con:
bash -c " $( curl -fsSL https://bashmatic.re1.re ) ; bashmatic-install -l "
En este caso, le sugerimos que simplemente agregue la carpeta bin
de Bashmatic a $PATH
.
Por ejemplo:
# ~/.bashrc
export BASHMATIC_HOME= " ${HOME} /.bashmatic "
export PATH= " ${BASHMATIC_HOME} /bin: ${PATH} "
Luego tendrá acceso al script ejecutable bashmatic
que puede usarse *como "puerta de entrada" a todas las funciones bashmatic:
Lo usas así: bashmatic <function> <args>
:
Importante | Los ejemplos siguientes suponen que ha configurado la PATH para incluir ${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
Si recibe un error, quizás Bashmatic® no se instaló correctamente.
curl
no está disponible Por lo tanto, para situaciones en las que curl
pueda no estar disponible, ofrezca la siguiente función de shell que funciona en sistemas basados en Linux/Ubuntu y OS-X. Se puede ampliar fácilmente con nuevos sistemas operativos:
# @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
}
Para descubrir la variedad de funciones disponibles, escriba el siguiente comando para ver todas las funciones de Shell importadas:
# 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
Para instalar Bashmatic manualmente, siga estos pasos (no dude en cambiar BASHMATIC_HOME
si lo desea):
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
A veces es posible que no puedas usar git
(he visto problemas que van desde falta de coincidencia de certificados locales hasta versiones antiguas de git y más), pero tal vez puedas descargar con curl
. En ese caso, puede buscar la etiqueta más reciente (sustituya "v1.6.0" a continuación por esa etiqueta) y luego ejecutar este comando:
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
Siempre puedes recargar Bashmatic® con la función bashmatic.reload
. Esto simplemente realiza el abastecimiento de ${BASHMATIC_HOME}/init.sh
.
Cuando instalas Bashmatic, agrega automáticamente un enlace a tu ~/.bash_profile
, pero si estás en ZSH es posible que tengas que agregarlo manualmente (por ahora).
Agregue lo siguiente a su archivo ~/.zshrc
:
[[ -f ~ /.bashmatic/init.sh ]] && source " ~/.bashmatic/init.sh "
Nota | La biblioteca completa tarda menos de 300 ms en cargarse en ZSH y en una MacBook Pro reciente. |
Makefile
El Makefile
de nivel superior se proporciona principalmente para su conveniencia, ya que encapsula algunas tareas comunes utilizadas en el desarrollo por los autores de Bashmatic, así como otras útiles para cualquiera que explore Bashmatic.
Puede ejecutar make help
y leer los objetivos disponibles:
❯ 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.
Agregué espacios en blanco alrededor de un conjunto de tareas comunes que pueden resultarle útiles.
Echemos un vistazo rápido a lo que está disponible aquí.
Makefile se proporciona como una comodidad para ejecutar las tareas más comunes y para simplificar la ejecución de algunas tareas más complejas que requieren recordar muchos argumentos, como make setup
. Es posible que desee utilizar Makefile por varias razones:
make open-readme
Esta tarea abre la versión PDF del archivo README en el visor de su sistema PDF.
make install
Esto le permite instalar Bashmatic Framework localmente. Simplemente ejecuta el script bin/bashmatic-install
. Como máximo, esto agregará enlaces a los archivos de inicio de su shell para que Bashmatic se cargue al iniciar sesión.
make setup
Esta tarea invoca el script bin/dev-setup
interno, de modo que pueda configurar la configuración de desarrollador de su computadora local para el desarrollo de software.
Ahora, este script ofrece una interfaz CLI muy rica, por lo que puede ejecutar el script directamente y tener un control detallado sobre lo que está haciendo, o puede ejecutarlo con indicadores predeterminados a través de este destino de creación.
Este objetivo de creación en particular ejecuta el script bin/dev-setup
con las siguientes acciones:
dev, cpp, fonts, gnu, go, java, js, load-balancing, postgres, ruby
make test
y make test-parallel
están destinados a desarrolladores y contribuyentes de Bashmatic. Consulte la sección Contribuciones sobre cómo ejecutar y qué esperar de las pruebas UNIT.
make update
es la tarea que deben ejecutar los contribuyentes de la biblioteca después de haber realizado sus cambios y desean que la documentación generada automáticamente refleje las nuevas funciones agregadas, etc., etc. Esta tarea también genera el índice de funciones, vuelve a generar los archivos PDF más recientes de README
, USAGE
o CHANGELOG
.
Nota | Se requiere ejecutar make update para enviar cualquier solicitud de extracción. |
Bashmatic viene con un Dockerfile que se puede usar para ejecutar pruebas o validar manualmente varias funciones en Linux y posiblemente para experimentar.
Ejecute make docker-build
para crear una imagen de ventana acoplable bashmatic:latest
.
Ejecute make docker-run-bash
(o …-zsh
o …-fish
) para iniciar un contenedor con su shell favorito y luego valide si sus funciones funcionan como se esperaba.
Observe cómo esto me llevó directamente al indicador del entorno Linux con Bashmatic ya instalado.
¿Por qué necesitamos otro marco BASH?
Se sabe que BASH es demasiado detallado y poco confiable. No estamos de acuerdo. Es por eso que queríamos comenzar este README con un par de ejemplos.
Basta con mirar este pequeño guión de cinco líneas:
#! /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 ) "
Los resultados son este detallado y, seamos honestos, magnífico resultado ASCII:
Dígame, ¿no está nada emocionado de comenzar a escribir flujos de instalación complejos en BASH de inmediato?
No solo obtienes un buen resultado, sino que también puedes ver cada comando ejecutado, su estado de salida, si ha sido exitoso (verde/rojo), así como la duración de cada comando en milisegundos. ¡¿Qué es lo que no te gusta?!?
¿Aún no estás convencido?
Eche un vistazo a un ejemplo más completo a continuación.
En este ejemplo, descargaremos e instalaremos los binarios kubectl
y minikube
en /usr/local/bin
Proporcionamos un script de ejemplo en examples/k8s-installer.sh
. Haga clic y eche un vistazo a la fuente.
Aquí está el resultado de ejecutar este script:
¿Por qué creemos que este tipo de instalador es bastante impresionante, en comparación con un script de shell silencioso pero mortal que escribió "Jim-in-the-corner" y que ahora nadie entiende?
Porque:
El script hace todo lo posible para comunicar en exceso lo que hace al usuario.
Permite y recuerda una escapada limpia (Ctrl-C)
Comparte el comando exacto que ejecuta y sus tiempos para que puedas observar problemas como congestiones de red o direcciones de red, etc.
Muestra en verde el código de salida '0' de cada comando. Si alguno de los comandos falla, lo verá en rojo.
Su código fuente es conciso, explícito y fácil de leer. No hay magia. Solo funciones BASH.
Nota | Si necesita crear un instalador de BASH, Bashmatic® ofrece increíbles ahorros de tiempo. |
Volvamos a la Tierra y hablemos sobre cómo instalar Bashmatic y cómo usarlo con más detalle inmediatamente después.
Este ejemplo final y con más funciones no es solo un ejemplo: es una herramienta funcional que se puede utilizar para instalar un montón de dependencias de desarrollador en su computadora portátil Apple .
Nota | el script se basa en Homebrew detrás de escena y, por lo tanto, no funcionaría en Linux o Windows (a menos que Brew se transfiera allí). |
Está ubicado en bin/dev-setup
y tiene muchos indicadores CLI:
En el siguiente ejemplo usaremos el script dev-setup
para instalar lo siguiente:
Herramientas de desarrollo
PostgreSQL
Redis
Memcached
Rubí 2.7.1
NodeJS/NPM/Hilo
A pesar de que esta es una lista larga, podemos instalarlo todo en un solo comando.
Ejecutaremos esto desde una carpeta donde está instalada nuestra aplicación, porque entonces la versión Ruby se detectará automáticamente desde nuestro archivo .ruby-version
y, además de instalar todas las dependencias, el script también ejecutará bundle install
y npm install
(o yarn install
). No está mal, ¿eh?
${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
Esta línea de comando compacta instala un montón de cosas, pero no confíe en nuestra palabra: ejecútela usted mismo. O al menos disfruta de esta captura de pantalla extremadamente larga :)
Esta es una gran herramienta que colorea el resultado de casi cualquier otra herramienta.
Ejecútelo así:
${BASHMATIC_HOME} /bin/install-grc
Es posible que deba ingresar su contraseña para SUDO.
Una vez que se complete, ejecute source ~/.bashrc
(o cualquier shell que use) y escriba algo como ls -al
o netstat -rn
o ping 1.1.1.1
y observe cómo todo lo anterior está muy bien coloreado.
db
para utilidades de bases de datos y db top
Si estás utilizando PostgreSQL, ¡estás de suerte! Bashmatic incluye numerosos asistentes para la utilidad CLI de PostreSQL, psql
.
Nota | Antes de comenzar, le recomendamos que instale el archivo .psqlrc desde el directorio conf de Bashmatic en su carpeta de inicio. Si bien no es necesario, este archivo configura su mensaje y varias macros para PostgreSQL que serán muy útiles si usa psql con regularidad. |
¿Qué es db top
de todos modos?
Al igual que con el top
normal, puede ver los procesos "principales" que consumen recursos que se ejecutan en su sistema local, con dbtop
puede observar un informe que se actualiza automáticamente de las consultas que se ejecutan activamente en hasta tres servidores de bases de datos al mismo tiempo.
Aquí está la captura de pantalla pixelada de dbtop
ejecutándose en dos bases de datos activas:
Para que esto funcione, primero debe definir los parámetros de conexión de la base de datos en un archivo YAML ubicado en la siguiente RUTA: ~/.db/database.yml
.
Así es como se debe organizar el archivo (si alguna vez usó Ruby on Rails, el archivo estándar config/database.yml
debería ser totalmente compatible):
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 "
Dado el archivo anterior, debería poder ejecutar el siguiente comando para ver todas las conexiones disponibles (registradas en el archivo YAML anterior):
$ db connections
development
staging
production
Una vez que esté funcionando, deberías poder ejecutar dbtop
: