유닉스(Unix)란
60년대 개발된 운영체제
유닉스의 특징 : 안정적, 신뢰적, 다양한 작업 처리
- 멀티 태스킹
- 가상 메모리
- 파일 시스템 : 파일을 구성하고 저장하기 위한 계층적 시스템
- 셸 : 사용자가 운영체제와 상호작용 할 수 있는 명령어 인터페이스
리눅스(Linux)란
90년대 만들어진 유닉스의 변종
데이터 센터 및 클라우드 배포에 선호되는 운영체제
- 사용자 커스텀 가능
- Unix 운영 체제의 코드가 비슷하게 Linux에서 사용됨
Unix VS Linux
Unix | Linux | |
운영 방식 | 독점 운영체제 | 오픈소스로 운영 |
소스코드 편집 | 소스 코드 수정 불가 | 소스 코드 수정 가능 |
비용 | 상용/ 유료 구입 | 무료 사용 가능 |
사용 규모 | 서버급, 기업용 워크 스테이션 | Solaris, Intel, Apple 등이 사용 |
배포 버전 | 몇가지 없음 | 셀 수 없이 많은 배포판 존재 |
GUI(Graphic User Interface) 와 CLI (Command Line Interface)
GUI 는 화면상에 보이는 아이콘, 창 , 메뉴 등을 마우스나 터치패드로 조작하여 컴퓨터에 명령 전달
CLI는 키보드로 명령어를 입력하고 결과가 문자열로 출력되는 인터페이스 의미(터미널)
CLI가 GUI보다 나은 이유?
→ 작업 효율 높음, GUI는 조작 방법을 외워도 크게 의미가 없다, 프로그램 실행 유리, 자동화에 유리
#파일 복사
$ cp a.txt b.txt
#a.txt를 b.txt 로 복사
예를 들어 a로 시작하는 모든 파일을 선택할 경우
# a로 시작하는 모든 파일 열기
$ ls a*
리눅스에서는 작은 프로그램들을 연결하여 크고 복잡한 동작 실행 → 대표적으로 파이프( | ) 라는게 존재한다
# sample.txt 에서 abc라는 문자열을 검색하고, 그 결과를 정렬하여 출력 -> 작업 효율 높음
$ grep "abc" sample.txt | sort
위 예시는 grep(Global regular expressin print)와 sort 명령어를 파이프로 연결했음.
GUI에서는 일일히 사용자가 클릭으로 하나씩 프로그램간의 입출력을 제어해야하는데, CLI를 통해 단순하고 강력하게 연동을 해결할 수 있다.
처리 자동화 : CLI 에서는 실행할 명령어를 파일에 기록해놓고 일괄로 실행 가능
→ 자주 사용하는 명령어 흐름을 기록해두면, 파일 호출 만으로 쉽고 정확하게 실행 가능
리눅스 명령 사용법
형식 : 명령 + [옵션] + [인자]
명령 : 리눅스를 사용하기 위한 명령어 (date, man,ls,cp,mv 등)
옵션 : 명령의 세부 기능 선택, - 나 -- 로 시작하고, 영문 소문자나 대문자로 구성, 명령에 따라 옵션이 다르기 때문에, 해당 명령의 사용법을 참조 해야함 (참고로 명령에 따라 옵션이 있을 수도 있고 없을 수도 있음)
인자 : 명령으로 전달되는 값 → 주로 파일이나 디렉토리 명이 들어간다. ( 명령에 따라 인자가 있을 수도, 없을 수도 있음)
#명령만 사용 -> 사용자 디렉토리의 모든 파일을 보여준다
$ ls
#명령과 옵션을 사용 -> .으로 시작하는 숨김 파일을 모두 보여주는 코드
$ ls -a
#명령과 인자를 사용 -> tmp 디렉토리 안에 있는 파일 출력
$ ls /tmp
#명령 + 옵션 + 인자 -> tmp 디렉토리의 숨김 파일을 포함한 모든 파일 출력
$ ls -a /tmp
기초 명령 사용법
#현재 날짜와 시간 출력
$ date
#화면 지우기
$ clear
#명령 사용 방법 출력 -> man + 명령
$ man clear
#사용자 계정 비밀번호 변경
$ passwd
'Linux' 카테고리의 다른 글
[Linux] 프로세스, 관리 명령, 포그라운드/백그라운드 프로세스의 작업제어, crontab (0) | 2024.12.02 |
---|---|
[Linux] Shell , Bash, Alias (1) | 2024.10.16 |
[Linux] Vi 와 Vi 명령어 (0) | 2024.10.13 |
[Linux] 디렉토리 및 파일 명령어 (1) | 2024.10.12 |