JavaScript Geliştirmenizi Windows'ta Bash'e Taşıma

Yayınlanan: 2022-03-10
Kısa özet ↬ Bash terminalinizi ve PC'nizi de seviyor musunuz? Belki de bu yeni Surface donanımlarından bazılarını gördünüz, ancak terminaliniz olmadan geçiş yapamazsınız. Artık Windows ve Bash'e sahip olabilirsiniz. Bu makalede, JavaScript geliştirme için bir Windows/Linux geliştirme kutusunun nasıl kurulacağına derinlemesine bakacağız.

Bash terminalleri olmadan yaşayamayan insanlardan biriyim. Bu tek gerçek, Windows'ta ön uç çalışması yapmamı zorlaştırdı. Microsoft'ta çalışıyorum ve Mac kullanıyorum. Birkaç yıl önce yeni Surface donanım serisi çıkana kadar fark etmedim: Bunlardan birine sahip olmalıyım .

Ben de bir tane aldım. Kesin olarak Windows 10 çalıştıran bir Surface Book 2. Şu anda bu makaleyi bunun üzerine hazırlıyorum. Peki ya benim tatlı, tatlı Bash istemim? Yanımda getirdim tabii.

Bu makalede, Windows 10'daki yeni teknolojinin Windows'ta tam bir Linux terminali çalıştırmanıza nasıl olanak sağladığına derinlemesine bakacağım. Ayrıca size harika terminal kurulumumu ("benim" tarafından "en iyi" olarak adlandırıldı) ve sizin de kendi Windows/Linux geliştirme makinenizi nasıl kurabileceğinizi göstereceğim.

Bu Surface donanımlarından bazılarını arzuluyorsanız ancak bir Linux terminali olmadan yaşayamıyorsanız, doğru yere geldiniz.

Not : Bu yazının yazıldığı sırada, bu makaledeki birçok öğe, Windows dahil olmak üzere çeşitli öğelerin "önizleme" veya "içeriden öğrenenler" yapılarını kullanmanızı veya bunlara geçmenizi gerektirecektir. Bunların çoğu, gelecekte bir noktada ana Windows yapısında olacaktır.

Atlamadan sonra daha fazlası! Aşağıdan okumaya devam edin ↓

Linux için Windows Alt Sistemi (WSL)

Linux için Windows Alt Sistemi veya “WSL”, Linux'u Windows üzerinde çalıştırmanızı sağlayan şeydir. Ama bu çılgın bilim tam olarak nedir?

WSL, şu anki enkarnasyonunda, Linux sistem çağrılarını Windows sistem çağrılarına dönüştüren bir çeviri katmanıdır. Linux, WSL'nin üzerinde çalışır. Bu, Windows'ta Linux almak için üç şey yapmanız gerektiği anlamına gelir:

  1. WSL'yi etkinleştirin,
  2. Linux'u yükleyin,
  3. Her zaman bir listeye üç öğe ekleyin.

Görünen o ki, bu çeviri katmanı biraz yavaş kalıyor - bir nevi benim slice splice ihtiyacım olduğunu hatırlamaya çalışıyorum gibi. Bu, özellikle WSL dosya sistemini okuyup yazarken geçerlidir. Herhangi bir uygun npm install binlerce dosyayı makinenize kopyalayacağından, bu web geliştiricileri için büyük bir sorundur. Yani, seni bilmem ama ben kendi tellerimi sola çevirmeyeceğim.

WSL'nin 2. versiyonu farklı bir hikaye. Çeviri katmanını kullanmak yerine Windows'ta bir sanallaştırma çekirdeği kullandığından, mevcut sürümden çok daha hızlıdır. “Oldukça daha hızlı” dediğimde, çok, çok daha hızlı demek istiyorum. Tıpkı benim kadar hızlı Google'da "birleştirmeye karşı dilim" araması gibi.

Bu nedenle, WSL 2'nin nasıl kurulacağını göstereceğim. Yazma sırasında, bunun için Windows'un “Insider” yapısında olmanız gerekecek.

Her şeyden önce: Windows 10'da WSL'yi etkinleştirmek için bu kısa kılavuzu izleyin ve Windows sürüm numaranızı kontrol edin.

Yükledikten sonra, Windows tuşuna basın ve “windows insider” yazın. Ardından “Windows Insider Program Ayarları”nı seçin.

Windows Insider Program ayarları menü seçeneği
(Büyük önizleme)

Hangi "yüzüğü" takmak istediğiniz konusunda birkaç farklı seçeneğiniz olacak. Tanıdığım birçok insan hızlı ringde. Yine de dikkatli bir adamım. Ben çocukken oyun parkındaki kaydıraktan midem yanlara tutunarak aşağı inerdim. Bu yüzden yavaş halkada kalıyorum. Birkaç aydır üzerinde çalışıyorum ve normal Windows'tan daha fazla yıkıcı veya kararsız olmadığını görüyorum.

WSL 2'yi istiyorsanız, ancak slaytta ölmek istemiyorsanız bu iyi bir seçenek.

“Yavaş” zil sesini gösteren Windows Insider ayarları ekranı
(Büyük önizleme)

