.bashrc เขียนทับแล้วแต่ยังมีที่มา - จะกู้คืนได้อย่างไร?


19

โดยปกติเมื่อฉันพบคำสั่งที่ฉันต้องการนามแฝงฉันจะสะท้อนไปยัง. bashrc ของฉันอย่างนั้น:

[up button pressed to last command, then line edited so that it reads]
$echo "command-i-just-did" >> ~/.bashrc

อาจมีวิธีที่ดีกว่าในการทำเช่นนี้ แต่อย่างไรก็ตามตอนนี้ฉันเขียนทับไฟล์. rc ทั้งหมดโดยใช้เครื่องหมายบั้งเดียว อย่างไรก็ตามเนื่องจาก. bashrc ยังคงเป็นปัจจุบันอยู่ก็ยังคงยอมรับนามแฝงเก่าของฉัน (สำหรับตอนนี้) ดังนั้นมีวิธีการกู้คืนหรือไม่


6
echo "set -o noclobber" > ~/.bashrc(อย่าลืมเพิ่มวงเล็บมุมสอง)
hhaamu


1
สำหรับอนาคต: สำรองไฟล์ของคุณเพื่อไม่ให้เกิดปัญหา คุณอาจลองสร้างไฟล์แยกต่างหากสำหรับโปรแกรมเสริมเหล่านี้อย่างรวดเร็วและทำการจัดหาในที่อื่นเช่น. bashrc จัดเตรียมตาข่ายนิรภัยพื้นฐานและคุณสามารถเปิดและปิดได้อย่างง่ายดายตามความจำเป็น
Joe

2
คุณสามารถบันทึกการตั้งค่าปัจจุบันของคุณ แต่ถ้าคุณ.bashrcมีตรรกะใด ๆในนั้นขึ้นอยู่กับตัวแปรท้องถิ่นเช่นโฮสต์ผู้ใช้ ฯลฯ ที่อาจไม่สามารถกู้คืนได้ คำตอบที่แท้จริงคือการกู้คืนจากข้อมูลสำรองล่าสุดของคุณ คุณมีการสำรองข้อมูลล่าสุดใช่ไหม
jw013

คำตอบ:


22
  • alias ไม่มีพารามิเตอร์แสดงข้อกำหนดของนามแฝงที่กำหนดไว้ในปัจจุบัน
  • declare -f เอาต์พุตนิยามของฟังก์ชันที่กำหนดในปัจจุบัน
  • export -p เอาต์พุตนิยามของตัวแปรที่กำหนดในปัจจุบัน

คำสั่งเอาต์พุตคำสั่งเหล่านั้นทั้งหมดพร้อมที่จะนำกลับมาใช้ใหม่คุณสามารถเปลี่ยนทิศทางเอาต์พุตไปยังใหม่~/.bashrcได้โดยตรง

รายการทั้งหมดจะมีจำนวนมากขององค์ประกอบที่กำหนดไว้ที่อื่นเช่นและ/etc/profile /etc/bash_completionดังนั้นคุณจะต้องล้างรายการด้วยตนเอง


3
ฉันขอแนะนำให้เริ่มจากค่าเริ่มต้น.bashrcสำหรับระบบของคุณ ใน Debian จะเป็นในหรือคุณสามารถสร้างผู้ใช้ใหม่ถ้าคุณสามารถที่จะได้รับแบรนด์ใหม่/etc/skel .bashrc
enzotib

1
setและdeclare(โดยไม่มีข้อโต้แย้ง) แสดงทั้งหมดนี้ในครั้งเดียว
rozcietrzewiacz

@enzotib ความคิดที่ดี ฉันสงสัยที่เริ่มต้น. bashrc จะอยู่ ...
ixtmixilix

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.