Bagaimana cara mengkonfigurasi ConEmu untuk menjalankan Cygwin Bash?

42

Saya membuat tugas baru

{Pesta}

melewati direktori rumah saya

/ dir "C: \ Users \ TMB \"

dan menambahkan bash sebagai aplikasi

C: \ cygwin \ bin \ bash.exe

Ketika saya membuka Bash, itu tidak dapat menggunakan utilitas UNIX / Cygwin dasar. Bagaimana cara mengkonfigurasi ConEmu untuk menjalankan Cygwin Bash?

TMB
sumber
Versi ConEmu apa yang Anda coba? Juga, tidak semua versi bash mendukung direktori yang berfungsi. Git bash - bisa, seingat saya.
Maximus
Saya tidak tahu cara mengatur saya direktori kerja di profil bash saya, tapi saya rasa saya menemukan solusi yang lebih umum di bawah jawaban yang ditandai.
TMB
ConEmu x64 120727c.x64
TMB
Dengan "direktori kerja" maksud saya yang Anda tentukan dengan / dir switch. BTW, sudahkah Anda membaca jawaban ini? superuser.com/a/482340/139371
Maximus

Jawaban:

48

Ini mungkin membantu orang lain.

Sepertinya versi 140310 dari ConEmu secara otomatis mendeteksi CygWin Bash.

Jika Anda menginstal Cygwin setelah menginstal ConEmu, Anda harus Muat Ulang ... daftar Tugas Anda.

  1. Buka Pengaturan ... (Menangkan + Alt + P)
  2. Navigasikan ke daftar Tugas Anda (Startup> Tugas)
  3. Klik pada Reload ... tombol.

Anda seharusnya sekarang melihat {CygWin bash} sebagai salah satu opsi Anda dalam daftar tugas yang telah ditentukan:

Cuplikan layar CygWin bash di ConEmu

PS - Jika metode ini tidak berhasil, coba atur ulang pengaturan ConEmu Anda (klik tombol Reset ... di bagian bawah jendela Pengaturan Anda ).

FilmiHero
sumber
2
Dan jika Reload dan Mengatur Ulang tidak berfungsi, saya kira kita bisa memasukkan path, perintah, dan opsi seperti yang ditunjukkan pada tangkapan layar Anda.
TMB
%SystemDrive%\cygwin64\bin\sh.exe --login -iuntuk saya di 140304 di Saluran Pratinjau.
TMB
3
Bagi saya mengklik Add default tasks...tombol (tepat di atas Reloadtombol) melakukan trik ...
Hanan N.
9
Perhatikan bahwa sh.exe tidak akan sumber .bashrc Anda; hanya bash.exe yang akan melakukan itu. Jadi saya menggunakan perintah%SystemDrive%\cygwin64\bin\bash.exe --login -i
John Prior
Komentar @ JohnPrior sebenarnya sangat membantu. Variabel PATH semuanya salah ketika menggunakan sh.exe, tetapi dengan bash.exe sekarang dapat benar-benar menemukan aplikasi saya.
flungo
7

atau bukannya

C:\cygwin\bin\bash.exe

menggunakan

C:\cygwin\Cygwin.bat
Yura
sumber
Saya pikir itu memang cara paling sederhana.
laurent
6

Pastikan bahwa Bash menerima nilai yang masuk akal untuk $PATH; biasanya itu mewarisi itu dari apa pun panggilan itu, tetapi ConEmu adalah aplikasi Windows, jadi semua itu akan menyediakan apa pun yang telah Anda tetapkan %Path%. Secara umum itu tidak termasuk direktori jalur Cygwin, jadi Bash tidak tahu ke mana harus mencari ls, & c.

Cara saya memecahkan ini adalah dengan, melalui cara apa pun yang ditawarkan ConEmu untuk melakukannya, lolos --login -isebagai argumen baris perintah ke Bash; ini akan menceritakannya Anda menjalankan sebagai shell login interaktif, sehingga akan membaca /etc/profile, ~/.profiledan ~/.bashrcdi mulai. Dalam pengalaman saya, itu sudah cukup untuk membuatnya masuk akal $PATH; jika itu tidak berhasil untuk Anda, Anda dapat menentukannya secara eksplisit dengan garis seperti PATH=/bin:/usr/bin:/usr/local/bin:[...]:$PATHdi ~/.bashrc.