Not : Bu makaleyi yayınladıktan sonra WSL 2'nin aslında slow ringde olmadığını öğrendim. Onu almak için hızlı ringde olmanız gerekecek. Bu makaleyi yazma sürecinde bir noktada hızlı ringde olmalıyım. O kadar hızlı yüzük ki. Slaytta iyi şanslar!

Ardından, WSL sürüm 2'nin gerektirdiği Windows'ta “Sanal Makine Platformu” özelliğini etkinleştirmeniz gerekiyor. Bu ekrana ulaşmak için Windows tuşuna basın ve “windows özellikleri” yazın. Ardından “Windows Özelliklerini Aç veya Kapat”ı seçin. “Sanal Makine Platformu”nu seçin. “Linux için Windows Alt Sistemi” seçeneği zaten etkinleştirilmiş olmalıdır.

“Sanal Makine Platformu” ve “Linux için Windows Alt Sistemi” vurgulanmış olarak “Windows Özellikleri” ekranı
(Büyük önizleme)

Artık WSL etkinleştirildiğine göre, Linux'u yükleyebilirsiniz. Bunu, ironik bir şekilde, doğrudan Windows Mağazası'ndan yaparsınız. Sadece 2019'da “Windows mağazasından Linux kurmanızı” öneririm.

Aralarından seçim yapabileceğiniz birkaç farklı dağıtım var, ancak Ubuntu, daha sonra yapılandıracağımız tüm araçlarda en çok desteklenen olacak - VS Kodu dahil. Buradan itibaren gelen tüm talimatlar, bir Ubuntu kurulumunu varsayar. Farklı bir dağıtım kurarsanız, tüm bahisler kapalıdır.

Windows Mağazasından “Ubuntu”yu arayın. Aralarından seçim yapabileceğiniz üç tane olacak: Ubuntu, Ubuntu 18.04 ve Ubuntu 16.04. Ubuntu, bu 04 küçük sürüm numarasını gerçekten seviyor, değil mi?

Windows Mağazası'ndaki “Ubuntu” öğesi
(Büyük önizleme)

“Ubuntu” dağıtımı (bu ekran görüntüsündeki ilki) “meta sürüm” veya daha doğrusu sadece en son sürüme işaret eden bir yer tutucudur. Şu an itibariyle, bu 18.04.

Meta sürümle gittim çünkü daha sonra size Windows Gezgini ile Linux dosya sistemine nasıl göz atacağınızı göstereceğim ve sadece “Ubuntu” yerine sürücü adı olarak “Ubuntu 18.04” kullanmak biraz dağınık.

Bu yükleme, internet bağlantınıza bağlı olarak oldukça hızlıdır. Sadece yaklaşık 215 megabayt, ama ben burada bir gigabit bağlantısındayım ve birinin gigabit bağlantısında olup olmadığını nasıl anlarsınız? Endişelenme, sana söylerler.

Kurulduktan sonra, artık başlat menünüzde bir “Ubuntu” uygulamasına sahip olacaksınız.

Ubuntu yüklendi ve Windows Başlat menüsünde görünüyor
(Büyük önizleme)

Buna tıklarsanız, bir Bash terminali alırsınız!

Windows üzerinde çalışan Ubuntu terminali
(Büyük önizleme)

Teknolojinin mucizesinin tadını çıkarmak için bir dakikanızı ayırın.

Varsayılan olarak, WSL sürüm 1'de çalışıyor olacaksınız. Sürüm 2'ye yükseltmek için bir PowerShell terminali açmanız ve bir komut çalıştırmanız gerekir.

“Windows” tuşuna basın ve “Powershell” yazın.

Başlat menüsündeki “Powershell” öğesi
(Büyük önizleme)

PowerShell terminalinden, wsl --list --verbose çalıştırarak WSL'nin hangi sürümüne sahip olduğunuzu görebilirsiniz.

Powershell içinden çalışan tüm WSL örneklerinin ayrıntılı bir listesini yapmak
(Büyük önizleme)

Sürüm 1'i gösteriyorsanız, --set-version komutunu çalıştırmanız ve örneğin adını (Ubuntu) ve istediğiniz sürümü (2) belirtmeniz gerekir.

 wsl --set-version Ubuntu 2 
Powershell ile WSL sürümünü sürüm 2'ye ayarlama
(Büyük önizleme)

Bu, makinenizin ne kadar et olduğuna bağlı olarak biraz zaman alacaktır. Benimki “birkaç dakika” aldı ya da aldı. Tamamlandığında, WSL'nin en son ve en iyi sürümünde olacaksınız.

Linux'ta Sizin Beyniniz… Windows'ta.

Linux, Windows değildir. WSL, bir Windows işletim sisteminin üstünde bir bash istemi değildir. Kendi klasör yapısı ve kurulu uygulamaları ile başlı başına tam bir işletim sistemidir. Node'u Windows yükleyici ile kurarsanız, Node Linux'ta kurulu olmadığı için Linux'ta node yazmak başarısız olacaktır. Windows'ta yüklü.

WSL'nin gerçek büyüsü, Windows ve Linux'u makinenizde tek bir dosya sistemi olarak görünecek şekilde sorunsuz bir şekilde bağlamasında yatmaktadır.

Dosya ve Klasör Gezinmesi

