Ventanas.  virus  Cuadernos.  Internet.  oficina.  Utilidades.  Conductores

Sencillo y en general bueno. Solo aquí está la versión de Git, no es la última, al menos no todavía. Pero es suficiente para el trabajo diario con Git. Si miramos la versión, veremos:

$ git --versión
git versión 1.9.5.msysgit.0

Pero si de repente necesita algo más reciente, puede instalar Git desde los paquetes de Cygwin. Para hacer esto, por supuesto, debe instalar Cygwin. No hay nada complicado en esto. Vaya aquí y descargue el instalador. Esto es exactamente instalador, A no es una distribución. Ya que descarga todos los paquetes de la red. Y además, debe usarse para actualizar paquetes instalados o instalar otros nuevos.

Y así descargamos

Y ejecuta el instalador

Haz uno, dos, tres

En cualquier caso, si necesitas algo más adelante, puedes descargarlo e instalarlo. Como podemos ver la versión de Git en este paquete 2.1.4, que es claramente más reciente que 1.9.5. Aunque bajo Linux y Mac OS X 2.3.1 ya está disponible.

Por si acaso, daré un par de servidores más rápidos para descargar

Este es solo un cuento de hadas.

Bueno, eso está todo listo.

Arrancamos y vemos que a la primera arranca nos dicen dónde están Archivos de configuración:

La imagen de la derecha muestra dónde se encuentra el directorio de inicio del usuario. Esta es la carpeta de instalación (en mi caso C:\cigwin64), luego la carpeta hogar, entonces carpeta de nombre de usuario y ya contiene archivos de configuración .bashrc, .bash_perfil, .inputrc Y .perfil.

Toda la configuración del terminal se realiza en estos archivos. No lo describiré aquí, ya que este es un gran tema separado.

Solo notaré que la configuración principal de bash se realiza en el archivo .bash_perfil.

También se puede notar que el archivo de configuración de Git, .gitconfig, también se colocará en el directorio de inicio.

Además, configura apariencia Se puede acceder a la terminal haciendo clic en el icono de la terminal en la esquina superior izquierda y seleccionando Opciones.

Si necesitas alguno paquetes adicionales para Cygwin, puede buscarlos.

Después de todas las configuraciones, la ventana de mi terminal Cygwin se ve así. Y luego veamos la versión del Git instalado.

Bueno, aquí tenemos un Git completo. Ahora (rápidamente) probemos en un repositorio real.

Todo está funcionando.

PD Lo que vale la pena señalar nuevamente es que la configuración global y del sistema (global, sistema) de msysGit y Git instalado desde Cygwin se almacenan en diferentes lugares, y no interfieren ni se superponen entre sí de ninguna manera, en mi opinión esto es conveniente, ya que todas las herramientas de Windows intentan escribir su configuración en el archivo de configuración global.gitconfig y esto a veces puede crear inconvenientes y confusión.

Aquellos a quienes les gusta trabajar en una consola como la consola Linux pueden instalar Cygwin, un entorno similar a Unix donde estándar programas de consola de Linux.

Instalar Cygwin es bastante fácil. Durante el proceso de instalación en uno de los modos, puede marcar las casillas al lado paquetes de programas que desea instalar. Elegí nano, git y otros paquetes.

Después de la instalación, aparece un acceso directo de Cygwin en el escritorio para iniciar el entorno.

Inicie Cygwin desde cualquier carpeta

Dado que uso TotalCommander, me conviene iniciar programas directamente desde el directorio que necesito. Vamos a crear un archivo bat conveniente para ejecutar Cygwin.

Inmediatamente, sin pensarlo mucho, copie la cadena "Objeto" de la propiedad de este acceso directo al nuevo archivo que creamos C:\bin\bash.bat
El contenido completo del archivo se verá así:

@start "" C:\cygwin\bin\mintty.exe -i /Cygwin-Terminal.ico -

Tenga en cuenta que la ruta al archivo exe puede ser diferente para usted. En casa, instalé Cygwin en el directorio C:\cygwin.
Además, si el directorio C:\bin aún no se ha agregado a la variable de entorno PATH, debe hacerse.

Configuración de inicio de Cygwin

