Come condividere file .bashrc tra due account utente mac


11

Ho impostato due accessi utente sul mio computer, uno per la casa e uno per il lavoro. Vorrei poter condividere le mie impostazioni bash e vim tra i due utenti. C'è un modo per fare questo? Finora li ho copiati da un account all'altro, ma mi piacerebbe poter avere solo un file tra i due in modo da poter apportare modifiche in un solo posto. È possibile? Grazie.

Risposte:


11

È possibile utilizzare lo lnstrumento per creare un collegamento simbolico :

ln -s /Users/user1/.bashrc /Users/user2/.bashrc

In questo esempio stai creando un nuovo link per user2tornare al file esistente nella user1directory di. Potrebbe essere necessario utilizzare sudo ln ...se le autorizzazioni non sono impostate correttamente.


5
In questo contesto, probabilmente è meglio effettuare il collegamento fisico, quindi l'eliminazione di un account utente non elimina il file .bashrc anche per l'account rimanente.
Gerry,

per farlo, ometti semplicemente l' -sopzione al lncomando
MattDMo

3
Ancora meglio, fai questo ma metti il ​​tuo bashrc in una cartella Dropbox condivisa in modo che sia disponibile su ogni macchina che usi ed è stato eseguito il backup.
Decano del

11

Ci sono molti modi per farlo, ma il linguaggio comune che ho visto è installare un singolo file fuori dalla cartella principale di ogni utente e avere entrambi i file ~ / .bashrc nel file comune.

Ciò consente chiarezza, possibilità di apportare modifiche a livello di utente in un secondo momento, ma mantiene anche un solo file che sopravviverà indipendentemente dal fatto che uno o entrambi gli utenti vengano eliminati in un secondo momento.

È un po 'più lavoro che un duro collegamento al file e la mia esperienza nell'uso di collegamenti soft per questo genere di cose è di evitarli poiché alcuni strumenti non gestiscono i collegamenti soft (o sym) come sperate.

È anche molto più semplice dell'utilizzo del controllo del codice per distribuire i file, ma è anche un ottimo modo per gestire il cambiamento se si sta configurando git o mercurial o un altro sistema di controllo della versione.


+1 per questa soluzione, l'ho implementato con git qui - github.com/balupton/dotfiles - il grande vantaggio che ho riscontrato è che posso facilmente installare e utilizzare la mia configurazione personalizzata indipendentemente dal sistema operativo (osx, ubuntu, fedora , ecc.) in quanto posso mantenere la loro configurazione specifica della macchina proprio come normale ma sorgente nella configurazione comune che si sincronizza tra di loro.
Balupton,

8

È possibile modificare il .bashrc a livello di sistema, che si trova in / etc / bashrc.

Se hai comunque familiarità con Git, dovresti prendere in considerazione la creazione di un repository per i tuoi "dotfile". È possibile utilizzare un repository Github gratuito per farlo. Tracciare i tuoi dotfile in questo modo ha molti vantaggi:

  • È possibile eseguire il fork o il pull da uno dei molti repository di dotfile pubblici disponibili o trarne ispirazione
  • È possibile installare e aggiornare facilmente i dotfile su diversi account utente e persino macchine diverse
  • Ottieni il controllo di revisione, che potrebbe salvarti da alcuni problemi a lungo termine

Anche l'installazione ti dà le autorizzazioni corrette
user151019

2

Come altri hanno notato, è possibile farlo con un collegamento simbolico, ma è anche importante modificare in modo appropriato le autorizzazioni in modo che entrambi gli utenti possano accedere e modificare il file.

  1. Rimuovi qualsiasi esistente .bashrcper user2:

    rm /Users/user2/.bashrc
  2. Symlink user1's .bashrcdi user2directory' s dell'utente:

    ln -s /Users/user1/.bashrc /Users/user2/.bashrc
  3. Modifica le autorizzazioni in modo che entrambi gli utenti possano modificare il file:

    chmod +a "user2 allow read,write,execute" /Users/user2/.bashrc

0

Lascia che uno sia un collegamento simbolico all'altro.

In terminal.app come uso user2

cd $HOME; ln -s ../user1/.bashrc
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.