Varsayılan olarak, Ubuntu terminali sizi Linux ana dizininize (veya /home/your-user-name ) bırakır. /mnt/c 'ye giderek Windows tarafına geçebilirsiniz.

C sürücüsünün içeriğinin listelendiği Ubuntu terminali
(Büyük önizleme)

Burada bazı izinlerin reddedildiğine dikkat edin. Bu dosyalara erişmek için Ubuntu simgesine sağ tıklamam ve “Yönetici Olarak Çalıştır” seçeneğine tıklamam gerekir. Windows yükseltilmiş izinleri bu şekilde yapar. Windows'ta sudo yok.

Uygulamaları Başlatma

Ubuntu terminalinden herhangi bir Windows uygulamasını başlatabilirsiniz. Örneğin, Unbuntu terminalinden Windows Gezgini'ni açabilirim.

Windows Gezgini ve Ubuntu terminali
(Büyük önizleme)

Bu da tersine çalışır. Linux tarafında kurulu herhangi bir uygulamayı çalıştırabilirsiniz. Burada Windows komut satırından Linux'a yüklenen “fal”ı yürütüyorum. (Çünkü rastgele, anlamsız servetler olmadan uygun bir Linux kurulumu değildir.)

Linux “fal” programını yürüten Windows Komut Satırı
(Büyük önizleme)

İki farklı işletim sistemi. İki farklı dosya sistemi. İki farklı yüklü uygulama grubu. Bunun nasıl kafa karıştırıcı olabileceğini görüyor musun?

Her şeyi düz tutmak için, tüm JavaScript geliştirme dosyalarınızı ve araçlarınızı şeylerin Linux tarafında kurulu halde tutmanızı tavsiye ederim. Bununla birlikte, Windows ve Linux arasında geçiş yapma ve her iki sistemden dosyalara erişme yeteneği, WSL'nin temel büyüsüdür. Unutmayın, çünkü tüm bu kurulumu standart bir Linux kutusundan daha iyi yapan şey budur.

Geliştirme Ortamınızı Ayarlama

Şu andan itibaren, Windows kurulumunda harika bir Linux yarattığını düşündüğüm şeyler için size üzerinde düşünülmüş öğelerin bir listesini vereceğim. Sadece unutmayın: benim görüşlerim sadece bu. Görüşler Sadece tüm fikirlerim gibi, onlar da %100 doğru.

Daha İyi Bir Terminal Elde Etmek

Evet, Ubuntu'yu kurduğunuzda bir terminaliniz var. Aslında Linux dağıtımınıza bağlı Windows Konsolu. Kötü bir konsol değil. Yeniden boyutlandırabilir, kopyala/yapıştır özelliğini açabilirsiniz (ayarlardan). Ancak sekmeler veya yeni pencereler açamazsınız. Pek çok insanın Mac'te yedek terminal programları kullanması gibi (Hyper kullanıyorum), Windows için başka seçenekler de var. Github'daki Müthiş WSL listesi oldukça kapsamlı bir liste içeriyor.

Bunların hepsi iyi emülatörlerdir, ancak Windows'u oldukça iyi bilen kişiler tarafından oluşturulmuş yeni bir seçenek var.

Microsoft, “Windows Terminal” adlı yeni bir uygulama üzerinde çalışıyor.

Windows Mağazasındaki Windows Terminal öğesi
(Büyük önizleme)

Windows Terminal, Windows Mağazasından yüklenebilir ve şu anda önizleme modundadır. Bir süredir kullanıyorum ve yeterli özelliklere sahip ve tam bir onay vermem için yeterince kararlı.

Yeni Windows Terminali tam bir sekme arayüzü, kopyala/yapıştır, çoklu profiller, şeffaf arka planlar, arka plan görüntüleri ve hatta şeffaf arka plan görüntüleri içerir. Terminalinizi kişiselleştirmeyi seviyorsanız bu bir tarla günü ve ben bu çuval yarışını kazanmaya geldim.

İşte mevcut terminalim. Burada bazı önemli ince ayarları gözden geçireceğiz.

Yazarın şu anki terminali: Sağ alt köşede bir karikatür gezegeni olan koyu mavi arka plan. Yeşil ve beyaz metin.
(Büyük önizleme)

Windows terminali oldukça özelleştirilebilir. Sol üstteki “ ” okuna (“ + ” işaretinin yanında) tıklamak “Ayarlar”a erişmenizi sağlar. Bu bir JSON dosyası açacaktır.

Bağla Kopyala/Yapıştır

Dosyanın en üstünde tüm anahtar bağlamalar bulunur. Yaptığım ilk şey, "kopyala" yı Ctrl + C'ye eşlemek ve Ctrl + V'ye yapıştırmaktı. Stack Overflow'dan anlamadığım komutları başka nasıl kopyalayıp yapıştıracağım?

 { "command": "copy", "keys": ["ctrl+c"] }, { "command": "paste", "keys": ["ctrl+v"] },

Sorun, Ctrl + C'nin zaten SIGINT ile veya Linux'ta Interrupt/kill komutuyla eşlenmiş olmasıdır. Windows için, Kopyala/Yapıştır'ı sırasıyla Ctrl + Shift + C ve Ctrl + Shift + V ile eşleyerek bunu işleyen birçok terminal var. Sorun şu ki, kopyala/yapıştır, Windows'ta her yerde Ctrl + C / Ctrl + V'dir . Bir şeyleri kopyalamaya çalışırken terminalde Ctrl + C'ye tekrar tekrar basmaya devam ettim. Bunu yapmayı bırakamadım.

