[Git] 리눅스와 쉘

youngseo·2022년 3월 29일
1

GIT

목록 보기
1/14

Git을 위한 배경지식

1. 운영체제와 커널

운영체제
컴퓨터사용자와 컴퓨터 하드웨어 간의 인터페이스로서 동작하는 시스템소프트웨어 중 일종으로, 다른 응용프로그램이 유용한 작업을 할 수 있도록 환경을 제공해준다.

커널
메모리에 상주하는 운영체제의 부분으로 하드웨어와 응용프로그램을 이어주는 운영체제의 핵심 시스템소프트웨어이다.

▶운영체제와 커널

2. 리눅스와 쉘

Linux

리누스 토발즈가 작성한 커널 혹은 GNU 프로젝트의 라이브러리와 도구가 포함된 운영
체제로 PC와 모바일, 서버, 임베디드 시스템 등 다양한 분야에서 활용되고 있다.

GNU프로젝트
오픈 소프트웨어 자유성을 확보하기 위한 프로젝트(GNU == GNU is Not Unix ).

현재 많은 리눅스 GUI 버전이 생겼지만 아직도 터미널환경을 사용하는것이 GUI 처럼 직관적이지는 않지만 강력한 기능을 제공하기 때문에 여전히 많이 사용되고 있다. 이 때 터미널에 입력한 명령을 해석하고 관리해주는 프로그램인 shell을 이용한다.

Shell

터미널에 입력한 명령을 해석하고 관리하는 프로그램을 셸(shell) 이라고 한다. 즉, 운영체제의 커널과 사용자를 이어주는 명령어 해석기라고 할 수 있다.

쉘 명령은 GUI도구로는 수행하기 어려운 다양한 고급 기능을 제공하며, window의 명령 프롬프트와 비슷해보이지만 훨씬 강력한 프로그래밍 기능을 가지고 있다.

shell의 종류

  • sh(Bourne Shell): AT&T Bell 연구소의 Steve Bourne이 작성한 유닉스 쉘
  • csh: 버클리의 Bill Joy가 작성한 유닉스 쉘
  • bash(Bourne Again Shell): Brian Fox가 작성한 유닉스 쉘, 다양한 운영체제에서 기본 쉘로 채택
  • zsh: Paul Falstad가 작성한 유닉스 쉘, sh 확장형 쉘로 현재까지 가장 완벽한 쉘이라고 할 수 있다.

3. 실습

3-1 git bash사용해보기

  • $ : shell이 사용자의 입력을 받을 준비가 되었다는 뜻.
  • ~ : 로그인한 사용자의 최상위 폴더를 의미
  • .. : 상위폴더
  • . : 현재디렉토리
  • - : 옵션을 의미
  • -- : 하이픈이 두개쓰이면 축약형이 뒤에 이름 그대로 사용
  • ls : list segment, 현재 위치에서 접근할 수 있는 디렉토리나 파일의 이름을 보여줌
  • pwd : 현재 위치 확인
  • cd 디렉토리이름 : 해당 디렉토리로 이동
  • mkdir 생성할 디렉토리 이름 : 디렉토리 생성
  • touch 파일명 : 파일 생성
  • mv abc.txt practice : abc.txt파일을 practice폴더로 이동(move)
  • mv README.txt introduce.md 이름변경
  • cp abc.txt practice : abc.txt파일을 practice폴더로 복사(copy)
  • rm abc.txt : abc.txt파일을 삭제(remove) (폴더의 경우 -r을 붙임)
  • cat abc.txt : abc.txt파일의 내용을 출력
  • vi readme.md: vi편집기 실행
$ cd Documents  : Documents폴더로 이동
$ mkdir dev : dev폴더 생성
$ ls -l  : 한줄 한줄 표현
$ ls -a : 모든 숨긴 파일까지 표현
$ ls -al : 숨긴파일까지도 한줄한줄 표현
$ ls --help :어떤 플래그가 있고 어떤 역할을 하는지 확인할 수 있다.

3-2 vi 편집기 사용

입력모드 전환
i : normal모드 -> insert모드
v : normal모드 -> visual 모드
esc : normal모드로 돌아감

저장과 종료
:q - 나가기
:q! - 저장하지 않고 나가기
:w - 저장
:wq - 저장 후 종료

커서이동

  • h, j, k, l: 좌,하,상,우 커서 이동
  • :{number} - jump to {number}th line.

편집

  • d : delete
  • dd : 줄 삭제

참고자료

0개의 댓글