Aaron Miller
sumber
Ini memberi saya utilitas yang saya cari berikutnya saya ingin menunjuk ke direktori home windows normal saya tidak /cygdrive/c/cygwin/homejadi saya menghapus homedan membuat persimpangan dengan mklink -J home C:\Usersdi cmd.exe
TMB
3
Senang itu berhasil untuk Anda. Saya tidak pernah berpikir untuk menggunakan persimpangan untuk menunjuk ~ di c: \ users \ me, tapi saya pernah melakukannya dengan symlink, dan dari pengalaman itu saya memberi Anda peringatan berikut: jika Anda perlu menjalankan ComboFix untuk membersihkan malware infestasi pada mesin Anda, itu akan menerbangkan file apa pun di c: \ users \ you . Saya kehilangan semua yang ada di direktori rumah saya satu kali, dan cadangan terbaru saya berumur satu minggu. Jangan membuat kesalahan yang sama saya lakukan!
Aaron Miller
2

Ini cara saya

Buat tugas baru di ConEmu dengan mengikuti perintah

set HOME=C:\Home & "C:\Home\Applications\cygwin64\bin\mintty.exe" -i /Cygwin-Terminal.ico -
Berdengung
sumber
Solusi Anda berfungsi, dan saya suka memiliki antarmuka mintty.exe, tetapi dapatkah Anda menjelaskan mengapa ini berhasil? Terutama, apa yang "&" lakukan di sini?
Dr. Koutheir Attouchi
0

Saya tahu itu pertanyaan yang cukup lama tetapi saya tetap ingin membagikan ini:

Untuk memulai bash dalam direktori kerja tertentu, cukup setel perintah misalnya ke SET CHERE_INVOKING=1 & "C:\cygwin\bin\bash.exe --login -i" -cur_console:t:"cygwin terminal"dan tentukan direktori kerja secara normal melalui /dir "..."seperti dijelaskan di sini .

Felix Bayer
sumber
0

Untuk membuat perintah Cygwin tersedia dari bash, terlepas dari bagaimana Anda menjalankannya, serta dari cmdatau shell lain, pastikan Pathvariabel lingkungan Anda memiliki bindirektori Cygwin ditambahkan.
Buka Control Panel > System and Security > System(hotkey standar Win+Pause), lalu Advanced system settings > Environment variables. Untuk semua pengguna, edit Pathvariabel sistem , hanya untuk pengguna Anda - edit (buat jika tidak ada) Pathvariabel pengguna .
Dengan asumsi cygwindiinstal pada C:\cygwin(mungkin cygwin64 untuk Cygwin 64-bit), tambahkan C:\cygwin\binke Path. Ketahuilah bahwa jika Anda menggunakan Pathvariabel sistem , jika Anda menambahkan Cygwin bindi awal, beberapa perintah Cygwin akan membayangi yang sudah ada di dalamnya (mis. Cygwin findakan digunakan sebagai pengganti Windows 'find). Saya lebih suka melakukannya, tetapi jika tidak, tambahkan Cygwin bindi akhir buku Anda Path.

Karena sebagian besar jawaban lain juga berbicara tentang pengaturan ConEmu, saya akan memberikan pendapat pribadi saya juga.

Saya lebih suka menjalankan shell non-login. Sebagai contoh, di Linux Anda mendapatkan shell login ketika Anda login di konsol teks atau melalui ssh, dan shell interaktif non-login ketika Anda membuka terminal emulator (xterm, konsole, dll.).

Tugas {Bash} saya memiliki /dir "%CD%"parameter tugas untuk mengatur direktori kerja ke direktori kerja tab saat ini (mis. Jika tugas bash dari Jauh). Perintah untuk memulai bash:
%ConEmuDrive%\cygwin\bin\bash.exe -new_console:C:"%ConEmuDrive%\cygwin\Cygwin.ico"

--login -iOpsi pemberitahuan dihilangkan, shell akan mulai sebagai shell interaktif non-login (karena tidak memiliki argumen non-opsi dan tanpa opsi -c, dan stdin dan stdout terhubung ke terminal, lihat bagian INVOCASI dari manual bash untuk lebih penjelasan). Ini akan membaca dan menjalankan perintah dari pengguna rcfile ~/.bashrc(tidak /etc/profileatau ~/.bash_profileseperti shell login akan, sehingga Anda tidak perlu set CHERE_INVOKING=1yang hanya relevan berkaitan dengan /etc/profile). Jadi, letakkan alias pengguna Anda, opsi shell, variabel lingkungan ekstra, dll. Ke ~ / .bashrc, tempat mereka seharusnya berada.

Gene Pavlovsky
sumber