Windows terminali bunu farklı şekilde ele alır. Vurgulanan metniniz varsa ve Ctrl + C tuşlarına basarsanız, metni kopyalayacaktır. Çalışan bir işlem varsa, yine de SIGINT komutunu gönderir ve onu keser. Bu, Windows Terminalinde Ctrl + C / Ctrl + V'yi Kopyala/Yapıştır ile güvenli bir şekilde eşleyebileceğiniz anlamına gelir ve işlemleri kesintiye uğratma yeteneğinizi etkilemez.

Kopyala/Yapıştır'ın bu kadar çok kalp ağrısına neden olabileceğini kim düşündü?

Varsayılan Profili Değiştir

Varsayılan profil, yeni bir sekme açıldığında gelen profildir. Varsayılan olarak, bu Powershell'dir. Aşağı kaydırıp Linux profilini bulmak isteyeceksiniz. wsl.exe -d Ubuntu açan budur. GUID'ini kopyalayın ve defaultProfile ayarına yapıştırın.

Bu iki ayarı, görmeyi kolaylaştırmak için yan yana olacak şekilde taşıdım:

settings.json dosyasında vurgulanan varsayılan Terminal profili
(Büyük önizleme)

Arka Planı Ayarla

Arka planımın, sağ köşede düz bir logo ile koyu düz bir renk olmasını seviyorum. Bunu yapıyorum çünkü logonun parlak ve görünür olmasını istiyorum, ancak metin şeklinde değil. Bunu kendim yaptım, ancak Simple Desktops'ta seçebileceğiniz harika bir düz resim koleksiyonu var.

Arka plan, backgroundImage özelliğiyle ayarlanır:

 "backgroundImage": "c:/Users/YourUserName/Pictures/earth.png" 
Sağ alt köşede çizgi film gezegeni olan mavi kare görüntü
(Büyük önizleme)

Ayrıca “akrilik” adlı bir ayar fark edeceksiniz. Arka planın opaklığını ayarlamanızı sağlayan şey budur. Düz bir arka plan renginiz varsa, bu oldukça basittir.

 "background": "#336699", "useAcrylic": true, "acrylicOpacity": 0.5 
Arka planı biraz şeffaf olan terminal
(Büyük önizleme)

arcylicOpacity ayarını backgroundImageOpacity ile birleştirerek bunu bir arka plan görüntüsüyle de yapabilirsiniz:

 "backgroundImage": "c:/Users/username/Pictures/earth-and-stars.png", "useAcrylic": true, "acrylicOpacity": 0.5 
Hem şeffaf görüntü hem de şeffaf arka plana sahip terminal
(Büyük önizleme)

Temam için şeffaflık her şeyin sessiz görünmesini sağlıyor, bu yüzden useAcrylic false olarak tutuyorum.

Yazı Tipini Değiştir

Windows Terminalini oluşturan ekip aynı zamanda “Cascadia Code” adlı yeni bir yazı tipi üzerinde çalışıyor. Bu yazının yazıldığı tarihte mevcut değildir, bu nedenle bunun yerine varsayılan Windows yazı tipini alırsınız.

Windows Terminalindeki varsayılan yazı tipi “Consolas”tır. Bu, Windows komut satırının kullandığı yazı tipiyle aynıdır. Bu gerçek Ubuntu hissini istiyorsanız, Chris Hoffman resmi Ubuntu Mono yazı tipini nasıl kurabileceğinize işaret ediyor.

İşte farkı görebilmeniz için öncesi ve sonrası:

 "fontFace": "Ubuntu Mono" 
Terminaldeki Consolas ve Unbuntu Mono yazı tiplerinin yan yana karşılaştırması
(Büyük önizleme)

Oldukça benzer görünüyorlar; ana fark, terminali biraz daha sıkı ve temiz yapan Ubuntu Mono'nun aralığındadır.

Renk şemaları

Renk şemalarının tümü, ayarlar dosyasının altında bulunur. Temel olarak “Campbell” renk şemasını kopyaladım. Renkleri isimleriyle eşleştirmeye çalışıyorum ama hile yapmaktan da korkmuyorum. “#ffffff”i “mavi” ile eşleyeceğim - umurumda bile değil.

settings.json dosyasındaki renk şeması ayarları
(Büyük önizleme)

“Dünya” adını verdiğim bu özel şemayı beğendiyseniz, tüm bu karışıklığı bir ekran görüntüsünden manuel olarak kopyalamanıza gerek kalmaması için bu özü bir araya getirdim.

Not : Renk önizlemeleri, VS Code için "Color Highlight" uzantısı sayesinde gelir.

Varsayılan Başlangıç ​​Dizinini Değiştir

Varsayılan olarak, WSL profili sizi Windows tarafındaki ana dizininize bırakır. Bu makalede önerdiğim kuruluma dayanarak, bunun yerine Linux home klasörünüze bırakılması tercih edilir. Bunu yapmak için, "Ubuntu" profilinizdeki startingDirectory ayarını değiştirin:

 "startingDirectory": "\\\\wsl$\\Ubuntu\\home\\burkeholland"