Después de trabajar un poco con Cygwin, descubrí que aunque puedo ejecutar Cygwin desde cualquier directorio simplemente escribiendo la palabra bash , el entorno de inicio siempre se abre en el directorio de inicio de su usuario. (El directorio de inicio se establece en la variable de entorno HOME).

Esto no parece muy conveniente, porque si escribo un comando bash mientras estoy en el directorio D:\xyz, entonces espero que Cygwin también se esté ejecutando en el directorio D:\xyz.

Si presta atención, verá que el acceso directo del escritorio inicia la utilidad mintty.exe. Inmediatamente entendemos que es necesario familiarizarse con la lista de atributos entrantes para este comando.
Abra Cygwin y escriba

hombre menta

Después de estudiar detenidamente el manual, nos regocijamos con algunas características que no sospechábamos, a saber: la capacidad de establecer el tamaño y las coordenadas de la ventana de inicio de Cygwin.

Abra nuestro archivo bat y cambie su contenido a lo siguiente:

@start "" C:\cygwin\bin\mintty.exe -i /Cygwin-Terminal.ico --tamaño 120.77 --posición -4.0 -

EN este caso Configuré el tamaño de la ventana de Cygwin que necesitaba y la posición de la ventana para que apareciera (se necesita un valor negativo de -4 para que el borde de la ventana quede fuera del monitor y no sea visible).

Ahora mi ventana siempre aparecerá en las coordenadas que sean convenientes para mí, y no se moverá con cada nuevo lanzamiento en +8 píxeles en x, y.

Pero, ¿qué pasa con el directorio de inicio de Cygwin?

¡Después de todo, moverse al directorio deseado desde casa es terriblemente inconveniente!

¡La solución ha sido encontrada! Para configurar el directorio actual al iniciar Cygwin, podemos usar el script de ejecución automática para el entorno de inicio de bash.

Por lo tanto, debemos mejorar nuestro archivo bash.bat para que cree un archivo de ejecución automática para que se ejecute la consola bash.

Iniciamos Cygwin, ingresamos el comando "man bash" y leemos la documentación en busca de lo que necesitamos. Encontramos varias opciones para nombres de archivo para el directorio de inicio del usuario, que se inician durante la autorización en bash.
Los archivos se ejecutan en el inicio de sesión de bash:

~/.bash_perfil ~/.bash_login ~/.perfil

Archivo lanzado cuando se lanza "bash" sin autorización en él

~/.bashrc

Nota IMPORTANTE: el archivo de ejecución automática ~/.bash_login (o lo que sea) debe estar escrito en codificación UTF-8. Y no debe usar caracteres \r. (Por ejemplo, el comando pwd no me funcionó cuando el archivo contenía el carácter \r al final, que es característico del sistema Windows).

Al final resultó que, generar texto UTF-8 desde CMD no es tan fácil, ¡pero es posible!
Aquí hay un ejemplo de cómo se hace esto:

Comando /u /c chcp 65001 | repetir un texto > "nombre de archivo"

Mejoremos nuestro archivo C:\bin\bash.bat, ahora tiene el siguiente contenido:

@echo off SET archivo=.bash_login cmd /u /c chcp 65001 | echo #!/bin/bash > "%HOME%\%archivo%" cmd /u /c chcp 65001 | echo cd "%CD:\=/%" >> "%HOME%\%file%" @start "" C:\cygwin\bin\mintty.exe -i /Cygwin-Terminal.ico --size 120.77 -- posición -4.0 -

Al iniciar, la consola bash ejecuta el contenido del archivo ~/.bash_login. Este archivo debe estar en formato UTF-8. Para hacer esto, llamamos a CMD con el indicador /u, que nos dice que la consola que se está iniciando debe devolver el resultado en formato UTF-8.

Como puede ver, estamos enviando dos comandos separados por | . Este signo nos permite escribir los dos comandos que necesitamos en una línea.

El primer comando chcp 65001 establece la codificación en UTF-8 en la consola en ejecución. (Para averiguar cuál es la codificación actual establecida en la consola, simplemente llame al comando chcp sin parámetros).

segundo equipo texto de eco > "%HOME%\%archivo%" imprime el texto apropiado en un archivo llamado "%HOME%\%file%", donde los nombres de las variables se expanden en la ruta al directorio de inicio y el nombre del archivo .bash_login.

