Zwykle, gdy znajduję polecenie, które chcę uzyskać alias, odbijam je echem do mojego .bashrc w następujący sposób:
[up button pressed to last command, then line edited so that it reads]
$echo "command-i-just-did" >> ~/.bashrc
Może to być lepszy sposób. Ale tak czy inaczej, właśnie teraz nadpisałem cały plik .rc, używając pojedynczego szewronu. Ponieważ jednak .bashrc jest nadal aktualny, nadal akceptuje moje stare aliasy (na razie oczywiście). Czy istnieje sposób na jego odzyskanie?
bash
data-recovery
bashrc
ixtmixilix
źródło
źródło
echo "set -o noclobber" > ~/.bashrc
(pamiętaj, aby dodać drugi wspornik kątowy).bashrc
jakąś logikę zależną od lokalnych zmiennych, takich jak host, użytkownik itp., Prawdopodobnie nie można tego odzyskać. Prawdziwą odpowiedzią jest przywrócenie z najnowszej kopii zapasowej. Masz ostatnią kopię zapasową, prawda?Odpowiedzi:
alias
bez parametru generuje definicje aktualnie zdefiniowanych aliasów.declare -f
generuje definicje aktualnie zdefiniowanych funkcji.export -p
wyprowadza definicje aktualnie zdefiniowanych zmiennych.Wszystkie te polecenia wyjściowe definicje są gotowe do ponownego użycia, możesz przekierować ich wyniki bezpośrednio do nowego
~/.bashrc
.Wszystkie listy będą zawierać wiele elementów zdefiniowanych gdzie indziej, na przykład
/etc/profile
i/etc/bash_completion
. Będziesz musiał ręcznie wyczyścić listę.źródło
.bashrc
dla twojego systemu. W Debianie jest on dostępny/etc/skel
lub możesz utworzyć nowego użytkownika, jeśli możesz, aby uzyskać zupełnie nowy.bashrc
.set
ideclare
(bez argumentów) wyświetlają to wszystko na raz.typeset -f > .bashrc
powinien to zrobić, pod warunkiem, że masz tylko pseudonimy.źródło
functions
Komenda nie istnieje dla mnie na4.2.10(2)-release
. Prawdopodobnie masz na myślideclare -f
.