Oradaki yola dikkat edin. WSL'ye Windows komut satırından erişmek için bu yolu (ekstra kaçış eğik çizgileri hariç) kullanabilirsiniz.

Windows Komut Satırından Linux ana dizinine karşı çalıştırılan bir "dir" komutu
(Büyük önizleme)

Zsh/Oh-My-Zsh'yi yükleyin

Zsh ve Oh-My-Zsh'ı daha önce hiç kullanmadıysanız, gerçek bir muamele içindesiniz. Zsh (veya “Z Shell”), Linux için bir yedek kabuktur. Bash'in ima edilen dizin değiştirme ( cd yazmanıza gerek yok), daha iyi tema desteği, daha iyi istemler ve çok daha fazlası dahil olmak üzere temel yeteneklerini genişletir.

Zsh'i kurmak için, Linux kurulumunuzla birlikte kutudan çıkan apt paket yöneticisi ile birlikte alın:

 sudo apt install zsh

curl kullanarak oh-my-zsh yükleyin. Oh-my-zsh, eklentiler, temalar ve sayısız klavye kısayoluyla kabuk deneyimini daha da geliştiren zsh için bir dizi yapılandırmadır.

 sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

Ardından, varsayılan kabuğunuzu Zsh olarak değiştirmek isteyip istemediğinizi soracaktır. Yapıyorsunuz, bu yüzden olumlu cevap verin ve artık Zsh ve Oh-My-Zsh ile çalışmaya hazırsınız.

Varsayılan kabuğu değiştirmek isteyip istemediğinizi soran terminal
(Büyük önizleme)

İstemin artık çok daha temiz olduğunu fark edeceksiniz. ~/.zshrc dosyasındaki temayı değiştirerek bu istemin görünümünü değiştirebilirsiniz.

VIM'e benzeyen nano ile açın, ancak gerektiğinde bir şeyleri düzenleyebilir ve çıkabilirsiniz.

 nano ~/.zshrc

Temayı belirleyen satırı değiştirin. Üzerinde tüm tema listesinin bulunduğu bir URL var. Bence "bulut" olanı güzel. Ve sevimli.

zshrc dosyasında ayarlanan "bulut" teması
(Büyük önizleme)

.zshrc yapılan değişiklikleri almak için kaynak sağlamanız gerekir:

 source ~/.zshrc 
"Bulut" teması istemi
(Büyük önizleme)

Not : "agnoster" gibi glifler gerektiren bir tema seçerseniz, Ubuntu Mono'nun glifleri olan powerline ile aşılanmış bir sürümüne ihtiyacınız olacaktır. Aksi takdirde, terminaliniz yüzünüzü klavyede ezdiğiniz gibi tuhaf karakterlerle dolu olacaktır. Nerd Fonts, oldukça iyi çalışıyor gibi görünen birini sunuyor.

Artık sadece dizin adını girerek dizin değiştirmek gibi şeyler yapabilirsiniz. cd gerekmez. Bir dizine geri dönmek ister misin? Sadece bir .. . Dizin adının tamamını yazmanıza bile gerek yok, sadece ilk birkaç harfi yazıp sekmeye basın. Zsh, aramanızla eşleşen tüm dosyaların/dizinlerin bir listesini verecektir ve bunlar arasında sekme yapabilirsiniz.

Birçok yoldan birinin vurgulandığı terminal
(Büyük önizleme)

Düğüm Kurulumu

Bir web geliştiricisi olarak muhtemelen Node.js'yi kurmak isteyeceksiniz. Web geliştirme yapmak için Node'u yüklemeniz gerekmiyor sanırım, ancak 2019'da kesinlikle öyle hissettiriyor!

İlk içgüdünüz, yapabileceğiniz apt ile düğüm yüklemek olabilir, ancak iki nedenden dolayı pişman olursunuz:

  1. Node'un apt üzerindeki sürümü feci şekilde güncel değil;
  2. İzin sorunlarıyla karşılaşmamak için Node'u bir sürüm yöneticisiyle yüklemelisiniz.

Bu sorunların her ikisini de çözmenin en iyi yolu nvm'yi (Düğüm Sürüm Yöneticisi) kurmaktır. zsh yüklediğinizden, nvm eklentisini zshrc dosyanıza ekleyebilirsiniz ve gerisini zsh halleder.

İlk olarak, zsh-nvm klonlayarak eklentiyi kurun. (Endişelenmeyin, Git, Ubuntu kurulumunuzda standart olarak gelir.)

 git clone https://github.com/lukechilds/zsh-nvm ~/.oh-my-zsh/custom/plugins/zsh-nvm

Ardından ~/.zshrc dosyasına eklenti olarak ekleyin.

 `nano ~/.zshrc` plugins (zsh-nvm git) 
zsh-vnm eklentisinin eklendiği zshrc dosyası
(Büyük önizleme)

zshrc dosyasını source ~/.zshrc yeniden kaynaklamayı unutmayın; nvm'nin yüklendiğini göreceksiniz.

nvm'nin kurulum ilerlemesini gösteren terminal
(Büyük önizleme)

