[Linux] Linux 기초 및 설치 방법
Linux
1. 운영체제의 발전과 리눅스의 개요
운영체제 (OS, Operation System)
- 컴퓨터 하드웨어를 제어하는 가장 기본적인 소프트웨어
- 초창기 컴퓨터 ENIAC은 운영체제 없이 사용자와 응용 프로그램이 직접 하드웨어를 관리했다.
대규모 연산 처리 자동화
- ENIAC (1940년대)
- 운영체제가 없었으며, 오퍼레이터(Operator)가 컴파일, 링크, 로딩 등의 작업을 수동으로 처리했다.
- 진공관을 사용하여 true/false를 구분했다.
- 전선으로 논리 회로를 구성하여 연산을 처리하고, 새로운 연산을 위해선 회로를 재구성해야 했다.
- 오퍼레이터가 수행하던 작업방식 : 컴파일 → 링크 → 로딩
처리 자동화 - 일괄 처리
- Batch Processing System (1950년대)
- 기존 오퍼레이터가 수동으로 했던 작업(컴파일, 링크, 로딩 등)을 자동화한 최초의 운영체제가 등장했다.
- Resident Monitor : 프로그램의 일부로 메모리에 항상 상주하며, 천공 카드를 통해 데이터를 처리한다.
- 천공 카드
- Batch Processing (일괄 처리)의 장단점
- 중간 수정이 불가능하다.
- 한 번에 하나의 작업만 수행 가능하지만 순서대로 여러 연산을 처리할 수 있었다.
현대 운영체제
- 대화형 시스템 (Interactive System)
- 실행 도중에도 중간 결과를 확인할 수 있게 하여 운영 중 수정이 가능하다.
- 다중 프로그래밍 (Multi-Programming System)
- 여러 애플리케이션이 동시에 실행되며, CPU 스케줄링을 통해 자원을 효율적으로 사용한다.
- 시분할 시스템 (Time-sharing system)
- 여러 사용자가 하나의 프로세서를 공유하고, CPU가 매우 짧은 시간 동안 각 사용자에게 할당되어 사용자는 독립적인 사용을 경험한다.
리눅스 개요
- Multics와 Unics
- 복잡한 시스템인 Multics에서 유래되어 단순화된 Unics가 개발되었다.
- 이후 Unix로 발전했다.
- Linux
- 리누스 토발즈가 UNIX 기반의 운영체제 커널을 개발하였다.
- 커널은 운영체제의 핵심 역할을 담당한다.
- Kernel
- 커널은 운영체제의 핵심 역할을 담당한다.
- 기본적으로 기계어와 같은 0,1 데이터만 처리할 수 있고, 사용자와의 상호작용이 불가능하다.
- Shell
- 인터페이스로 볼 수 있다.
- 사용자가 명령어를 입력하면, 셸이 이를 해석해 커널에게 전달한다.
2. 리눅스 설치
가상머신 설치
- 가상 머신
- 메인 운영체제(Host OS)에 가상의 머신을 생성하여 다른 운영체제(Guest OS)를 설치하고 동작할 수 있도록 하는 소프트웨어.
- 대표적인 벤더: VMWare, Oracle VirtualBox.
- VirtualBox 설치 프로그램 다운로드
- Windows: VirtualBox 6.1.46 버전 다운로드하기 (파일명: VirtualBox-6.1.46-158378-Win).
- Extension Pack도 다운로드하기
- VirtualBox 설치
- 다운로드된 프로그램을 통해 VirtualBox 설치
- 확장팩 설치하기
- 파일 → 환경설정 → 확장 → + 버튼 클릭
- 가상 머신 만들기
- 새로만들기 클릭
- 실습용이라 간단하게 4GB로 메모리크기를 설정한다.
- 하드 디스크 : 지금 새 가상 하드 디스크 만들기(C) 선택
- 하드 디스크 파일 종류 : 기본값 VDI(VirtualBox 디스크 이미지) 선택
- 물리적 하드 드라이브에 저장 : 동적 할당(D) 선택
- 파일 위치 및 크기 : 하드디스크 사이즈는 30GB로 지정
- 만들기 선택
- 새로만들기 클릭
리눅스 배포판 이미지 설치
Ubuntu 다운로드하기
- https://releases.ubuntu.com/20.04.6/?_ga=2.76095253.169957229.1708349633-134843663.1705138362
명령어로만 칠 수 있는 GUI 버전도 다운로드
Ubuntu 운영체제 설치
- PC에 다운로드 받은 Ubuntu 이미지를 사용하여 Linux 운영체제를 설치해야한다.
- 생성한 서버에 OS 설치용 이미지(CD) 삽입하기
- 새로만들기 → 가상/광학 디스크 이미지 선택 →
ubuntu-20.04.6-desktop-amd64.iso
선택 → 시스템 다시 시작하기
- 다시 실행하면 update 및 기본 환경 다운로드가 시작된다.
- 새로만들기 → 가상/광학 디스크 이미지 선택 →
GUI 환경 설정하기 (이미지로 서버 컴퓨터에 운영체제 설치)
- VirtualBox 메인 페이지에서 시작 버튼 클릭 → 서버 부팅 시 CD로 인식된 iso 이미지를 통해 우분투 설치를 위한 내부 과정이 진행된다.
- 한국어 메뉴 클릭 후, Install Ubuntu 버튼을 클릭한다.
Keyboard layout - 키보드 레이아웃으로 사용할 언어를 선택한 후 continue
- Updates and other software
- 설치할 항목을 설정한다.
- Minimal installation (최소 옵션만 설치하는 옵션) 선택 후 Continue
- Installation type
- 운영체제 iso 이미지 선택
- Install Now 버튼 선택
- Ubuntu 운영체제에서 사용 할 사용자 계정 설정
- 설정 후 continue
- 설치 진행
- 시스템을 재시작하면 정상적으로 실행된다. (온라인 계정은 skip)
- terminal 실행해보기
xeyes
명령어 입력해서 확인해보자 (마우스 포인터의 위치를 추적하는 데모 프로그램)
- Updates and other software
- 화면 꽉 채우기로 변경
- 설정 → 디스플레이 → 그래픽 컨트롤러를 VBoxVGA로 변경 후 재실행
- 폰트 키우기 -
Ctrl Shift +
폰트 줄이기 -Ctrl -
CLI 환경 설정하기
가상 머신 만들기
시작하기 → 장치 → 광학 드라이브 → 디스크 이미지 선택/만들기 →
ubuntu-20.04.6-live-server.amd64.iso
선택하기 → 시스템 전원끄기 후 다시 재시작하기- Linux OS에서 사용할 언어 선택 : English
- 인스톨러 업데이트 여부 : Continue without updating 선택
- Keyboard Configuration : English 선택 후 Done
- Network connections : Done
- Configure Proxy : Done
- Ubuntu Archive Mirror : Done
- Storage Configuration : Done
- Confirm destructive action : Continue
- Profile Setup
SSH Setup : Install OpenSSH server 선택 후 Done
- Featured Server Snaps : Done
Kernel 부터 설치가 진행된다
설치가 완료 되면, Reboot Now 버튼을 선택하여 재부팅을 진행한다.
우측 상단 X 클릭→ 시스템 전원 끄기 선택
- 스냅샷 찍기
- 설치한 리눅스 서버가 제대로 동작하지 않을 때 초기 설치 상태로 돌아가기 위한 세이브 포인트를 지정해준다.
- linux-cli의 메뉴바 → 스냅샷 탭 → 찍기 → 스냅샷 이름에
설치 직후
로 작성 - 이후 복원 버튼 선택 시 리눅스를 처음 설치했을 때의 시점으로 복원된다.
서버 재실행 후 생성한 username, password로 로그인한다.
로그인 성공
3. 리눅스 기초
리눅스 운영체제의 기본 인터페이스
- GUI (Graphic User Interface)
- 리눅스는 그래픽 기반의 UI를 제공하여 사용자가 마우스를 통해 직관적으로 조작할 수 있다.
- 업데이트에 따라 UI 버튼이나 위치가 변경될 수 있습니다.
- CLI (Command Line Interface)
- CLI는 명령어 기반의 인터페이스로, 버튼 위치 변화 없이 일관되게 명령어를 사용할 수 있다.
- GUI에 비해 명령어 입력이 빠른 경우도 있다.
Linux 기본 인터페이스 설명
- 프롬프트 (Prompt)
- 사용자가 명령어를 입력할 수 있는 명령줄 인터페이스
- 입력한 명령어는 쉘(Shell)을 통해 커널로 전달되어 실행된다.
- 예시
yeahjinee@server1:~#
: 사용자 yeahjinee가 server1 서버에 접속한 상태root@DESKTOP-R81BAS:~#
: root 계정으로 DESKTOP-R81BAS 서버에 접속한 상태
- @기준 왼쪽: 사용자 이름
yeahjinee
또는root
는 현재 로그인한 사용자 계정을 의미한다.
- @기준 오른쪽: 호스트 이름
server1
또는DESKTOP-R81BAS
는 서버 또는 컴퓨터의 호스트 이름이다.
- 호스트 이름 기준 오른쪽: 디렉토리 경로
~
는 현재 사용자가 작업 중인 디렉토리~
는 사용자의 홈 디렉토리를 나타냅니다.
- 프롬프트 끝의 기호 ($, #)
$
: 일반 사용자 권한#
: 루트 사용자(관리자) 권한
기본 명령어
항목 | 설명 |
---|---|
date | 현재 시간과 날짜를 출력한다. |
df | 디스크 사용량 및 용량을 확인한다. |
free | 메모리 사용 현황을 확인한다. |
exit | 터미널을 종료한다. |
커맨드 라인 조작 단축키
항목 | 설명 |
---|---|
Ctrl + A | 커서를 명령 줄의 맨 앞으로 이동한다. |
Ctrl + E | 커서를 명령 줄의 맨 뒤로 이동한다. |
Alt + B | 커서를 이전 단어의 시작으로 이동한다. |
Alt + F | 커서를 다음 단어의 끝으로 이동한다. |
Ctrl + U | 현재 명령 줄 전체를 지운다. |
명령어 편의 기능
항목 | 설명 |
---|---|
Tab | 파일이나 디렉토리 이름을 자동 완성해준다. |
history | 현재까지 입력한 명령어 기록을 조회할 수 있다. 위(↑)와 아래(↓) 방향키로 이전, 이후 명령어를 불러올 수 있다. |
리눅스 운영체제 로그인
- 로그인
- 서버 실행 후 로그인 프롬프트가 출력되며, 여기서 사용자 계정 정보를 입력해 로그인할 수 있다.
- 프롬프트 (Prompt): 사용자가 명령어를 입력할 수 있는 명령줄 인터페이스
[사용자명, 컴퓨터명 등]$ {명령어 입력 부분}
- 로그아웃
logout
명령어로 로그아웃을 수행한다.
명령어 입력 방식
- 명령어 작성 시그니처
$ 명령어 [옵션(인수)] [옵션(인수)] ...
[ ]
: 선택 옵션 (작성하지 않아도 기본값으로 동작한다)...
: 여러 개의 옵션 또는 인수가 올 수 있음을 의미한다.
명령어 예시
항목 설명 man crontab
crontab
명령어의 사용법을 조회한다.man passwd
passwd
명령어의 사용법을 조회한다.man -k pass
pass
가 포함된 모든 매뉴얼을 조회한다.- 옵션과 인수
- 옵션 (Option): 명령어가 제공하는 부가 기능을 수행하며, 보통 하이픈(-) 뒤에 알파벳을 작성한다.
- 인수 (Argument): 명령어 또는 옵션에 넘기는 값
- 명령어별 도움말 참조 방법
man {명령어}
: 해당 명령어의 매뉴얼(Manual)을 조회할 수 있다.- ex.
man ls
:ls
명령어의 기능과 사용 방법을 확인한다. - ex.
man date
- 현재 날짜와 시간을 알 수 있다.
- ex.
-help
옵션- 명령어 뒤에
-help
를 붙이면 간단한 도움말을 조회할 수 있다. - ex.
ls --help
:ls
명령어의 간단한 도움말을 조회한다.
- 명령어 뒤에
- -와 –의 차이
-
:문자 하나로 구성된 옵션을 나타낸다.--
: 단어로 구성된 옵션을 나타낸다.
4. 파일 관리
Linux 파일 시스템
파일 시스템의 구조
- 리눅스 파일 시스템은 트리(Tree) 구조로, 최상위에 루트 디렉토리(
/
)가 있고 그 아래 여러 디렉토리가 계층적으로 존재한다. 주요 디렉토리
항목 설명 /
최상위 루트 경로 /dev
장치 파일들이 위치한 디렉토리 /etc
시스템 설정 파일들이 위치한 디렉토리 /usr
실행 파일, 라이브러리, 소스 코드 등이 있는 디렉토리 /usr/bin
기본 사용자 명령어들이 위치 /usr/sbin
관리자 명령어들이 위치 /home
사용자별 개인 디렉토리 /home/bob
사용자 Bob의 디렉토리 /var
로그 파일이나 캐시 등이 저장되는 디렉토리 파일과 관련된 기본 명령어
항목 설명 pwd
현재 디렉토리 경로 확인 cd [경로]
지정된 경로로 디렉토리를 변경 /var
경로로 이동/var
경로로 이동
[예시] -cd /var
: /var 경로로 이동
-cd /
: 루트 경로로 이동
-cd~
또는cd
: 홈 디렉토리로 이동
-cd /var/log
: 특정 하위 디렉토리로 이동루트 경로로 이동 루트 디렉토리( /
)로 이동홈 디렉토리로 이동 현재 사용자 홈 디렉토리로 이동 하위 디렉토리로 이동 지정된 하위 디렉토리로 이동 ls
현재 디렉토리 내 파일 및 디렉토리 목록을 표시 ls -al
숨김 파일을 포함하여 파일의 상세 속성까지 출력 ls -a
숨김 파일(.으로 시작하는 파일)을 포함하여 디렉토리 목록을 출력 ls -l
각 파일과 디렉토리의 권한, 소유자, 크기, 수정 날짜 등 상세 정보를 출력 파일 타입 확인
항목 설명 file [파일명]
파일의 타입(확장자)을 확인[예시] file home
→ 결과: home: directoryfile
실행 결과
cd, 경로 이동
항목 | 설명 |
---|---|
cd [경로] | 디렉토리를 변경 |
cd /var | /var 경로로 이동 |
cd / | 루트 디렉토리(/ )로 이동 |
cd ~ 또는 cd | 현재 사용자의 홈 디렉토리로 이동 |
cd /var/log | 특정 하위 디렉토리로 이동 - 각 사용자 계정 별 홈 경로가 사용자 이름으로 만들어져있다. |
cd 실행결과
ls, 디렉토리 내부 조회
항목 | 설명 |
---|---|
ls | 현재 디렉토리의 파일 및 폴더 목록을 알파벳 내림차순으로 표시 |
ls /var | /var 경로의 파일 및 폴더 목록을 표시 |
옵션 명령어 | |
ls -F | 파일과 폴더를 구분하여 표시. / : 폴더 @ : 심볼릭 링크 * : 실행 가능한 파일 |
ls -a | 숨김 파일(.으로 시작하는 파일)까지 포함하여 목록을 표시 |
ls -aF | 숨김 파일을 포함하여 파일과 폴더를 구분해 표시 |
ls -l | 각 파일, 폴더의 상세 정보(권한, 소유자, 크기, 수정 날짜 등)를 표시 |
파일 상세 정보 | |
d | 디렉토리 |
l | 심볼릭 링크 |
- | 일반 파일 |
단축 명령어 | |
ll | ls -l 의 단축 명령어로 상세 정보 표시 |
la | ls -a 의 단축 명령어로 숨김 파일 포함한 목록 표시 |
ls / -R | 루트(/ ) 경로부터 모든 서브 디렉토리를 재귀적으로 조회 |
ls /var
,ls -F /var
,ls -a
실행 결과
pwd, 현재 폴더 경로(디렉토리) 표시
항목 | 설명 |
---|---|
pwd | 현재 작업 중인 디렉토리 경로를 출력 (절대경로로 표시함) [실행결과] /home/ubuntu |
cat, 파일 내용 표시
항목 | 설명 |
---|---|
cat [파일명] | 파일의 내용을 출력 |
cat [파일1] [파일2] | 두 개의 파일을 한 번에 출력 |
cat [파일1] [파일2] > [결과파일] | 두 파일의 내용을 하나의 파일로 연결해서 저장 |
mkdir, 폴더 생성
명령어 | 설명 |
---|---|
mkdir test | 현재 경로에 test 라는 폴더 생성 |
옵션 명령어 | |
mkdir yeah jinee | 여러 폴더(yeah , jinee )를 한 번에 생성 |
mkdir -p yeah/jinee | 존재하지 않는 상위 폴더까지 한 번에 생성 (cucu 폴더 내에 ttemy 폴더 생성) |
cp, 파일 복사
명령어 | 설명 |
---|---|
cp lorem rem | lorem 파일을 rem 이라는 새로운 이름으로 복사 |
cp lorem yeah | lorem 파일을 yeah 폴더에 복사 |
옵션 명령어 | |
cp lorem ipsum jinee | lorem 과 ipsum 파일을 jinee 폴더에 복사 |
cp -i lorem ipsum jinee | 덮어쓸 때 확인을 요청하여 파일 복사 (-i 옵션) cp: overwrite ‘ttemy/lorem’? |
cp -r yeah yeah2 | -r 명령어를 통해 디렉토리를 복사 → yeah 폴더를 yeah2 에 복사한 것 |
vi lorem
cp lorem rem
mv, 파일 이동
명령어 | 설명 |
---|---|
mv ipsum mumu | ipsum 파일을 mumu 폴더로 이동 |
mv mumu yuyu | mumu 폴더의 이름을 yuyu 로 변경 |
rm, 파일 삭제
명령어 | 설명 |
---|---|
rm loremipsum | loremipsum 파일을 삭제 |
rm lorem ipsum | 두 개의 파일(lorem , ipsum )을 한 번에 삭제 |
폴더 삭제 | |
rmdir jinee | 비어있는 jinee 폴더를 삭제 (비어 있지 않으면 삭제 불가) |
rm -r jinsam | 폴더와 그 안의 모든 파일을 재귀적으로 삭제 (-r 옵션) |
which, whereis, 특정 프로그램의 위치 (경로) 표시
- 리눅스에서 수행되는 대부분의 명령어는 파일이자 프로그램이라고 볼 수 있다.
명령어 | 설명 |
---|---|
which | 특정 명령어(파일)의 위치를 찾을 때 사용 which rm → /usr/bin/rm : rm 명령어가 어디서 실행되는 지 확인 |
whereis | 실행 파일 외에 해당 실행 파일과 관련된 파일까지 조회 whereis rm → rm: /usr/bin/rm /usr/share/man/man1/rm.1.gz : rm 명령어의 실제 실행 파일은 /usr/bin/ 경로 아래에 있고,해당 명령어의 도움말( man~ )은 .gz(gzip) 파일의 형태로 압축되어 있음 |
리눅스 환경에서 스프링으로 빌드된 프로젝트를 실행하는 실습
실습 개요
Windows PC(Host OS)로 개발하던 환경 - 자유롭게 개발/테스트해보는 환경 -> 개발 환경
Ubuntu Linux(Guest OS) - 개발된 프로그램을 빌드해서 실행, 운영하는 -> 운영 환경
리눅스 환경에서 스프링으로 빌드된 프로젝트를 실행
1. 개발환경에서 개발했던 스프링 프로젝트를 가져와야 함
- git으로 땡기기(git clone)
2. 리눅스 환경에서 스프링 기반의 애플리케이션을 실행해야하기 때문에
스프링 애플리케이션을 실행할 수 있는 환경이 구성이 되어야 함
- jdk 설치
- 프로젝트를 빌드(패키징) -> 결과물이 .jar
1. gradle명령어를 사용할 수 있는 Gradle 자체를 설치해서 빌드하거나
2. ./gradlew파일이 있을 경우, gradlew build -> build/폴더가 생성됨
- .jar 실행 -> java -jar ooo.jar
3. Firefox 브라우저에서 테스트
우분투 Git 설치
git 설치 명령어를 입력한다.
$ sudo apt install git
설치한 git의 버전을 확인한다.
$ git --version //git version 2.25.1
github에서 사용하는 이름과 이메일을 입력한다.
$ git config --global user.name [이름] $ git config --global user.mail [이메일]
프로젝트 주소로 소스를 가져온다.
$ git clone https://github.com/...
우분투에 Java 17 설치
apt를 업데이트 한다.
$ sudo apt update
openjdk-17-jdk
를 설치한다.$ sudo apt install openjdk-17-jdk
자바가 설치 되었는지 확인한다.
$ java -version //openjdk version "17.0.12" 2024-07-16 //OpenJDK Runtime Environment (build 17.0.12+7-Ubuntu-1ubuntu220.04) //OpenJDK 64-Bit Server VM (build 17.0.12+7-Ubuntu-1ubuntu220.04, mixed mode, sharing)
우분투에 Gradle 설치
기본 apt 패키지 매니저로 Gradle을 설치한다.
$ sudo apt install gradle
설치가 완료되면 버전을 확인한다.
$ gradle -v
Gradle로 Java 프로젝트 빌드
클론 받은 프로젝트의 디렉터리로 이동한다.
$ cd ubuntu_test
gradlew 파일이 있는 지 확인한다.
$ ls
build.gradle이 있는 경로에서 빌드를 실행한다.
$ ./gradlew build
./gradlew: Permission denied의 권한 에러가 발생하면 다음 명령어로 권한을 부여한다.
$ chmod 755 gradlew
jar 파일이 있는 곳으로 이동한다.
$ cd build/libs
현재 디렉터리 내에 있는 파일을 확인한다.
$ ls //demo-0.0.1-SNAPSHOT.jar demo-0.0.1-SNAPSHOT-plain.jar
demo-0.0.1-SNAPSHOT.jar
파일을 Java로 실행한다.$ java -jar demo-0.0.1-SNAPSHOT.jar
5. 프로그램, 프로세스 관리
포그라운드와 백그라운드 프로세스 실행
- 포그라운드(foreground)
- 프로세스를 실행하면 키보드 입력을 받을 수 없으며, 프로세스가 완료되기 전까지 다른 작업을 할 수 없다.
- 백그라운드(background)
- 프로세스가 백그라운드에서 실행되어 사용자는 다른 작업을 추가적으로 수행할 수 있다.
- 명령어 뒤에
&
를 붙인다.
fg : 포그라운드 프로세스 제어
- 일시 중지
Ctrl + Z
- 포그라운드에서 실행 중인 프로세스를 일시 중지한다.
- 재실행
fg
- 일시 중지된 프로세스를 다시 포그라운드에서 실행한다.
- 종료
- 프로세스를 종료하려면
Ctrl + C
를 사용한다. - 이 외에도
kill
,jobs
,ps
등의 명령어로 프로세스를 관리할 수 있다.
- 프로세스를 종료하려면
& : 백그라운드 프로세스 실행 및 관리
- 백그라운드 실행
&
를 명령어 뒤에 붙이면 프로세스가 백그라운드에서 실행된다.- 예:
xeyes &
- 실행중인 프로세스 확인
jobs
명령어로 현재 실행 중인 백그라운드 프로세스를 확인할 수 있다.실행 결과는
[작업 번호] 상태 프로세스 이름
으로 나타난다.[1]- Running xeyes & [2]+ Running xeyes &
- [1] : 작업 번호
- : 현재 작업 (가장 최근 작업)
- Stopped : 작업 상태
- xeyes : 가장 최근에 정지된, 실행된 작업 이름
- 옵션: 특정 이름으로 검색할 수 있으며,
jobs %xey
와 같은 방식으로 검색 가능하다.
- 프로세스와 작업의 차이
- 프로세스(process) : OS가 관리하는 실행단위로, 프로세스 ID(PID)를 통해 식별된다.
- 작업(job) : 쉘(Shell)에서 관리하는 프로그램 실행 단위로, 작업 번호(job number)로 관리된다.
- 작업 번호는 해당 쉘 내에서만 유효하다.
정지된 프로그램을 백그라운드로 전환
일시 중지된 프로세스를 백그라운드에서 실행하려면
bg
명령어를 사용한다.특정 프로세스를 재실행하려면
bg %작업번호
로 지정할 수 있다.fg %1
: 1번 작업만 선택하기^Z
: 1번 작업 일시 중지하기bg %1
: 1번 작업을 백그라운드에서 재실행하기
실행중인 프로세스 종료
- 현재 작업 종료
kill %%
: 백그라운드에서 실행된 가장 최근 작업을 종료한다.%%
: 현재 작업을 의미하는 식별자
- 프로세스 ID를 통해 종료
ps -ef
: 모든 실행 중인 프로세스를 조회한다.
- 내가 실행한 프로세스 기준
xeyes
프로세스만 조회
- 특정 프로세스의 ID를 확인하고
kill [PID]
명령어로 종료할 수 있다.
- 특정 프로그램 모두 종료
killall [프로그램 이름]
: 동일한 이름의 모든 프로세스를 한 번에 종료한다.
프로세스 상태 조회
- 현재 실행 중인 프로세스 조회:
ps
(process)- 현재 쉘에서 실행 중인 프로세스를 확인할 수 있다.
- 기본 출력은 프로세스 ID(PID), 터미널(TTY), 실행 시간(TIME), 명령(CMD) 등을 포함한다.
- 모든 사용자의 프로세스 조회
ps -auxw
- 현재 서버에서 실행 중인 모든 사용자들의 프로세스를 조회한다.
- 부모-자식 프로세스 조회
ps
명령어 실행 시, bash 쉘의 자식 프로세스로 실행된다.ps -l
: 프로세스 간의 부모-자식 관계를 확인한다.PPID
: 부모 프로세스 IDPID
: 자식 프로세스 IDps -lf
명령이 3397번 프로세스에서 실행되었고, 해당 프로세스의 부모 프로세스(PPID)는 3268이다. 3268번은 현재 사용자가 프롬프트로 사용중인 bash shell이 실행된 프로세스(PID)이다.
우리 FISA 수업을 참고하였습니다.