GNU/Linux >> Tutoriels Linux >  >> Linux

Configuration d'un environnement de développement brillant sous Linux sur Windows 10

Pendant que je faisais fonctionner Ruby on Rails sous Ubuntu sous Windows 10, j'en ai profité pour configurer mon environnement * nix bash, qui utilisait en grande partie les valeurs par défaut. Oui, je sais que je peux utiliser zsh ou fish ou autres coquillages. Oui, je sais que je peux utiliser emacs et screen, mais j'utilise Vim et tmux. Combat moi. Quoi qu'il en soit, une fois mon message terminé, j'ai commencé à jouer avec l'open source .NET Core sous Linux (il fonctionne sous Windows, Mac et Linux, mais ici je suis sous Linux sous Windows. #Inception) et j'ai tweeté une photo de mon bureau.

Soit dit en passant, je me sens totalement justifié par tout l'intérêt pour le "mode texte" étant donné mon article de blog de 2004 "Windows manque complètement le bateau TextMode".;)'

Aussi, pour ceux d'entre vous qui ne sont PROFONDÉMENT PAS INTÉRESSÉS par la ligne de commande, c'est cool. Vous pouvez arrêter de lire maintenant. Tout à fait d'accord. J'utilise également Visual Studio ET Visual Studio Code. Parfois, je clique et souris et parfois je tape et tape. Il y a de la place pour nous tous.

QU'EST-CE QUE C'EST TOUT CE LINUX SUR WINDOWS ? Voici une FAQ sur le sous-système Bash/Windows pour Linux/Ubuntu sur Windows/Snowball in Hell et quelques notes de publication détaillées. Oui, c'est réel, et c'est spectaculaire. Vous ne pouvez pas lire autant de texte ? Voici une vidéo que j'ai faite sur Ubuntu sous Windows 10.

Un certain nombre de personnes m'ont demandé comment elles pouvaient configurer leurs installations WSL (Windows Subsystem for Linux) pour qu'elles soient quelque chose comme ça, alors voici ce que j'ai fait. Notez que j'utilise * nix depuis plus de 20 ans, je ne suis en aucun cas un expert. Je suis, et j'ai été, Intermédiaire Permanent dans mes compétences. Je ne rêve pas dans RegEx, et je suis offensé que d'autres puissent sortir un script awk sans googler.

Il se passe donc quelques choses dans cette capture d'écran.

  • Exécuter .NET Core sous Linux (sous Windows 10)
  • Thème VIM cool avec> 256 couleurs
  • Norton Midnight Commander dans le coin (merci Miguel)
  • Séparateur tmux Desqview-esque (avec prise en charge de la souris)
  • Quelques raccourcis clavier, invite git, complétion
  • Police Ubuntu Mono
  • Jolies couleurs de répertoire (DIRCOLORS/LS_COLORS)

Décomposons-les un à la fois. Et, encore une fois, votre kilométrage peut varier, aucune garantie expresse ou implicite, tout cela peut détruire votre monde, vous avez lu ceci sur un blog. Linux est configurable à l'infini et la seule constante est que ma configuration bascule et la vôtre est nulle. Jusqu'à ce que je voie quelque chose dans le vôtre que je puisse voler.

Exécuter .NET Core sur Linux (sur Windows 10)

