'예전것/Linux Basic'에 해당되는 글 14건

  1. 2009.07.12 NFS 간단설정
  2. 2009.06.08 BASH SHELL LAB EXERCISE
  3. 2009.06.04 .bash_profile , hash
  4. 2009.05.22 CentOS netinstall
예전것/Linux Basic2009. 7. 12. 22:29

http://flashcafe.org/server_study/12376

이곳에 잘 써있다~~

'예전것 > Linux Basic' 카테고리의 다른 글

emacs의 설정  (0) 2009.07.16
리눅스에서 키설정 & 디버깅  (0) 2009.07.16
BASH SHELL LAB EXERCISE  (0) 2009.06.08
.bash_profile , hash  (0) 2009.06.04
CentOS netinstall  (0) 2009.05.22
예전것/Linux Basic2009. 6. 8. 10:46
1.  화면에 로그인 프롬프트가 나오기 전에 어떤 과정이 이루어지는가?
1 최초로 구동되는 프로세스는 PID 1의 init 프로세스이다.
2) 이 프로세스가 getty프로세스를 실행시킨다.
3) 이 프로세스들은 터미널 포트를 열어, 표준 입력과 표준 출력 그리고 표준 에러의 방향을 설정한 후, 화면에 로그인 프롬프트를 띄운다.

- 추가
이어서 /bin/login 프로그램을 실행하면 패스워드를 요구한다. 입력된 패스워드를 암호화해서 확인한 후에 초기 환경을 설정하고, 패스워드 파일의 맨 마지막에 기록되어 있는 사용자 쉘(/bin/bash)을 실행시킨다.
1) 배시는 시스템 파일인 /etc/profile을 찾아서 그 안의 명령어들을 실행시킨다.
2) 그런 다음, 사용자의 홈 디렉토리에서 초기화 파일인 .bash_profile의 내용을 읽어 들인다.
3) .bash_profile에 설정된 내용들이 수행되고 나면 기본 프롬프트인 달러 기호($)가 화면에 나타난다.
 배시쉘이 사용자의 명령을 기다리는 것이다.

2. HOME, LOGNAME, PATH 변수의 설정은 어떤 과정에서 이루어지는가?
사용자의 홈 디렉토리에 있는 .bash_profile 파일을 실행(source)시킨다. 이 파일에서는 별명, 함수, 환경변수 및 시작 스크립트등을 설정하거나 정의한다.

3.현재 사용하고 있는 쉘을 알 수 있는 방법
$echo $SHELL (현재 사용하고있는 쉘 알수 있는 명령어)
/bin/bash

4. 로그인 쉘을 변경 하기 위해 사용하는 명령어는 무엇인가?
일반 사용자는 다음과 같은 명령으로 로긴쉘을 바꿀 수 있고, 바꾼 내용은
다음번 로긴시부터 적용됩니다. (source /etc/passwd는 안되네..)
$ chsh  (쉘 바꾸는 명령어)
Changing shell for test_user. 
Password: (........) 
New shell [/bin/bash]: /bin/tcsh 
Shell changed. 
$
이 때 사용자가 쉘로서 사용할 수 있는 프로그램의 리스트를 알아야 하는데,
그 내용을 담고있는 파일은 /etc/shells 입니다. (`chsh -l` 명령으로 확인이
가능합니다.) 이 파일에 열거되어있지 않은 프로그램을 지정하려 하면 에러를
내면서 설정되지 않지만, 혹여 설정이 된다고 해도 시스템 사용에 부분적으로,
또는 전반적으로 문제가 있을 수 있습니다. (시스템 설정 등에 따라 다릅니다.)
 
5. 로그인 쉘은 어느 파일에서 지정하는가?
/etc/passwd 에서 지정한다. (왜그런지는 1번 문제 답 참고)

6./etc/profile과 ~/.bash_profile의 차이점은 무엇인가? 어느 파일이 먼저 실행되는가?
/etc/profile 은 사용자가 로그인할 때, 시스템 전체적으로 공통된 초기화를 위해 관리자가 설정하는 파일이다.
이 파일은 배시 쉘이 시작할 때 실행되며, 시스템 상의 모든 본 쉘과 콘 쉘 사용자들에게 적용된다.
~/.bash_profile 파일은 개별 사용자에게 적용, ~/.bash_profile 파일을 사용자의 홈 디렉토리에서 찾으면 /etc/profile 다음에 읽어 들인다.

7. .bash_profile 파일을 다음과 같이 수정하라
a. 환영 메시지를 보낸다. 
 - echo "Hello ~~ "
b. 사용자의 홈 디렉토리가 경로에 포함되어 있지 않으면 포함시킨다.
 - export PATH=$PATH:$HOME (포함되어 있지 않으면?? 그건 잘..)
c. stty 명령어를 사용해 백스페이스에 삭제 기능을 설정시킨다.
stty erase ^H 를 써주면 사실 되야하는데 안된다. 백스페이스를 누르면 이때부터 ^? 가 나오기시작... 
stty erase ^?를 넣어주면 원래대로 작동
 
d. source .bash_profile을 입력한다. 여기서 source 명령어의 기능은 무엇인가?
 - source(.) 명령어 이명령어는 스크립트의 이름을 인자로 갖는다. 스크립트는 현재 쉘의 환경에서 실행된다. 즉, 자식 프로세스를 새로 새성하지 않고 스크립트를 실행한다. 스크립트 내에서 정의된 모든 변수들은 현재 쉘 환경의 일부가 되며, 마찬가지로 현재 쉘에서 정의한 모든 변수들도 스크립트 환경의 일부가 된다.

