현재 쉘에서 .bashrc 재생성

현재 쉘에서 .bashrc 재생성

그래서 나는 어리석게도 실수로 ~/.bashrc를 깨뜨렸습니다. 이전 설정으로 터미널을 열면 현재 설정을 새 .bashrc로 다시 내보내는 방법이 있습니까? (위 터미널 중 하나에서 이 방법을 시도해 보았 set > ~/.bashrc으나 어느 정도 성공했지만 더 마법 같은 방법이 있는지 궁금했습니다.)

답변1

.bashrc시도해 볼 수 있는 한 가지 방법은 실행 중인 bash 인스턴스의 메모리에서 복원하는 것입니다. Linux에서는 PID로 지정된 프로세스의 메모리 덤프를 가져오려면 실행하세요. 이것이 작동할 수 있는지 여부는 bash가 메모리를 관리하는 방법에 따라 다릅니다. 가능한지 확인하기 위해 소스 코드를 확인하지 않았습니다. Debian jessie amd64에서는 작동하지 않습니다.gcore PID

그래도 문제가 해결되지 않으면 현재 설정을 저장할 수 있지만 설정한 방식으로 복원할 수 없으므로 많은 정보가 손실됩니다. 구성이 시스템, 터미널 유형 등에 따라 달라지는 경우 아직 실행 중인 bash 인스턴스에 대한 설정만 복원할 수 있습니다.

  • 모든 변수를 읽을 수 있는 형식으로 인쇄합니다. 여기에는 처리해야 할 많은 소음이 포함됩니다. 환경 변수( 라벨이 붙음 declare -x)귀하의.bashrc하지만 어쨌든 당신은 이미 그렇게 하고 있을 것입니다. bash에 의해 자동으로 설정된 변수를 제거합니다(설명서를 확인하고 declare -pbash의 출력을 확인하세요 bash --norc).

    declare -p
    
  • 모든 기능을 인쇄합니다. 여기에는 완성 시스템에서 정의한 기능(원하는 기능 . /etc/bash_completion)과 같이 사용자가 정의하지 않은 기능이 포함됩니다.

    declare -f
    
  • 별명을 인쇄하십시오. 이들은 그대로 사용될 수 있습니다.

    alias
    
  • 쉘 옵션을 인쇄하십시오. in 의 출력 과 shopt비교하여 bash --norc변경된 내용을 확인하세요.

    shopt
    
  • 완성 설정을 인쇄합니다(상황에 맞는 완성 시스템을 사용하는 경우). 이들 중 대부분은 완성 시스템에서 나온 것일 수 있습니다. 이미 조정한 항목을 찾는 것은 약간 어려울 수 있습니다.

    complete
    
  • .bashrc. 대신 에 있는 경우 기본 바인딩이 포함됩니다 .inputrc.

    bind -p
    

이제부터 모든 파일을 백업하고 구성 파일을 버전 관리에 두십시오.

답변2

.bashrc에서 기본값을 가져올 수 있습니다 /etc/skel/.bashrc.
프로세스에 의해 열린 파일을 복구하는 방법도 있지만 , bash 프로세스에 의해 영구적으로 열리지 않기 때문에 /proc/PID/fd/<files>그렇지 않습니다 ..bashrc

관련 정보