GNU/Linux >> Tutoriales Linux >  >> Linux

Configuración de un entorno de desarrollo brillante dentro de Linux en Windows 10

Mientras conseguía que Ruby on Rails funcionara bien en Ubuntu en Windows 10, aproveché la oportunidad para configurar mi entorno *nix bash, que usaba en gran medida los valores predeterminados. Sí, sé que puedo usar zsh o fish u otras conchas. Sí, sé que puedo usar emacs y screen, pero estoy usando Vim y tmux. pelea conmigo De todos modos, una vez que terminé mi publicación, comencé a jugar con .NET Core de código abierto en Linux (se ejecuta en Windows, Mac y Linux, pero aquí estoy ejecutando Linux en Windows. #Inception) y tuiteé una foto de mi escritorio.

Por cierto, me siento totalmente reivindicado por todo el interés en el "modo de texto" dada mi publicación de blog de 2004 "Windows está completamente perdiendo el barco TextMode".;)'

Además, para aquellos de ustedes que NO están PROFUNDAMENTE INTERESADOS en la línea de comandos, eso es genial. Puedes dejar de leer ahora. Totalmente bien. También uso Visual Studio Y Visual Studio Code. A veces hago clic con el mouse y otras veces toco y escribo. Hay sitio para todos.

¿QUÉ ES TODO ESTO DE LINUX EN WINDOWS? Aquí hay preguntas frecuentes sobre el subsistema Bash/Windows para Linux/Ubuntu en Windows/Snowball in Hell y algunas notas detalladas de la versión. Sí, es real, y es espectacular. ¿No puedes leer tanto texto? Aquí hay un video que hice en Ubuntu en Windows 10.

Varias personas me preguntaron cómo podían configurar sus instalaciones de WSL (Subsistema de Windows para Linux) para que fueran algo como esto, así que esto es lo que hice. Tenga en cuenta que he estado usando * nix de forma intermitente durante más de 20 años, de ninguna manera soy un experto. Soy, y he sido, Permanentemente Intermedio en mis habilidades. No sueño en RegEx, y me ofende que otros puedan sacar un script awk sin buscar en Google.

Entonces, están sucediendo algunas cosas en esta captura de pantalla.

  • Ejecución de .NET Core en Linux (en Windows 10)
  • Tema genial de VIM con más de 256 colores
  • Norton Midnight Commander en la esquina (gracias Miguel)
  • Divisor tmux al estilo de Desqview (compatible con mouse)
  • Algunas reasignaciones de teclas rápidas, solicitud de git, finalización
  • Fuente Ubuntu Mono
  • Bonitos colores de directorio (DIRCOLORS/LS_COLORS)

Vamos a desglosarlos uno a la vez. Y, de nuevo, su millaje puede variar, no hay garantía expresa o implícita, nada de esto puede destruir su mundo, lea esto en un blog. Linux es infinitamente configurable y la única constante es que mi configuración es genial y la tuya apesta. Hasta que vea algo en el tuyo que pueda robar.

Ejecución de .NET Core en Linux (en Windows 10)

Dado que Linux en Windows 10 es (hoy) Ubuntu, puede instalar .NET Core dentro de él como cualquier Linux. Aquí están las instrucciones de Ubuntu para el SDK de .NET Core. Puede tener Ubuntu 14.04 o 16.04 (puede actualizar su Linux en Windows si lo desea). Asegúrese de saber lo que está ejecutando haciendo lo siguiente:

~ $ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.2 LTS
Release: 16.04
Codename: xenial
~ $

Si no está en 16.04, puede eliminar y reinstalar fácilmente todo el subsistema con estos comandos en cmd.exe (tenga en cuenta que /full es serio y quema el sistema de archivos de Linux):

> lxrun /uninstall /full
> lxrun /install

O si lo desea, puede ejecutar esto dentro de bash (tomará más tiempo pero mantendrá la configuración).

NOTA que necesitará Windows 10 Creators Edition compilación 16163 o superior para ejecutar Ubuntu 16.04. Escribe "winver" para verificar tu compilación.

sudo do-release-upgrade

Sepa qué Ubuntu tiene su Windows 10 cuando instale .NET Core dentro de él. La otra cosa a recordar es que ahora tiene dos .NET Cores, uno de Windows y otro de Ubuntu, en la misma (más o menos) máquina. Dado que los sistemas de archivos están separados, no es gran cosa. Hago mi trabajo de desarrollo dentro de Ubuntu en /mnt/d/github (que es una unidad de Windows). Está bien que el subsistema de Linux edite archivos en Linux o Windows, pero no "acceda" al sistema de archivos de Linux desde Windows.

Tema Cool Vim con>256 colores

Ese tema de Vim es gruvbox y lo instalé así. Gracias a Rich Turner por acercarme a este tema.

$ cd ~/
$ mkdir .vim
$ cd .vim
$ mkdir colors
$ cd colors
$ curl -O https://raw.githubusercontent.com/morhetz/gruvbox/master/colors/gruvbox.vim
$ cd ~/
$ vim .vimrc

Pegue lo siguiente (presione 'i' para insertar y luego haga clic derecho/pegar)

set number
syntax enable
set background=dark
colorscheme gruvbox
set mouse=a

if &term =~ '256color'
" disable Background Color Erase (BCE) so that color schemes
" render properly when inside 256-color tmux and GNU screen.
" see also http://snk.tuxfamily.org/log/vim-256color-bce.html
set t_ut=
endif

Luego guarde y salga con Esc, :wq (escribir y salir). Hay un montón de temas disponibles, ¡así que pruebe algunos usted mismo!

Norton Midnight Commander en la esquina (gracias Miguel)

