2 minute read

유닉스 TMI

  • SysV 계열과 BSD 계열의 경쟁으로 서로 호환되지 않게 제작했다.
  • 그러다 보니까 가장 큰 문제들은
    • 프로그래머 들도 다른 계열 유닉스를 쓰면 이전거를 사용할 수 엇다.
  • 이게 가장 문제가 심각했던건 미국 정부,,,! IT 자원들이 호환이 안되어서 정보가 조달이 불가했다
    • 1988 POSIX 규격에 맞지 않으면 이제 조달 불가다!!
  • POSIX(파직스)는 UNIX 시스템의 최소한의 호환성을 요구
  • 1980년대 UNIX 업계는 AT&T, Sun의 양강 구도 였다.
  • OSF : 통합하기 위해 제작했는데, 여러 family로 늘어나게 됨..
  • man standards : 메뉴얼 확인..?
  • SUS : 유닉스 단일 표준안
  • Unix Time-Sharing System (Bell Labs)
  • 리눅스 히스토리 [no-alignment]
  • GNU
    • GNU 가 만든 라이 선스, GPL , 이 라이선스를 가진 솦트는 누구나 가질수 있다. 누구나 고칠수 있다.
    • 회사에서 작업한다면 GPL 라이선스를 이해해야한다.
    • LGPL : 상업용으로 조금 완화됨
    • 암거나 막 갖다가 쓰면 망한다!
  • BSD 와 Mac OSX
    • 새로운 Mac OS X 은 BSD

리눅스 구분

  • RedHat 계열 - RPM 패키지 사용
    • RHEL
    • Fedora
    • CentOS - Deb 패키지를 사용, 상업용 회사가 주로 쓴다. 엔터프라이즈 호나경에서 쓰기 편하다.
  • Debian 계열
    • Debian Linux
    • Ubuntu Linux : 스파이웨어, 광고 프로그램 존재
    • Kail Linux : Security, hacking 특화
  • Embedded Linux
    • 하드웨어는 Arm 기반의 cpu 사용
    • 주요 임베디드 리눅스용 보드 모듈 : 라즈베리파이 ,, 등등

운영체제(OS) 란?

  • 운영체제 구성 [no-alignment]

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)
    • 접속을 요청하고
    • 알맞은 인증과정을 거쳐서
    • 시스템 내부와 통신 가능한 상태가 되어
    • 시스템에 명령을 내릴수 있는 인터페이스가 되는것
    • 예제 :
      1. control + alt + F3 를 누르고
      2. 로그인 : 유저네임
      3. 비밀번호 : 비밀번호
  • 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 유저 의미. 유저 교체

환경 변수

  • 환경 변수 리스트 [no-alignment]

man page

  • man [ option] <item> : 해당 아이템의 메뉴얼 페이지를 볼 수 있다.
    • [생략가능] 있어야하는것 : []로 감싸져 있는건 옵션으로 생략 가능한다. 없으면 필수로 적어야한다.

LANG, LANGUAGE

  • echo $LANG : 현제 사용 언어 출력
      $ echo $LANG
      # ko_KR.UTF-8
    

    [no-alignment]

  • locale -a : 가능한 모든 로케일 리스트 출력
    • C : C 언어가 작동하기위한 최소한의 로케일 리스트
  • # locale-gen ja_JP.utf8 : 일본어 로케일 생성
  • export LANG=ja_JP.utf8 : 하면 로케일 변경. 만약에 date를 치면 일본어로 나온다.
  • localectl : System의 로케이을 확인 및 설정 , 설정은 루트 권한 필요
  • localectl set-locale LANG=en_US.utf8 : 시스템 전체가 영문 로케일로 바뀐다.

Categories:

Updated: