터미널은 사용자와 컴퓨터가 상호작용하기 위한 인터페이스이다. 사용자가 명령어를 입력하면 컴퓨터는 그 결과를 터미널을 통해 보여준다.이는 마치 컴퓨터와 대화를 나누는 창구와 같다.
쉘은 사용자가 입력한 명령어를 해석하고 운영체제에 전달하는 프로그램이다. 터미널이 단순히 입출력을 담당하는 창구라면, 쉘은 사용자의 명렁어를 운영체제가 이해할 수 있는 형태로 변환하는 통역사 역할을 한다.
ls
명령어를 입력하면 쉘은 이 명령어를 받아서 "현재 디렉토리의 파일 목록을 보여달라"는 의미로 해석하고, 운영체제에게 이 작업을 요청한다. -> 그리고 운영체제로부터 받은 결과를 다시 사용자에게 보여준다.터미널을 통해 우리는 로컬 운영체제(현재 사용중인 컴퓨터)뿐만 아니라 원격 운영체제(다른 컴퓨터)에도 접속할 수 있다. 이때 사용되는 것이 SSH(Secure Shell) 프로토콜이다. SSH는 모든 통신을 암호화하여 보안성을 제공하기 때문에 원격 컴퓨터에 안전하게 접속할 수 있게 해준다.
정리하면
이 세 가지 요소가 함께 동작하면서 컴퓨터와 효과적으로 상호작용하고 원격 시스템도 안전하게 관리할 수 있게 된다.
쉘 스크립트는 쉘에서 동작 가능한 명령을 모아놓은 파일을 말한다.
물론 적절한 소유권과 실행 권한이 있어야 쉘 스크립트를 실행할 수 있음.
쉘 스크립트를 실행하면, 파일에 작성된 명령어들이 순차적으로 실행된다. 모든 명령어의 실행이 끝나면 스크립트도 종료됨 -> 단 스크립트를 실행하기 위해서는 해당 파일에 대한 실행 권한이 필요.
작업 자동화 : 여러 명령어를 하나의 파일에 모아두고 실행할 수 있어서, 반복적인 작업을 자동화할 수 있다. 예를 들어, 매일 해야 하는 백업 작업을 스크립트로 만들어두면, 한 번의 실행으로 모든 작업이 완료된다.
프로그램을 통한 자동 실행 : cron과 같은 스케줄링 프로그램을 통해 쉘 스크립트를 자동으로 실행할 수 있다. 예를 들어, 매일 밤 12시에 백업 스크립트가 자동으로 실행되도록 설정할 수 있다.
먼저 명령어의 기본 형식은
명령어 [옵션] [인자]
이 형식으로 작성한다.
옵션은 보통 -
또는 --
로 시작, 명령어의 동장 방식을 수정한다.
-l
, -a
, -h
--all
, --human-readable
리눅스 명령어는 단독으로 사용하는 경우도 있고, 인자를 추가해 사용하는 경우도 있다. 인자는 명령어에 전달하는 값으로 보통 파일 이름이나 디렉토리 이름이 들어간다. 인자는 필요에 따라 여러 개가 들어갈 수도 있음.
옵션 조합 이해
ls -la
(상세정보 + 숨김파일)ls -la
= ls -al
)ls(list 약자) : 리눅스에서 가장 많이 사용하는 명령어.
디렉토리 내용을 보여주는 명령어, 일반 파일 뿐만 아니라 특수 파일도 조회해 출력
ls [옵션] [파일]
-l
: 파일의 상세 정보 표시 (권한, 소유자, 크기 등)-a
: 숨김 파일을 포함한 모든 파일 표시-h
: 파일 크기를 사람이 읽기 쉬운 형태로 표시-t
: 생성된 순서로 파일 출력 ls -la
, ls -lh
cd(change directory) : 디렉토리를 이동하는 명령어
cd /
: 루트 디렉토리로 이동cd ~
: 홈 디렉토리로 이동cd ..
: 상위 디렉토리로 이동cd -
: 이전 디렉토리로 이동 리눅스에서 .
은 현재 작업 디렉토리를, ..
은 현재 디렉토리의 상위 디렉토리를 가리킴
현재 작업 중인 디렉토리의 전체 경로 출력
cat(concatenate) : 파일 내용을 화면에 출력하는 명령어
주요 옵션
-n
: 줄 번호 표시-b
: 공백이 아닌 줄에만 번호 표시cat file1 file2
-> 끝에 별다른 표시나 구분 없이 이어지기 때문에 두 파일의 내용을 연결한 것과 같은 효과 현재 쉘 세션 종료
텍스트 편집기
nano [파일]
이렇게 파일을 열고 (기존 파일이 존재하면 열고, 없으면 생성) 화살표로 커서를 움직일 수 있음
주요 단축키
CTRL + O
: 저장CTRL + X
: 종료CTRL + K
: 행 삭제CTRL + U
: 붙여넣기리눅스에서는 nano로 파일을 새로 생성하거나 기존 파일을 열어 내용 편집 가능.
물론 vim으로 해도 된다.