Tenga en cuenta la referencia inusual a la variable CD, que contiene el directorio actual de la consola cmd. Si la variable normalmente se expande escribiendo

Entonces, en nuestro caso, usamos la notación

%CD:\=/%

Esto le permite reemplazar inmediatamente todas las barras inclinadas \ de estilo Windows con barras inclinadas / de estilo Linux.

No olvide poner todos los nombres de archivos y directorios en doble comillas, por lo que permitirá acceder a directorios que contengan espacios.

Debido al hecho de que se usa UTF-8, este diseño le permite abrir Cygwin en directorios con nombres rusos.

Por lo tanto, cada vez que ejecute el comando bash en la consola, se ejecutará el script C:\bin\bash.bat, que sobrescribe el archivo de carga automática del entorno bash en Cygwin. Ahora podemos iniciar fácil y convenientemente la consola bash desde cualquier directorio e ingresar inmediatamente al mismo directorio en la consola bash.

¡Nos regocijamos y disfrutamos del resultado!

Resumiendo

  1. Hemos instalado Cygwin
  2. Archivo creado C:\bin\bash.bat con contenido @echo off SET file=.bash_login cmd /u /c chcp 65001 | echo #!/bin/bash > "%HOME%\%archivo%" cmd /u /c chcp 65001 | echo cd "%CD:\=/%" >> "%HOME%\%file%" @start "" C:\cygwin\bin\mintty.exe -i /Cygwin-Terminal.ico --size 120.77 -- position -4,0 - (Nota: la ruta C:\bin\ debe estar en la variable de entorno PATH)
    A través de esto hemos logrado:
    • inicie el terminal Cygwin en la posición de pantalla especificada (parámetro --position)
    • lanzar una ventana de cierto tamaño (parámetro --size )
    • inicie Cygwin desde cualquier directorio escribiendo la palabra bash en la consola
    • al mismo tiempo, el Cygwin en ejecución se encuentra en el mismo directorio desde el que se inició.

El script cygwin.bat se ejecuta desde la línea de comandos de DOS, instala el entorno Cygwin e inicia el intérprete bash en Windows. Cygwin configura bien las variables de entorno de Unix para que coincidan con las variables de entorno de Windows. Por ejemplo, en mi máquina, inicié sesión en Windows como usuario bjohnson. Cuando inicio Cygwin, se inicia como usuario bjohnson de forma predeterminada.

A continuación se muestra una ventana con algunos comandos estándar de Unix en Cygwin.


Dependiendo de los paquetes que haya instalado, puede ejecutar fácilmente las utilidades de Unix apropiadas. Si es un usuario de Unix, sin duda deseará que Windows tenga un comando ps para ver los procesos que se están ejecutando actualmente sin usar el Administrador de tareas. Si usa el indicador -aW, podrá ver procesos de ventanas, así como cualquier proceso de Cygwin en ejecución. A continuación se muestra una lista de los procesos de Windows disponibles como resultado de ejecutar el comando Cygwin (ps -aW | less).

PID PPID PGID WINPID TTY UID STIME COMANDO 3193213 0 0 4291774083 ? 0 31 de diciembre C:\WINDOWS\SYSTEM\KERNEL32.DLL 63753 0 0 4294903543 ? 0 31 de diciembre C:\WINDOWS\SYSTEM\MSGSRV32.EXE 60569 0 0 4294906727 ? 0 31 de diciembre C:\WINDOWS\SYSTEM\MPREXE.EXE 77349 0 0 4294889947 ? 0 31 de diciembre C:\WINDOWS\SYSTEM\RPCSS.EXE 196093 0 0 4294771203 ? 0 31 de diciembre C:\WINDOWS\SYSTEM\mmtask.tsk 191237 0 0 4294776059 ? 0 31 de diciembre C:\WINDOWS\EXPLORER.EXE 237709 0 0 4294729587 ? 0 31 de diciembre C:\WINDOWS\TASKMON.EXE 230713 0 0 4294736583 ? 0 31 de diciembre C:\WINDOWS\SYSTEM\SYSTRAY.EXE 217533 0 0 4294749763 ? 0 31 de diciembre C:\PROGRAMFILES\DIRECTCD\DIRECTCD.EXE 5.1.

Estructura de directorios y permisos de archivos