Étant donné que Linux sur Windows 10 est (aujourd'hui) Ubuntu, vous pouvez y installer .NET Core comme n'importe quel Linux. Voici les instructions Ubuntu pour le SDK de .NET Core. Vous pouvez avoir Ubuntu 14.04 ou 16.04 (vous pouvez mettre à jour votre Linux sur Windows si vous le souhaitez). Assurez-vous de savoir ce que vous exécutez en faisant :

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

Si vous n'êtes pas sur 16.04, vous pouvez facilement supprimer et réinstaller tout le sous-système avec ces commandes sur cmd.exe (notez que /full est sérieux et incendie le système de fichiers Linux) :

> lxrun /uninstall /full
> lxrun /install

Ou si vous le souhaitez, vous pouvez l'exécuter dans bash (cela prendra plus de temps mais conservera les paramètres).

REMARQUE que vous aurez besoin de Windows 10 Creators Edition build 16163 ou supérieur pour exécuter Ubuntu 16.04. Tapez "winver" pour vérifier votre build.

sudo do-release-upgrade

Sachez ce qu'Ubuntu a sur votre Windows 10 lorsque vous y installez .NET Core. L'autre chose à retenir est que vous avez maintenant deux cœurs .NET, un Windows et un Ubuntu, sur la même (un peu) machine. Comme les systèmes de fichiers sont séparés, ce n'est pas grave. Je fais mon travail de développement dans Ubuntu sur /mnt/d/github (qui est un lecteur Windows). Il est acceptable que le sous-système Linux modifie des fichiers sous Linux ou Windows, mais n'"atteignez" pas le système de fichiers Linux depuis Windows.

Thème Vim sympa avec>256 couleurs

Ce thème Vim est gruvbox et je l'ai installé comme ça. Merci à Rich Turner de m'avoir fait découvrir ce thème.

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

Collez ce qui suit (appuyez sur « i » pour insérer, puis cliquez avec le bouton droit/coller)

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

Puis enregistrez et quittez avec Esc, :wq (écrire et quitter). Il existe une tonne de thèmes, alors essayez-en par vous-même !

Norton Midnight Commander dans le coin (merci Miguel)

Midnight Commander est un merveilleux clone de Norton Commander que Miguel de Icaza a lancé, qui est sous licence dans le cadre de GNU. Je l'ai installé via apt, comme je le ferais avec n'importe quel logiciel Ubuntu.

$ sudo apt-get install mc

Il y a une prise en charge de la souris dans le conhost Windows (hôte de la console) dans lequel bash s'exécute, vous obtiendrez donc même une prise en charge de la souris dans Midnight Commander !

Super truc.

Séparateur tmux Desqview-esque (avec prise en charge de la souris)

Tmux est un multiplexeur de terminaux. C'est un environnement de fenêtrage en mode texte dans lequel vous pouvez exécuter plusieurs programmes. Mieux encore, vous pouvez vous "détacher" d'une session en cours d'exécution et vous reconnecter d'ailleurs. Pour cette raison, les gens aiment utiliser tmux sur des serveurs où ils peuvent se connecter en ssh, configurer un environnement, se détacher et se rattacher d'ailleurs.

REMARQUE : Le sous-système Windows pour Linux arrête tous les processus d'arrière-plan lorsque la dernière console se ferme. Ainsi, vous pouvez facilement détacher et attacher des sessions tmux, mais assurez-vous simplement de ne pas fermer toutes les consoles de votre machine.

Voici un joli gif animé de moi déplaçant le séparateur sur tmux sous Windows. OUI JE SAIS QUE VOUS POUVEZ UTILISER LE CLAVIER MAIS CE GIF EST COOL.

Quelques raccourcis clavier, invite git, complétion

J'apprends toujours tmux mais voici mon .tmux.conf. J'ai apporté quelques modifications courantes pour faciliter la création de raccourcis clavier 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"

J'utilise le .bashrc Ubuntu par défaut qui inclut une vérification des dircolors (plus de détails ci-dessous) mais j'ai ajouté ceci pour git-completion.sh et une invite git, ainsi que ces deux alias. J'aime pouvoir taper "bureau" pour accéder à mon bureau Windows. Et le -x sur Midnight Commander aide le support de la souris.

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 peut être installé avec :

sudo apt-get install git bash-completion

Police Ubuntu Mono

J'aime beaucoup la police Ubuntu Mono et j'aime son apparence lors de l'exécution d'Ubuntu sous Windows. Vous pouvez télécharger gratuitement la famille de polices Ubuntu. Cliquez avec le bouton droit sur les fichiers TTF téléchargés, puis cliquez avec le bouton droit de la souris et "Installer", ou faites-les glisser dans C:\windows\fonts. Cliquez ensuite sur le coin supérieur gauche de n'importe quelle fenêtre de la console Bash et changez votre police en Ubuntu Mono.

Jolies couleurs de répertoire (DIRCOLORS/LS_COLORS)'

Si vous avez un arrière-plan d'invite de commande noir, les couleurs par défaut des répertoires seront bleu foncé sur noir, ce qui est nul. Heureusement, vous pouvez obtenir des fichiers .dircolors de partout sur le wep, ou définir la variable d'environnement LS_COLORS (assurez-vous de rechercher LS_COLORS pour Linux, pas l'autre, différent LSCOLORS sur Mac).

Je me suis retrouvé avec "dircolors-solarized" à partir d'ici, je l'ai téléchargé avec wget ou curl et je l'ai mis dans ~. Confirmez ensuite que cela se trouve dans votre .bashrc (c'est probablement déjà le cas)

# 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

Téléchargez le fichier .dircolors qui vous plaît (assurez-vous que le nom du fichier se termine par ".dircolors", vous devrez donc peut-être copier votre fichier source ~/.dircolors, puis redémarrer votre console.

Faites une grande différence pour moi, et comme je l'ai mentionné, c'est totalement, glorieusement, exaspérantement configurable.

Laissez VOTRE Linux sur Windows conseils dans les commentaires !

Parrain : Saviez-vous que VSTS peut s'intégrer étroitement à Octopus Deploy ? Regardez Damian Brady et Brian A. Randell vous montrer comment automatiser les déploiements de VSTS à Octopus Deploy, et faire une démonstration du nouveau tableau de bord VSTS Octopus Deploy widget. Regarde maintenant

Linux
  1. Termux transforme Android en environnement de développement Linux

  2. Configuration de l'environnement de développement python virtualenv sur Debian Linux

  3. Définition des variables d'environnement Linux

  4. exFAT contre NTFS sous Linux

  5. Créer des liens symboliques NTFS à partir de Linux

Variables d'environnement Linux

Un gars Windows dans un monde Linux :Configuration de la commande SSH sous Linux

Maintenir à jour automatiquement vos instances WSL Linux dans Windows 10

Développement Web et techniques avancées avec Linux sur Windows (WSL)

Sécurité Linux contre Windows

Réglage du fuseau horaire sous Linux