Làm cách nào để thay đổi thư mục khởi động mặc định trong Cygwin?


36

Bất cứ khi nào tôi bắt đầu cygwin, tôi cần ghi nhiều cấp xuống thư mục duy nhất mà tôi quan tâm khi sử dụng cygwin.

Làm cách nào tôi có thể bắt Cygwin bắt đầu trong thư mục cụ thể này theo mặc định ... tức là, mỗi lần tôi khởi động Cygwin, nó sẽ nằm trong thư mục đó?

Tôi đã tìm thấy một số thứ có thể là nó hoặc đóng, nhưng tôi không hiểu chúng và thực sự không có kết quả khi tôi tìm kiếm các cụm từ (n00b) này. Bất kỳ sự trợ giúp nào đều sẽ là tuyệt vời!


Chỉ là một mẹo nhỏ: sử dụng cygwin bạn không cần phải cd nhiều lần - bạn có thể thực hiện bằng một lệnh (các đề xuất sẽ vẫn xuất hiện cho các thư mục con).
Dòng

Câu trả lời:


48

Chỉ cần thêm

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

ở dưới cùng của tệp ~ / .bashrc của bạn.


1
Tệp ~ / .bashrc ở đâu trong cài đặt windows
Erdem Ece

4
Nó phụ thuộc vào cách bạn cài đặt Cygwin, nhưng đường dẫn Windows đến thư mục chính Cygwin của bạn thường C:\cygwin\home\%USERNAME%, điều này sẽ làm cho đường dẫn Windows tới ~/.bashrc C:\cygwin\home\%USERNAME%\.bashrc.
garyjohn

Điều gì xảy ra nếu thư mục nhà dafault là một thư mục mà tôi không muốn đặt bất kỳ tệp nào.
Arturo

@Arturo Tôi nghĩ bạn nhầm lẫn hai điều - thư mục nhà người dùng của bạn và thư mục nhà Cygwin. Tập tin .bashrc vẫn ở đó nếu bạn cài đặt Cygwin.
Dòng

3

Xác định "bắt đầu cygwin"? Bạn có thể chạy các máy chủ cygwin khi cấp nguồn cho máy, nhưng tôi cho rằng đó không phải là ý bạn.

Nếu bạn có ý định, hãy kết thúc trong một thư mục cụ thể mỗi khi bạn mở dấu nhắc shell, bạn có thể đặt nó trong $ HOME / .bashrc của bạn

Chỉnh sửa $ HOME / .bashrc của bạn bằng trình soạn thảo cygwin (một trình sử dụng kết thúc dòng UNIX), thêm một dòng

cd /whatever/directory/you/want

Nếu bạn liên tục truy cập thư mục này, có lẽ bạn cũng nên tạo bí danh.

Trong $ HOME / .bashrc của bạn đặt:

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

Gọi nó là bất cứ điều gì bạn muốn; Tôi chỉ sử dụng GT cho "đến đó" và tôi viết hoa bởi vì nó giúp dễ dàng tách khỏi các lệnh dựng sẵn, không bao giờ được viết hoa.


2

trong dòng cuối cùng của .bash_profile (hoặc .profile) của bạn, đặt cd your/dirctory/here


0

kịch bản trăn

!! trước khi sử dụng, hãy thêm .bashrc bất kỳ chuỗi nào vào cuối !!

sử dụng name_script.py c:\path

path_bachrc - đường dẫn đến .bashrc

cmd - đường dẫn đến cygwin.bat

#***********************************************#
#   gangelXXX@gmail.com                         #
#***********************************************#
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)

2
Vui lòng giải thích.
Roney Michael

tập lệnh python sử dụng name_script.py c: \ path \
user236976

path_bachrc - đường dẫn đến .bashrc
user236976

cmd - đường dẫn đến
cygwin.bat

0

Giải pháp này không yêu cầu chỉnh sửa .bashrc:

Dưới đây là đoạn trích từ các tài liệu chính thức trên mkpasswd:

Ví dụ: lệnh này:

Ví dụ 3.11. Sử dụng một gốc nhà thay thế

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

sẽ đặt các thư mục nhà của người dùng cục bộ trong thư mục 'Hồ sơ' của Windows.

(đã trả lời sao chép từ câu hỏi tương tự trên stackoverflow vì tôi thích giải pháp này hơn những câu hỏi ở đây)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.