Artık düğümü nvm ile kurabilirsiniz. Düğümün birden çok yan yana sürümünü kurmayı ve bunlar arasında zahmetsizce geçiş yapmayı kolaylaştırır. Ayrıca, global npm kurulumları yaptığınızda izin hatası olmaz!

 nvm install --lts

Eklenti size nvm'yi kolayca yükseltme yeteneği verdiği için bunu standart nvm kurulumuna göre öneriyorum. Bu, standart "kıvırma" kurulumunda bir tür acıdır. Eklenti ile bir komut.

 nvm upgrade

Otomatik Önerileri Kullanın

zsh için en sevdiğim eklentilerden biri zsh-autosuggestions. Daha önce terminalde yazdığınız şeyleri hatırlar ve tekrar yazmaya başladığınızda bunları tanır ve ihtiyacınız olabilecek satırı “otomatik olarak önerir”. Bu eklenti, hatırlayabildiğimden daha fazla işe yaradı - özellikle geçmişte kullandığım, ancak hiç hatırlayamadığım uzun CLI komutları söz konusu olduğunda.

Depoyu zsh extensions klasörüne klonlayın:

 git clone https://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions

Ardından onu zsh eklentilerinize ekleyin ve zshrc dosyasını kaynaklayın:

 nano ~/.zshrc # In the .zshrc file plugins(zsh-nvm zsh-autosuggestions git) source ~/.zshrc

Eklenti, zsh geçmişinizi okur, bu nedenle daha önce yazdığınız bazı komutları yazmaya başlayın ve sihri izleyin. Yukarıdaki uzun klon komutunun ilk bölümünü yazmayı deneyin.

Bir git klon komutunu otomatik olarak tamamlayan zsh otomatik önerilerini gösteren terminal
(Büyük önizleme)

↹ tuşuna basarsanız , komut otomatik olarak tamamlanır. ↹ tuşuna basmaya devam ederseniz, geçmişinizde eşleşme olabilecek herhangi bir komut arasında geçiş yapacaktır.

Önemli Klavye Kısayolları

Her zaman kullandığım birkaç terminal kısayolu var. Bunu, VS Kodu dahil tüm araçlarımda buluyorum. Tüm kısayolları öğrenmeye çalışmak zaman kaybıdır çünkü onları hatırlamak için yeterince kullanmazsınız.

İşte düzenli olarak kullandığım birkaç tanesi:

Terminal Kısayolu Bu ne işe yarıyor?
Ctrl + L Bu, terminali temizler ve sizi en üste geri getirir. “Clear” yazmanın karşılığıdır.
Ctrl + U Bu, yalnızca geçerli satırı temizler.
Ctrl + A İmleci komut satırının başına gönderir.
Ctrl + E Satırın sonuna gidin.
Ctrl + K İmleçten sonraki tüm karakterleri silin.

Bu kadar! Muhtemelen öğrendiğim ve sonra unuttuğum her şey çünkü hiçbir zaman işe yaramıyor.

Git'i Yapılandırma(Hub/Lab/Whatevs)

Git Ubuntu'da gelir, bu nedenle kurulum gerekmez. Ssh anahtarlarınızın oluşturulmasını ve çalışmasını sağlamak için seçtiğiniz kaynak kontrol barındırıcınızdaki talimatları takip edebilirsiniz.

Github talimatlarında, ssh anahtarınızı kopyalamak için “kopyala” yardımcı programını kullanmanızı söylediğini unutmayın. Ubuntu'da "xcopy" komutu var, ancak burada çalışmayacak çünkü Linux ve Windows arasında pano açısından bir birlikte çalışma yok.

Bunun yerine, yürütülebilir Windows Panosu'nu kullanabilir ve doğrudan terminalden arayabilirsiniz. Metni önce cat ile almanız ve ardından bunu Windows panosuna aktarmanız gerekir.

 cat ~/.ssh/id_rsa.pub | clip.exe

Github belgeleri, ssh-agent çalıştığından emin olmanızı söyler. Değil. Anahtarınızı aracıya eklemeye çalıştığınızda bunu göreceksiniz:

ssh aracısının çalışmadığını gösteren terminal
(Büyük önizleme)

Aracıyı başlatabilirsiniz, ancak Windows'u yeniden başlattığınızda veya WSL durdurulduğunda yeniden başlatmanız gerekir. Bunun nedeni, WSL'de başlatma sistemi olmamasıdır. WSL başladığında tüm hizmetlerinizi başlatan systemd veya başka bir süreç yoktur. WSL hala önizleme aşamasında ve ekip bunun için bir çözüm üzerinde çalışıyor.

Bu arada ister inanın ister inanmayın, bunun için de bir zsh eklentisi var. Adı ssh-agent ve oh-my-zsh ile yüklenmiş olarak geliyor, yani yapmanız gereken tek şey .zshrc dosyasında ona referans vermek.

 zsh-nvm zsh-autosuggestions ssh-agent git

Bu, WSL'yi ilk başlattığınızda çalışmıyorsa, ssh-agent'ı otomatik olarak başlatacaktır. Dezavantajı ise, WSL her yeni başlatıldığında sizden parolanızı isteyecek olmasıdır. Bu, esasen bilgisayarınızı her yeniden başlattığınızda anlamına gelir.

