Bagaimana cara mengubah direktori startup default di Cygwin?

36

Setiap kali saya memulai cygwin, saya perlu melakukan cd beberapa level ke satu-satunya direktori yang saya pedulikan ketika menggunakan cygwin.

Bagaimana saya bisa mendapatkan cygwin untuk memulai di direktori khusus ini secara default ... yaitu, setiap kali saya memulai Cygwin itu akan berada di direktori itu?

Saya menemukan beberapa hal yang mungkin, atau menutup, tetapi saya tidak memahaminya, dan benar-benar tidak ada hasil ketika saya mencari istilah (n00b) ini. Bantuan apa pun akan luar biasa!

Mat
sumber
Hanya sedikit tip: menggunakan cygwin Anda tidak perlu melakukan cd beberapa kali - Anda dapat melakukannya dengan satu perintah (saran akan tetap muncul untuk subdirektori).
Jalur

Jawaban:

48

Cukup tambahkan

cd /path/to/directory/you/care/about

ke bagian bawah file ~ / .bashrc Anda.

garyjohn
sumber
1
di mana file ~ / .bashrc di instalasi windows
Erdem Ece
4
Itu tergantung pada bagaimana Anda menginstal Cygwin, tetapi jalur Windows ke direktori home Cygwin Anda biasanya C:\cygwin\home\%USERNAME%, yang akan membuat jalur Windows ke ~/.bashrc C:\cygwin\home\%USERNAME%\.bashrc.
garyjohn
bagaimana jika direktori home dafault adalah direktori di mana saya tidak ingin meletakkan file apa pun.
Arturo
@ Arturo Saya pikir Anda mengacaukan dua hal - direktori home pengguna Anda dan direktori home Cygwin. File .bashrc tetap ada jika Anda menginstal Cygwin.
Jalur
3

Tentukan "mulai cygwin"? Anda dapat menjalankan server cygwin saat menghidupkan mesin Anda, tetapi saya berasumsi bukan itu yang Anda maksud.

Jika maksud Anda, berakhir di folder tertentu setiap kali Anda membuka prompt shell, Anda dapat memasukkannya ke $ HOME / .bashrc Anda

Edit $ HOME / .bashrc Anda menggunakan editor cygwin (yang menggunakan akhiran baris UNIX), tambahkan satu baris

cd /whatever/directory/you/want

Jika Anda terus-menerus pergi ke direktori ini, Anda mungkin lebih baik membuat alias juga.

Di $ HOME / .bashrc Anda:

alias GT='cd /whatever/directory/you/want'

Sebut saja apa pun yang Anda inginkan; Saya hanya menggunakan GT untuk "pergi ke sana", dan saya menggunakan huruf besar karena membuatnya mudah untuk dipisahkan dari perintah builtin, yang tidak pernah menggunakan huruf besar.

Homolka yang kaya
sumber
2

di baris terakhir .bash_profile Anda (atau .profile), masukkan cd your/dirctory/here

glenn jackman
sumber
0

skrip python

!! sebelum digunakan, tambahkan .bashrc sembarang string sampai akhir !!

menggunakan name_script.py c:\path

path_bachrc - path ke .bashrc

cmd - jalan ke cygwin.bat

#***********************************************#
#   [email protected]                         #
#***********************************************#
import argparse
import subprocess
import os

path_bachrc = 'c:/PP/cygwin/home/adm/.bashrc'
cmd = 'c:\PP\cygwin\Cygwin.bat'

def delEndLineFromFile(filename):
    with open(filename, 'r') as f:
        aList = f.readlines()

    bList = aList[0:-1]

    with open(filename, 'w') as fd:
        fd.writelines(bList)


parser = argparse.ArgumentParser()
parser.add_argument("newPath", type=str, help="New path in .bachrc cygwin")
args = parser.parse_args();

delEndLineFromFile(path_bachrc);

p = args.newPath;
pNew = 'cd /cygdrive/' + p[:1] + p[2:].replace('\\', '/')
print(pNew)

with open(path_bachrc, 'a') as f:
    f.write(pNew)

PIPE = subprocess.PIPE
p = subprocess.Popen(cmd, shell = True)
pengguna236976
sumber
2
Tolong jelaskan.
Roney Michael
skrip python menggunakan name_script.py c: \ path \
user236976
path_bachrc - path ke .bashrc
user236976
cmd - path ke cygwin.bat
user236976
0

Solusi ini tidak memerlukan pengeditan .bashrc:

Di bawah ini adalah cuplikan dari dokumen resmi di mkpasswd:

Sebagai contoh, perintah ini:

Contoh 3.11. Menggunakan root beranda alternatif

$ mkpasswd -l -p "$(cygpath -H)" > /etc/passwd

akan menempatkan direktori home pengguna lokal di direktori 'Profil' Windows.

(dijawab disalin dari pertanyaan serupa pada stackoverflow karena saya lebih suka solusi ini daripada yang ada di sini)

Baris
sumber