Curso de Programación en Bash Shell

Curso de Programación en Bash Shell

Marco Antonio Toscano Freire

Marco Antonio Toscano Freire

Bash scripting

3/43
Recursos
  • Bash Scripting

La idea básica de generar programas en bash es poder ejecutar múltiples comandos de forma secuencial en muchas ocasiones para automatizar una tarea en especifico. Estos comandos son colocados en un archivo de textos de manera secuencial para poder ejecutarlos a posterioridad.

Un archivo .vimrc podremos configurar de mejor manera nuestro editor VIM.

Presionamos I para poder escribir en nuestro editor.
Presionamos ESC para salir del modo edición, luego escribimos :wq para salir y guardar nuestro archivo.

Aportes 61

Preguntas 5

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Para configurar el editor vim debemos estar en $home
Creamos el archivo llamado .vimrc con el comando: vim .vimrc
Presionamos la tecla i para editar, ponemos:
set showmode
set autoindent
set tabstop=4
set expandtab
syntax on

Presionamos :wq para salir y guardar

¿Qué es el bash scripting?

La idea básica de bash scripting o programación en shell es poder ejecutar múltiples comandos de forma secuencial para automatizar una tarea en específico.

Estos comandos son colocados en un archivo de texto simple y ejecutados en una terminal por el usuario.

Es recomendable Platzi en la actualización de este curso le recuerde al profesor tomar en cuenta los colores de la terminal que usarán en la presentación… debería facilitar la vista del estudiante.

fun facts:

  1. El comando para salir de vim :x hace lo mismo que :wq que es guardar y salir
  2. La linea dos tiene un error, no es autoident es autoindent y el profesor hace esa correcion despues

La configuración del editor de texto se puede realizar para cada usuario o para todo el sistema. En el primer caso se debe crear o modificar un archivo llamado ~/.nanorc con las modificaciones que te permite el editor, para el segundo caso se debe modificar el archivo que está en la dirección /etc/nanorc.
.
Algunas de las funciones que facilitan la edición son
set autoindent
set tabsize
set tabstospaces
set linenumbers

Muchahcos tengan en cuenta que el profesor escribe

set autoident```

y se debe realizar asi


set autoindent```

Lo que se habilitó en Vim; https://gist.github.com/ruph/1437650

Para las personas que nos gusta usar Nano como editor de texto en Terminal, les dejo las diferentes opciones que podemos configurar. Ojalá les sirva
https://linuxhint.com/configure_nano_text_editor_nanorc/

hubo un error en el .vimrc
se guardo
set autoident
en vez de
set autoindent

Me encanta cuando Belén aparece derrepente… me levanta el ánimo. 😄

Yo me voy por neovim, que es un vim pero con más poderes.

La idea del bash scripting, es automatizar alguna tarea en específico.

Al automatizar, hacemos uso de conjuntos de rutinas, comandos, procedimientos y funciones.

Les dejo configuraciones adicionales por si quieren tunear aún más su vim 😛

Top 50 Vim Configuration Options

¡Saludos!

Muchas veces vim ya viene por defecto como lo configuro el profesor, excepto en en el de showmode, pero lo demas ya viene por defecto. Ademas de que otra manera de salir del editor de texto y guardar todo es con Ctrl ^x

mi configuración es sencilla

  1 set number
  2 syntax on
  3 set shiftwidth=2
  4 set tabstop=2
  5 set autoindent

Una gran mejora para vim es vim-airline, sobre todo ahora que desde vim ya incluye un gestor de paquetes. Y mejor aún si instalan las fuentes ya parchadas de powerline.

Otra manera de ir al home del usuario con el que estas es cd ~

Otra manera de salir del editor vim y guardar los cambios realizados es la siguiente:
1 - Presiona la tecla ESC una vez
2 - Mantén presionada la tecla SHIFT
3 - Presiona dos veces consecutivas la tecla Z

Listo!! abrás salido rápidamente del editor vim y se habrán guardado los cambios.

Wow! me parece hiperinteresante… espero poder practicar mucho para agarrar bien el hilo y sacarle toda la partida de este nuevo conocimiento!

Buen video, muy claro en la explicación.

Por si alguien quiere tunear mejor vim aca les dejo un proyecto para generar la configuracion de vim que posiblemente se adapte a lo que necesitas.