rsa anahtarı için parola isteyen terminal
(Büyük önizleme)

VS Kodu ve WSL

WSL'nin GUI'si yoktur, bu nedenle VS Code gibi görsel bir araç yükleyemezsiniz. Bunun Windows tarafına yüklenmesi gerekiyor. Bu, Windows tarafında çalışan ve Linux tarafındaki dosyalara erişen bir programınız olduğu için bir sorun teşkil eder ve bu, tüm tuhaflıklara ve “izin reddedildi” sorunlarına neden olabilir. Genel bir kural olarak, Microsoft, Windows programlarıyla WSL tarafındaki dosyaları değiştirmemenizi önerir.

Bunu çözmek için “Remote WSL” adlı bir VS Kodu uzantısı vardır. Bu uzantı Microsoft tarafından yapılmıştır ve WSL içinde, ancak VS Kodunun içinden geliştirmenize olanak tanır.

Uzantı yüklendikten sonra, Komut Paletini açarak VS Kodunu doğrudan Ubuntu tarafına ekleyebilirsiniz ( Ctrl + Shift + P ) ve "Uzak-WSL: Yeni Pencere"yi seçin.

Komut Paletinde vurgulanan “Uzak WSL: Yeni Pencere” komutuyla VS Kodu
(Büyük önizleme)

Bu, sanki tamamen Linux tarafındaymışsınız gibi çalışmanıza izin veren yeni bir VS Kodu örneği açar. “Dosya/Aç” yapmak, Windows yerine Ubuntu dosya sistemini tarar.

VS Kodu "Dosya Aç" görünümü
(Büyük önizleme)

VS Code'daki entegre terminal, güzel bir şekilde özelleştirilmiş zsh kurulumunuzu açar. Remote WSL uzantısını yüklediğinizde, her şey olması gerektiği gibi "çalışır".

Kodu terminalinizden kod ile açarsanız code . , VS Kodu, WSL'den açıldığını otomatik olarak algılar ve Remote WSL uzantısını otomatik olarak ekler.

Uzak WSL ile VS Kodu Uzantıları

VS Kodu için Uzak WSL uzantısı, Linux tarafında küçük bir sunucu kurarak ve ardından buna Windows tarafında VS Kodundan bağlanarak çalışır. Bu durumda, VS Code'a yüklediğiniz uzantılar, WSL'den bir proje açtığınızda otomatik olarak görünmez.

Örneğin, VS Kodunda açık bir Vue projem var. Sözdizimi vurgulama, biçimlendirme ve benzerleri için doğru Vue uzantılarının tümüne sahip olmama rağmen, VS Kodu daha önce hiç .vue dosyası görmemiş gibi davranıyor.

Sözdizimi vurgulama olmadan VS Kodunda açık bir .vue dosyası
(Büyük önizleme)

Yüklediğiniz tüm uzantılar WSL'de etkinleştirilebilir. WSL'de istediğiniz uzantıyı bulun ve "WSL'de Yükle" düğmesini tıklayın.

VS Code'daki Vetur VS Code uzantısı açılış sayfası
(Büyük önizleme)

WSL'ye yüklenen tüm uzantılar, Uzantı Gezgini görünümünde kendi bölümlerinde görünecektir. Çok sayıda uzantınız varsa, her birini ayrı ayrı yüklemek biraz can sıkıcı olabilir. WSL'de sahip olduğunuz her uzantıyı yüklemek istiyorsanız, 'Yerel - Yüklü' bölümünün üstündeki küçük bulut indirme simgesini tıklayın.

Tüm uzantıları WSL'ye yükle simgesi vurgulanmış olarak VS Kodunda Uzantılar görünümü
(Büyük önizleme)

Geliştirici Dizinlerinizi Nasıl Kurabilirsiniz?

Bu zaten fikirli bir makale, bu yüzden projelerinizi dosya sisteminizde nasıl yapılandırmanız gerektiğini düşündüğüm hakkında sormadığınız bir makale.

Tüm projelerimi Linux tarafında tutuyorum. Projelerimi “Belgelerim”e koymuyorum ve sonra WSL'den onlarla çalışmayı denemiyorum. Beynim bunu kaldıramıyor.

Linux'ta /home klasörümün kök dizinine koyduğum /dev adında bir klasör oluşturuyorum. Bu klasörün içinde Github depomla aynı ada sahip başka bir tane oluşturuyorum: /burkeholland . Bu klasör, tüm projelerimin gittiği yerdir - Github'a gönderilmeyenler bile.

Farklı bir Github hesabından (örneğin “microsoft”) bir repo klonlarsam, “dev” içinde /microsoft adında yeni bir klasör oluşturacağım. Daha sonra repoyu bunun içindeki bir klasöre klonlarım.

Temel olarak, yerel makinemde kaynak denetimiyle aynı yapıyı taklit ediyorum. Projelerin nerede olduğunu ve hangi depolara bağlı olduklarını sadece konumlarından dolayı çok daha kolay buluyorum. Çok basit, ancak her şeyi düzenli tutmama yardım etmede oldukça etkili. Ve alabileceğim tüm yardıma ihtiyacım var.

Yazarlar, terminalde listelenen klasör yapısını düşündü
(Büyük önizleme)

Windows Gezgini'nden Dosyalara Göz Atma

