내 홈 디렉토리에 bashrc 파일이 없습니다.


14

강의에서 메모 한 내용은 다음과 같습니다.

  • .bashrc홈 디렉토리에서 파일 찾기
  • 하다 vi .bashrc
  • 응용 프로그램 폴더를 어딘가에 넣을 때 해당 주소가 경로 변수에 있는지 확인하십시오.

문제는 .bashrc홈 디렉토리에 파일 이 없다는 것 입니다. .bash_history내 집 에는 파일 만 있습니다 .

내가 루트로 가면 거기에 etc/bash.bashrc파일이 있지만 내 생각이 아니라 모든 사용자를 변경할 것이라고 생각합니다. 이 경로를 본인 만 추가하고 싶습니다. 다른 사람에게는 영향을 미치지 않아야합니다. 또한 $PATHbashrc 파일에 변수 가 없으므로 더 혼란 스럽습니다.

답변:


20

홈 디렉토리 안에 숨겨진 파일이라는 것을 잊지 마십시오 ls -l.

다음을 수행하십시오 ...

ls -la ~/ | more

.bashrc첫 페이지에 가 있어야합니다 . 그냥 만들지 않으면

vi ~/.bashrc

그리고 간단히 다음 줄을 작성하십시오.

PATH=$PATH:~/bin

또는 대부분의 배포는 표준 .bashrc파일을 유지합니다 /etc/skel/. 홈 디렉토리로 복사 할 수 있습니다.

$cp /etc/skel/.bashrc ~

알았어. 이제 알겠다. 다른 컴퓨터에서는 레고를 입력하면 소프트웨어가 시작됩니다. 내 시스템에서 레고 폴더는 내 ~/data/user1/bin폴더에 있습니다. 이 경로를 .bashrc 파일에 추가했습니다. 레고를 입력 할 때 소프트웨어를 시작하려면 어떻게해야합니까? 별칭을 설정해야합니까? 그렇다면 어떻게? alias lego='<What do i put here???>'

@detraveller 파일 ~/data/user1/bin의 PATH 환경 변수에 추가 했습니까 .bashrc? (이 줄을 추가하십시오 : export PATH=$PATH:~/data/user1/bin)-그렇다면 lego터미널을 입력 하면 프로그램이 시작됩니다.
AcId

나는 단지 추가했다 PATH=$PATH:~/data/user1/bin. 수출에 대해서는 언급하지 않았으므로 거기에 넣지 않았습니다. 나는 Uni에 갈 때 내일 다시 시도 할 것입니다.
detraveller

그러나 나는 lego소프트웨어를 시작하는 단어 인 bash에게 어떻게 말 합니까?
detraveller

11

대부분의 배포판은 표준 .bashrc파일을 유지하므로 /etc/skel/홈 디렉토리에 복사하면됩니다. 그렇지 않으면 .bashrc홈 디렉토리에 빈 파일을 새로 만들 수 있습니다 .


4

대화식 쉘을위한 고유 한 시작 파일 작성

Bash 시작 파일 정보

INVOCATION 섹션의 man 1 bash내용 :

로그인 쉘이 아닌 대화식 쉘이 시작되면 bash는 /etc/bash.bashrc 및 ~ / .bashrc (있는 경우)에서 명령을 읽고 실행합니다.

이 시작 파일은 선택 사항입니다 . 배쉬는 필요하지 않습니다. Bash는 또한 로그인 쉘과 대화식 쉘을 구분합니다. 대화식 쉘은 다음과 같이 정의됩니다.

대화식 쉘은 비 옵션 인수와 표준 입력 및 오류가 모두 isatty (3)에 의해 결정된 터미널에 연결되거나 -i 옵션으로 시작되는 -c 옵션없이 시작되는 쉘입니다.

많은 배포판이 한 유형의 시작 파일을 다른 유형의 원본으로 제공하지만 일부는 그렇지 않으므로이 문제를 정식으로 해결하기가 어려울 수 있습니다. 시스템 ~/.bashrc에서 언제 어떻게 호출 되는지 확인하려면 모든 시작 파일을 검사 해야 합니다.

사용자 별 대화식 쉘 시작 파일 작성

사용자 별 ~/.bashrc파일이 없는 경우 파일을 만드십시오. 이것은 비 로그인 쉘 (예 : --login플래그 없이 시작된 쉘 )에 대해 또는 플래그를 사용하여 쉘을 대화식으로 강제 할 때마다 Bash에 의해 호출됩니다 -i.