Vim puede ser un gran IDE su asi se quiere.

Bootsrap for vim

También podemos ir al home con copiar simplemente

cd

para cambiar el color de la pantalla a azul light.
presiona la tecla esc
:color blue
y podemos tene un background mas amigable para trabajar (puedes escojer diferentes schemes) aqui hay unos ejemplos:

https://mediatemple.net/community/products/grid/204644480/enabling-vi-syntax-colors

por favor cambia el color de la pantalla es muy dificil ver lo que escribes.

Si usas nvim puedes usar init.vim para la configuración y plug para instalar plugins

Para el que quiera intentar con neovim les dejo mi configuraci’on que hace que se vea casi como Vs Code

syntax on                         " Sintaxis está activa

set number                        " Muestra la numeración
set mouse=a                       " Activa el Mouse
set numberwidth=1
set clipboard=unnamed             " Habilita copiar y dejarlo en clipboard
syntax enable                     " Habilita la sintaxis de color
set showcmd                       " Muestra los comandos que ejecuto
set showmatch                     " Resalta los corchetes
set ruler                         " Muestre los números de línea y columna del cursor.
set encoding=utf-8                " Codificacion de caracteres en español.

set sw=2                          " Cambia los tab por espacios y los coloca de a 2
set autoindent                    " Mantendrá la identación actual en la siguiente línea
set smartindent                   "Aplica identacion de acuerdo al lenguaje
set tabstop=2                     "Indica cuántos espacios tiene una tabulación
set shiftwidth=2                  "Indica el nº de espacios para una indentación
set softtabstop=2
set expandtab                     " Agrega caracteres en lugar de Tab cuando presionemos tabular

set relativenumber                " Muestra la numeración relativa
set laststatus=2                  " Barra de estados siempre visible
set noshowmode                    " No muesta los modos INSERT VISUAL NORMAL en la barra de estado (ya lo muestra la barra de estado)
set spelllang=en,es               " Corrector ortográfico ingles español
set cursorline                    " Resalta la linea actual Subrrayandola
set scrolloff=5                   " Al desplazarse, mantenga el cursor
                                  " 5 líneas debajo de la parte superior y 5 líneas
                                  " encima de la parte inferior de la pantalla 

set completeopt=noinsert,menuone,noselect " *PRUEBA modifica el comportamiento del menú de autocompletar para comportarse más como un IDE
set title                         " Muestra el titulo del archivo
set wildmenu                      " Monta un menu avanzado para situaciones de autocompletado
set t_Co=256                      "Soporte para el set de colores de 256

" Configuraciones para coc

set hidden " TextEdit might fail if hidden is not set.
" Having longer updatetime (default is 4000 ms = 4 s) leads to noticeable
" delays and poor user experience.
set updatetime=300
" Don't pass messages to |ins-completion-menu|.
set shortmess+=c


" INSTALACIONES DE PLUGINS
call plug#begin('~/.config/neovim/plugged') " ~/.config/neovim/plugged Es donde se va a instalar los plugins

" Theme gruvbox
Plug 'morhetz/gruvbox'

" Status bar
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'

" Colores en los parentisis
Plug 'luochen1990/rainbow'

" Cerrar llaves, parentesis, corchetes, etc
Plug 'jiangmiao/auto-pairs'

"arbol de archivos
Plug 'preservim/nerdtree'

" Resaltador de sintaxis
Plug 'sheerun/vim-polyglot'

" Iconos para cuando este navegando por la barra de archivos en Nerd-tree
Plug 'ryanoasis/vim-devicons'

" Coc para autocompletado.
Plug 'neoclide/coc.nvim', {'branch': 'release'}

" Plug para saltar dentro del texto a las diferentes coincidendias
Plug 'easymotion/vim-easymotion'

" El plug que te ayuda a hacer commit, pull, push, etc sin que tengas que salir del archivo que estas modificando
" Plug 'tpope/vim-fugitive'

" Multicursor vim-visual-multi

" Uso Básico:
"    seleccionar palabras con Ctrl-N (como Ctrl-d en Sublime Text/VS Code)
"    crear cursores verticalmente con Ctrl-Abajo/Ctrl-Arriba
"    seleccione un carácter a la vez con Mayúsculas-Flechas
"    presione n/N para obtener la ocurrencia siguiente/anterior
"    presione [/] para seleccionar el cursor siguiente/anterior
"    presione q para omitir la actual y obtener la siguiente ocurrencia
"    presione Q para eliminar el cursor/selección actual
"    iniciar el modo de inserción con i,a,I,A

