No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Cómo configurar variables de entorno

12/21
Recursos

Aportes 183

Preguntas 106

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

☝ 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 😄

Notas 😄
Variables de entorno.

  • La termina tiene una configuración con diferentes valores, que se pueden acceder con las variables de entorno. Estas son muy importantes para la configuración general del sistema 🚒.
  • Podemos guardar alias para que se queden de manera permanente con esto 😉.
  • 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.
  • Algunas variables son:
    • 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.
  • En HOME, existe un archivo que se llama .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.
  • Para modificar o crear una variable de entorno, se hace, por ejemplo PLATZI_MESSAGE='Hola amigos".
  • Para agregar una ruta a la variable PATH ponemos en .bashrc PATH=$PATH:<ruta>, guardamos, cargamos bash en la terminal, y listo 😄.
  • Es muuuy importante tener cuidado con los alias, nunca hay que nombrar un alias como un comando ya existente 😟.

![](

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

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

🐱‍💻 Las variables de entorno permiten pasar información de forma simple, de una aplicación a otra.

Si a alguien mas le pasa que cuando abren la terminal, el directorio inical siempre es su usuario pero de Windows y para ir la ruta home de Linux deben usar el comando cd cada que la abren, les comparto la solucion que me ayudo mucho:
.
Configure su distribución WSL para que se inicie en el directorio de inicio ~ cuando se abra la terminal
.

En el curso de Python se crea un alias para activar el entorno virtual:

Relacionado con Git, el siguiente artículo puede ser de ayuda: Improve your productivity using git and bash aliases

Cuando el profe menciona lo de la broma. 😈

Un pequeño aporte:

30 prácticos alias para tu Bash

De todo y para todos… 😉😉😉

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

Go to platzi!

alias ch='google-chrome'
alias platzi='ch https://platzi.com/home'

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 [email protected]!!!

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

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.

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.

Links simbólicos

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.

Permisos dummy

Todos los permisos que vemos son permisos dummy o permisos que no tienen valor. Los links simbólicos como tal no tienen permisos.

Variables de entorno

printenv

Este nos muestra todas las variables de entorno que tenemos configuradas

Imprimir variables de entorno

Podemos usar la siguiente sintaxis.

$ echo $[variable de entorno]

Variables que tenemos que conocer

$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.

Modificar/crear variables de entorno

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.

Modificar

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'

Crear

MENSAJE_NUEVO="Mensaje"

A esto lo podemos invocar usando el comando echo, tal como $HOME o $PATH.

$ echo $MENSAJE_NUEVO

Manejadores de paquetes

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.

Agregar una nueva ruta de binarios a 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…

Alias

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.

Clase: Qué son y cómo se utilizan las variables de entorno

El hecho que podamos ejecutar comandos sin necesidad de colocar su ruta completa, esto es posible porque tenemos algo llamado variables de entorno.

Variable 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.

$PATH

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.

Asignación de las variables de entorno

Esto se puede hacer para un comando en particular o para toda la sesión.

Asignación global

Para asignarla para toda la sesión usamos el comando:

$ export VAR=valor

Asignación particular

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.

Clase: Sistemas de manejo de paquetes

Instalar software

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.

Paquetes de software

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.

Paquetes binarios

Según el sistema operativo vamos a poder usar diferentes manejadores de paquetes. Son archivos que ya son ejecutables.

apt

Se utiliza en distribuciones de Linux basadas en Debian.

install: Es uno de los comandos que tiene incorporado apt.

$ apt install nombreDelProgramaAInstalar

zypper

Se utiliza en las distribuciones de SUSE.

rpm

Es el comando universal, es un poco más rústico.

En caso de no poder instalar debemos usar sudo.

lynx

Es un navegador de internet desde la línea de comandos.

$ lynx paginaWeb

Paquetes de lenguajes

Son librerías escritas en el mismo lenguaje que vamos a utilizar.

Cada lenguaje propone su manejador de paquetes.

pip

Se usa con Python.

Para ejecutar archivos en Python necesitamos ciertas librerías como pandas.

$ sudo pip install pandas

composer

Es para PHP.

npm

Este es para NODE.JS.

Otros

Estos pretenden ser más genéricos con los que es posible instalar paquetes binarios o propios de un lenguaje.

  • conda
  • homebrew

Para usarlos hay que instalarlos primero.

En este punto he decidido volver al principio del curso y tomarlo enserio ,no me sirve tener el certificado y la cabeza hueca.

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

  • Lista todas las variables de entorno

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

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"> 

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' 

Me generaba error al abrir el archivo con VS en WSL2, se soluciono reiniciando

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.

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"

¿Por qué al guardar un alias en el .bashrc queda permanente?

.
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 😉😊.

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 😅

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

Aquí hay una lista de alias que pueden llegar a ser útiles
https://www.cyberciti.biz/tips/bash-aliases-mac-centos-linux-unix.html

Se pueden hacer cosas muy interesantes con esta información

En windows, para imprimir variables de entrono usamos

set variable de entorno

ejm

set HOME
es equivalente a echo $HOME

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

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

Hola alguien me podrá ayudar cómo accedo o ejecuto el comando ‘code .bashrc’ desde WSL?

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…

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.

12. Variables de entorno:

Para crear un archivo simbolico escribimos:

  1. ln -s Documents/Dev Desarrollo

Para ver nuestras variables de entorno usamos printenv

Veamos algunas variables de entorno:

  1. $HOME : Nos muestra la ruta de nuestro home.
  2. $PATH : Vamos a ver nuestro path de nuestro.

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:

  • Instead of running the command above, you can manually add VS Code to your path, to do so run the following commands:
cat << EOF >> ~/.bash_profile
  • Then add:
# Add Visual Studio Code (code)
export PATH="\$PATH:/Applications/Visual Studio Code.app/Contents/Resources/app/bin"
EOF
  • Start a new terminal to pick up your .bash_profile changes.
    And now, it is working.

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.


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'.

manejador de paquetes es el que instala programas por ejemplo apt

Hola ! ! !
Quiero dejar un ejercicio que hice que me ayudo a preacticar lo que aprendimos

El ejercicio es el siguiente:
Crea una carpeta 📂 llamada curso-de-terminal, en la misma linea de instrucciones crea un archivo llamado variables-de-entorno y mueve el archivo en la carpeta anterior. Despues mete todas las variables de entorno que tienes (hazlo con printenv) y metelas en ese archivo

Los requisitos son:

  • Hazlo en una sola linea
  • Usa redirecciones
  • Usa Operadoes de control
  • Usa Los comandos basicos

NO OLVIDES MANDARME TUS REPUESTAS 😉

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

  • Normalmente se escribe en mayúsculas una variable de entorno creada por el usuario
  • Se puede concatenar el valor de una variable
  • PATH=$PATH:/rutanueva/subdirectorio
  • Los dos puntos ( : ) son los encargados de concatenar

Comandos útiles

  • printenv: muestra todas las variables de entorno
  • echo $nombreVariable: imprime la variable
  • $PATH: muestra los paths de binarios

Links simbólicos

  • ln -s Directorio/Subdirectorio LinkSimbolico
  • Los links simbólicos son como accesos directos

Si estan en MAC y quieren ver el .bash, solo tienen que editar el .bash_profile

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

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

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

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

Jugando con la terminal

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'

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

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

Les dejo mis apuntes de esta clase partida en 2 partes.


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

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.

cuando abres un terminal en linux, por defecto estás en tu home /home/pepito/
podemos verlo así:

$ pwd
/home/pepito

(pwd= print work directory)

y si tecleo un comando, lo cual llama a un programa ejecutable (un binario), como por ejemplo «ls» que lista los directorios y archivos que hay en ese directorio, ¿cómo sabe el sistema operativo dónde está ese binario para ejecutarlo?. La respuesta es, gracias al PATH.

autor: https://rootsudo.wordpress.com/2014/04/06/el-path-la-ruta-de-linux-variables-de-entorno/

comando printenv nos muestra las variables de entorno del sistema

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.

No se como hacer, me dice, Estas tratando de usar Visual Studio Code como super usuario y no es recomendable

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.

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

Para que se vean los cambios de nuestras variables, se tiene que recargar el bash con el comando: bash

Para ver en forma de lista:

echo $PATH | tr : \n

Variables de entorno

links simbólicos hacen referencia a un lugar, se puede ver como un acceso directo desde la terminal. No tienen permisos.

Printenv - nos muestra nuestras variables de entorno que esta configuradas
echo $HOME imprimir una variable de entorno
echo $PATH tiene las rutas, ver nuestros binarios
PATH=$PATH:/home/codevars/bin - agregar una nueva ruta

Dentro del .bashcr o .zshcr también se pueden hacer aliases con permanencia.


Me ocurrió que cuando trataba de escribir el mensaje guardado en PLATZI_MESSAGE solo me aparecía un salto de línea y no escribía nada, el problema era que no había guardado en VS Code, solo tenía que presionar CTRL + S en VS Code y recargar en la terminal para que se guardaran los cambios.

Link simbólico
ln -s ruta/ruta nombre_link_simbolico

No tiene permisos en si, solo permisos dummies.

• printenv, para mostrar las variables de entorno
• echo $variable, para imprimir las variables de entorno en la terminal
	○ HOME
	○ PATH
• Para modificar las variables de entorno en WSL, se debe modificar el archivos .bashrc. En WSL - Ubuntu, solo se debe ir a VSC y abrir el archivo desde allí ubicándonos en la carpeta home/user/ y se podrá acceder al archivo.
• Para crear una variable de entorno se agrega al archivo .bsahrc, este debe ser en MAYÚSCULA.
• También se pueden crear alias, alias avenv='source venv/bin/activate'

bash, ejecutar antes de para que se tenga en cuenta los cambios realizados.

Export

.
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:
.

  1. En este caso se crea la variable MYVAR con el valor “value”, se imprime desde la shell MYVAR y el resultado es “value”.
  2. Posteriormente se crea un script que hace exactamente lo mismo, intenta imprimir en pantalla el valor de MYVAR.
  3. Se le dan permisos para ejecutar el script, y se ejecuta.
  4. Como MYVAR no es una variable exportada, al ser llamada desde un script externo a la shell entonces este no puede acceder a su valor y por eso imprime vacío.
  5. Se exporta MYVAR y se le asigna un valor de “value”.
  6. Al volver a correr el script, este ya puede acceder a MYVAR e imprime su valor correctamente.

.
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.

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.

Links simbolicos

son links que podemos configurar como si fueran accesos directos en la terminal. No tienen permisos como tal.

ln -s Documents/Dev Desarrollo //este link simbolico Desarrollo nos permitira acceder directamente a la carpeta sin escribir su path absoluto.

Variables de entorno

las variables de entorno se utilizan para almacenar valores que seran utilizados por los scripts de la shell.

printenv //imprime las variables de entorno que tenemos en el sistema
$[nombre de variable] //imprime la variable especifica que indiquemos.

El archivo .bashrc

Es el archivo de configuracion de bash, donde tendremos nuestras variables de entorno, y podremos modificarlas o crear nuevas.

Aquellos que nos les corre el comando ‘code’ en MacOS

1ro. Deben arrastar studio code a aplicaiones

2do. Presionan control+command+P en studio code y escriben shell command y seleccionan la opcion de instalar

Variable $PATH

Cuando invocamos un comando en Linux como tree (que muestra el árbol de archivos de un directorio) estamos ejecutando un programa almacenado en alguna parte. Este programa es localizado por Linux en diferentes posibles ubicaciones de forma automática. Para saber la ubicación de un comando utilizamos otro comando llamado which.

which code
/usr/bin/tree

La forma en la que Linux encuentra estos comandos es a través de la variable de entorno PATH. Esta variable almacena una lista de directorios en los cuales Linux debe buscar un comando para poder ejecutarlo.

Una variable de entorno es una variable que es definida en todo el entorno de ejecución de la shell. Para ver una lista de variables de entorno podemos utilizar el comando env o printenv. Entre las variables de entorno que existen la que nos interesa en este caso es la variable PATH.

Nota:

la verdad no estoy entendiendo bien este curso, es que ando tonto o que?? no me funcionan los comandos que usa el profesor y su metodo de borrar todos los codigos tmbn hace que dificulte tomar notas rapidas, incluso tengo desconfigurado el teclado y no se por que 😐

Para los que no podían abrir VSC desde la terminal, sigan los pasos que les muestro en la imagen! Saludos

Ya me urgía este curso, conforme avanzo quedo más sorprendido de lo poderoso que puede resultar trabajar en la terminal.
💻

Para los que tienen Mac y no encuentran el archivo zshrc
investigue en internet y parece ser que esta no viene creada por defecto y hay que hacerla… Aun no lo intento yo pero si alguien sabe mas al respecto o tiene mas informacion por favor compartanla.

muy interesante, sobre todo el tema de los alias para simplicar

Fabulosa clase, cada vez aprendo más.

Como principiante, pienso que el uso de ‘alias’ debe ser solo para datos especificos que requieran de links en su valor, o alguna ruta dinámica o estática. Porque, para digitar código, estaríamos dejando a un lado el uso constante de tal código, y así lo estaríamos perdiendo de nuestra memoria, por falta de uso y de práctica. Para gente avanzada, esto sería de tremenda ayuda, para reducir el tiempo de tipeo.

Las variables de entorno son como variables (cadenas de caracteres) de un programa propios del Sistema Operativo. Cualquier programa las puede utilizar, y los usuarios las pueden modificar.
Normalmente, esos valores hacen referencia a archivos, directorios y funciones comunes del sistema cuya ruta concreta puede variar, pero que otros programas necesitan poder conocer.
En la mayoría de los sistemas operativos, la ubicación de algunas bibliotecas o de los archivos ejecutables del sistema más importantes puede variar según la instalación. Por eso es posible, para un programa dado, remitirse a una ubicación basada en las variables de entorno que definen estos datos. Eso es porque %USERPROFILE% es una variable de entorno: es decir, una cadena de texto que sistemas operativos como Windows, Linux o Mac usan para almacenar valores que pueden variar de un equipo a otro -o, como en este caso, de un usuario a otro- pero que, sin embargo, necesitan de un modo unificado de acceder al mismo. Hay muchas más variables de entorno además de %USERPROFILE% :
• %APPDATA% - Remite a la carpeta oculta para datos de programa, dentro de la carpeta de usuario. En Windows 10 la ruta por defecto es *“C:\Users\NombreDeUsuario\AppData\Roaming”.
• %COMMONPROGRAMFILES% - Remite a la carpeta donde los programas almacenan archivos comunes. En Windows 10 la ruta por defecto es “C:\Program Files\Common Files”.
• %PROGRAMFILES% - Remite a la carpeta donde se instalan los programas. En Windows 10 la ruta por defecto es “C:\Program Files”.
• %WINDIR% - Remite a la carpeta donde se instala Windows. En Windows 10 la ruta por defecto es “C:\Windows”.
Como se dijo las las variables de entorno no siempre equivalen a rutas de directorios: pueden remitir a otra clase de información. Así, %TIME% devuelve la hora actual del sistema, %OS% la versión del sistema operativo y %PATHEXT% la lista de extensiones de archivo consideradas ejecutables (lo común es que la lista incluya, además de los .EXE, archivos como los .BAT, los .COM, .CMD, .JS., .JSE, .MSC, .VBE, .VBS, .WSF, .WSH, etc). Pero quizá la variable de entorno más utilizada es %PATH% porque cada vez que tecleamos un comando, el sistema revisa las carpetas contenidas en la variable %PATH% para comprobar si algún archivo ejecutable coincide con el mismo.

Resumen en Notion
https://n9.cl/xx0ez

Información resumida de esta clase
#EstudiantesDePlatzi

  • Un link simbólico lo podemos ver como un acceso directo desde la terminal

  • Para ver las variables de entorno que tenemos configuradas usamos el comando printenv

  • Path es una variable de entorno que me muestra la ubicación de nuestros archivos binarios

  • Importante tener maestría con la terminal

  • Si vamos a usar alias debemos tener cuidado con no asignar un nombre de algún comando que ya exista

Comprueben lo siguiente:

joshy@DESKTOP-JOSHY:~$ cd ~
joshy@DESKTOP-JOSHY:~$ echo $HOME
/home/joshy
joshy@DESKTOP-JOSHY:~$ su root
Password:
root@DESKTOP-JOSHY:/home/joshy# echo $HOME
/root
root@DESKTOP-JOSHY:/home/joshy#

A esto se refiere con “entorno”. Cuando estamos con un usuario normal, $HOME apunta a ese usuario, pero, cuando cambiamos a modo root, $HOME ahora apunta al usuario root. Esto es debido a que root tiene otro archivo .bashrc con valores diferente a nuestro usuario.

La versión en ingles de las variables de entorno en la Wikipedia es mas completa que en español.
https://en.wikipedia.org/wiki/Environment_variable