본문 바로가기

Computer Science/OperatingSystem

리눅스 디렉터리 구조와 명령어 정리

리눅스 디렉터리

/proc/modules : 현재 시스템에 설치되어 있는 모듈을 보여줌

/proc/ksyms : Symbol table을 가지고 있는 텍스트 형태의 파일

/usr/include/linux : 커널 라이브러리

/usr/src/ : 커널 소스 코드

/ : 최상위 디렉터리

/root : 시스템 관리자인 root 사용자의 홈 디렉터리

/bin : 시스템을 사용하기 위한 기본적인 명령어들이 존재

/boot : 부팅에 필요한 커널과 부팅할 때 필요한 핵심 파일들이 존재,

       부팅할 때 부트로더가 /boot 디렉터리에 있는 커널의 위치를 참조

/dev : 디바이스 파일 (device file)들이 존재

/etc : 시스템 환경 설정 파일들과 응용 프로그램 및 서버 프로그램 등의 환경 설정에 필요한 설정 파일들이 존재

/usr : 프로그램을 설치할 때, 패키지에 포함된 대부분의 파일이 설치되는 공간

/lib : 시스템 운영 및 프로그램 구동할 때 필요한 공유 라이브러리와 부팅할 때 사용되는 커널 모듈들이 포함되어 있음

/lost+found : 파일 시스템의 진단 및 오류 수정은 리눅스 명령어 fsck (file system check) 수행 시 발생하는 모든 결과들은 lost+found 디렉토링 저장되며, 개별 파일 시스템의 최상위 디렉터리마다 존재

/mnt : 외부 장치들을 시스템에 사용하고자 마운트 할 때 사용하는 마운트 지점들을 모아두는 공간

/opt : add-on 패키지가 설치되는 디렉터리로서 리눅스 배포판에 존재하지 않는 패키지들은 이 디렉터리에 설치됨.

/proc : 프로세스와 관련된 시스템 정보를 제공하기 위한 곳으로 커널, 파일 시스템, 메모리, 프로세스 등의 정보가 저장되는 곳

/tmp : 프로세스 생성 과정에서 임시 파일 저장 공간

/sbin : 시스템 운영에 필요한 관리자용 명령어들이 존재

/var : 시스템 운영 시 발생되는 다양한 로그들이 저장됨

/home : 일반 사용자의 홈 디렉터리들이 만들어지는 공간

vim 명령 

[VIM Part]

명령 모드, 입력 모드, 라인 모드

vi -R [filename]

- 파일을 읽기 전용으로 열기

vi -r [filename]

- 손상된 파일을 복구하기

vi +10 [filename]

- 1010번째 행으로 파일 열기

 

[명령 모드]

zz : 지정된 파일 이름으로 저장되면서 종료

:1,5w test.txt : 1~5번 행까지 내용을 test.txt에 적음 (Write)

:r test.txt : 현재 행 아래에 test.txt의 내용을 삽입하기 (Read)

:5r test.txt : 5번 행 다음에 test.txt의 내용 삽입

:e! : 현재까지 수정한 내용을 다 무시하고, 현재 파일을 다시 열기

:e test.txt : test.txt 파일 열기

cf(change forward) : cf 명령을 주고 찾은 문자 위치까지 삭제

Forward

-        []what is this?

 

f s 하면 문자 s가 위치한 곳으로 커서 이동

 

시작 커서에서 ma, 마지막 커서에서 mb

   - Maker 지정해서 명령 모드에서 :’a,’by 하면 그 부분 복사 :’a,’bd 그 부분 삭제

xp

   - 앞 뒤 문자 바꿀 때 (x: 한 글자 삭제, p: paste)

w

   - 커서를 한 단어씩 뛰어넘을 때

Ctrl + R

   - 앞으로 가기

cw

   - 단어 바꾸기

 

리눅스 명령

ls 명령

   - a : 모든 파일 보여주기

   - l : 자세히 보여주기

   - s : 파일 크기 보여주기

   - R : 하위 디렉터리 파일 목록까지 보여주기

   - F : 파일 형식을 알리는 문자를 각 파일 뒤에 추가하기

cp 명령

   - i : 복사 대상 파일이 있을 경우 확인하기  

   - a : 원본 파일의 속성, 링크 정보들을 그대로 유지하며 변경

   - r : 경로를 복사할 경우 그 안에 포함된 모든 하위 경로의 파일들을 복사

rm 명령

   - i : 파일 삭제 시 확인하기

   - f : 강제로 삭제하기

   - r : 디렉터리 삭제 시 하위 디렉터리와 파일을 모두 삭제

tar 명령

   - c : 아카이브 파일 생성

   - t : 아카이브 파일 목록 보기

   - x : 아카이브 파일 추출

   - f : 아카이브 파일 이름 지정

   - v : 작업 중 자세한 정보 보여주기

   - j : bunzip으로 압축되어 있는 파일 풀기

   - z : gzip으로 압축되어 있는 파일 풀기

 

예제 1) tar xvfz blob_pro3.tar.gz

예제 2) tar xvfj kernel-2.6.tar.bz2

 

dd

- 파일을 복사하거나, 생성하거나 포맷을 컨버팅 하는 데 사용. 추가적으로, 하드디스크 복제, 데이터를 완벽히 제거하는데 주로 사용

dd if=[input_file] of=[output_file]

예제 1) df if=/dev/zero of=my_zero.txt count=1000, Default blocksize = 512 bytes

 

df

- 시스템을 구성하는 파일 시스템의 정보를 출력

df [OPTION] … [FILE]

 

du

- 파일 시스템 내의 디렉터리 및 파일 개수 확인

 

df

- 마운트 된 디스크 파일 시스템 보여주기

mount -t [파일 타입] [마운트 할 블록 파일 시스템] [마운트 지점]

예제 1) mount -t ext2 -o loop /usr/local/pxa255/ramdisk_mmc ramdisk (블록 시스템일 경우 -o loop)

예제 2) mount -t nfs 192.168.10.70:/root/work_nfs_share

 

apt-get update

- 업데이트 목록을 갱신

apt-get remove

- 설치된 패키지 제거

apt-get upgrade

- 시스템 업그레이드 또는 업데이트된 패키지 등을 업그레이드한다.

 

netstat

네트워크의 연결 상태와 라우팅 테이블, 인터페이스 관련 정보 등을 출력하며 시스템에서 사용하고 있는 포트에 대한 정보 출력

- a : 모든 소켓 정보 출력

- r : 라우팅 정보 출력

- n : IP 주소를 출력

- p: 특정 소켓과 관련된 프로세스 이름과 프로세스 ID를 출력  

예시 1) 포트가 사용 중인지 확인 : netstat -an

 

route

라우팅 테이블 (내부 또는 외부 연결 관계를 가진 테이블)을 편집하거나 출력

- add : 라우팅 정보 추가

- del : 라우팅 정보 제거

 

예시 1) 디폴트 게이트웨이 추가

route add default gw 192.168.133.1 

          예시 2)

                    route add -host [ ] -dev [ ]

          예시 3)

                    route add -net [ ] netmask [ ] gw [ ]

top

- CPURAM 등의 사용률을 확인하고, 시스템에서 실행 중인 프로세스들의 CPU 및 메모리 점유들을 반복적으로 갱신되는 화면을 볼 수 있음.

 

free

- 현재 시스템 전체 메모리와 사용 메모리, 스왑 메모리 상태를 출력

 

mkswap

- 스왑 파일을 생성하기 위해서 사용

예시 1) mkswap /tmp/swapfile 4096

 

swapon

- 스왑 메모리를 시스템에 적용하기 위해 사용된다.

예시 2) swapon /tmp/swapfile

 

swapoff

- 스왑 메모리를 사용하지 않을 경우 사용한다.

 

dmesg

- log 보기 

 

ps

- 현재 돌아가고 있는 프로세스 목록 보기

 

fg

- 백그라운드에서 돌고 있는 걸 포그라운드로 옮김.