2023.10.25 TIL
Linux OS (feat. UNIX)
최초 공개된 리눅스 커널 : v0.01
GNU Project (GNU is Not Unix)
UNIX와 호환되는 자유 소프트웨어를 개발하는 프로젝트
4가지 자유를 보장
- 프로그램을 어떠한 목적으로도 실행할 수 있는 자유
- 프로그램이 어떻게 동작하는지 학습하고, 자신의 필요에 맞게 개작할 수 있는 자유, 이를 위해서는 소스 코드에 대한 접근이 전제되어야 한다.
- 이웃을 도울 수 있도록 복제물을 재배포할 수 있는 자유
- 프로그램을 개선할 수 있는 자유와 개선된 이점을 공동체 전체가 누릴 수 있도록 발표할 자유. 이를 위해서도 역시 소스 코드에 대한 접근이 전제되어야 한다.
UNIX
리눅스는 유닉스 계열의 운영체제
- 1969년 AT&T의 벨연구소에서 어셈블리어로 처음 개발
- 1971년에 C언어로 재개발 → 최초의 고급 프로그래밍 언어로 작성한 운영체제, 높은 이식성
- AT&T의 상용 UNIX와 오픈소스 버전인 BSD로 나뉘어 발전
- BSD는 AT&T의 라이선스가 필요 없는 FreeBSD로 발전
Linux
- 공개 소프트웨어, 무료로 사용 가능
- Unix와의 완벽한 호환성 유지
- 서버용 운영체제로 많이 사용
- 편리한 GUI 환경 제공
Linux 배포판
- 리눅스 커널 + 응용 프로그램으로 구성
- 레드햇 계열, 데비안 계열, 슬랙웨어 계열
- CenOS(Redhat), Ubuntu(Devian) 이 가장 많이 쓰임
- LTS(Long Time Support) version
Linux의 구조
- Kernel : Linux의 핵심
- 프로세스/메모리/파일 시스템/장치 관리
- 컴퓨터의 모든 자원 초기화 및 제어 기능
- Shell : 사용자 인터페이스
- 명령 해석
- 프로그래밍 기능
- 기본 Shell → Bash
- 응용 프로그램
- 각종 프로그램 개발 도구
- 문서 편집 도구
- 네트워크 관련 도구
Directory
/usr
: 명령어, 응용 프로그램 등이 주로 저장됨
/var
: log 파일 등이 주로 저장됨
/tmp
: 시스템 사용 중 발생하는 임시 파일이 저장됨
/home
: 사용자 home directory가 위치됨
Linux Terminal 접속하기
리눅스에 터미널 접속(ssh) 설정
- ssh 서버 프로그램을 설치
- 터미널에 아래 명령어 입력
sudo apt update
- (
sudo dpkg --configure -a
)
sudo apt install ssh
- ssh 서버가 잘 돌고 있는지 확인하기 : ps -ef | grep ssh
- Linux server의 IP address 확인
ifconfig
명령어 설치
sudo apt install net-tools
ifconfig
명령어 실행
inet 뒤에 오는 IP주소 확인
- SSH 접속하기(Mac Terminal)
ssh {username}@{IPaddress}
-p
(port default: 22, 생략 가능)
😅😅
터미널로 ubuntu 서버에 접속하려면 매번 VMware에서 부팅해야되는게 당연하겠지만 호옥시나 부팅을 안해도 접속하는 방법이 있을까 하고 ChatGPT한테 물어봤더니...
리눅스 명령 사용
프롬프트 기호와 홈 디렉토리
- 프롬프트 : 사용자의 명령 입력을 기다리는 표시
- 기본 디렉토리 : 터미널 창의 기본 디렉토리
user1@myubuntu:~$
: user1은 사용자 계정, myubuntu는 host로 우분투 시스템 자체를 의미
명령 행 편집 방법
- 단어 지우기 : command + W
- 문장 지우기 : command + U
명령의 구조
- 형식:
$ 명령 {option} {parameter}
$ ls
$ ls -a
$ ls /tmp
$ ls -a /tmp
기초 명령어
date
clear
man
: manual, 명령 사용법을 화면에 출력
passwd
: 사용자 계정의 비밀번호 변경
exit
: 접속 해제, 터미널 종료