Cygwin monta su unidades locales en el directorio /cygdrive. Esto incluye secciones disco duro, unidades de disquete, lectores de CD-ROM, lectores ZIP. Ejecutemos el comando df en mi máquina. Obtenemos una estructura similar a la siguiente.

[correo electrónico protegido]$ df Sistema de archivos 1k-blocks Usado Disponible Use% Montado en C:\cygwin\bin 2096832 0 2096832 0% /usr/bin C:\cygwin\lib 2096832 0 2096832 0% /usr/lib C:\cygwin 2096832 0 2096832 0 %/c: 2096832 0 2096832 0% /cygdrive/c d: 670496 670496 0 100% /cygdrive/d

Después de instalar Cygwin, le dije al instalador que guardara los archivos en el directorio C:\cygwin\. Cygwin usó este directorio como el punto raíz montajes del sistema de archivos. Montó C:\cygwin\ bin en /usr/bin y C:\cygwin\lib en /usr/lib . Se agregaron los directorios /usr/bin , /bin y /usr/local/bin Variables de entorno Cygwin (pero no Windows). Los directorios del entorno Windows se han importado al entorno Cygwin para poder acceder a ellos.

Cygwin también utiliza un sistema de permisos razonable para archivos Unix. Pero, ¿qué podría significar esto para todos sus archivos de Windows? ¿Quién es el propietario de los archivos y cuáles son los permisos predeterminados? Ejecutemos el comando ls -al en algunos archivos de Windows para obtener la respuesta.

[correo electrónico protegido]/cygdrive/c/cyginstall $ ls -al total 273 drwxr-xr-x 1 bjohnson desconocido 0 13 de marzo 17:48 . drwxr-xr-x 1 bjohnson desconocido 0 31 de diciembre de 1969 .. drwxr-xr-x 1 bjohnson desconocido 0 13 de marzo 18:06 1 bjohnson desconocido 218112 13 de marzo 17:48 setup.exe -rw-r--r-- 1 bjohnson desconocido 60607 13 de marzo 17:54 setup.ini

Cygwin intentará obtener información sobre los propietarios del archivo (usuario y grupo) de Windows. Mientras usaba el auto debajo control de ventanas 98 con un usuario, todos los archivos eran de mi propiedad (bjohnson) con "desconocido" como grupo. Esto establece los permisos para todos los directorios y ejecutables de Windows en 755 (lectura y ejecución para todos, escritura solo para el propietario) y configura todos archivos de Windows autoridad 644 (leer para todos, escribir solo para el propietario). Actuación Comandos chmod para los archivos de Windows se ignora.

Cygwin (Cygwin) es un conjunto de programas y bibliotecas de Unix compilados bajo el sistema operativo Windows y alojados en sistema de archivos de la misma manera que en Unix real. Gracias a esto, obtenemos el equivalente completo del entorno Unix de los compiladores bash a gcc, que, sin necesidad de portar mucho el código fuente, pueden crear proyectos para su ejecución en Windows (suficiente un gran número de las aplicaciones multiplataforma utilizan este enfoque, ya que es el más simple y rápido).

Instalación de Cygwin

Descargue Cygwin para 32x o 64x - versión de bits puedes en el sitio web https://cygwin.com/install.html. La instalación es muy sencilla: puede hacer clic en "Siguiente" en la ventana Seleccionar paquetes. Aquí, se abrirá una base de datos de paquetes frente a usted, y algunos de ellos ya estarán marcados para detenerse (básico), otros puede marcarlos usted mismo. Para marcar un paquete para la instalación, debe ingresar su nombre en el campo "Buscar", luego expandir las categorías y encontrar este paquete. Luego haga clic en "Omitir", como resultado, en lugar de Omitir, debería aparecer la versión que se instalará. Verifique el paquete para más trabajo wget, el resto puede dejarse intacto por ahora. Los paquetes se pueden instalar o eliminar en cualquier momento simplemente volviendo a ejecutar el instalador, pero esto no es muy conveniente, por lo que más adelante en el artículo le diré cómo instalar paquetes desde la línea de comandos (para esto necesitamos wget).

Por defecto, cygwin se ejecuta en estándar Terminal lo cual no es muy conveniente.

Consola de terminal

Instalando paquetes para python con pip

Los paquetes en python a menudo se instalan usando pip, que no se encuentra en los repositorios de sigwin.