"Dos modos principales:
    
"    en el modo de cursor, los comandos funcionan como lo harían en el modo normal
"    en modo extendido, los comandos funcionan como lo harían en modo visual
"    presione Tab para cambiar entre el modo «cursor» y «extender»
"    La mayoría de los comandos vim funcionan como se esperaba (movimientos, r para reemplazar caracteres, ~ para cambiar mayúsculas y minúsculas, etc.). Además puedes:
"    
"    ejecutar macros/ex/comandos normales en los cursores
"    alinear cursores
"    transponer selecciones
"    agregue patrones con expresiones regulares o desde el modo visual
"
""    https://github.com/mg979/vim-visual-multi

Plug 'mg979/vim-visual-multi', {'branch': 'master'}
call plug#end()


" Configuración para el temas de colores gruvbox

colorscheme gruvbox
let g:gruvbox_contrast = 'hard'
let g:gruvbox_contrast_dark = 'hard'
let g:gruvbox_hls_cursor = 'yellow'
let g:gruvbox_termcolors=256

" Colores en los parentisis configuracion de plugins rainbow
let g:rainbow_active = 1        "set to 0 if you want to enable it later via :RainbowToggle

" Theme barra de estados ( github.com/vim-airline/vim-airline-themes
let g:airline_theme= 'gruvbox'

" Configuracion de Airline
if !exists('g:airline_symbols')
  let g:airline_symbols = {}
endif

" Cargar fuente Powerline y símbolos (ver nota)
let g:airline_powerline_fonts = 1
let g:airline#extensions#tabline#enabled = 1  " Mostrar buffers abiertos (como pestañas)  
let g:airline#extensions#tabline#buffer_idx_mode = 1
let g:airline#extensions#tabline#fnamemod = ':t'  " Mostrar sólo el nombre del archivo
let g:airline#extensions#tabline#left_sep = ''
let g:airline#extensions#tabline#left_alt_sep = ''
let g:airline#extensions#tabline#right_sep = ''
let g:airline#extensions#tabline#right_alt_sep = ''
let g:airline#extensions#tabline#formatter = 'default'

" unicode symbols
let g:airline_left_sep = '»'
let g:airline_left_sep = '▶'
let g:airline_right_sep = '«'
let g:airline_right_sep = '◀'
let g:airline_symbols.crypt = '🔒'
let g:airline_symbols.linenr = '␊'
let g:airline_symbols.linenr = '
'
let g:airline_symbols.linenr = '¶'
let g:airline_symbols.maxlinenr = '☰'
let g:airline_symbols.maxlinenr = ''
let g:airline_symbols.branch = '⎇'
let g:airline_symbols.paste = 'ρ'
let g:airline_symbols.paste = 'Þ'
let g:airline_symbols.paste = '∥'
let g:airline_symbols.spell = 'Ꞩ'
let g:airline_symbols.notexists = '∄'
let g:airline_symbols.whitespace = 'Ξ'

" Configuración de coc-vim
let g:coc_global_extensions = ['coc-angular', 'coc-tsserver', 'coc-css', 'coc-cssmodules', 'coc-eslint', 'coc-emmet', 'coc-clangd', 'coc-pyright', 'coc-python', 'coc-prettier', 'coc-json', 'coc-git', 'coc-html', 'coc-blade', 'coc-sql', 'coc-tailwindcss', 'coc-xml']

" configuracion de nerdtree

let NERDTreeQuitOnOpen=1 " Cierra automaticamente el NerdTree

" Atajos de teclado

let mapleader=" " "Desigan la letra leader (Lider) tecla espacio

" Mapa de atajos
" Espacio + s y seguido de 2 letras para saltar dentro del texto
map <Leader>s <Plug>(easymotion-s2)
nmap <F2> :NERDTreeToggle<CR>"nmap (modo NORMAL) para el modo normal F2
nmap <C-s> :w <CR> "Ctrl+s guardar archivos

Saludos y buena suerte

por favor cambien los colores del editor para facilitar la lectura