Windows tarafından Linux'ta bir dosyaya erişmeniz gereken zamanlar vardır. WSL ile ilgili güzel olan şey, bunu hala yapabilmenizdir.

Bir yol, WSL'ye eşlenmiş bir sürücü gibi erişmektir. Bir \\wsl$ ile doğrudan gezgin çubuğundan erişin:

 \\wsl$ 
Windows Gezgini, monte edilmiş bir dizin olarak Ubuntu kurulumu
(Büyük önizleme)

Bunu birkaç farklı nedenden dolayı yapabilirsiniz. Örneğin, bugün web mağazasında olmayan bir Chrome uzantısına ihtiyacım vardı. Bu yüzden depoyu WSL'de klonladım, ardından “Paketlenmemiş Uzantı” olarak ona gittim ve Edge'e yükledim.

Linux'ta biraz sıklıkta yaptığım bir şey, bir dosya içeren dizini doğrudan terminalden açmaktır. Bunu WSL'de de doğrudan explorer.exe arayarak yapabilirsiniz. Örneğin, bu komut geçerli dizini Windows Gezgini'nde açar.

 $ explorer.exe . 
Terminalden geçerli dizinde Windows gezgininin açılışını gösteren bir GIF

Bu komut biraz zahmetli olsa da. Linux'ta sadece open . . ~/.zshrc içinde bir takma ad oluşturarak aynı sihri yapabiliriz.

 alias open="explorer.exe"

Liman işçisi

Tüm araçların Linux tarafında olması gerektiğini söylediğimde, bunu kastetmiştim. Buna Docker dahildir.

Kauçuğun gerçekten yolla buluşmaya başladığı yer burasıdır. Burada ihtiyacımız olan şey, Windows içinde çalışan Linux içinde çalışan Docker. Bir blog gönderisine yazdığınızda biraz Rus Yuvalama Bebeği. Gerçekte, oldukça basittir.

Windows için doğru Docker sürümüne ihtiyacınız olacak. Bu yazının yazıldığı tarih itibariyle, bu WSL 2 Tech Preview.

Yükleyiciyi çalıştırdığınızda, Linux kapsayıcıları yerine Windows kapsayıcılarını kullanmak isteyip istemediğinizi soracaktır. Kesinlikle yaparsın. Aksi takdirde, Docker'ı WSL'de çalıştırma seçeneğine sahip olmayacaksınız.

"Windows Kapsayıcılarını Kullan" seçeneğinin seçili olduğu Docker Kurulum ekranı
(Büyük önizleme)

Artık sistem tepsisindeki öğeye tıklayarak ve “WSL 2 Tech Preview” öğesini seçerek WSL'de Docker'ı etkinleştirebilirsiniz:

Docker Daemon bağlam menüsündeki WSL2 Tech Önizleme Seçeneği
(Büyük önizleme)

Hizmeti başlattıktan sonra, beklediğiniz gibi Docker'ı WSL içinde kullanabilirsiniz. Docker'ı WSL'de çalıştırmak, oldukça büyük bir performans artışı ve ayrıca kaplarda soğuk başlatma süresinde bir artış sağlar.

Ayrıca VS Code için Docker uzantısını yüklemenizi tavsiye edebilir miyim? Docker kurulumunuza görsel bir arayüz koyar ve tüm bu komut satırı bayraklarını ve seçeneklerini hatırlamanız gerekmediğinden genellikle Docker ile çalışmayı kolaylaştırır.

Windows'ta Daha Fazla Bash Alın

Bu noktada, Bash'i Windows'a nasıl koyacağınız ve oraya vardığınızda nasıl çalıştığı hakkında fikir edinmelisiniz. Terminalinizi sınırsızca özelleştirebilirsiniz ve PATH değişkenlerini otomatik olarak ayarlamak, takma adlar oluşturmak, terminalinizde bir ASCII ineği almak ve çok daha fazlasını yapmak için ekleyebileceğiniz her türden rad programı vardır.

Bash'i Windows'ta çalıştırmak benim için tamamen yeni bir evrenin kapılarını açtı. Verimlilik açısından sevdiğim Windows ile geliştirici olarak güvendiğim Linux'u birleştirebiliyorum. Hepsinden iyisi, artık tek bir makine ile her iki platform için de uygulamalar geliştirebiliyorum.

Daha fazla okuma

Windows'ta Bash hakkında daha fazla bilgiyi buradan okuyabilirsiniz:

  • "Windows 10 için Linux Kurulum Kılavuzu İçin Windows Alt Sistemi" Microsoft Docs
  • "Windows 10'da Bash Kabuğu Nasıl Kurulur ve Kullanılır", Chris Hoffman, Nasıl Yapılır Geek
  • “SSH'yi WSL ile Paylaşmak,” Drew Wilson
  • Brian Ketelsen, “Linux İçin Pencere Alt Sistemiyle Çıldırmak”
  • “Windows 10'un Yeni Bash Kabuğuyla Yapabileceğiniz Her Şey,” Chris Hoffman, Nasıl Yapılır Geek

Brian Ketelsen, Matt Hernandez, Rich Turner ve Craig Loewen'e bu makaledeki sabırları, yardımları ve rehberlikleri için özel teşekkürler.