유닉스 TMI
- SysV 계열과 BSD 계열의 경쟁으로 서로 호환되지 않게 제작했다.
- 그러다 보니까 가장 큰 문제들은
- 프로그래머 들도 다른 계열 유닉스를 쓰면 이전거를 사용할 수 엇다.
- 이게 가장 문제가 심각했던건 미국 정부,,,! IT 자원들이 호환이 안되어서 정보가 조달이 불가했다
- 1988 POSIX 규격에 맞지 않으면 이제 조달 불가다!!
- POSIX(파직스)는 UNIX 시스템의 최소한의 호환성을 요구
- 1980년대 UNIX 업계는 AT&T, Sun의 양강 구도 였다.
- OSF : 통합하기 위해 제작했는데, 여러 family로 늘어나게 됨..
man standards
: 메뉴얼 확인..?
- SUS : 유닉스 단일 표준안
- Unix Time-Sharing System (Bell Labs)
- 리눅스 히스토리
- GNU
- GNU 가 만든 라이 선스, GPL , 이 라이선스를 가진 솦트는 누구나 가질수 있다. 누구나 고칠수 있다.
- 회사에서 작업한다면 GPL 라이선스를 이해해야한다.
- LGPL : 상업용으로 조금 완화됨
- 암거나 막 갖다가 쓰면 망한다!
- BSD 와 Mac OSX
리눅스 구분
- RedHat 계열 - RPM 패키지 사용
- RHEL
- Fedora
- CentOS - Deb 패키지를 사용, 상업용 회사가 주로 쓴다. 엔터프라이즈 호나경에서 쓰기 편하다.
- Debian 계열
- Debian Linux
- Ubuntu Linux : 스파이웨어, 광고 프로그램 존재
- Kail Linux : Security, hacking 특화
- Embedded Linux
- 하드웨어는 Arm 기반의 cpu 사용
- 주요 임베디드 리눅스용 보드 모듈 : 라즈베리파이 ,, 등등
운영체제(OS) 란?
- 운영체제 구성
interface
- CLI : command line interface
- TUI : tesxt-based User Interface
- GUI : Graphical User Interface
- 사용하기는 GUI가 변하지만 , UNIX, Linux는 CLI/CUI방식을 선호한다.
Console / Terminal
- Console
- 컴퓨터에 물리적으로 직접 연결된 제어용 송수신 장치
- terminal
- 데이터를 송수신하는 목적지나 출발점이 되는 장치
- 콘솔은 장치의 형태, 터미널은 장치의 위치에 따른 의미이다.
Console terminal / Remote termainal
- Console terminal
- 시스템에 물리적으로 부착되어있는 콘설에서 액세스한 터미널
- 보통 콘솔이라 부른다.
- Remote terminal
- 원격에서 엑세스한 터미널 : ssh, web shell , X terminal
- 보통 터미널이라고 부른다.
- 로그인의 의미(
control
+ alt
+ F3
, gui : control
+ alt
+ f7
)
- 접속을 요청하고
- 알맞은 인증과정을 거쳐서
- 시스템 내부와 통신 가능한 상태가 되어
- 시스템에 명령을 내릴수 있는 인터페이스가 되는것
- 예제 :
control
+ alt
+ F3
를 누르고
- 로그인 :
유저네임
- 비밀번호 :
비밀번호
- Prompt prefix
#
: root 유저를 의미
-
$
: 일반 유저를 의미
$ su - # root 로 변경
# id
# exit or Ctrl + D
- 컴퓨터 끄기 및 다시시작
poweroff # 콘솔 에서는 일반계정도 가능 리모트 터미널에서는 불가
reboot
Unix account
- user, group 관리 명령어
- user
useradd -m linuxer
: linuxer라는 이름의 유저 추가
-m
: 존재하지 않는다면 유저의 홈 디렉토리를 생성한다.
su - linuxer
: linuxer
로 유저 교체, 높은 권한에서 낮은 권한으로 이동할 때는 암호를 물어보지 않는다.
- 여러번 유저를 바꾸면 유저가 중첩된다.
ctrl
+D
를 누르면 이전 유저로 돌아간다.
uid
: user의 아이디 , gid
: 그룹아이디
- group
groupadd teamdev2
: teamdev2라는 이름의 그룹 추가. 루트 작업으로 해야함, 0 이 나오면 성공
gpasswd teamdev2
: 패스워드 설정
usermod -aG teamdev2 linuxer
: linuxer 유저를 teamdev2에 가입시켜라.
usermod -aG sudo linuxer
: linuxer 유저에 sudo 그룹 가입
su - linuxer
: substitute user, ID 생략시 root 유저 의미. 유저 교체
환경 변수
- 환경 변수 리스트
man page
man [ option] <item>
: 해당 아이템의 메뉴얼 페이지를 볼 수 있다.
[생략가능] 있어야하는것
: []
로 감싸져 있는건 옵션으로 생략 가능한다. 없으면 필수로 적어야한다.
LANG, LANGUAGE
echo $LANG
: 현제 사용 언어 출력
$ echo $LANG
# ko_KR.UTF-8
locale -a
: 가능한 모든 로케일 리스트 출력
C
: C 언어가 작동하기위한 최소한의 로케일 리스트
# locale-gen ja_JP.utf8
: 일본어 로케일 생성
export LANG=ja_JP.utf8
: 하면 로케일 변경. 만약에 date
를 치면 일본어로 나온다.
localectl
: System의 로케이을 확인 및 설정 , 설정은 루트 권한 필요
localectl set-locale LANG=en_US.utf8
: 시스템 전체가 영문 로케일로 바뀐다.