Creo que hay un problema con el tamaño de imagen del video, yo veo los cursos en la tv cpn el Tvcast pero este curso en especifico no se ve bien alli, los comandos no se ven del todo en la tv se ven como de 5 px la fuente a de ser por la terminal .

Si quieren dominar vim y conocer las ventajas de este editor les recomiendo que revisen este post:
https://stsewd.dev/es/posts/neovim-installation-configuration/

Es la mejora de vim, pero te ayudar a entender y manejar vim.
psdta: Es igualmente de un ecuatoriano 😃

Hay otra implementación de vi, que es un fork de vim que mejora un poco; se llama “Neovim” (Que es el que yo uso) y es un poco más cómodo, con ciertas funcionalidades

Pueden salir y guardar de Vim con :x

Les dejo mi configuracion de Neovim:
UltiRequiem/UltiVim

Bash scripting es como en el Dockerfile y/o docker-compose.yml cuando escribes
RUN command no? Es lo que entendi.

El profesor es bueno, pero tiene que quitarse la mala costumbre de decir “El tema” en cada frase porque resulta un poco confuso.

La idea básica de generar programas en bash es poder ejecutar múltiples comandos de forma secuencial en muchas ocasiones para automatizar una tarea en especifico. Estos comandos son colocados en un archivo de texto simple de manera secuencial para poder ejecutarlos a posterioridad en una terminal por el usuario.

Resumen: bash -v = cat.

Apuntes:

¿Qué es el bash scripting?

La idea básica de bash scripting o programación en Shell es poder ejecutar múltiples comandos de forma secuencial para automatizar una tarea en específico.

Estos comandos son colocados en un archivo de texto simple y ejecutados en un terminal por el usuario.

Super interesante lo que podemos llegar a crear en la Bash

que bacan, algo que necesita, los respaldos en Postgres! bien!

genial

Mi aporte es compartir la configuración para el editor vim

estimado profesor ? porque ingresar con el signo de dolar $home ???

Genial…!!!

las configuraciones que establescamos en el archivo .vimrc en el directorio home de un usuario solo afectaran a dicho usuario para establecer configuraciones a nivel general en vim debemos modificar el archivo _vimrc que esta en el directorio de instalación del programa vim

en mi caso no me deja crear el archivo ? .vimrc ?? no me deja grabar me sale este mensaje ?

cant open file for writing ?

set autoindent no ident, con set autoident me tiraba un error.

Por si a alguien no pudo abrir al ejecutar:
vim .vimrc
debe instalar nuevamente el vim
sudo ge-install vim

CORRECCCION al aporte anterior:
sudo get-install vim

Recurso para la configuración del editor vim:

https://vimconfig.com/

Les recomiendo mucho la terminal portable cmder!

también par ubicarte en tu path de usuario, puedes hacerlo con cd ~/

La idea básica de Bash scripting o programación en shell es poder ejecutar múltiples comandos de forma secuencial para automatizar una tarea en específico
Un archivo .vimrc podremos configurar de mejor manera nuestro editor VIM.
Configurar VIM
$vim .vimrc // Creamos el archivo
Dentro del archivo escribimos las siguientes lineas
set showmode
set autoident
set tabstop=4
set expandtab
syntax on
Para guardar el archivos pulsamos la telca de los dos punto “:” y escribimos lo siguiente.
:wq
Listo

Muy interesante aprender a automatizar procesos.

guía de vim
Neovim como un IDE (mi configuracion de Neovim)

mi configuracion de vim

set showmode 
set autoindent
set tabstop=4
set expandtab
syntax on
set number
set mouse=a
set numberwidth=1
set clipboard=unnamed
syntax enable
set showcmd
set ruler
set encoding=utf-8
set showmatch
set sw=2
set relativenumber
set laststatus=2
let mapleader=" "
nmap <Leader>w :w<CR>
nmap <Leader>q :q<CR>
inoremap jk <Esc>
inoremap kj <Esc>
vnoremap jk <Esc>
vnoremap kj <Esc>

Explica demasiado mal, hay lagún otro curso de Platzi más reciente que explique de nuevo todo el contenido?

Hay que tener en cuenta que el profe en el vídeo escribe autoident, y para que funcione es autoindent (por eso al profe no se le colorea).

¡Saludos!