8. BASH_ENV파일은 무엇인가? 이파일은 언제 실행되는가?
- CentOS에서는 보이지 않았았다.
배시 2.0 버전 이전에는 BASH_ENV 파일을 콘 쉘에서처럼 ENV파일이라고 불렀다. BASH_ENV(ENV)변수는 ~/.bash_profile 파일에 설정되어있다. 이변수에는 대화형 배시쉘이나 배시 스크립트가 시작할 때마다 실행할 파일이름을 지정한다. BASH_ENV(ENV)파일에는 특수 배시 변수와 별명들이 들어 있다. 이 파일의 이름은 관례상 .bashrc로 사용한다.

9. 주 프롬프트의 기본값은 무엇인가?
 - /etc/bashrc에 정의되어있는 PS1 [\u@\h \W]\$   이게 기본값  - \u는 유저 이름 \h는 호스트 이름 \W는 현재 작업디렉토리
a. 현재시각과 사용자의 홈디렉토리를 포함하도록 주 프롬프트를 변경시켜라
현재시각을 나타내는 것은 \T와 \t가 있다.
PS1="\T \W"

b. 보조 프롬프트의 기본값은 무엇인가? 이 프롬프트의 기능은 무엇인가?
기본은 > 어디정의 되어있는지는 모름. echo $PS2하면 나오긴하네..
기능은 명령어를 제대로 입력하지 않았을때 나타나는 역할

10. 다음 설정이 의마하는 바는 무엇인지 각각 설명하라
a. set -o ignoreeof - ^d를 사용하여 로그아웃하는것을 막는다. 로그아웃을위해 exit써야함
b. set -o noclobber - 리다이렉션에 의한 파일 덮어쓰기 방지
c. set -o emacs      - emacs 사용
d. set -o vi             - vi 사용





'예전것 > Linux Basic' 카테고리의 다른 글

emacs의 설정  (0) 2009.07.16
리눅스에서 키설정 & 디버깅  (0) 2009.07.16
NFS 간단설정  (0) 2009.07.12
.bash_profile , hash  (0) 2009.06.04
CentOS netinstall  (0) 2009.05.22
예전것/Linux Basic2009. 6. 4. 15:43

검색경로

배시 쉘은 명령행에서 입력된 명령어의 위치를 찾기 위해 변수 PATH를 사용한다. 경로들은 콜론(:)으로 구분되어 나열한다. 기본 검색경로는 시스템마다 다를 수 있다. 주로 배시를 관리하는 관리자가 설정한다. 검색은 목록의 왼쪽 디렉토리에서 오른쪽 디렉토리의 순서로 진행된다. 경로의 맨 마지막에 마침표(.)는 현재 작업 디렉토리를 나타낸다.

경로는 보통 .bash_profile에서 지정한다.
경로의 마지막에 마침표(.)를 지정하지 않은 경우에는, 현재 작업 디렉토리에서 명령어나 스크립트를 수행시킬 때 ./를 함께 써주어야 쉘이 현재 디렉토리에서 프로그램을 검색할 수 있다. 예를 들어, ./program_name 처럼 입력해야한다.

(PATH 출력)
$echo $PATH
/usr/gnu/bin:/usr/local/bin:/usr/bin:.

(PATH 설정)
$PATH=$HOME:/usr/ucb:/usr:/usr/bin:
$export PATH

(그냥 export PATH= 뭐라뭐라 써도 됨)

hash 명령어

hash - 현재 로그인 세션에서 실행한 모든 명령어들의 전체 경로이름 출력
-r 옵션은 해시테이블에 저장되어있던 모든 명령어 삭제
특정명령어 추가하는법
ex) hash find (find 추가)

source 명령어(마침표 명령어)

마침표(. 또는 source)는 배시 쉘의 내부 명령어이다. source는 마침표(.) 명령어의 다른 이름이다. 이 명령어는 스크립트의 이름을 인자로 갖는다. 스크립트는 현재 쉘의 환경에서 실행된다. 즉, 자식 프로세스를 새로 생성하지 않고 스크리브를 실행한다. 스크립트 내에서 정의된 모든 변수들은 현재 쉘 환경의 일부가 되며, 마찬가지로 현재 쉘에서 정의한 모든 변수들도 스크립트 환경의 일부가 된다.

$source .bash_profile
$. .bash_profile

참고 - .bash_profile을 스크립트 자체로 바로 실행시키면 자식 쉘이 새로 생성되어 시작된다. 즉, 자식 쉘이 변수들이 설정된다. 따라서 자식 쉘을 종료하고 부모 쉘로 돌아오면 변경된 사항은 아무것도 남지않는다.







'예전것 > Linux Basic' 카테고리의 다른 글

emacs의 설정  (0) 2009.07.16
리눅스에서 키설정 & 디버깅  (0) 2009.07.16
NFS 간단설정  (0) 2009.07.12
BASH SHELL LAB EXERCISE  (0) 2009.06.08
CentOS netinstall  (0) 2009.05.22
예전것/Linux Basic2009. 5. 22. 16:57

주소 : ftp://ftp.sayclub.com/pub/Linux/centos/5.3/os/i386/CentOS/

name : ftp.sayclub.com
directory : pub/Linux/centos/5.3/os/i386

**Caution : directory 가 i386/CentOS가 아니라 i386으로 끝난다!

오래걸린다. 웬만하면 그냥 dvd받자

'예전것 > Linux Basic' 카테고리의 다른 글

emacs의 설정  (0) 2009.07.16
리눅스에서 키설정 & 디버깅  (0) 2009.07.16
NFS 간단설정  (0) 2009.07.12
BASH SHELL LAB EXERCISE  (0) 2009.06.08
.bash_profile , hash  (0) 2009.06.04