Linux & Terminal

EMMA·2022년 3월 8일
0

Linux는 운영체제 중 하나이며, 운영체제 또한 프로그램이기 때문에, 코드를 작성할 때 변수에 값을 담듯이 Linux도 shell의 설정값을 담는 변수를 사용해야 한다(환경변수 라고 함). 서버는 Linux 체제로 되어 있기 때문에, Linux 계열 환경에서 작업하면 운영체제의 차이에서 오는 오류를 최소화할 수 있다. 핵심 개념은 아래와 같다.

  • FHS (Filesystem Hierarchy Standard)
    • 모든 디렉토리는 /(root)에서 시작해 밑으로 경로를 이어간다
  • / : 최상위 경로, root
  • ~ : user 공간
  • /bin,/sbin: OS가 작동하기 위해 필요로 하는 최소한의 프로그램 집합소
  • /usr : 각 user 이름에 해당하는 폴더가 존재하며, 폴더 안에는 bin,sbin등의 폴더가 생성되어 있음

Terminal은 macOS 운영체제에 포함된 단말기다. bash(맥 OS X 10.2 이후의 기본 shell) 등의 유닉스 shell과 결합하여, 명령 줄 인터페이스를 운영 체제에 제공함으로써 운영 체제에 대한 텍스트 기반 접근을 제공한다. 우리는 shell을 통해 Terminal을 사용할 수 있고, Linux 명령어를 Terminal에 CLI (Command-Line Interface)형태로 입력하면, 이를 커널(Kernel)이 읽어서 하드웨어로부터 필요한 정보를 얻어오고 다시 Terminal로 전달하는 것이다.
우리가 보통 컴퓨터를 사용할 때 directory/파일들을 GUI(Graphic User Interface) 환경에서 보지만(폴더 그림있고, 아이콘+파일명 등의 디자인), Terminal에서는 모두 CLI 형태로 확인할 수 있다.

추가로 iTerm2를 설치하면, 그냥 Terminal을 사용하는 것보다 편리한 환경에서 작업을 할 수 있다. 처음에는 왜 또 설치해야 하나 약간 의문이었는데, iTerm2 features 페이지를 보고 납득 (인정할건 되도록 빨리...)

(220310 update)
shell(쉘)은 Terminal에 입력된 CLI 명령어를 해석해서 커널에 전달한다. 즉, 위에서 Linux 명령어를 커널이 읽어 하드웨어로부터 정보를 얻어온다고 했는데 사실 커널이 직접 읽고 해석하는 것은 아니고 shell이 그 역할을 대행하는 것이다. (bsh, zsh은 shell 중에 하나)

주요 Linux 명령어는 아래와 같다.

이 모든 작업들은 결국 컴퓨터 안에 directory/file을 찾는 것이 기본으로 깔려 있기에, Path(경로 설정)에 대해 같이 알아야 한다.

  • 절대 경로: full 주소 (e.g. /home/eun/bin)
  • 상대 경로: 나의 위치를 기준으로 한 상대적인 주소(.,..)
  • $PATH라는 환경 변수에는 명령어들이 저장되어 있음
    • ls/bin 디렉토리(폴더)에 있음
    • env 명령어를 통해 Linux의 환경변수 확인 가능함

그리고 Linux는 환경 설정을 파일을 통해 하는데, 이를 configure라고 한다. (e.g. zshrc)

이제 Assignment를 풀어볼 시간!

1
아래 명령어 사용, 바탕화면으로 이동하기

pwd
ls
cd Desktop
ls

결과 화면)
pwd: print working directory(폴더)
ls: list segments, 현재 경로 내 파일 목록 출력
cd: change directory(폴더 이동)

2
폴더 생성 후 폴더 내부에 readme.md, move 디렉토리 생성

mkdir wecode 
ls 
cd wecode 
touch readme.md 
ls 
mkdir move 
ls 

결과 화면)
mkdir: directory(폴더) 생성
touch: 파일 생성

마지막에 wecode폴더에서 ls를 입력하면 move 폴더와 readme.md 파일이 있음을 알 수 있다.


3
vi 에디터로 내용 작성 후 저장

vi readme.md
i #insert -> 입력 모드 전환
내용 입력 후 ESC
:wq #저장 후 종료

결과 화면)
vi(혹은 vim): 편집기 open

4
readme.md 복사 후, 복사 된 파일 move directory로 이동

# cp (원본 파일) (대상 파일)
cp readme.md readme2.md
ls

# mv (이동할 파일) (경로)
mv readme2.md ./move
cd move
ls

결과 화면)
cp: copy(디렉토리,파일 복사)
mv: move(디렉토리,파일 이동)

5
move 폴더 및 파일 삭제

cd ..
rm -rf move
ls

결과 화면)
.. : 상위 경로
rm: 디렉토리/파일 제거

profile
예비 개발자의 기술 블로그 | explore, explore and explore

0개의 댓글