[Linux] Shell,Terminal, Package Manager

양진혁·2021년 11월 14일
0

Linux

목록 보기
3/3

Shell

터미널 환경에서 운영체제의 커널과 사용자의 유저 스페이스를 이어주는 인터페이스 역할을 하는 프로그램이다.
사용자의 명령을 해석하고, 커널에 명령을 요청해주는 역할을 한다. 또한 쉘은 스크립트 언어라는 전용 프로그래밍 언어를 사용해 터미널 환경에서 다양한 자동화 실행이 가능하다.

shell 종류

bourne 쉘 계열

Bourne SHell(sh):
1974 년 Stephen Bourne 이 개발한 최초의 쉘이다. 대부분의 리눅스에 기본적으로 설치가 되어있다.

Bourne-Again Shell(bash):
GNU 프로젝트 일화으로 개발됨, 리눅스에서 지원되는 기본쉘, 사용자가 계정을 생성할 떄 특별히 지정하지 않으면 기본적으로 지정되는 쉘을 의미한다.

Korn shell(ksh):
sh와 호환되며 cshell의 많은 기능을 포함한다. 유닉스에서 가장 많이 사용되는 쉘이며 명령행 편집 기능을 제공한다.

c쉘 계열 쉘

C shell(csh):
1978년 Bill Joy(빌 조이)가 개발한 쉘이다. c언어를 기반으로 만든 shell로 c언어 구문과 비슷하며 Bourne쉘의 기능을 확장했다.

T shell(tcsh):
카네기 멜런 대학교의 학생들이 개발하였고 1983년 소스코드를 게시하였다. C쉘 확장 개선 버전으로 명령행 완성, 명령행 편집 기능이 추가되었다.

Z shell(zsh):
폴 폴스타드가 1990년 대학교 재학중 첫 버전을 작성했다. 표준 쉘들 중 ksh와 가장 유사하지만 많은 개선들을 포함한다. 명령행 편집등 기능을 가진다. Oh My Zsh 라는 설정 매니저 플러기은을 통해 편리하게 설정할 수 있어 많이 사용된다.

터미널

컴퓨터와 사용자간 서로 소통시켜주는 인터페이스(CLI)라고 할 수 있다.
터미널은 크게 텍스트 기반, 그래픽 기반(GUI) 두가지를 기반하는 용어지만, 리눅스 터미널은 텍스트 기반을 의미한다.
터미널은 기본적으로 shell을 사용하며 shell은 문자기반 명령어들로 컴퓨터 언어로 변환 후 컴퓨터와 소통하게 해준다.
서버의 로컬 또는 원격으로 접속 가능한 콘솔을 구현한 소프트웨어이다.

터미널 쉘 차이

터미널은 쉘을 실행시키는 프로그램이다. 터미널은 bash를 zsh를 실행시킬 수 있다.

맥 터미널 환경

맥에서는 기본 터미널이 이미 설치되어 있다. 그러나 많은 사람들이 iTerm2를 사용한다. 터미널에 비해 편리한 기능을 많이 제공하기 때문이다. homebrew를 설치하여 다양한 애플리케이션을 명령어 하나로 손쉽게 관리할 수 있으며, zsh 설치를 통해서 bash의 확장된 유닉스 쉘을 사용할 수 있다. 그리고 iTerm의 https://iterm2colorschemes.com/ 을 통해서 색상테마를 수정할 수 있다.

우분투 터미널 환경

우분투도 맥처럼 기본 터미널이 이미 설치되어 있다. 우분투는 Gnome(그놈)터미널을 통해서 색상 테마 변경이 가능하다.
Gogh라고 하는 그놈 터미널 색상테마 변경툴을 사용해 변경하는 방법이 가장 쉽다.

package manager

패키지 매니저란 패키지를 다루는 작업을 편리, 안전하게 수행하기 위해 사용되는 툴이다.
각 os마다 사용하는 package manager가 다르다. Mac은 homebrew, ubuntu에서는 apt나 apt-get을 사용한다.

홈브류(homebrew)란?

맥스호웰이 만든 맥OS용 패키지 관리 어플리케이션 터미널에서 명령어를 작성하여 자신이 필요한 프로그램을 설치,삭제 및 업데이트를 손쉽게 가능함. 우분투에는 apt-get, apt와 비슷하다.

터미널을 키고 brew -v 를 입력 command not found가 뜨면 설치 해야 한다.

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

위 명령어를 입력해 패키지 관리자 설치

brew install 패키지 이름: homebrew를 이용한 패키지 설치

home uninstall 패키지이름: package 삭제

brew upgrade 패키지 이름: 설치된 package 최신 버전으로 업그레이드

apt란

AdvancedPackage Tool의 줄임말로 리눅스계열 패키지 관리 명령어 도구이다.
구버전은 apt-get을 신버전은 apt를 추천한다.
apt와 apt-get의 차이점은 apt-get의 옵션이 많아서 자주 사용하는 옵션들을 추출해 편의성을 늘린게 apt이다.

명령어 정리
sudo 관리자 모드

sudo apt-get update: 패키지 인덱스 정보를 업데이트

sudo apt-get upgrade: 설치된 패키지 업그레이드

sudo apt-get dist-upgrade: 의존성검사하며 dependency 까지 설치

sudo apt-get install <패키지이름>: 패키지 설치

sudo apt-get --reinstall install <패키지 이름>: 패키지 재설치

sudo add-apt-repository <저장소이름>: 저장소 추가

sudo add-aptrepository --remove<저장소이름>: 저장소 제거

sudo apt-get remove <패키지이름>: 설정파일은 지우지 않고 패키지 삭제

sudo apt-get --purge remove <패키지이름>: 설정파일까지 모두 삭제

sudo apt-get source <패키지 이름>: 패키지 소스코드 다운로드

sudo apt-get build-dep <패키지 이름>: 위에서 받은 코드 의존성 있게 빌드

sudo apt-cache search <패키지 이름>: 패키지 검색

sudo apt-cache show <패키지 이름>: 패키지 정보 확인

0개의 댓글