Como altero o diretório de inicialização padrão no Cygwin?

36

Sempre que inicio o cygwin, preciso baixar vários níveis até o único diretório que me interessa ao usar o cygwin.

Como posso fazer com que o cygwin inicie neste diretório específico por padrão ... ou seja, toda vez que eu iniciar o Cygwin, ele já estará nesse diretório?

Encontrei algumas coisas que podem ser, ou próximas, mas não as entendo, e realmente não há resultados quando procuro esses termos (n00b). Qualquer ajuda seria ótimo!

Matt
fonte
Apenas uma pequena dica: usando o cygwin, você não precisa cd várias vezes - você pode fazer isso com um comando (as sugestões ainda aparecerão nos subdiretórios).
Linha

Respostas:

48

Basta adicionar

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

na parte inferior do seu arquivo ~ / .bashrc.

garyjohn
fonte
1
onde é que / arquivo ~ .bashrc na instalação do windows
Erdem Ece
4
Depende de como você instalou o Cygwin, mas o caminho do Windows para o diretório inicial do Cygwin é normalmente C:\cygwin\home\%USERNAME%, o que tornaria o caminho do Windows para ~/.bashrc C:\cygwin\home\%USERNAME%\.bashrc.
garyjohn
e se o diretório inicial dafault for um diretório em que não quero colocar nenhum arquivo.
Arturo
@ Arturo Acho que você estraga duas coisas - o diretório pessoal do usuário e o diretório pessoal do Cygwin. De qualquer forma, o arquivo .bashrc está lá se você instalar o Cygwin.
Linha
3

Definir "iniciar cygwin"? Você pode executar servidores cygwin quando liga sua máquina, mas presumo que não seja isso que você quer dizer.

Se você quer dizer, termine em uma pasta específica sempre que abrir um prompt de shell, você pode colocá-lo em seu $ HOME / .bashrc

Edite seu $ HOME / .bashrc usando um editor cygwin (aquele que usa terminações de linha UNIX), adicione uma linha

cd /whatever/directory/you/want

Se você estiver constantemente acessando esse diretório, provavelmente também será melhor criar um alias.

No seu $ HOME / .bashrc, coloque:

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

Chame como quiser; Eu apenas usei o GT para "ir lá" e uso letras maiúsculas porque facilita a separação dos comandos internos, que nunca são maiúsculos.

Rich Homolka
fonte
2

na última linha do seu .bash_profile (ou .profile), coloque cd your/dirctory/here

Glenn Jackman
fonte
0

script python

!! antes de usar adicione .bashrc qualquer string até o fim !!

usar name_script.py c:\path

path_bachrc - caminho para .bashrc

cmd - caminho para 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)
user236976
fonte
2
Por favor explique.
Roney Michael
python uso roteiro name_script.py c: \ path \
user236976
path_bachrc - caminho para .bashrc
user236976
cmd - caminho para cygwin.bat
user236976
0

Esta solução não requer edição .bashrc:

Abaixo está um trecho dos documentos oficiais no mkpasswd:

Por exemplo, este comando:

Exemplo 3.11 Usando uma raiz inicial alternativa

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

colocaria os diretórios pessoais dos usuários locais no diretório 'Perfis' do Windows.

(respondeu copiado de uma pergunta semelhante no stackoverflow porque eu gosto mais desta solução do que as que estão aqui)

Linha
fonte