개인 PC 보다는 서버에서 자주 사용하는 OS 이다.
무료 오픈소스이며, 여러가지 버전이 존재한다.
CLI(Command Line Interface)는 Terminal 상에서 작업하고, GUI(Graphic User Interface)는 Desktop 상에서 작업한다.
대표적인 Linux 배포판
Debian
온라인 커뮤니티에서 제작하여 배포
Ubuntu
영국의 캐노니컬 회사에서 만든 배포판이며, 초보자들이 쉽게 접근 할 수 있음
Redhat
레드햇 회사에서 제작하여 배포
CentOs
레드햇이 공개한 버전을 브랜드와 로고를 제거하고 배포한 버전
Linux를 사용하는 방법
VirtualBox에 Linux 설치
Docker로 설치
WSL 사용
Notebook에서 Terminal 실행
쉘(Shell) 이란 사용자가 문자를 입력해 컴퓨터에 명령할 수 있도록 하는 프로그램이다.
Terminal 은 쉘을 실행하기 위해 문자 입력을 받아 컴퓨터에 전달하고, 출력하는 역할이다.
쉘의 종류
man
쉘 커맨드 메뉴얼 문서를 보고자 하는 경우
mkdir
디렉터리 생성
ls
List Segments의 줄임말로, 현재 폴더의 파일들을 확인
-a : 숨겨진 파일 및 폴더 전체 출력
-l : 퍼미션, 소유자, 만든 날짜, 용량 출력
-h : 용량을 GB, MB 단위로 표현
pwd
Print Working Directory의 줄임말로, 현재 폴더의 경로 출력
cd
Change Directory의 줄임말로, 폴더를 이동한다.
echo
print 명령어 처럼 Terminal에 텍스트를 출력한다.
vi
텍스트 파일 편집기 이다
Command Mode - 기본 Mode
dd : 현재 위치한 한 줄 삭제
i : INSERT 모드로 변경
x : 커서가 위치한 곳의 글자 1개 제거
yy : 현재 줄 복사
p : 현재 커서가 있는 줄 바로 아래에 붙여넣기
k : 커서 위로
j : 커서 아래로
l : 커서 오른쪽으로
h : 커서 왼쪽으로Insert Mode - 파일 편집 Mode
ESC를 통해 Command Mode로 복귀Last Line Mode - 종료 옵션 설정
w : 현재 파일명으로 저장
q : vi 종료(저장되지 않음)
q! : vi 강제종료
wq : 저장한 후 종료
/문자 : 문자 탐색
set nu : vi 라인 번호 출력
sudo
최고 권한을 가진 슈퍼 유저로 명령을 실행
cp
파일 또는 폴더를 복사
-r : 디렉토리를 recursive하게 복사
-f : 강제 복사
mv
파일 이름 변경 및 파일 이동
cat
특정 파일 내용 출력
Redirection 기호를 통해 Overwirte 하거나 Append 가능
history
최근 입력한 쉘 커맨드 History 출력
!30 같은 명령어로 커맨드 재활용 가능
find
파일 및 디렉토리를 검색할 때 사용
-name : 이름을 기준으로 검색
export
환경 변수 설정
export water = "물"
echo $water
alias
명령어를 별칭으로 설정
alias ll2='ls-l'
head, tail
파일 앞, 뒤 n행 출력
head -n 3 vi-test.sh
sort
행 단위 정렬
-r : 정령을 내림차순으로 정렬
-n : Numeric Sort
uniq
중복된 행이 연속으로 있는 경우 중복 제거
sort와 함께 사용
-c : 중복 행의 개수 출력
grep
파일에 주어진 패턴 목록과 매칭되는 라인 검색
-i : Insensitively 하게 대소문자 구분 제외
-w : 정확히 그 단어만 찾기
-v : 특정 패턴 제외한 결과 출력
-E : 정규 표현식 사용
^W : 단어로 시작하는 것
W$ : 단어로 끝나는 것
. : 하나의 문자 매칭