개발 블로그 시작
- 기존엔 네이버 블로그를 하고 있었는데, 네이버 블로그는 상품 혹은 경험 관련 내용을 위주로 올려서(예전에 마케팅, 광고를 했던 경험 기반) 개발 내용을 추가하기 쉽지 않았다. 게다가 구글 검색에 결과가 잘 나오지 않아 Github 블로그를 만들기 시작!
- 목표는 Github
TIL
폴더에 있는 내용들을 다 텍스트로 정리하는 것! - 사실 깃허브에 있는 내용들을 그냥 옮겨와도 될 정도로, 깃허브를 블로그처럼 사용했는데 이젠 조금 차곡차곡 정리해서 보고 싶은 욕구가 가득-!
- 주변 개발자분들 중 블로그를 하는 것이 습관이 안된 분들이 있는데, 지인들과 함께 블로그 글쓰기 모임을 만들어 강제로 글쓰게 만들 생각도 있는데 이건 2018년도부터 할 것 같다!
- 웹페이지가 모바일로 보기 편해서 복습하기도 좋다 :)
- 잘 부탁해 블로그야-
Continue reading
2.1 리눅스의 부팅 과정과 로그인 쉘
- init
- init과 연결된 수많은 프로세스들이 자신만의 프로세스 ID(PID)를 가지고 생성되기 시작
- init의 PID는 1
- init 프로세스가 시스템을 초기화하고 터미널 라인을 오픈하기 위한 작업을 시작하고, 표준 입력과 표준 출력, 표준 에러를 설정
ps -ef
를 입력하면 PID와 같이 출력- 표준 입력 (0): 키보드로부터 입력받는 것
- 표준 출력 (1) / 표준 에러(2) : 모니터로 출력하는 것
- 파일 디스크립터 0 1 2 ( 식별자 )
- 사용 사례 : bash 스크립트를 작성할 경우 표준 에러를 표준 출력으로 돌리고, 에러인 경우 dev/null로 찍는 경우 등등
- standard error redirection
- https://unix.stackexchange.com/questions/111611/what-does-the-rc-stand-for-in-etc-rc-d
- 그 이후 로그인 프롬포트를 보여줌
- init 프로세스는
/etc/rc.d/init.d
에 런레벨별로 설정되어 있는 쉘 스크립트를 실행. 이 스크립트들은 chkconfig
명령을 사용해 부팅 시 자동으로 실행할 것인지, 실행하지 않을 것인지 설정할 수 있음 - 부팅 시 수행할 런레벨은
/etc/inittab
에 설정되어 있음( 우분투는 /etc/init/rc-sysinit.conf
!) - 런레벨은 0부터 6까지 존재하는데, 주로 텍스트 모드 런레벨인 3번(주로 서버)과 그래픽 모드 런레벨인 5번을 주로 사용(주로 데스크탑) 현재는 level 2를 사용 중
rc1.d
, rc2.d
, rc3.d
, rc4.d
, rc5.d
, rc6.d
에 설정 파일이 들어가있음 (runlevel configuration)- K로 시작하는 것은 kill, S로 시작하는 것은 Start를 의미하며 파일의 prefix를 수정하면 바로 반영
- 로그인 프롬포트
/bin/login
프로그램이 /etc/passwd
파일에 있는 첫 번째 필드를 체크하기 위해 유저 아이디를 검증하고, 존재하면 패스워드 검증- 패스워드가 맞다면
/etc/passwd
파일의 마지막에 설정되어있는 SHELL 변수에는 로그인 쉘을, USER와 USERNAME 변수에는 로그인 이름을 할당 - 로그인이 끝나면
/etc/passwd
파일에서 유저 라인의 마지막 단계에 입력되어 있는 프로그램을 실행. 일반적으로 배시 쉘로 설정되어 있음
쉘 초기화 파일들
/etc/profile
- 시스템 전역 쉘 변수 초기화
- 유저가 쉘에 로그인하면 가장 먼저 이 곳의 파일을 읽음. 이 파일에는 PATH, USER, LOGNAME, MAIL, HOSTNAME, HISTSIZE, INPUTRC 등의 쉘 변수들이 선언되어 있음
- 전역 리드라인 초기화 파일인
/etc/inputrc
파일을 읽어들이도록 되어 있으며, 프로그램들의 전역 환경을 설정하는 파일을 포함하고 있는 /etc/profile.d
디렉터리를 읽어들이도록 구성되어 있음
/etc/bashrc
- 쉘 함수와 Alias를 위한 시스템 전역 변수 정의
~/.bash_profile
- 유저 개인의 환경 설정 파일
- 시스템 전역이 아닌 유저 자신만의 PATH와 시작 프로그램을 추가적으로 설정
~/.bashrc
- 유저 개인의 Alias 및 변수 설정 파일
- 유저 자신의 개인적 명령어 앨리아스를 정의할 수 있으며,
/etc/bashrc
파일에서 시스템 전역 변수를 읽은 다음, 특별한 프로그램을 위한 변수를 설정할 수 있음
~/.bash_logout
- 로그아웃 설정 파일
- 로그아웃 절차를 포함하고 있음. ex) 로그아웃하면 터미널 윈도우가 사라짐
source
명령- 쉘 환경 설정 파일 즉시 적용하기.
.
명령도 같은 기능을 수행
Continue reading
리눅스와 쉘
- 쉘(Shell) : 운영체제에서 제공하는 명령을 실행하는 프로그램이며 운영체제의 관리하에 있는 파일, 프린팅, 하드웨어 장치, 애플리케이션과의 인터페이스를 제공한다
- 즉, 운영 체제에서 제공하는 각종 명령들을 쉘 인터페이스에서 실행하면 운영체제가 그 명령에 해당하는 일을 수행
- 쉘 스크립트 : 인터프리터로서 리눅스 시스템에서 지원하는 명령어들의 집합을 묶어서 프로그램화한 것
Continue reading