que puedo orden instalar hacer entrar encontró encontro directorio descargar con cygwin

orden - que puedo hacer con cygwin



¿Cómo puedo cambiar mi carpeta de inicio de Cygwin después de la instalación? (7)

Cygwin 1.7.34+

Para quienes usan Cygwin 1.7.34 o superior, Cygwin admite la configuración de cómo recuperar el directorio de inicio, el shell de inicio de sesión y la información de gecos en /etc/nsswitch.conf . Esto se detalla en la sección de la Guía del usuario de Cygwin:

Si ha creado previamente un /etc/passwd o /etc/group , querrá eliminarlos y configurar Cygwin utilizando el nuevo modelo de seguridad de Windows para las asignaciones de POSIX.

[[ -f /etc/passwd ]] && mv /etc/passwd /etc/passwd.bak [[ -f /etc/group ]] && mv /etc/group /etc/group.bak

La /etc/nsswitch.conf db_home: del archivo /etc/nsswitch.conf define cómo Cygwin recupera el directorio de inicio del usuario. La configuración predeterminada para db_home: es

db_home: /home/%U

Entonces, de forma predeterminada, Cygwin simplemente establece el directorio de inicio en /home/$USERNAME . Puede cambiar eso para apuntar a cualquier otra ruta personalizada que desee. Los caracteres comodín admitidos son:

  • %u El nombre de usuario de Cygwin (eso es u en minúscula).
  • %U El nombre de usuario de Windows (eso es U mayúscula).
  • %D dominio de Windows en estilo NetBIOS.
  • %H Directorio de inicio de Windows en estilo POSIX. Tenga en cuenta que, para el ajuste db_home: esto solo tiene sentido justo después de la barra anterior, como en db_home: /%H/cygwin
  • %_ Como el espacio y los caracteres TAB se usan para separar los esquemas, un espacio en el nombre del archivo se debe dar como %_ (es un guión bajo).
  • %% Un personaje por ciento.

En lugar de una ruta, puede especificar uno de los cuatro esquemas de ruta nombrados que están predefinidos.

  1. windows El directorio de inicio del usuario está configurado en el mismo directorio que se usa como directorio de inicio de Windows, generalmente algo en la línea de %USERPROFILE% o C:/Users/$USERNAME . Por supuesto, el directorio de Windows se convierte a estilo POSIX por Cygwin.

  2. Solo cygwin AD: el directorio de inicio del usuario se establece en la ruta POSIX proporcionada en el atributo cygwinHome de la clase auxiliar cygwinUser. Ver también la sección llamada "El esquema cygwin" .

  3. unix AD only: el directorio de inicio del usuario se establece en la ruta POSIX dada en el atributo unixHomeDirectory de la clase auxiliar posixAccount. Ver también la sección llamada "El esquema de Unix" .

  4. desc El directorio desc usuario se establece en la ruta POSIX dada en la configuración home = "..." XML-like en el atributo de descripción del usuario en SAM o AD. Consulte la sección llamada "El esquema de descifrado" para obtener una descripción detallada.

Lo siguiente hará que el directorio de inicio del usuario en Cygwin sea el mismo que se usa para el directorio de inicio de Windows.

db_home: windows

Cygwin 1.7.33 o anterior

Para aquellos que usan Cygwin 1.7.33 o anterior, actualicen a la última versión de Cygwin y eliminen los archivos /etc/passwd y /etc/group previamente utilizados, luego vea los pasos anteriores.

De lo contrario, siga estos pasos anteriores más abajo.

En primer lugar, establezca una variable de entorno de Windows para HOME que apunte a su perfil de usuario:

  1. Sistema abierto en el panel de control
  2. En la pestaña Avanzado, haga clic en Variables de entorno (hacia abajo)
  3. En el área Variables de usuario, haga clic en "Nuevo ..."
  4. Para nombre de variable, ingrese HOME
  5. Para el valor de variable, ingrese %USERPROFILE%
  6. Haga clic en Aceptar en todos los cuadros de diálogo abiertos para aplicar esta nueva configuración

Ahora vamos a actualizar el /etc/passwd Cygwin /etc/passwd con la variable Windows %HOME% que acabamos de crear. Los inicios de sesión de Shell y los inicios de sesión remotos a través de ssh se basarán en /etc/passwd para indicarles la ubicación de la ruta $HOME del usuario.

En el indicador de comando Cygwin bash, escriba lo siguiente:

cp /etc/passwd /etc/passwd.bak mkpasswd -l -p $(cygpath -H) > /etc/passwd mkpasswd -d -p $(cygpath -H) >> /etc/passwd

El -d le dice a mkpasswd que incluya usuarios de DOMINIO, mientras que -l solo debe enviar usuarios de la máquina LOCAL. Esto es importante si está utilizando una PC en el trabajo donde la información del usuario se obtiene de un controlador de dominio de Windows.

Ahora, también puede hacer lo mismo para los grupos, aunque esto no es necesario a menos que use una computadora que sea parte de un Dominio de Windows. Cygwin lee información de grupo de las bases de datos de cuenta de Windows, pero puede agregar un /etc/group si su máquina a menudo está desconectada de su Controlador de dominio.

En el indicador de bash de Cygwin, escriba lo siguiente:

cp /etc/group /etc/group.bak mkgroup -l > /etc/group mkgroup -d >> /etc/group

Ahora, salga de Cygwin y vuelva a iniciarlo. Debería encontrar que su ruta HOME apunta a la misma ubicación que su perfil de usuario de Windows, es decir, /cygdrive/c/Users/username

Acabo de instalar Cygwin, y parece que el directorio de inicio en el indicador bash está en mi Z: unidad. No es donde yo quiero.

¿Cómo puedo cambiar esto?


Cambie su variable de entorno HOME.

en XP, haga clic con el botón derecho en Mi PC >> Propiedades >> Avanzado >> Variables de entorno >> Variables de usuario para >> [seleccione la variable INICIO] >> editar


Cygwin mount ahora es compatible con el método bind que le permite montar un directorio. Por lo tanto, puede simplemente agregar la siguiente línea a /etc/fstab , luego reinicie su shell:

c:/Users /home none bind 0 0


Hice algo bastante simple. No quería cambiar la variable de entorno de Windows 7. Así que edité directamente el archivo Cygwin.bat.

@echo off SETLOCAL set HOME=C:/path/to/home C: chdir C:/apps/cygwin/bin bash --login -i ENDLOCAL

Esto solo inicia el shell local con este directorio de inicio; eso es lo que yo quería No voy a acceder de forma remota a esto, así que esto funcionó para mí.


Me gustaría agregar una corrección / actualización al bit sobre $ HOME tomando precedencia. El directorio de inicio en / etc / passwd tiene prioridad sobre todo.

Soy un usuario de Cygwin desde hace mucho tiempo y acabo de hacer una instalación limpia de Windows 7 x64 y Cygwin V1.126. Me estaba volviendo loco tratando de descubrir por qué cada vez que ejecutaba ssh seguía obteniendo:

e:/>ssh foo.bar.com Could not create directory ''/home/dhaynes/.ssh''. The authenticity of host ''foo.bar.com (10.66.19.19)'' can''t be established. ...

Agregué la definición de HOME = c: / users / dhaynes en el entorno de Windows pero aún así traté de crear ''/ home / dhaynes''. Probé todas las combinaciones que pude, incluso estableciendo HOME en / cygdrive / c / users / dhaynes. Busqué el mensaje de error en Google, no pude encontrar nada, no pude encontrar nada en el sitio de cygwin. Uso cygwin desde cmd.exe, no bash.exe pero el problema estaba presente en ambos.

Finalmente me di cuenta de que el directorio de inicio en / etc / passwd estaba teniendo prioridad sobre la variable de entorno $ HOME. Simplemente volví a ejecutar ''mkpasswd -l> / etc / passwd'' y eso actualizó el directorio de inicio, ahora todo está bien con ssh.

Eso puede ser obvio para los tipos de Linux con experiencia en sysadmin, pero para aquellos de nosotros que usamos Windows principalmente es un poco oscuro.


Utilizo cwRsync (Cygwin + Rsync para Windows) donde cygwin viene empaquetado, y no pude encontrar / etc / passwd.

Y siguió diciendo

Could not create directory ''/home/username/.ssh''. ... Failed to add the host to the list of known hosts (/home/username/.ssh/known_hosts).

Así que escribí un archivo por lotes que cambió la variable HOME antes de ejecutar rsync. Algo como:

set HOME=. rsync /path1 user@host:/path2

Y viola! La carpeta .ssh apareció en el directorio de trabajo actual y rsync dejó de molestar con las huellas digitales de rsa.

Es una revisión rápida, pero luego debe cambiar HOME a una ubicación más segura.


Comenzando con Cygwin 1.7.34 , la forma recomendada de hacerlo es agregar una configuración de db_home personalizada a /etc/nsswitch.conf . Un deseo común al hacer esto es hacer que su directorio de inicio de Cygwin sea igual a su directorio de perfil de usuario de Windows. Esta configuración hará eso:

db_home: windows

O equivalente:

db_home: /%H

Necesita utilizar el último formulario si desea alguna variación en este esquema, como separar los archivos de inicio de su Cygwin en un subdirectorio de su directorio de perfil de usuario de Windows:

db_home: /%H/cygwin

Hay varios otros esquemas alternativos para la opción de windows más varios otros % símbolos que puede usar en lugar de %H o además de él. Consulte la descripción de la sintaxis de nsswitch.conf en la Guía del usuario de Cygwin para obtener más información.

Si instaló Cygwin antes de 1.7.34 o ejecutó su utilidad mkpasswd para que tenga un /etc/passwd , puede cambiar su directorio de inicio de Cygwin editando la entrada de su usuario en ese archivo. Su directorio principal es el penúltimo elemento en la línea de su usuario en /etc/passwd

Cualquiera que sea la forma en que lo haga, esto provoca que la variable de entorno HOME se establezca durante el inicio del shell.²

Consulte este elemento de Preguntas frecuentes para obtener más información sobre el tema.

Notas al pie:

  1. Considere mover /etc/passwd y /etc/group para usar el nuevo mecanismo SAM / AD en su lugar.

  2. Si bien es posible simplemente establecer %HOME% través del Panel de control, se desaconseja oficialmente . No solo invalida sin preaviso los mecanismos anteriores, no siempre funciona, como cuando se ejecutan scripts de shell a través de cron .