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?
Jawaban:
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.
Anda seharusnya sekarang melihat {CygWin bash} sebagai salah satu opsi Anda dalam daftar tugas yang telah ditentukan:
PS - Jika metode ini tidak berhasil, coba atur ulang pengaturan ConEmu Anda (klik tombol Reset ... di bagian bawah jendela Pengaturan Anda ).
sumber
%SystemDrive%\cygwin64\bin\sh.exe --login -i
untuk saya di 140304 di Saluran Pratinjau.Add default tasks...
tombol (tepat di atasReload
tombol) melakukan trik ...%SystemDrive%\cygwin64\bin\bash.exe --login -i
atau bukannya
menggunakan
sumber
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 mencarils
, & c.Cara saya memecahkan ini adalah dengan, melalui cara apa pun yang ditawarkan ConEmu untuk melakukannya, lolos
--login -i
sebagai argumen baris perintah ke Bash; ini akan menceritakannya Anda menjalankan sebagai shell login interaktif, sehingga akan membaca/etc/profile
,~/.profile
dan~/.bashrc
di 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 sepertiPATH=/bin:/usr/bin:/usr/local/bin:[...]:$PATH
di~/.bashrc
.sumber
/cygdrive/c/cygwin/home
jadi saya menghapushome
dan membuat persimpangan denganmklink -J home C:\Users
di cmd.exeIni cara saya
Buat tugas baru di ConEmu dengan mengikuti perintah
sumber
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 .sumber
Untuk membuat perintah Cygwin tersedia dari
bash
, terlepas dari bagaimana Anda menjalankannya, serta daricmd
atau shell lain, pastikanPath
variabel lingkungan Anda memilikibin
direktori Cygwin ditambahkan.Buka
Control Panel > System and Security > System
(hotkey standarWin+Pause
), laluAdvanced system settings > Environment variables
. Untuk semua pengguna, editPath
variabel sistem , hanya untuk pengguna Anda - edit (buat jika tidak ada)Path
variabel pengguna .Dengan asumsi
cygwin
diinstal padaC:\cygwin
(mungkin cygwin64 untuk Cygwin 64-bit), tambahkanC:\cygwin\bin
kePath
. Ketahuilah bahwa jika Anda menggunakanPath
variabel sistem , jika Anda menambahkan Cygwinbin
di awal, beberapa perintah Cygwin akan membayangi yang sudah ada di dalamnya (mis. Cygwinfind
akan digunakan sebagai pengganti Windows 'find
). Saya lebih suka melakukannya, tetapi jika tidak, tambahkan Cygwinbin
di akhir buku AndaPath
.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 -i
Opsi 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/profile
atau~/.bash_profile
seperti shell login akan, sehingga Anda tidak perluset CHERE_INVOKING=1
yang hanya relevan berkaitan dengan/etc/profile
). Jadi, letakkan alias pengguna Anda, opsi shell, variabel lingkungan ekstra, dll. Ke ~ / .bashrc, tempat mereka seharusnya berada.sumber