![](
Primeros pasos
¿Qué es la terminal?
Opcional: Instalar WSL - usa Linux dentro de Windows
Aprendiendo a caminar en la terminal
Manipulando archivos y directorios
Explorando el contenido de nuestros archivos
¿Qué es un comando?
Wildcards
Empezando a correr
Redirecciones: cómo funciona la shell
Redirecciones: pipe operator
Encadenando comandos: operadores de control
Cómo se manejan los permisos
Modificando permisos en la terminal
Cómo configurar variables de entorno
Comandos de búsqueda
Usando el comando grep
Utilidades de la terminal
Utilidades de red
Comprimiendo archivos tar y zip
Manejo de procesos
Procesos en foreground y background
Editores de texto en la terminal
Personalizar la terminal de comandos
Despedida
Nunca pares de hackear
¡Es tu turno: crea un tutorial!
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
No se trata de lo que quieres comprar, sino de quién quieres ser. Aprovecha el precio especial.
Antes: $249
Paga en 4 cuotas sin intereses
Termina en:
Enrique Devars
Las variables de entorno son útiles cuando necesitamos que cierta información prevalezca para poder trabajar más rápido o necesitamos guardar información para no tener que recordarla constantemente.
En linux hay varias variables de entorno que ya están preestablecidas, para verlas desde la consola es tan simple como usar el comando seguido de la variable de entorno.
Por cierto, todas las variables de entorno se mandan a llamar con un signo de peso por delante, de lo contrario se interpretará como un comando.
| Variable | Contenido | | --- | --- | | HOME | Indica el home del usuario | | PATH | Indica las direcciones de donde están los binarios que usa el sistema | | BASH_VERSION | Indica la versión del bash que estás utilizando | | SHELL | Dirección de la shell que estás utilizando |
Hay muchas más, pero estas son las que te pueden interesar. Por cierto, por convención las variables de entorno se crean en mayúsculas.
En el home de tu usuario debe haber un archivo oculto llamado ".bashrc", lo puedes ver ejecutando el comando ls -la
la opción -a
es de all.
ls -la
Ábrelo utilizando el comando code .bashrc
, si tienes instalado VS Code esto te mostrará el documento en el editor. Si estás en WSL y no te funciona, ve a la cmd, ejecuta el comando wsl
y vuélvelo a intentar desde ahí.
Cuando lo abras ten cuidado con lo que tocas, podrías dañar la shell, pero desde ahí puedes crear una variable de entorno, por ejemplo, como yo estoy usando WSL, voy a crear una variable de entorno que me de la ruta de mi carpeta en Windows sin que tenga que escribir toda la ruta.
Ahora guardo el archivo, reinicio la terminal y ejecuto:
cd $WINDOWS
Pero se puede hacer mejor porque también puedo crear un alias que no se borre cuando cierre la terminal.
Ahora solo tengo que ejecutar cc
para ir a mi carpeta en Windows sin necesidad de escribir la variable de entorno.
Ahora crea las variables o alias que necesites para ser más eficiente tu trabajo, por ejemplo, podrías crear un alias que ejecute VS Code y lo abra en la carpeta que requieres.
Contribución creada con los aportes de: Miguel Gonzalez.
Aportes 299
Preguntas 162
![](
Notas 😄
Variables de entorno.
ln -s <ruta> <Nombre>
Esto para hacer link simbólicos, que son un tipo de archivo que hacen referencia a otro lugar, básicamente es un acceso directo desde terminal 📁.printenv
nos muestra todas las variables de entorno que tenemos configuradas 📔.echo $<variables>
esto nos sirve para imprimir una variable en particular.HOME
es nuestro HOME de usuario 😆.PATH
tiene todas las rutas donde se encuentran los binarios en los que se ejecuta nuestro sistema. 🛣️ Hay varios manejadores de paquetes para binarios, pero no todas las veces se agregan a PATH, y se deben agregar a mano..bashrc
que es donde está nuestra configuración de Bash. Lo podemos abrir con VS Code para modificarlo. En este archivo podemos crear alias.alias <nombre>="comando"
para crear un alias útil 👀.code <archivo>
para abrir un archivo de texto en VS Code desde la terminal.PLATZI_MESSAGE='Hola amigos"
.PATH=$PATH:<ruta>
, guardamos, cargamos bash en la terminal, y listo 😄.☝ Las variables de entorno son muy útiles cuando quieres compartir un script que usa dichas variables de entorno. Por ejemplo, ¿alguna vez has usado variables de entorno en proyectos de NodeJS, PHP, Vue, React? Esas que se guardan en archivos .env
, aquí en la terminal son muy similares, puedes tener tus propias variables de entorno, y puedes crear un script para la terminal que haga uso de ellas!
.
Claro, si solo nos enfocamos al uso exclusivo de la terminal podemos sacarle mucho provecho también, por ejemplo, podemos saber cuántas rutas tiene nuestra variable PATH
:
echo $PATH
Esto por ejemplo, sirve para debuguear cuando algún comando no funcione, podemos mirar si la ruta de su archvio está dentro de PATH
😄
Como aporte por si quieren ver las rutas de $PATH mas fácil o legibles en formato de lista pueden usar echo $PATH | tr : \\n
y de esta manera se vera cada ruta en forma de lista
con lo visto hasta el momento cree un mensaje cada vez que se inicia la terminal o se llama al bash en su defecto jajaja
🐱💻 Las variables de entorno permiten pasar información de forma simple, de una aplicación a otra.
Go to platzi!
alias ch='google-chrome'
alias platzi='ch https://platzi.com/home'
Si de casualidad instalaron oh-my-zsh pueden abrir en VSC los archivos
code .bashrc .zshrc
y si entran en el archivo .bashrc y buscan los alias que hay alli y no les funcionan es porque deben copiarlos y ponerlos en el archivo .zshrc
para cambiar de shell ya que si instalan oh-my-zsh, bash sigue funcionando solo deben escribir en su consola
bash o zsh
para cambiar entre shells
Un pequeño resumen
ln -s --> Nos permite a crear enlaces simbólicos que en simples palabras son accesos directos con un nombre descriptivo o fácil de aprender, esto nos ayuda a acceder a ubicaciones dentro de nuestro sistema sin tener que usar rutas absolutas, esta es su estructura básica:
ls -s ubicaciónAbsoluta nombreDescriptivo
printenv --> Nos imprime todas las variables de entorno configuradas en nuestro sistema.
Si deseamos el contenido de alguna variable de entorno utilizamos el comando echo $nombreVaraible
Si deseamos configurar nuestras variables de entorno debemos acceder al archivo oculto de nuestra Shell, para esto usaremos el comando ls -la y debemos encontrar uno de estos archivos (dependiendo tu SO):
Linux --> .bashrc
Mac --> .zshrc
Generalmente este archivo no está creado en Mac, para esto debemos crearlo, les dejo el siguiente vinculo en donde se habla de su creación (archivo zshrc)
Tras haber modificado o creado las variables de entorno, debemos guardar los cambios(dentro del editor de texto), luego debemos decirle a nuestra terminal que lea las variables de entorno y pueda actualizar (si es que existen cambios), para esto usamos el comando bash y listo, ya podemos usar nuestras variables de entorno, saludos a tod@s!!!
Les comparto mis apuntes, espero que le sirva. 😄
Nuestra shell o línea de comandos tiene una configuración, esta y diferentes valores del sistema se pueden acceder a través de las variables de entorno es super útil poder manejarlas. Hay variables de entornos primordiales incluso para la configuración del sistema, podemos tener variables de entorno para saber la ubicación del home, los binarios, etc.
Son un tipo de archivo que hacen referencia a un lugar, es como un acceso directo desde la terminal.
Lo podemos crear así:
$ ln -s [ruta] [nombre del link simbólico]
s
: Es de simbólico.
Ejemplo
lrwxrwxrwx 1 galeedgutierrez galeedgutierrez 12 Aug 4 20:19 documentosLink -> ./documentos
Aquí vemos que el link simbólico “docuementosLink” apunta a ./documentos.
También vemos que antes de los permisos vemos una l
.
Todos los permisos que vemos son permisos dummy o permisos que no tienen valor. Los links simbólicos como tal no tienen permisos.
printenv
Este nos muestra todas las variables de entorno que tenemos configuradas
Podemos usar la siguiente sintaxis.
$ echo $[variable de entorno]
$HOME
Es la ruta de nuestro home de nuestro usuario. Podemos usarla para ir al home.
$ cd $HOME
Esto es útil por si queremos configurar una ruta en específica que vayamos a usar en algún programa o script, etc.
$PATH
PATH tiene toda la ruta en donde se encuentran los binarios que ejecuta nuestro sistema.
Debemos buscar el archivo .bashrc
en el home de nuestra terminal, este archivo es donde se mantienen la configuración del bash. En caso de ZSH lo vamos a encontrar en .zshrc
.
Podemos modificar estos archivos desde un editor de texto como ser VSCode o con los que ya vienen en la terminal como VIM o NANO.
Podemos modificar o crear usando alias
.
alias l='ls -lh'
MENSAJE_NUEVO="Mensaje"
A esto lo podemos invocar usando el comando echo
, tal como $HOME o $PATH.
$ echo $MENSAJE_NUEVO
Normalmente cuando estamos instalando nuevos binarios hay diferentes manejadores de paquetes, es el que se encarga de traer un repositorio e instalar algún binario dentro de la máquina, esto lo podemos hacer con el sistema de paquetes nativos en Linux es apt
, etc.
Lo que hacen estos es traer un repositorio, instalar algún binario, pero no todas las veces las rutas donde están estos binarios hay que agregarlos a la variable PATH.
Una vez dentro de la terminal realizamos lo siguiente
PATH=$PATH:nuevaRutaDelBinario
Cuando ponemos $PATH
quiere decir que use lo que ya tiene y con :
le estamos diciendo que agregue la nueva ruta del binario…
Es importante que tengamos cuidado con los alias y como los asignamos, no hay que crear alias de comandos que ya existen.
$ alias cd='rm -rf' #Es muy peligroso
También les comparto apuntes del mismo curso pero del 2019.
El hecho que podamos ejecutar comandos sin necesidad de colocar su ruta completa, esto es posible porque tenemos algo llamado variables de entorno.
Es una definición global a la que todos los procesos tienen acceso y específicamente el sistema operativo tiene acceso a esa variable para tomar más información sobre lo que está pasando a su alrededor.
El $PATH o ruta en esta variable se almacena todas las rutas en la que el intérprete de comandos, la terminal, tiene que ir a buscar los archivos que pueden ser ejecutables.
Si usamos el comando:
$ echo $PATH
Podemos ver los lugares donde podemos encontrar los archivos ejecutables.
Todos los comandos que utilizamos tienen que estar definidos en la variable $PATH.
$
: Es una forma de pedirle al intérprete de comandos que expanda el contenido de esa variable, esto sucede con todas las variables de entorno.
Todos los procesos tiene acceso a las variables de entorno, tanto para leerlas como para cambiarlas.
Esto se puede hacer para un comando en particular o para toda la sesión.
Para asignarla para toda la sesión usamos el comando:
$ export VAR=valor
Podemos definir el valor solamente para el próximo comando que vamos a ejecutar, no es usual, pero lo podemos usar para sobreescribir una variable que ya teníamos definida y no queremos alterarla para todos los comandos sino para una ejecución en particular.
$ VAR=valor comando
VAR
: El nombre de la variable.
valor
: Es lo que queramos que exista.
Para poder usar un software que no viene en nuestro sistema, lo que necesitamos es instalarlo para poder usarlo.
Una instalación implica descargar el programa por lo que tenemos que saber de donde sacarlo, cuando lo tengamos procedemos a realizar la descarga, después tenemos que copiar los archivos del programa a los lugares en los que sea necesario y por último hacer algunas configuraciones para que el programa pueda correr.
Son programas que se encargan de realizar todas las tareas por nosotros y se llaman paquetes de software.
Así como existen los paquetes también existen otros programas que son los administradores de paquetes, estos conocen de donde realizar la descarga que otros paquetes ya tenemos instalados y como configurara todo de tal manera que no genere conflictos, se encarga de resolver los problemas de dependencias.
Según el sistema operativo vamos a poder usar diferentes manejadores de paquetes. Son archivos que ya son ejecutables.
Se utiliza en distribuciones de Linux basadas en Debian.
install
: Es uno de los comandos que tiene incorporado apt
.
$ apt install nombreDelProgramaAInstalar
Se utiliza en las distribuciones de SUSE.
Es el comando universal, es un poco más rústico.
En caso de no poder instalar debemos usar sudo
.
Es un navegador de internet desde la línea de comandos.
$ lynx paginaWeb
Son librerías escritas en el mismo lenguaje que vamos a utilizar.
Cada lenguaje propone su manejador de paquetes.
Se usa con Python.
Para ejecutar archivos en Python necesitamos ciertas librerías como pandas.
$ sudo pip install pandas
Es para PHP.
Este es para NODE.JS.
Estos pretenden ser más genéricos con los que es posible instalar paquetes binarios o propios de un lenguaje.
Para usarlos hay que instalarlos primero.
Esta clase tiene la particularidad de que se siguen muchas procesos y el profesor da muchas instrucciones de muchas herramientas y codigos que podemos usar, pero en ningún momento se detiene a pensar en las personas que estan empezando a desarrollar su conocimiento y sus bases de programación por lo cual se hace muy dificil seguir la dinamica, ya que no se entiende que se esta haciendo, por que se esta haciendo y se pierde el hilo conductor
Por algún motivo al momento de ejecutar el comando code .bashrc
en la terminal me sale esto.
Así que ingresé desde la terminal de Visual Studio code.
En este punto he decidido volver al principio del curso y tomarlo enserio ,no me sirve tener el certificado y la cabeza hueca.
Si revisan el archivo .bashrc se van a encontrar con esto:
Lo que dice es que es preferible añadir nuestros alias personalizados en un archivo .bash_aliases
Para visualizar todos los alias que existen en nuestro sistema, basta con escribir alias
en la terminal y nos mostrara todos los alias existentes.
Tambien es posible saber si un comando en especifico es un alias o no. Con el comando type
podremos saber esto, por ejemplo, yo tengo un alias para neovim
$ type vim
vim is an alias for nvim
Cuando el comando es un comando nativo o una función, type
nos lo dira.
$ type git
git is /usr/bin/git
$ type my_function
my_function is a shell function from /home/user/.zshrc
Para usuarios con WSL, hice un alias
que permiten ingresar a https://platzi.com/home directamente, y da un pequeño saludo:
alias platzi='cmd.exe /c start chrome https://platzi.com/home && clear && echo "Saludos Platzinauta" | lolcat --animate'
Hola a todos,para aquellos a los que el comando code .
no les funciona en el WSL, les cuento que busqué en varios post de Google y en uno encontré lo que me funcionó y que fue la solución más fácil.
Abran una ventana de Windows PowerShell en modo administrador y ejecuten el comando wsl --update
Cuando termine la actualización del WSL (la cual puede demorar algunos minutos) ejecuten el comando en la ventana del PowerShell wsl --shutdown
para que se apague la WSL y se apliquen los cambios.
Abran nuevamente la wsl y listo, ya el comando code .
en la WSL les debería funcionar, bueno, al menos a mi me funcionó.
Saludos
Link simbólicos:
Son acceso directo desde la terminal
Para usarlo escribimos: Ln -s dirección (nombre del atajo)
Se crea un documento especial (se puede observar con ls -l)
Ejemplo: ln -s Documents/Dev Desarrollo (para crear)
Definición de variable de entorno:
Las variables de entorno nos sirve para acceder a las configuraciones de tu terminal y del sistema.
Las variables de entorno hacen referencia a archivos, directorios y funciones comunes del sistema cuya ruta concreta puede variar, pero que otros programas necesitan poder conocer.
Se pueden configurar, manipular y crear.
Comando printenv
Comando echo {contenido}
Imprime la información en contenido
En caso de variable de entorno: echo $variable
variable de entorno $HOME
Guarda la ruta del usuario
-echo $HOME // imprimir la ruta
-cd $HOME // ir a la ruta
variable de entorno $PATH
Guarda todas las direcciones de los binarios que ejecuta nuestro sistema.
Cuando ejecutamos node, usa esta variable para buscar el binario.
Esta variable es importante al instalar paquetes desde un gesto (como npm) pues muchas veces nos pedirá el paquete agregar la ruta del binario del paquete a la variable $PATH
.bashrc
Es el archivo donde se encuentra la configuración de nuestro bash.
Se puede modificar para modificar las variables de entorno.
De no existir debes crear lo junto al archivo .bash_profile
Para crear comandos tipo alias
alias l=‘ls -lh’
Para crear variables de entorno
MAXI_MESSAGE=“HOLA MUNDA”
Para añadir nuevas rutas a la variable de entorno $PATH debemos concatenar la informacion previamente guardada con la nueva que queremos agregar:
PATH=$PATH:/home/user/bin
La terminal tiene ciertas configuraciones, esta y diferentes valores del sistema se pueden acceder con variables de entorno. En ocasiones podremos crear alias pero esta vez serán de forma permanente.
Los links simbólicos hacen referencia a un lugar.
ln -s ruta nombreLink
De esta forma creamos un acceso directo a la ruta que escribimos con el nombre que mandamos como parámetro. En este caso ahora si escribimos
cd nombreLink
Este nos mandara a la ruta que le asignamos en el comando.
printenv
Este comando nos muestra todas las variables de entorno que existen en nuestro sistema operativo.
echo $nombre
Este comando nos muestra el valor de la variable que seleccionemos. Al igual que ya tengamos el nombre y su valor, podremos utilizarlo para algún programa o para usar comandos.
code .bashrc
Este comando nos abrirá visual studio code y nos abrirá el archivo .bashrc que es donde tenemos guardada todas nuestras variables de entorno y donde podemos modificarlas.
Si queremos crear una variable de entorno, necesitamos poner el nombre en mayúsculas y la sentencia que queramos entre " ".
Si queremos modificar una variable de entorno y concatenarla con su valor original, utilizamos
PATH=$PATH:/home/codevars/bin
NO HAGAS ALIAS DE COMANDOS EXISTENTES, ES PELIGROSO
Hola chicos y chicas, aqui les dejo un excelente video de las VARIABLES DE ENTORNO para reforzar lo que nos explico el profesor en esta clase, espero y les sea útil.
https://www.youtube.com/watch?v=ocdlXH9jAjA
Es increible el valor de esta clase , aqui les dejo unos alias que hice :
<alias nf="neofetch"
alias fx='firefox'
alias platzi='fx https://platzi.com/home'
alias yt='fx https://www.youtube.com/'
alias sup='sudo apt install update && sudo apt install upgrade && autoremove'
alias py="cd /home/bitecode/Bryan/python"
alias work="cd /home/bitecode/Bryan && code python"
alias bryan="cd /home/bitecode/Bryan">
Buenas, estoy haciendo el curso con una WSL con distribución Ubuntu, casi en todas las clases venia teniendo algún problema ya sea con un comando, una extensión y siempre que me fije a muchos les pasaba lo mismo por eso me puse a investigar y encontré un mini tutorial de VS que explica paso a paso todo, desde este archivo pude solventar todos los problemas, espero les sirva =D
https://code.visualstudio.com/docs/remote/wsl-tutorial
Hola a todos!
En mi caso no encontraba el archivo .bashrc así que buscando encontré que estaba oculto y para poderlo visualizar usé:
ls -la ~/ | more
Y problema solucionado…
.
Realmente no es que quede permanente si se guarda en el archivo de configuración de nuestra terminal. Lo que pasa es que este archivo es ejecutado cada vez que iniciamos la shell. Por esta razón siempre que iniciamos la terminal estos comandos serán ejecutados, se crearán los alias y estarán disponibles para nuestro uso 😉😊.
Me generaba error al abrir el archivo con VS en WSL2, se soluciono reiniciando
Estos son mis alias:
# Actualizando el sistema
alias update="sudo apt update && sudo apt upgrade"
# ¿Qué día es hoy?
alias time="date; cal"
# Muestra todos los archivos de mayor a menor tamaño, tambien los archivos ocultos y nos muestra los permisos, y por último, añade / al final de cada directorio.
alias content="ls -lFAS"
Aquí hay una lista de alias que pueden llegar a ser útiles
https://www.cyberciti.biz/tips/bash-aliases-mac-centos-linux-unix.html
Para los que esten usando WSL, y no les quiera reconocer el comando code a mi me funciono lo siguiente:
sudo apt-get update
sudo apt-get upgrade
cabe destacar que a mi me funcionaba normal desde el terminal de windows, pero queria abrir VSC desde ubuntu, con el codigo anterior me funciono.
Si usas Mac y te aparece en la terminal el mensaje “command not found”. Abre VSC, ve a la opción View y luego a Command Palette, te aparecerá un recuadro, aquí buscas el sgte y se instalará, finalmente cierra/abre la terminal y usa Code.
Jugando con la terminal
Acabo de crear un alias, espero les sirva (la verdad se me hace my largo hacer todo ese proceso de entrar carpeta por carpeta y más si lo que busco son mis archivos). 😒por fa si lo ven util sigan paso a paso. 👌
code.bashrc
(si están en mac .zshrc ) 😘ahora se abrirá VisualStudio si no, lo abren manualmente. 🤷♂️
#esto lo hice para acortar tiempo y lo puedo modificar.
alias mipc='cd /mnt/c/Users/AquiPonenElNonmbreDeSuUsuario'
hasta aqui no mas.
ojo que la comilla final es necesaria, no está de adorno. 😘
Si no saben como encontrar el nombre de su usuario la ruta en su computador Windows es:C:\Userssolo copien y peguen en la barra de buscar.(si el nombre de su usuario en el pc tiene espacios(CELIA CRUZ CORTEZ) se debe poner así:“CELIA CRUZ CORTEZ” y finalizar con la comilla sola —> ’ quedando así la ruta:
alias mipc='cd /mnt/c/Users/"CELIA CRUZ CORTEZ"'
(cuidado con las mayúsculas y minúsculas)
bash
(esto para actualizar y si, es muy importante hacerlo) 😒
5. esribimos mipc y ahora disfruten su nueva ruta.si les gusto demen un corazón no sean tacaños. 😢
Dos alias que hacen de mi vida más fácil son:
alias step1='sudo apt-get update'
alias step2='sudo apt-get upgrade'
me ahorran unos cuantos movimientos de dedos y son el pan de cada día
En el 6:20 dices: “que te recomiendo que lo tengas, porque ya hiciste el curso de prework”, creo que Platzi debería dejar claro qué asume el instructor que uno ya ha hecho de cursos. A mí no me afecta, pero a otros que llegaron a este curso les puede frenar en su aprendizaje
Se pueden hacer cosas muy interesantes con esta información
Hola alguien me podrá ayudar cómo accedo o ejecuto el comando ‘code .bashrc’ desde WSL?
Acabo de crear mi primer alias
En este caso no es muy relevante puesto que la ruta es solo 1 carpeta mas.
Pero aprendido esto podré crear mis alias para los comandos de Git que después de tantas veces ingresarlos se agradecería tener un atajo personalizado.
Ustedes tienen alias de git que deseen compartir como los colocaron? o si existe algún estándar 😅
.
Algunas variables de entorno en el archivo de conf de la shell tienen la palabra export frente a ellas. ¿Por qué? Esto se debe a que son variables que se usan en programas o scripts externos a la shell. Si no tienen la palabra export, entonces si se intentan usar en estos scripts o programas, no se podría obtener sus valores.
.
Por ejemplo:
$ MYVAR="value"
$ echo ${MYVAR}
value
$ echo 'echo ${MYVAR}' > echo.sh
$ chmod +x echo.sh
$ ./echo.sh
$ export MYVAR="value"
$ ./echo.sh
value
Lo que está sucediendo es lo siguiente:
.
.
Se debe tener en cuenta que en este ejercicio se creó la variable MYVAR desde la shell, lo cual la hará volátil, es decir, una vez se cierre esa sesión de la consola, la variable MYVAR dejará de existir.
.
Este ejemplo lo saqué de esta respuesta, gracias a su autor.
Probando los alias. 💪
Si a alguno no le funciona la terminal de Ubuntu cuando tratan de abrir VSCode con code . traten de usar otra terminal, yo use Windows Terminal y desde ahi se se hizo el update automaticamente del acceso a vscode.
Ya luego pude regresar a la terminal de ubuntu y pude abrir tranquilamente vsc, igual desde la windows terminal claro.
Los links simbólicos son como darle un alias a una direccion en la computadora para acceder a ella más rápido. Por ejemplo: ln -s Documents/Dev Desarrollo
. -> ln -s para decir que es un link simbólico, luego la ruta a donde iremos y finalmente el nombre que tendrá este link simbólico. Los links simbólicos no tienen permisos.
printenv
nos mostrará las variables de entorno de nuestra computadora.echo $NombreDeVariable
nos mostrará una variable de entorno específica.La variable de entorno PATH tiene las rutas de todos los binarios que se ejecutan en nuestro sistema. Esta variables es MUY IMPORTANTE.
En el archivo “.bashrc” tenemos guardadas las configuraciones de la terminal. Si es una terminal de ZSH, estarán en el archivo “.zsgrc”
Un alias muy útil para evitar escribir git push origin main
es simplemente alias gpom='git push origin main'
.
Para crear un archivo simbolico escribimos:
ln -s Documents/Dev Desarrollo
Para ver nuestras variables de entorno usamos printenv
Veamos algunas variables de entorno:
$HOME
: Nos muestra la ruta de nuestro home.$PATH
: Vamos a ver nuestro path de nuestro.En windows, para imprimir variables de entrono usamos
set variable de entorno
ejm
set HOME
es equivalente a echo $HOME
Si estan en MAC y quieren ver el .bash, solo tienen que editar el .bash_profile
Pequeño resumen de lo que entendí a nivel no tan técnico.
▶Los alias escritos directamente en la terminal solo funcionaran durante esa sesión, si reinicias, cierras o recargas la terminal estos alias desaparecerán.
▶Los alias asignados en el archivo .bashrc o .zshrc (ubicado y oculto en $home) no se borran al cerrar o reiniciar la terminal.
▶$PATH es la ruta donde se buscan binarios/archivos ejecutables para otros programas, todos los comandos que hemos ejecutado hasta ahora se encuentran en alguna carpeta de $PATH (min 4:14).
En el ejemplo que del profesor, la carpeta vacía BIN no se usara hasta el momento donde se instale algún programa en esa carpeta (min 8:35), cuando un comando no funcione correctamente o un programa necesite buscar funciones en otra ruta que no este incluido en $PATH podemos asignar nuevas direcciones con las instrucciones del minuto (9:02)
PATH=$PATH:/HOME/carpetaDeTuEleccion/
si te aparece el error “su: Authentication failure”, entonces para acceder a root debes usar
sudo root
Un alias puede ser tan largo como se requiera y utilizar redirecciones y operadores de ejecución. El siguiente ejemplo que usa los parametros que se le pueden dar a ls
, muestra todos los archivos (a), en una lista larga (l), con tamaños de archivo facilmente entendibles (h) y al final de cada elemento le coloca una clasificación (/ para carpetas, *para archivos, etc.) y tambien “ordena” o muestra primero los directorios, luego los archivos, luego los enlaces y después otros tipos de recursos que pueden existir en el sistema de archivos de linux (los más usados); al final muestra el total de uso en disco (tamaño total de archivos), todo gracias a que se enlaza el resultado con el comando grep.
alias dir="ls -ahlF | grep '^d'; ls -ahlF | grep '^-'; ls -ahlF | grep '^l'; ls -ahlF | grep '^c'; ls -ahlF | grep '^b'; ls -ahlF | grep '^s'; ls -ahlF | grep '^p'; ls -ahlF | grep '^total'"
Se repite el comando ls
tantas veces como tipos de recursos existen (archivos, directorios, enlaces, etc), pues grep imprime SOLO el resultado de las lineas que comienzan (^) por la letra de cada tipo de recurso, por ello hay que hacerlo, en secuencia por cada tipo de recurso, incluyendo la palabra total al final en una ultima busqueda.
Igualmente no es muy util utilizar este comando, se pierden los colores que da el comando ls, pero sobre todo porque la busqueda en una carpeta con muchos archivos o posiblemente en algunas utilizando el parametro -r sea una busqueda demasiado larga.
Estos son algunos alias que utilice:
alias instalar='sudo apt-get install'
alias actualizar='sudo apt update; sudo apt upgrade'
Si a alguien no le funciona el comando code a pesar de tener instalado Visual Studio Code, simplemente cierre la terminal y vuelvalo a abrir.
Gracias a esta clase, decidí crear un comando, un poco peculiar…
Para aquellos que estén usando la terminal de windows y les marque un error al ejecutar “code” (no existe) intenten abrir ubuntu directamente desde su terminal en lugar de la de windows e intenten ejecutar el comando code.
Una vez hecho esto ya podrán volver a la terminal de windows y ejecutar el comando sin problemas
Siento que hacen falta cosas por explicar, sobre todo para usuarios de WSL, hay cosas diferentes y hay temas que necesitan mayor desarrollo
Les dejo mis apuntes de esta clase partida en 2 partes.
Para los que no podían abrir VSC desde la terminal, sigan los pasos que les muestro en la imagen! Saludos
¿Qué son las variables de entorno en Linux?
Las variables de entorno son valores dinámicos que afectan los programas o procesos que se ejecutan en un servidor Linux en este caso. Las variables de entorno se pueden crear, editar, guardar y eliminar.
Las variables de entorno de Linux, son marcadores de posición para la información almacenada dentro del sistema que pasa datos a los programas iniciados en shells (intérpretes de comando) o sub-shells.
El entorno se implementa como cadenas que representan pares clave-valor. Si se transmiten múltiples valores, estos suelen separarse mediante símbolos de dos puntos (😃. Normalmente, cada par tendrá un aspecto similar a este:
Les cuento que estaba intentando abrir el visual studio code con
<code .baschrc>
y me abría el visual studio pero con el archivo vacío, después de averiguar por todo lado encontré que la solución era resetear, 😑 😑 pues eso hice, resetee la laptop y listo, ahora si abre.
No se la causa pero si la solución jajaja.
El problema de editar el archivo .bashrc
con la finalidad de editar una variable de entorno como el ejemplo PATH=$PATH:/home/usuario/bin
es que cada vez que se reinicie la bash se le va a agregar la misma ruta al final. Solo es una observación, ésta fue una poderosísima clase.
Comando para crear un link simbolico
ln -s <ruta> <nombre-link>
If you use WSL, and it is not working, the code command. You can use, the next steps:
cat << EOF >> ~/.bash_profile
# Add Visual Studio Code (code)
export PATH="\$PATH:/Applications/Visual Studio Code.app/Contents/Resources/app/bin"
EOF
Nota: Que pena mi inglés, pero estoy tratando de manejar más el inglés técnico, para mejorar en esta habilidad para mi trabajo.
manejador de paquetes es el que instala programas por ejemplo apt
Un atajo bastante simple pero útil a mí parecer es el comando:
$ cd ~
No importa en que path estemos, nos lleva al directorio Home.
$ cd /
Esto nos lleva directamente a la raíz ( root ) del sistema.
Vale también añadir las funciones. Son similares al alias, pero permiten meter variables (por ejemplo, si quieres hacer find y rm pero sin meter todo el rato -exec… o -delete).
# función en .bashrc para hallar y remover, útil cuando
# uno usa wsl para borrar zoneid. El nombre viene de
# findremove
fndrmv() {
find . -name $1 -exec rm -ir {} \;
}
Ese es un ejemplo, pero puedes hacerlas más complejas. Vale aclarar que hay otra forma de hacerlas, pero bueno. Lo importante es que se sepa que $1 es la variable que insertas.
Tratando de replicar lo que un compañero hizo modificando el comando bash para que imprima un dragón el ejecutarlo como se muestra en la imagen:
Antes hagan una copia del archivo de configuración para que no les pasé lo que a mi que dejaron de funcionar el comando bash jajaja:
Después de esto editar el archivo:
Agregar esta línea y guardar los cambios:
ejecutar nuevamente el comando bash para que se hagan efecivos los cambios:
Listo ya tienen su bash personalizado 😃
Muy buena explicación. como recomendación personal, les aconsejo que utilicen los alías de los comandos raros, aquellos que pueden ser muy difíciles de aprenderse. Eso les evitara de estar buscando cada cierto tiempo en el historial de comandos.
Las variables de entorno son definiciones globales o valores globales a los que todos los procesos de un sistema tiene acceso, por ejemplo, la variable PATH es accesible para todos los procesos del sistema, debido a que en esta variable se almacenan todas las rutas de los ejecutables.
Para consultar el contenido de una variable de entorno se debe anteponer el simbolo pesos ($). Ejemplo: echo $PATH.
Se pueden asignar variables de entorno para un comando en particular o para toda la sesión en que nos encontremos.
La asignación de variables de entorno para toda la sesión, se realiza asi: export VAR=valor, donde VAR es el nombre de la variable que estamos creando y valor es lo que queremos que exista en esta variable.
para asignación de variables locales, simplemente se debe asignar un valor a una variable simple. Esto se utiliza por ejemplo, cuando queremos asignar un valor a una variable que solo sea valido para la ejecución de un comando, sin afectar el valor global que ya tengo asignado. Para eso, podemos hacerlo asi: VAR=valor comando.
Es un definición global a la que todos los procesos tienen acceso. esta toma mas información de lo que se este typeando.
Ejemplo: echo $PATH = se encuentran todos los comandos ejecutables
Asignación de las variables de entorno
export: Este comando se utiliza para asignar a toda la sesión
Ejemplo: export MI_VAR = david
, si luego escribimos echo $MI_VAR se mostrará mauro en la terminal. (Este permanecerá miestras dure mi sesión)
var: Este comando solo asigna el valor para el proximo proceso que se va a ejecutar. este no es muy usual.
Ejemplo: MI_VAR=/home php env.php
Variables de entorno
Son variables que cargamos en el código de la shell y que conviven de manera permanente para su acceso
Comandos útiles
Links simbólicos
Así personalice mi terminal para que al abrirla siempre me aparezca rick
Las variables de entorno son una herramienta que nos va a facilitar mucho la vida en nuestro día a día, bien sea para tomar variables de entorno para nuestras aplicaciones como para crear las nuestras. De igual forma nos permite crear alias permanentes que nos ayudaran a simplificar nuestro trabajo con los comandos mas comunes que usemos.
Les comparto mi alias favorito
alias up='sudo apt update && sudo apt upgrade -y'
Hola Platzinautas después de ejecutar el comando code. bashrc me abre visual studio code pero el bash me sale vacio.
alguno sabe ¿ qué puedo hacer para resolver este problema ?
encontre este video https://www.youtube.com/watch?v=c6IRQBqAw0I si este tiene la solución les estare comentando en caso de que alguien tenga mi misma duda
A quienes no les esté abriendo VSCode desde la terminal, hay mucho aportes en el chat, sin embargo intenten primero cambiar la configuración de la terminal si es que tienen “Ubuntu” como perfil predeterminado, cambien la selección al otro “Ubuntu” (en mi caso tenía la del pingüino y cambié a la del circulo naranja).
Abran nuevamente la terminal y listo!.
Me funcionó, espero le sea útil a alguien más.
Se complementa con la lectura que está en los recursos, ahí se suelen ver otro ejemplos más prácticos además de su explicación.
al instalar el code y ejecutar el comando code .bashrc me carga en blanco
¿Para qué nos sirven las variables de entorno?
¿Qué podemos entender como un link simbólico?
¿Cómo podemos crear un link simbólico?
¿Un link simbólico da todos los permisos a los diferentes roles que podemos tener en Linux?
¿Para qué nos sirve el comando printenv?
¿Cómo podemos imprimir el contenido de una variable de entorno desde la terminal?
¿Los nombres de las variables de entorno están en mayúscula?
¿Qué variables de entorno importantes deberíamos de conocer?
¿Para qué nos sirve la variable de entorno HOME?
¿Para qué nos sirve la variable de entorno PATH?
¿Por qué la variable de entorno PATH es importante?
¿Para qué nos sirve la variable de entorno BASH_VERSION?
¿Para qué nos sirve la variable de entorno SHELL?
¿En dónde podemos configurar nuestras variables de entorno?
¿Cómo podemos abrir los archivos bashrc o zshrc con Visual Studio Code?
¿Qué cosas podemos hacer dentro el archivo bashrc o zshrc a parte de configurar nuestras variables de entorno?
¿Cómo sería la sintaxis para crear una variable de entorno desde los archivos bashrc o zshrc?
NOMBRE-VARIABLE=“valor”
¿Qué debemos hacer cuando editamos los archivos bashrc o zshrc?
¿Cómo cargamos la bash?
¿Cómo podemos agregar contenido a la variable de entorno PATH?
¿Deberíamos crear alias de comandos que ya existen?
Excelente curso, fue muy bueno
Como estoy usando WSL, cree este alias para que en el futuro al querer acceder a Windows, pues me evite algunas tecleadas jajajaja
ln -s [direccion] [NombreDelLinkSimbolico] -> de esta manera creamos los links simbolicos. En resumen, un link simbolico es un acceso directo a la direccion que especificamos al momento de ejecutar/crear el link simbolico. Los permisos que tienen los link simbolicos son permisos dummy o permisos sin valor ya que los links simbolicos no tienen valor
printenv -> nos muestra todas las variable de entorno que tenemos configuradas
echo $[NombreDeLaVariable] -> Nos imprime la direccion de la variable de entorno
echo $PATH -> PATH tiene todas las rutas de donde se encuentran los binarios donde se ejecutan en nuestros sistemas
~/.bashrc -> En este archivo se encuentran nuestran configuraciones de bash
~/.zshrc -> Si estamos utilizando zsh, los archivos de configuracion se encuentran en este archivo
Es curioso que después de la clase anterior me metí a buscar algún curso de servidores linux y en esta clase lo sugieren.
Ok, en este momento dejo de tomar el curso y busco en otro lado información sobre la terminal, aquí estoy muy pérdido 🙂
Los alias que mas voy a usar
alias l='ls -alh'
alias c='clear'
alias pp='cd /home/matiaschiodo/personalProjects'
alias rm='rm -ir'
Espero sirva:
Hice esta modificación en el archivo .bashrc
alias xampp=‘cd /opt/lampp
sudo ./manager-linux-x64.run’
Esto hace que se abra la interzás gráfica de xampp
El framework Laravel maneja un archivo .env donde se colocan las variables de entornos.
Para wsl el .bashrc que hay que abrir es el de el home, es deicr pueden ir al home y ahi si abrir el archivo:
cd $HOME //viene por defecto
code .bashrc
Y ahi si editan el archivo.
Para volver simplemente hacen:
cd $OLDPWD //viene por defecto
Y ven los resultados
//Esto es lo que me funciono a mi
Para aquellos que no pudieron abrir VSC desde la temrinal en wsl. la pueden abrir con el siguiente comando.
<wslview .bashrc>
Les comparto mi primer alias de buenas practicas n_n
alias upup='echo "UPDATE!!!" && sudo apt update && echo "UPGRADE!!!!!" && sudo apt upgrade'
Algunos Alias que agregue
.
alias gp="git push origin main"
alias act="sudo apt update"
alias act2="sudo apt update"
alias prende="sudo /opt/lampp/lampp start"
alias apaga="sudo /opt/lampp/lampp stop"
Los últimos dos son para iniciar y detener xampp
Mi alias 😎
alias animo="cowsay \"Sé que tú puedes lograrlo :3\" | lolcat"
Comando printenv te muetra todas las varianbles de entorno de tu equipo que tenemos configuradas
Impimir variables de entorno con echo $
Variable de todas las rutas que ejecuta nuestro sistema es con echo $PATH
´PATH=$PATH: nueva ruta… se agrega una nueva ruta de binarios
Nunca crean alias de comandos que ya existen
En windows, es necesario apenas salgan de WSL cambiar devolverse hasta home y cambiar el usuario para que no les quede por defecto en root
comando printenv nos muestra las variables de entorno del sistema
En mi caso no me funciono el code .bashrc y lo que hice fue abrir la terminal desde visual studio y ejecutar el mismo comando
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?