significa script que programacion espaƱol ejemplos comandos basicos linux bash home-directory

script - que significa en linux



Significado de tilde en Linux bash(no directorio de inicio) (8)

En primer lugar, sé que ~/ es el directorio de inicio. Al hacer clic en ~ o ~/ me lleva al directorio de inicio.

Sin embargo, cd ~X me lleva a un lugar especial, donde X parece ser cualquier cosa.

En bash, si presiono " cd ~ " y toco la pestaña, muestra un montón de posibles opciones ~X como ~mail y ~postgres y ~ssh . Ir a esas carpetas y hacer un pwd me muestra que estas carpetas no están en el directorio de inicio; están por todos lados.

No son alias. He comprobado. No son env. variables, o de lo contrario requerirían un $ .

¿Qué es establecer estos enlaces, y dónde puedo encontrar dónde se están estableciendo?


¿Son los directorios de inicio de los usuarios en /etc/passwd ? Los servicios como postgres, sendmail, apache, etc., crean usuarios del sistema que tienen directorios de inicio al igual que los usuarios normales.


En mi máquina, debido a la forma en que tengo las cosas configuradas, hago:

cd ~ # /work1/jleffler cd ~jleffler # /u/jleffler

El primero presta atención al valor de la variable de entorno $HOME ; Deliberadamente configuré mi $HOME en un sistema de archivos local en lugar de un sistema de archivos montado en NFS. El segundo lee del archivo de contraseñas (aproximadamente, NIS complica un poco las cosas) y descubre que el archivo de contraseñas dice que mi directorio personal es /u/jleffler y cambia a ese directorio.

Lo molesto es que la mayoría del software se comporta como arriba (y la especificación POSIX para el shell requiere este comportamiento). Uso algún software (y no tengo muchas opciones de usarlo) que trata la información del archivo de contraseñas como el valor actual de $ HOME, que es incorrecto.

Aplicando esto a la pregunta - como otros han señalado, '' cd ~x '' va al directorio de inicio del usuario ''x'', y más generalmente, cada vez que se hace una expansión de tilde, ~x significa el directorio de inicio del usuario ''x'' ( y es un error si el usuario ''x'' no existe).

Vale la pena mencionar que:

cd ~- # Change to previous directory ($OLDPWD) cd ~+ # Change to current directory ($PWD)

No puedo encontrar inmediatamente un uso para '' ~+ '', a menos que haga algunas cosas raras con enlaces simbólicos móviles en la ruta que conduce al directorio actual.

También puedes hacer:

cd -

Eso significa lo mismo que ~- .


Es posible que vea a los usuarios de OpenDirectory / ActiveDirectory / LDAP "automontados" en su directorio de inicio.

En * nix, ~ se resolverá en su directorio personal. Del mismo modo ~X se resolverá a ''usuario X''.

Similar a automount para directorios, OpenDirectory / ActiveDirectory / LDAP se usa en entornos corporativos / más grandes para automodear directorios de usuarios. Estos usuarios pueden ser personas reales o pueden ser cuentas de máquina creadas para proporcionar varias funciones.

Si escribe ~ Tab , verá una lista de los usuarios en su máquina.


Es una función de Bash llamada " expansión de tilde ". Es una función del shell, no del sistema operativo. Obtendrás un comportamiento diferente con csh, por ejemplo.

Para responder a su pregunta acerca de dónde proviene la información: su directorio base proviene de la variable $HOME (no importa lo que almacene allí), mientras que las casas de otros usuarios se recuperan en tiempo real utilizando getpwent() . Esta función generalmente es controlada por NSS ; por lo tanto, los valores predeterminados se eliminan de /etc/passwd , aunque se puede configurar para recuperar la información utilizando cualquier fuente deseada, como NIS, LDAP o una base de datos SQL.

La expansión de Tilde es más que una búsqueda en el directorio principal. Aquí hay un resumen:

~ $HOME ~fred (freds home dir) ~+ $PWD (same effect as ./) ~- $OLDPWD (your previous directory) ~1 `dirs +1` ~2 `dirs +2` ~-1 `dirs -1`

dirs y ~1 , ~-1 , etc., se utilizan junto con pushd y popd .


Esos son los directorios de inicio de los usuarios. Pruebe cd ~(your username) , por ejemplo.



Si usa autofs , la expansión podría provenir de /etc/auto.home (o similar para su distribución). Por ejemplo, mi /etc/auto.master ve así:

/home2 auto.home --timeout 60

y /etc/auto.home ve así:

mgalgs -rw,noquota,intr space:/space/mgalgs


esos son usuarios, revisa tu / etc / passwd

cd ~ nombre de usuario

te lleva al directorio de inicio de los usuarios