Por lo tanto, debe instalarse por separado:

Páginas MAN para funciones libc

Cygwin ya contiene páginas de manual para comandos estándar, pero las funciones de man para libc se pueden instalar por separado:

Por cierto, Cygwin está algo relacionado con los sistemas integrados, ya que utiliza nueva biblioteca Implementación de libc, que se sabe que se usa ampliamente en diferentes cadenas de herramientas ARM.

vim en cygwin

Instalación:

La configuración se realiza en el archivo .vimrc en su directorio de inicio:

Yo uso estas configuraciones:

establecer retroceso = sangría, eol, inicio

Habilitar sintaxis

establecer shiftwidth=4

establecer tabulación = 8

establecer softtabstop=4

establecer pestaña expandible

establecer número

establecer mostrar cmd

establecer línea de cursor

complemento de sangría de tipo de archivo en

establecer menú salvaje

establecer lazyredraw

establecer mostrar partido

establecer incsearch

Uso de la terminal Cygwin "nativa"

El instalador estándar de Cygwin proporciona su propio terminal mintty (iniciado a través del ícono de Cygwin Terminal). En comparación con Console, es ligeramente inferior en funcionalidad (por ejemplo, no tiene pestañas), pero también tiene una buena funcionalidad y hay menos gestos. Una de las buenas características es la compatibilidad con colores de 256 bits en la terminal:

Esto le permite usar temas de resaltado de sintaxis convenientes para vim, como badwolf:

Para activarlo, agregue a .vimrc:

Se verá así:

¿Cómo guardar el historial de comandos en bash cygwin?

En el archivo .bashrc necesita encontrar agregar:

El primero indica el tamaño del archivo de historial (10 mil comandos), el segundo incluye la eliminación de comandos duplicados (si el comando ingresado ya está en el historial, entonces el antiguo se elimina para ahorrar espacio), y el tercero incluye el mantenimiento del historial de bash .

¿Cómo navegar a una ruta de estilo de Windows en Cygwin?

Puede usar la utilidad cygpath para convertir una ruta similar a una victoria en una ruta de estilo Unix.

Esto convertirá la ruta en "/cygdrive/d/projects/some/src" y la pasará como argumento a cd.

Si todavía usa el sistema operativo de Microsoft ocasionalmente, probablemente realmente necesite algunas utilidades de Linux en Windows. Sería muy conveniente utilizar las utilidades de línea de comandos estándar para filtrar, ordenar, filtrar y editar en línea la salida en Windows, donde dichas funciones no son compatibles.

Hay varias soluciones para implementar esto. En este artículo, consideraremos solo dos de ellos. El primero del que quizás ya hayas oído hablar o que ya estés usando es Cygwin. En segundo lugar, algo más interesante y nuevo: efectivo. Comencemos con Cygwin. EN ultima versión Windows 10 también tiene una tercera solución: la capacidad de forma nativa, utilizando un subsistema especial. Lea sobre esto en un artículo separado.

Cygwin es un conjunto de herramientas que proporciona un entorno similar a Unix en Windows. No puede ejecutar las utilidades de Linux existentes aquí. Para ejecutar un comando de Linux desde Windows Cygwin, primero debe volver a compilarse.

Sin embargo, ya se ha reconstruido bastante software. Cygwin le brindará un entorno similar a Linux con muchas de las utilidades a las que ya está acostumbrado en Linux. Se puede usar para ambos utilidades estándar como el comando cp windows, y para conectarse a un servidor remoto a través de ssh.

Instalación de Cygwin

Como otros programas de Windows, Cygwin se instala mediante el instalador .exe. Puedes descargarlo en el sitio web oficial.

Para instalar, deberá seguir varios pasos del asistente, por defecto el programa se instalará en C:\Cygwin:

No se suministra con el paquete de instalación juego completo ambiente. Se descargará durante el proceso de instalación. En esta ventana, debe seleccionar un servidor para descargar componentes:

Luego debe seleccionar los paquetes para descargar e instalar. Hay bastantes programas disponibles y están clasificados en categorías. Si no sabe si necesita un paquete en particular, deje el valor predeterminado. Puedes instalarlos más tarde:

Solo queda hacer clic en Siguiente para iniciar la descarga y completar la instalación.

