[210529 TIL] Linux

Choi Rim·2021년 5월 29일
0

Linux

목록 보기
1/10
post-thumbnail

로컬 장치(local device)란

로컬 장치는 하드 디스크 또는 프린터와 같은 물리적 장치가 네트워크의 다른 지점이 아닌 사용자의 컴퓨터에 직접 연결되어 있는 것입니다. 이 경우 사용자는 원격 장치입니다.

디렉토리(directory)

디렉토리란 컴퓨팅에서 파일을 분류하기 위해 사용하는 이름공간을 말합니다. 파일 시스템 안에서는 파일과 다른 하부 디렉토리로 구성됩니다. 수많은 컴퓨터에서 디렉토리는 폴더(folder) 또는 카탈로그(catalog)라고도 합니다.
일반적인 파일 시스템은 수천개가 넘는 디렉토리들을 가지고 있습니다. 같은 디렉토리에 관련 파일들이 저장되어 나열 되고 관리됩니다. 디렉토리 속의 디렉토리를 그 디렉토리의 하위 디렉토리 또는 서브 디렉토리라고 합니다. 디렉토리들은 계급, 곧 트리 구조를 형성합니다. 하위 디렉토리 및 이에 분류되는 디렉토리 간의 관계를 기술하기 위해 부모 디렉토리와 자식 디렉토리란 용어도 사용합니다.

리눅스(Linux)의 조상 유닉스(Unix)

  • 멀티태스킹을 지원하는 멀틱스 개발하려고 했지만 실패
  • 멀틱스 이어받아 유닉스라는 운영체제 기계어로 만듬(기계어로 만들어 호환성 좋지 않음)
  • 기계어로 만든 유닉스를 C언어로 개발해 소스코드를 대학기관과 연구소에 무료로 배포
  • 여러 기관에서 무료 소스코드를 기반으로 운영체제 개발
  • 유료인 유닉스에 반발해 GNU에서 무료로 배포하는 운영체제 개발

리눅스(Linux)

  • GNU가 운영체제 개발에 필요한 커널을 개발하지 못하고 있었음
  • 리누스 토발즈라는 대학생이 GNU환경에 적합한 커널 개발
  • 그것을 기반으로 무료 운영체제 리눅스 개발
  • 무료기 때문에 다양한 계열로 발전함
    • 리눅스 계열 운영체제
      안녕 리눅스, 우분투, Cent OS 등

리눅스의 특징

  • 높은 이식성과 확장성(C언어 기반)
  • 안정성과 신뢰성(소스코드가 무료로 공개되었기 때문에 국제적이고 개방적으로 개발, 문제점에 대한 대처 빠름)
  • 계층적 파일 시스템(윈도우와 다른 점, 최상위 디렉토리 존재하고 그 외 모든 것은 최상위 디렉토리의 하부에 존재)

리눅스를 이루고 있는 기본 구성 요소

  • 하드웨어(H/W)
  • 커널(운영체제의 핵심)
  • 명령어

프롬프트

  • 컴퓨터가 입력을 기다리고 있음을 나타내는 표시
  • 리눅스의 프롬프트는 현재 작업 디렉토리, 현재 로그인 한 사용자 등에 대한 정보 표시 (ex. hyerim@hyerim-15U340-LT2CK:~$ )

명령줄 인터페이스

  • 명령어로 모든 것을 처리
    • 명령어 구조
      명령어 : 시스템에서 특정 작업을 위해 실행하는 실행 파일, 프로그램
      옵션 : 명령어 어떻게 실행할 지 지정, 일반적으로 대시(-)를 문자 뒤에 지정함 (ex. ls -l)
      아규먼트 : 명령어에 의해 영향을 받는 파일 or 디렉토리 등 특정 대상

콘솔(Console), 터미널(Terminal), 쉘(Shell)의 차이점

콘솔

서버의 로컬 장치에서 직접 명령어를 작성할 수 있는 입출력 장치입니다.

터미널

서버의 로컬 또는 원격으로 접속할 수 있는 콘솔을 구현한 소프트웨어. 콘솔이 물리적인 장치라면 터미널은 원격제어 환경까지 포함하는 더 넓은 의미의 장치입니다.

쉘은 실제로 명령어를 전달하고 결과를 전달받는 프로그램입니다. 터미널이 실행되면 쉘이 실행된다고 봐도 무방합니다. 쉘은 터미널을 통해 실행됩니다. 터미널에서 사용자가 명령어를 입력하면 쉘은 명령어를 OS로 전달합니다.

  • 리눅스의 쉘 종류
    sh(Bourne Shell), bash(Bourne-agin Shell), csh(C-Shell), tcsh(Enhanced-C Shell), ksh(Korn Shell), zsh(Z shell)
    • 쉘 종류 중 sh, bash는 어디서나 허용되는 쉘입니다.
  • $ : 보통 유저
    # : 시스템 관리자
    % : C쉘일 때 프롬프트 표시

리눅스 파일 시스템 디렉토리(Linux File System Diretories)

/ : 루트 디렉토리, 모든 디렉토리들의 시작점
/bin : 기본 명령어가 저장된 디렉토리
/boot : 리눅스 부트로더(boot loader)가 존재하는 디렉토리. GRUB과 같은 부트로더에 관한 파일들이 존재
/dev : 시스템 디바이스(device)파일을 저장하고 있는 디렉토리. 즉, 하드디스크 장치파일 /dev/sda, CD-ROM 장치파일 /dev/cdrom 등과 같은 장치파일들이 존재
/etc : 기타 정보들 저장. 시스템의 거의 모든 설정파일이 존재하는 디렉토리. /etc/sysconfig(시스템 제어판용 설정파일), /etc/passwd(사용자관리 설정파일), /etc/named.conf(DNS 설정파일) 등과 같은 파일들이 존재
/home : 유저들이 있는 홈
/lib : 공유되는 라이브러리(설치 파일) 등
/proc : 프로세스 정보
/sbin : 관리자용 명령어
/tmp : 템포러리(temporary) 폴더. 일명 공용 디렉토리. 시스템을 사용하는 모든 사용자들이 사용하는 디렉토리
/usr : 시스템이 아닌 일반 사용자들이 주로 사용하는 디렉토리
/var : 용량이 큰 파일들 존재. logs, ftp, spool, mail
/lost+found : 사용되지 않는 파일 모음, 윈도우의 휴지통 같은 곳
/cf.inode : 파일 시스템을 트리형태로 메모리에 올려놓고 파일을 찾을 때 빨리 찾을 수 있게함.

기본적인 터미널 명령어

  • grep
    검색하고자 하는 문자를 옵션으로 주면 해당 문자열과 일치하는 문자열이 있는 파일 찾아줌
  • man -> manual의 약자
    명령어들의 사용법 알려줌 (ex. man ls)
  • su -> switch user, super user의 약자
    계정을 전환시켜 줌 (ex. su - root / 관리자 계정으로 전환)

<참고>

profile
https://rimi0108.github.io/

0개의 댓글