우분투 초기세팅4 - 수동 설치
1. 디렉토리
1. 윈도우 파일 탐색기
리눅스의 디렉터리 구조를 이해하기 전에, Windows와 비교하면 쉽게 파악할 수 있습니다.

1. Windows는 C:\ 드라이브를 최상위로 하여
2. 그 아래에 Windows, Program Files, Adobe 등의 폴더가 계층적으로 연결되어 있습니다.
3. 예를 들어, C:WProgram Files₩AdobeWAcrobat DC 와 같은 경로로 파일을 표현합니다.
4. 폴더 구분자는 백슬래시 \ 입니다.
*이와 비교해 리눅스는 /가 최상위 디렉터리(루트)이며, 폴더 구분자는 슬래시 /를 사용합니다.
2. 리눅스 디렉토리
2.1 tree 설치
: # 터미널 실행, tree 설치
sudo apt install tree
2.2 디렉터리 구조 확인
: # 리눅스에서 디렉터리 구조를 트리 형태로 최대 4단계까지 출력
tree / -L 4 | less
2.3 비교

리눅스도 Windows처럼 계층적인 디렉터리 구조를 가지고 있지만, 텍스트 기반 환경을 주로 사용하기 때문에 Windows의 파일 탐색기처럼 시각적인 탐색 도구는 자주 사용되지 않습니다.
이 때문에 초보자는 현재 작업 중인 위치나 디렉터리 구조를 파악하기 어려워하는 경우가 많습니다.
리눅스에서는 슬래시 /가 루트 디렉터리(최상위 디렉터리)를 의미하며, Windows의 C:\와 비슷한 개념입니다.
하지만 Windows는 C:, D:처럼 여러 드라이브가 존재할 수 있는 반면, 리눅스는 / 하나로 모든 파일 시스템이 통합됩니다.
디렉터리 경로 구분자는 슬래시 /를 사용하며, 경로 맨 앞의 /는 루트 디렉터리 자체를 가리킵니다.
2.1 man [명령어]
: man은 "manual"의 줄임말로, 리눅스 명령어의 설명서(도움말)를 터미널에서 볼 수 있게 해주는 명령입니다.
기본 사용법
man [명령어]
*man 페이지는 단축키로 탐색할 수 있습니다:
- ↓ / ↑ : 줄 단위 스크롤
- Space : 다음 페이지
- q : 종료
예시1
man ls
- ls는 현재 디렉터리의 파일 목록을 출력하는 명령어입니다.
- 매뉴얼을 읽다가 그만 보려면 키보드에서 q를 누릅니다.
예시2
man cp
- 파일을 복사하는 명령어입니다.
- 옵션들(-r, -v, -i)의 의미도 함께 확인해 보세요.
예시3
man pwd # 현재 위치 확인 명령어
man cd # 디렉터리 이동
man mkdir # 디렉터리 생성
man rm # 파일/디렉터리 삭제
man mv # 파일/디렉터리 이동 또는 이름 변경
man touch # 빈 파일 생성
man cat # 파일 내용 출력
man echo # 문자열 출력
2.2 ls
: ls는 "list"의 줄임말로, 디렉터리(폴더)의 파일 목록을 나열해주는 명령어입니다.
기본 사용법
ls [옵션] [디렉터리]
1. 현재 디렉터리 파일 목록 보기
ls

2. 특정 디렉터리의 목록 보기
ls /etc/systemd

3. 숨김 파일 포함하여 보기 (-a)
ls -a
- .로 시작하는 숨김 파일까지 표시됩니다.

4. 자세히 보기 (-l)
ls -l
#출력 예시
-rw-r--r-- 1 root root 1780 May 28 2023 example.conf
drwxr-xr-x 2 root root 4096 Jan 5 09:12 nginx
- 파일의 권한 / 소유자 / 크기 / 수정일 / 이름 등을 자세히 표시합니다.
- 첫 글자: -(파일), d(디렉터리)

5. 한 줄에 한 개씩 보기 (-1)
ls -1

6. 특정 확장자 파일만 보기 (*.conf)
ls *.conf
- * 기호는, ALL 전부를 의미한다.
- 현재 디렉터리에 있는 .conf 파일만 나열
7. 특정 이름 패턴으로 보기 (n*)
ls -l /etc/systemd/n*
- /etc/systemd 디렉터리에서 n으로 시작하는 항목을 자세히 표시

8. 자주 쓰는 조합
ls -al
- 숨김 파일까지 포함해서 상세히 보기

2.3 cd
: cd는 Change Directory의 줄임말로, 디렉터리(폴더)를 이동하는 명령어입니다.
기본 사용법
cd [이동할_디렉터리_경로]
1. 사용법 정리
명령어 | 설명 |
cd | 홈 디렉터리로 이동 (현재 사용자의 /home/사용자명 또는 root는 /root) |
cd /etc | 절대 경로를 사용해 /etc 디렉터리로 이동 |
cd .. | 상위(부모) 디렉터리로 이동 |
cd . | 현재 디렉터리를 유지 (위치 변화 없음) |
cd ~ | 홈 디렉터리로 이동 (=cd) |
cd - | 이전 디렉터리로 이동 (바로 직전 경로로 되돌아감) |
2. ls 명령으로 폴더 목록을 확인, cd [디렉토리] 명령어로 이동, cd .. 명령어로 상위 디렉토리로 이동

3. ls 명령으로 폴더 목록을 확인, cd 명령어로 이동, 이전 디렉토리로 이동
4. ls 명령으로 폴더 목록을 확인, cd 명령어로 이동, 홈 디렉토리로 이동

5. 경로 종류
- 절대 경로: /로 시작하는 전체 경로 → 루트부터 시작
예) cd /var/log - 상대 경로: 현재 디렉터리를 기준으로 이동
예) cd ../Documents
2.4 pwd
: pwd는 Print Working Directory의 약자입니다.
1. 사용처
- cd로 디렉터리를 여러 번 이동한 후, 현재 위치를 알고 싶을 때
- 스크립트나 명령어 실행 경로를 확인할 때
# 예: 현재 디렉터리가 /home/ubuntu/Documents 라면
$ pwd
/home/ubuntu/Documents
2. 실습 예제
pwd # 현재 위치 확인
ls # 파일/폴더 보기
cd /etc # /etc 디렉토 이동
pwd # 다시 현재 위치 확인
ls -l # 파일 정보 자세히 보기
cd .. # 상위 디렉토리 이동
pwd # 현재 위치 확인
cd - # 바로 전 위치(/etc)로 이동
pwd # 현재 위치 다시 확인
- . 은 현재 디렉토리
- ..은 상위 디렉토리
- ~는 홈 디렉토리
- -는 이전 디렉토리
2.5 자동완성, 히스토리,
자동 완성 기능 (Tab 키)
- 자동 완성이란 터미널에서 파일이나 디렉터리 이름의 일부만 입력하고 Tab 키를 눌러 나머지를 자동으로 완성하는 기능입니다.
- 긴 경로나 복잡한 파일 이름을 빠르게 입력할 수 있어 매우 유용합니다
예시
cd /etc/Net<Tab>/disp<Tab>
결과: 자동 완성되면 아래처럼 입력됩니다:
cd /etc/NetworkManager/dispatcher.d/
명령 히스토리 (방향키 ↑ ↓)
- **방향키 ↑(위), ↓(아래)**를 누르면 이전에 입력한 명령어를 다시 불러올 수 있는 기능입니다.
- 자주 쓰는 명령어를 다시 입력하지 않아도 되어 효율적입니다.
명령 히스토리 (방향키 ↑ ↓) 사용 예시
1. 터미널에 다음을 입력해보세요:
cd /etc
2. 다음 명령을 입력하다가 중간에 Tab 키를 눌러 자동 완성해 보세요:
cd /etc/Net<Tab>/disp<Tab>
3. 방향키 ↑를 눌러 방금 입력한 명령을 다시 불러옵니다.
3. dpkg 를 사용한 .deb 프로그램 설치 개요
dpkg: debian package (Manager)
1. dpkg와 .deb 패키지의 개념 요약
초창기 리눅스에서는 프로그램 설치가 어렵고 복잡했기 때문에, 초보자에게는 큰 장벽이었습니다.
이를 개선하기 위해 데비안(Debian) 리눅스에서 .deb 확장자의 설치 파일을 만들었습니다.
- .deb 파일은 Windows의 setup.exe처럼 설치 후 바로 사용할 수 있는 포맷입니다.
- 이 파일을 리눅스에서는 패키지(package)라고 부릅니다.
- .deb 패키지를 설치,관리하는 명령어가 바로 dpkg입니다.
2. dpkg – 프로그램 설치를 먼저 학습하는 이유
- 우분투에서 프로그램(패키지) 설치 시 사용하는 주요 도구는 dpkg와 apt이다.
dpkg는 우분투의 프로그램 설치 시스템의 기본이며, apt는 이를 확장한 현대적인 도구다. - apt는, dpkg보다 사용이 쉽고 기능이 확장된 상위 개념의 도구이며, 현재는 apt가 더 자주 사용되지만
최신 버전 프로그램 설치가 불가능하거나, 한글 입력이 불가한 경우가 있다.
3. 패키지.deb 파일명 의미
패키지이름-버전-개정번호-아키텍처.deb
패키지이름-12.3-4-amd64.deb
항목 | 설명 |
패키지이름 | 소프트웨어 이름 (examplepkg, vim, nginx 등) |
버전 (Version) | 해당 소프트웨어의 릴리즈 버전 (12.3) |
개정번호 (Revision) | 패키지를 빌드하거나 수정한 횟수를 나타냄 (-1, -2 등). 같은 버전에서의 패키징 차이 |
아키텍처 (Architecture) | 대상 시스템의 CPU 구조예: amd64(64비트), i386(32비트), arm64(ARM 64비트) |
.deb | Debian 패키지임을 나타내는 확장자 |
4. dpkg 명령어
1. 패키지 .deb 수동 설치
# 다운로드 받은 파일이 있는 경로에서, 터미널 실행
sudo dpkg -i 패키지이름.deb # 파일이름 + tab 자동완성
2. dpkg를 이용한 패키지 삭제
sudo dpkg -r 패키지이름 # 패키지 제거
명령어 | 설명 |
sudo dpkg -r 패키지이름 | 패키지 제거 (설정 파일은 유지) |
sudo dpkg -P 패키지이름 | 패키지 및 설정 파일 모두 완전 제거 (purge) |
3. 패키지 정보 확인
dpkg -l firefox #설치민 패키지에 대한 정보
dpkg -L firefox #패키지가 설치한 파일 옥록
명령어 | 설명 |
dpkg -l [패키지명] | 설치된 패키지인지 확인 + 버전 정보 |
dpkg -L [패키지명] | 해당 패키지가 설치한 파일 경로 목록 |
4. 파일 상세 정보 조회
.deb 파일 자체에 대한 정보를 확인하고 싶을 때는 dpkg-deb --info 명령을 사용합니다.
dpkg -I examplepkg_1.2.3-1_amd64.deb
명령어 | 설명 |
dpkg -I 파일.deb | .deb 패키지의 정보(이름, 버전, 설명, 의존성 등)를 조회 |
dpkg-deb --info 파일.deb | 위와 동일한 기능 (더 명확한 형태) |
출력 예시
new Debian package, version 2.0.
size 15824 bytes: control archive=512 bytes.
Package: examplepkg
Version: 1.2.3-1
Architecture: amd64
Maintainer: dev@example.com
Depends: libc6 (>= 2.14)
Description: Example package for demo
5. dpkg 수동 설치 리스트
.deb 수동 설치 리스트
- Chrome 설치 Chrome 다운로드 링크
- Edge 설치 Edge 다운로드 링크
- Whale 설치 Whale 다운로드 링크
- VSCode 설치 VSCode 다운로드 링크
- 참고) Linux Package Tool 이해와 사용
이외의 프로그램은 apt, snap 으로 설치한다.