Agregar Cygwin a la ruta

Una vez completada la instalación, para ejecutar los comandos de Linux en Windows con la máxima comodidad, es recomendable agregar una carpeta con archivos ejecutables Cygwin a la variable de entorno Path.

Puede iniciar el terminal Cygwin haciendo clic en el acceso directo del escritorio. Se abrirá una terminal con la carpeta C:\Cygwin\bin

Aquí puedes hacer todo lo que necesites comandos de linux en Windows, pero no podrá ejecutarlos en otro directorio u otra terminal.

Para resolver este problema, debe agregar la carpeta Cygwin a la variable Path. Abra la ventana de propiedades del sistema con un atajo de teclado Ganar+Pausar/Pausa luego seleccione el elemento Configuraciones adicionales del sistema en el panel izquierdo:

En la pestaña Avanzado, seleccione Variables de entorno:

Busque la variable Path en la lista y haga clic en Cambiar:

Agregue esta entrada al final de la línea:

Tenga en cuenta que todas las rutas deben estar separadas por punto y coma. Queda por presionar DE ACUERDO y probar la ejecución de comandos de Linux en Windows.

Dinero

Esto es algo completamente nuevo. utilidad con abierto código fuente Cash es una implementación multiplataforma del comando Conchas de Linux en JavaScript. El objetivo de este proyecto es proporcionar una alternativa más flexible y sencilla a Cygwin para aquellos que quieren sentirse como si estuvieran en Windows como si estuvieran en Linux.

Con Cash instalado, puede ejecutar un comando de Linux desde Windows en cualquier emulador de terminal, incluida la línea de comando estándar de Windows.

En este momento solo algunos son compatibles utilidades de linux para ventanas. Aquí está la lista de los compatibles:

  • alias
  • claro
  • exportar
  • FALSO
  • mkdir
  • fuente
  • tocar
  • unalias

Dado que la utilidad aún está en desarrollo, la lista de comandos de Linux en Windows aumentará constantemente. También puedes votar para agregar los equipos que necesitas.

Así es como funciona todo:

Lo que es más interesante, puedes combinar comandos de Windows y Linux. Por ejemplo, puedes hacer:

ipconfig | grepIPv4 | clasificar

Y el comando funcionará correctamente. Primero se ejecutará ipconfig y luego se filtrará el resultado usando Grep.

Instalación de efectivo en Windows

Instalaré Cash en Windows 10. Es muy fácil de hacer y también funciona en los más antiguos. Versiones de Windows. Dado que Cash se basa en JavaScript, se debe instalar Node.js para que funcione. Puede descargar Node.js en el sitio web oficial:

Una vez que Node.js esté instalado, puede continuar con la instalación de Cash. Se puede instalar en varios modos:

  • Uso manual de Cash: debe ejecutar Cash para comenzar a ejecutar los comandos de Linux
  • Uso global: los comandos de Linux están disponibles en todos los terminales de Windows
  • Instale solo algunos comandos: puede seleccionar componentes para instalar si no desea instalar todos

Para Instalaciones de efectivo comando abierto globalmente línea de ventanas usando Win+R:

npm instalar efectivo-global -g

La instalación puede tardar varios minutos, dependiendo de la velocidad de su conexión a Internet. Una vez que se completa la instalación, puede probar inmediatamente los comandos de Linux en Windows.

conclusiones

Como dije, el proyecto Cash aún está en desarrollo y existe la posibilidad de que encuentre errores. No olvide informar a los desarrolladores sobre cualquier error que encuentre para ayudar a mejorar el proyecto. Si la estabilidad es crítica para usted, es mejor usar el viejo Cygwin.

A nosotros, usuarios de linux a menudo no es necesario usar comandos de Unix en Windows y herramientas similares. Podemos usar comandos de Linux directamente en nuestro sistema. Pero si por alguna razón no puede instalar Linux y aún desea usar los comandos de Linux, esta puede ser una excelente solución.

Sobre el Autor

Fundador y administrador del sitio, aficionado a abrir software Y Sistema operativo linux Actualmente uso Ubuntu como mi sistema operativo principal. Además de Linux, me interesa todo lo relacionado con tecnologías de la información y la ciencia moderna.

Si nota un error, seleccione un fragmento de texto y presione Ctrl + Enter
COMPARTIR: