터미널로 배우는 리눅스 운영 체제
1. pwd
echo
: 뒤이어 입력한 내용을 출력한다.
$ echo hello World hello World
pwd
: 'print working directory' 의 약자로 현재 작업 중인 디렉토리를 출력한다.
$ pwd /aiffel
2. ls
ls
현재 디렉토리 내의 파일 및 폴더들을 출력 합니다.
$ ls aiffel data
ls
대신 ls -al
을 입력하면 밑에 그림처럼 출력된다.
.
는 현재 폴더를, ..
는 바로 위의 상위 폴더를 카리킨다.
리눅스는 .
으로 시작하는 이름의 파일은 숨김 파일이다.
하지만ls -al
명령어를 입력하면 김 파일도 전부 확인할 수 있다.
대부분의 명령어들은 --help
라는 인자를 기본으로 제공해준다.
ls --help
를 입력해보면
처럼 출력이 되는데,
Ctrl+Shift+↑/↓
로 한줄씩 위/아래로 스크롤하거나, Shift+PageUp/PageDown
로 한 페이지씩 위/아래로 스크롤 할 수 있다.
다른 인자들도 있다.
-l
: 각 파일 및 폴더의 권한, 소유자, 크기, 수정일시 등 자세한 정보를 출력합니다.-h
: 파일 크기를 바이트 수 대신 사람이 알아볼 수 있는 단위(1K, 234M, 2G 등)로 표시합니다.-t
: 파일 수정시간 순으로 정렬해서 출력합니다. 최신 파일이 위쪽으로 표시됩니다.-r
: 정렬 순서를 뒤집어 출력합니다. -rt의 형태로 쓰면 최신 파일이 아래쪽으로 표시되어 유용할 때가 있습니다.
한 글자 인자들은 ls -l -a -h
이렇게 쓸수도 있지만 ls -lah
처럼 묶어서 사용 가능하다.
ls 뒤에 폴더 명을 넣어서 해당 폴더 안을 볼 수도 있다.
3. cd
cd
: 'Change Directory'의 약자로, 뒤에 폴더명을 입력하면 해당 폴더로 위치를 이동한다.
$ pwd /aiffel $ ls aiffel data $ cd aiffel $ pwd /aiffel/aiffel
cd /
를 입력하면 root
경로로 이동이 되는데 최상단의 경로이다.
/home
: 사용자별 홈 디렉토리들이 있는 곳/root
: 최고 관리자 계정의 홈 디렉토리/mnt
: 저장장치(HDD, SSD)가 붙는 위치/media
: 이동식 미디어(USB 드라이브)가 붙는 위치/tmp
: 재부팅 시 삭제될 임시 파일들을 저장하는 폴더/dev
: 컴퓨터에 연결된 하드웨어 및 가상 기기(device)들을 가리키는 파일들/proc
: 현재 실행 중인 프로세스들을 가리키는 파일들/etc
: 각종 설정 파일들/bin
: 실행 가능한 프로그램(binary)들/sbin
: 시스템 관리용 프로그램들/usr
: 다중 사용자 모드에서 사용 가능한 파일 및 프로그램들 (root 계정만 있는 단일 사용자 모드에서는 사용 불가)/var
: 캐시, 로그 등 시스템 구동 간 계속 내용이 바뀌는 파일들
4. 운영체제(Operating System) 일반 개론
-
운영체제란?
시스템 하드웨어를 관리할 뿐 아니라 응용 소프트웨어를 실행하기 위하여 하드웨어 추상화 플랫폼과 공통 시스템 서비스를 제공하는 시스템 소프트웨어이다. 최근에는 가상화 기술의 발전에 힘입어 실제 하드웨어가 아닌 하이퍼바이저(가상 머신) 위에서 실행되기도 한다.
-
커널? 쉘? 터미널?
커널(Kernel)
: 운영체제 내부에 있는 것으로 컴퓨터의 하드웨어를 제어한다. 운영체제의 90%를 차지한다.쉘(Shell)
: 커널만으로는 운영체제가 완성되지 않는다. 우리가 커널에 명령을 내리기 위해서는 커널이 이해할 수 있는 언어로 전달해야 하는데 그것은 쉽지 않다. 우리는 그저 영어로(표준) 타이핑을 하여 명령을 전달한다. 이때 우리가 전달한 스크립트를 커널이 이해하기 쉽게 해석해주는 역할이 바로 쉘이다. 윈도의 cmd, linux/unix의 bash 가 대표적인 예이다.터미널(Terminal)
: 인간과 컴퓨터가 소통하게 해주는 통로, 인터페이스라고 생각하면 쉽다.
터미널은 크게 gui 기반 터미널과 텍스트 기반 터미널이 두 가지가 있는데 그중 리눅스 터미널은 텍스트 기반 터미널이다. 터미널은 주로 shell을 이용한다.
-
프로세스와 스레드
프로그램
: 컴퓨터가 수행할 작업을 기록해 놓은 것프로세스
: 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램스레드
: 프로세스 내에서 실행되는 여러 흐름의 단위
-
프로그램과 환경 변수
- 명령어들의 진짜 정체는 두가지로 구분 할 수 있다
- 실제 프로그램
- 셸에서 제공하는 셸 명령어
- 명령어들의 진짜 정체는 두가지로 구분 할 수 있다
which
명령어의 전체 경로를 출력한다.
$ which ls /bin/ls $ which bash /bin/bash
셸에 명령어를 입력하면 셸은 셸 내에서 정의된 명령인지 확인하고 있으면, 해당 명령을 실행한다.
정의된 명령이 아니라면 설치된 프로그램 중 해당이름을 가진 프로그램이 있는지 확인 후 실행한다.
셸 단어앞에 $
가 붙으면 환경변수를 의미한다.
PATH
환경 변수는 셸이 프로그램을 실행할 때 참조할 경로들을 나타낸다.
값을 보면 :
로 구분되어 있는데, PATH
내 같은 경로의 이름이 있다면, 순서 상 앞에 있는 디렉토리의 프로그램을 실행한다.
export
는 셸 변수나 함수를 현재환경으로 내보낸다.
export PATH=/aiffel:$PATHJ
이렇게
PATH
환경변수에 디렉토리를 추가하면 셸이 특정 프로그램을 실행할 떄 참조할 수 있게 된다.
5. 셸 심화
- 이름이
-all
인 폴더를 만들어 보자.
$ mkdir ./--add
- train.csv에서 남성과 여성이 몇 명인지 세어봅시다. train.csv 다운로드 경로
$ tail -n +2 train.csv | cut -d"," -f6 | sort | uniq -c $ tail -n 891 train.csv | cut -d"," -f6 | sort | uniq -c 314 female 577 male
- train.csv에서 성이 Brown인 사람이 몇 명인지 세어봅시다. 성이 아닌 나머지 이름에 Brown이 들어가는 경우도 있으니 조심해야 합니다.
$ cat train.csv | grep -o Brown, | wc -l $ cat train.csv | cut -d"," -f4 | grep "Brown" | wc -l 4
Author And Source
이 문제에 관하여(터미널로 배우는 리눅스 운영 체제), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ljs3229/터미널로-배우는-리눅스-운영-체제저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)