0

이없는 경우 .bashrc간단하게 하나를 만들고 원하는 행을 추가 할 수 있습니다.

PATH=$PATH:~/bin

사용자 bin 디렉토리를 경로 끝에 추가하십시오.

그러나 다른 시작 파일 이 있으면주의해야 합니다. 사용되는 파일에 대한 규칙은 다소 복잡하지만 bash매뉴얼 페이지에 자세히 설명되어 있습니다. man bash명령 행에 입력하고을 찾으십시오 INVOCATION.


0

짧은 답변 :

  1. find ~ -maxdepth 1 -name '.bashrc'
  2. vi ~/.bashrc
  3. echo $PATH | grep ~/MyNewCoolProgramFolder

하나
더 자세히 : 나는 좀 더 문자 그대로 해석합니다.

  1. "홈 디렉토리에서 .bashrc 파일 찾기"
    명령이find있으므로 위험한 편집기에서 이를 사용하도록 제안 할 수 있습니다.

    find ~ -maxdepth 1 -name '.bashrc'

    홈 디렉토리에서 검색하고 ~한 수준 (하위 디렉토리 없음 -maxdepth 1) 만 내립니다. 모든 옵션에 대해을 쓰십시오 man find.
    아래 줄은 최소한의 작업을 수행합니다.

    ls ~/.bashrc   

    참고 :~/.bashrc 존재하지 않는 경우 간단한로 만들 수 있습니다echo >> ~/.bashrc .

    >>하지 않은 존재하면 파일을 만듭니다. ~/.bashrc대신 존재하는 경우 무해한 empty 출력 만 추가하여 echo중요한 파일을 실수로 삭제하지 않도록합니다. 백업없이 실수로 복원하기가 어렵습니다.

    (다음은 내 닉네임의 의미를 존중해야하는 경우가 거의 없기 때문에 의심이가는 경우에는 실행하지 마십시오).

    if [ ! -f ~/.bashrc ] ; 
      then
         cp -i /etc/skel/.bashrc ~/.bashrc ;
      else ls -la ~/.bashrc; 
    fi || echo " # Auto Generated " >> ~/.bashrc
  2. "음주 vi .bashrc"
    이제 당신이 할 수있는vi ~/.bashrc, 여기에 함정이 언론에 필요하다:q종료에!

  3. 응용 프로그램 폴더 및$PATH
    응용 프로그램 폴더 (예 :)를 만들 때~/MyNewCoolProgramFolder아래 행은 다음에 있는지 확인합니다$PATH.

    echo $PATH | grep ~/MyNewCoolProgramFolder

    이미 있으면 추가 할 필요가 없습니다. 필요한 경우 $PATHwith에 추가 할 수 있습니다

    PATH=$PATH:~/MyNewCoolProgramFolder

    ~/.bashrc영구적으로 만들려면 해당 줄을 추가하십시오 .

  4. "4?!? 3 점만 있다면 어떻게 4?"-해결 방법.
    후자의 경우 몇 가지 해결 방법이 있습니다. 명명 된 실행 파일CoolDetraveller이 새 응용 프로그램 폴더에만 존재한다고 가정 해 봅시다.

    (a) 실행할 수 있습니다. 에 있지 않으면 시작되지 않습니다 $PATH.

    CoolDetraveller : 명령을 찾을 수 없습니다

    (b) 자동 완성을 시도 할 수 있습니다 . 쓰기 시작하고을 CoolDetravelle누릅니다 Tab. 포함되어 있으면 $PATH자동 완성됩니다 (항상 자동 완성이 활성화 된 경우).

    (c) which명령을 쓰면 bash 쉘 명령을 사용할 수 있습니다 CoolDetraveller.

        which CoolDetraveller

    참고 : 하나 이상의 공백이 응용 프로그램 경로에있는 경우, which찾을 수없는 수 CoolDetraveller의 (내가 다시는 내 별명을 존중 여기에)하지만 자동 완성CoolDetraveller의 유효한 매개 변수로 which명령이 작동됩니다!

    싫증 : 당신은 질문 할 수whereis CoolDetraveller있기 때문에whereis

    하드 코딩 된 경로가 있으므로 원하는 것을 항상 찾을 수는 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.