사람들은 bashrc에서 다른 방법 대신 bash_profile을 소스로 사용합니다. 현지 대회 때문에 .
모든 의견 내가 시작 파일을 어떻게 구성하는지 읽었습니다. bash
주로 현지 관례에 근거합니다. 현지 대회는 대개 비 로그인, 비대화 형 사례에 대해 많이 언급하지 않는다는 점에서 큰 그림을 언급하지 않습니다. 우스운 일은 내가 본 것인데, 나는 거의 아무도 언급하지 않는다고 본다. cron
하나의 시작 파일에 변수를 넣는 이유와 다른 하나의 시작 파일에 변수를 넣는 이유에 대해 이야기합니다. 사실, 나는 한마디의 말을 듣지 못했다 : " / bin / sh는 이유가 있습니다. Bash는 원래의 Bourne 쉘인 / bin / sh를 에뮬레이트합니다. "한 가지 사실, 나는 약간 빗나가 다.이 경우는 대화 형으로뿐만 아니라 대화 형이 아닌 비 로그인을 제공하는 사람들에게도 중요하다. 무인의 또는 배경 ) cron
최소한의 쉘 처리가 필요한 스크립트, 즉 백그라운드 처리는 색깔있는 프롬프트, 명령 내역 및 대체, 적절하게 정의 된 $ TERM 변수 등을 요구하지 않습니다.
더 나아가서는 cron
, 내가 일반적으로 보는 것은 최소한의 검색 경로를 만들거나 정규화 된 프로그램을 호출하고 터미널에 연결되지 않은 출력을 처리하는 방법을 모르는 사람들입니다 (예 : 비대화 형, 비 로그인 bash
또는 sh
사례) cron
스크립트. 이는 대개 쉘 시작 시퀀스를 잘 이해하지 못했기 때문에 사용자가 로컬 파일에 이미 설정된 규칙과 일치하지 않거나 일관성이없는 방식으로 자체 시작 파일을 구현하게되기 때문입니다 /etc
시작 파일.
정교하게, 현지 조약에 의해 행해진 설치는 특정한 임명 및 포탄에서 계획된다 /etc
파일. UNIX 설치의 /etc
일반적인 파일의 일부로 호출되는 파일 bash
시동 순서에 따라, 그 중 하나는 자신들의 신생 기업을 설립 순서에 따라 설립해야한다. /etc
시작 파일.
Linux Documentation Project는 다음과 같이 말합니다.
/ etc / skel / 각 새 사용자의 기본 파일은이 파일에 저장됩니다.
예배 규칙서. 새 사용자가 추가 될 때마다이 뼈대 파일은
홈 디렉토리에 복사됩니다. 평균적인 시스템은 다음과 같습니다.
.alias, .bash_profile, .bashrc 및 .cshrc 파일. 다른 파일은 남았습니다.
시스템 관리자에게 문의하십시오.
비록 bash
매뉴얼에는 일반적으로 발견되는 이러한 파일이 언급되어 있지 않습니다. /etc/skel
디렉토리, 명시 적으로 SunOS, Solaris, RedHat, Ubuntu, HP-UX, umips, & amp; Ultrix에있다. /etc/skel
파일은 사용자의 쉘 시작 파일을 패턴 화합니다. OSX는 분명히 그렇지 않습니다 - 지금 OSX 10.9.1을 사용하고 있습니다. 불행하게도, OSX는 컨벤션의 관점에서 설정해야 할 점에 대해서는별로 알려주지 않지만, OSX는 BSD 파생물이기 때문에 다른 BSD 파생물을 사용하고 직접 패턴을 만들었습니다 bash
그 후 시작 시퀀스, OSX 10.9.1에서 사용 된 현지 관습에 맞게 조정 /etc
시작 파일.
평행 한 논평에서 언급 된 중요한 점은 OSX의 경우, 모든 새로운 터미널을 대화 형 로그인 쉘로 시작하는 것이 관습입니다. 이것은 실제로 OSX에서 기본값입니다. 설치 사용자가 일관성있는 한이 규칙에 아무런 문제가 없습니다. OSX의 터미널에 대한 기본 동작은 터미널의 환경 설정을 다음과 같이 변경하여 다른 UNIX 배포의 셸 시작 규칙을 준수하도록 변경할 수 있습니다 , 특히 설정을 변경하십시오. Shells open with:
발급하다 /usr/bin/login -f -l whmcclos bash -i
명령:
모든 것을 배경이나 소개로 삼아 내 충고 그것이 가치가있는 것을 위해.
최선의 조언 :
UNIX 배포판의 관리자가 입력 한 파일을 검사하십시오. 다음 위치에서 시작하십시오 (있는 경우). 그 (것)들을 사용하는 것을 잊지 말라. ls -a
일부 파일은 점으로 시작하기 때문에 명령을 사용하십시오. 시작 중에 이러한 파일이 어떻게 사용되는지 확인하고 자신의 시작 파일이 파일과 상호 작용하는 방법을 확인하십시오.
/etc/bashrc
/etc/profile
/etc/skel/.bash_logout
/etc/skel/.bashrc
/etc/bash.bashrc
/etc/bash_completion
~을 보아라. bash
호출 및 시작 순서에 대한 설명서. 그것은 모두 잘 배치되어 있습니다.
OSX 10.9.1 설치시 어떻게했는지는 다른 유닉스 배포판과 다를 수 있지만, 아래에 나와있는 내용은 대부분의 UNIX 배포판에서 작동하지만 대부분의 UNIX 배포판에서는 작동하지만 다른 UNIX 배포판에서는 사용할 수 없습니다. 국제 대회를 가이드로 삼아 자신의 목적을 위해 아래 사항을 조정하십시오.
.윤곽
# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists. Note, however, that we will have a ~/.bash_profile and it
# will simply source this file as a matter of course.
# See /usr/share/doc/bash/examples/startup-files for examples.
# The files are located in the bash-doc package.
# From here on out, I basically set up my PATH, LD_LIBRARY_PATH, and anything else I'd like
# global to running programs and how those programs find their libraries. This is shared by
# `cron`, so we really don't want interactive stuff, here. Also, I setup my environments
# for brew, macports, and fink here, essentially with setting PATH, and invocation of those
# package initialization file as in:
# Brew and locally compiled stuff:
export PATH=/usr/local/bin:$PATH
export PATH=/usr/local/sbin:$PATH
# The following line puts gnu utilities without the prefix "g" in the path
# i.e. tar/gtar:
export PATH=$PATH:/usr/local/Cellar/coreutils/8.21/libexec/gnubin
# MacPorts shoves stuff in /opt, so to get at that stuff...
export PATH=/opt/local/bin:$PATH
export PATH=/opt/local/sbin:$PATH
# Set up for using Fink, which lives in /sw:
[ -e /sw/bin/init.sh ] && . /sw/bin/init.sh
# My stuff:
export PATH=~/perl:$PATH
export PATH=~/bin:$PATH
export PATH=.:$PATH
.bashrc
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples
# If not running interactively, don't do anything
[ -z "$PS1" ] && return
# From here on out, I put in things that are meaningful to interactive shells, like aliases,
# `shopt` invocations, HISTORY control, terminal characteristics, PROMPT, etc.
.bash_profile
# ~/.bash_profile: executed by the command interpreter for login shells.
# Because of this file's existence, neither ~/.bash_login nor ~/.profile
# will be sourced.
# See /usr/share/doc/bash/examples/startup-files for examples.
# The files are located in the bash-doc package.
# Because ~/.profile isn't invoked if this files exists,
# we must source ~/.profile to get its settings:
if [ -r ~/.profile ]; then . ~/.profile; fi
# The following sources ~/.bashrc in the interactive login case,
# because .bashrc isn't sourced for interactive login shells:
case "$-" in *i*) if [ -r ~/.bashrc ]; then . ~/.bashrc; fi;; esac
# I'm still trying to wrap my head about what to put here. A suggestion
# would be to put all the `bash` prompt coloring sequence functions as
# described on http://brettterpstra.com/2009/11/17/my-new-favorite-bash-prompt/
그래서 저의 두 센트입니다. 내 예제는 시작 파일을 통해 제어 경로를 표시하고 특정 사이트의 규칙이 부과 할 수있는 것을 피하려고 시도했음을 기억하십시오.