Midnight Commander es un maravilloso clon de Norton Commander que comenzó Miguel de Icaza, que tiene licencia como parte de GNU. Lo instalé a través de apt, como lo haría con cualquier software de Ubuntu.

$ sudo apt-get install mc

Hay compatibilidad con el mouse en el conhost de Windows (host de la consola) en el que se ejecuta bash, ¡así que obtendrá compatibilidad con el mouse en Midnight Commander!

Excelente material.

Divisor tmux al estilo de Desqview (con soporte para mouse)

Tmux es un multiplexor terminal. Es un entorno de ventanas en modo texto en el que puede ejecutar varios programas. Aún mejor, puede "separarse" de una sesión en ejecución y volver a conectarse desde otro lugar. Debido a esto, a la gente le encanta usar tmux en servidores donde pueden conectarse, configurar un entorno, desconectarse y volver a conectarse desde otro lugar.

NOTA: El subsistema de Windows para Linux cierra todos los procesos en segundo plano cuando se cierra la última consola. Por lo tanto, puede desconectar y adjuntar sesiones tmux felizmente, pero solo asegúrese de no cerrar todas las consolas de su máquina.

Aquí hay un buen gif animado de mí moviendo el divisor en tmux en Windows. SÍ, SÉ QUE PUEDES USAR EL TECLADO, PERO ESTE GIF ES GENIAL.

Algo de reasignación de teclas rápidas, solicitud de git, finalización

Todavía estoy aprendiendo tmux pero aquí está mi .tmux.conf. He realizado algunos cambios comunes para facilitar la creación de teclas de acceso rápido de Windows.

#remap prefix from 'C-b' to 'C-a'
unbind C-b
set-option -g prefix C-a
bind-key C-a send-prefix

# split panes using | and -
bind | split-window -h
bind _ split-window -v
unbind '"'
unbind %
bind k confirm kill-window
bind K confirm kill-server
bind < resize-pane -L 1
bind > resize-pane -R 1
bind - resize-pane -D 1
bind + resize-pane -U 1
bind r source-file ~/.tmux.conf

# switch panes using Alt-arrow without prefix
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D

# Enable mouse control (clickable windows, panes, resizable panes)
set -g mouse on
set -g default-terminal "screen-256color"

Estoy usando el Ubuntu .bashrc predeterminado que incluye una verificación de dircolors (más sobre esto a continuación), pero agregué esto para git-completion.sh y un indicador de git, así como estos dos alias. Me gusta poder escribir "escritorio" para saltar a mi escritorio de Windows. Y la -x en Midnight Commander ayuda a que el mouse sea compatible.

alias desktop="cd /mnt/c/Users/scott/Desktop"
alias mc="mc -x"
export CLICOLOR=1
source ~/.git-completion.sh
PS1='\[\033[37m\]\W\[\033[0m\]$(__git_ps1 " (\[\033[35m\]%s\[\033[0m\])") \$ '
GIT_PS1_SHOWDIRTYSTATE=1
GIT_PS1_SHOWSTASHSTATE=1
GIT_PS1_SHOWUNTRACKEDFILES=1
GIT_PS1_SHOWUPSTREAM="auto"

Git Completion se puede instalar con:

sudo apt-get install git bash-completion

Fuente Ubuntu Mono

Me gusta mucho la fuente Mono de Ubuntu y me gusta cómo se ve cuando se ejecuta Ubuntu en Windows. Puede descargar la familia de fuentes Ubuntu gratis. Haga clic derecho en los archivos TTF descargados y haga clic derecho e "Instalar", o arrástrelos a C:\windows\fonts. Luego haga clic en la esquina superior izquierda de cualquier ventana de la consola Bash y cambie su fuente a Ubuntu Mono.

Bonitos colores de directorio (DIRCOLORS/LS_COLORS)'

Si tiene un fondo de símbolo del sistema negro, los colores predeterminados para los directorios serán azul oscuro sobre negro, lo cual apesta. Afortunadamente, puede obtener archivos .dircolors de todo el web, o establecer la variable de entorno LS_COLORS (asegúrese de buscar LS_COLORS para Linux, no el otro LSCOLORS diferente en Mac).

Terminé con "dircolors-solarized" de aquí, lo descargué con wget o curl y lo puse en ~. Luego confirme que esto está en su .bashrc (probablemente ya lo esté)

# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto'
alias dir='dir --color=auto'
#alias vdir='vdir --color=auto'

alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi

Descarga cualquier archivo .dircolors que te haga feliz (asegúrate de que el nombre del archivo termine como ".dircolors", por lo que es posible que debas copiar tu archivo fuente ~/.dircolors y luego reiniciar tu consola.

Marca una gran diferencia para mí y, como mencioné, es total, gloriosa y enloquecedoramente configurable.

Deje SU Linux en Windows consejos en los comentarios!

Patrocinador: ¿Sabía que VSTS puede integrarse estrechamente con Octopus Deploy? Mire a Damian Brady y Brian A. Randell mientras le muestran cómo automatizar implementaciones de VSTS a Octopus Deploy, y demuestre el nuevo panel de VSTS Octopus Deploy. artilugio. Ver ahora

Linux
  1. Termux convierte Android en un entorno de desarrollo Linux

  2. Configuración del entorno de desarrollo de python virtualenv en Debian Linux

  3. C# en entorno linux

  4. Configuración de variables de entorno de Linux

  5. Cree enlaces simbólicos NTFS desde Linux

Variables de entorno de Linux

Un tipo de Windows en un mundo Linux:configurar el comando SSH en Linux

Mantener sus instancias WSL Linux actualizadas automáticamente dentro de Windows 10

Desarrollo Web y Técnicas Avanzadas con Linux sobre Windows (WSL)

Seguridad de Linux frente a Windows

Configuración de la zona horaria en Linux