rootfs (root file system)
리눅스는 모든 시스템을 파일로 관리한다. 파일시스템의 최상위 디렉터리는 루트 파일 시스템(이하 rootfs)이다.
리눅스 시스템 부팅을 위한 모든 파일을 포함하고 있다. 다른 파일시스템을 부팅하는데 필요한 모든 실행파일과 라이브러리를 포함하고 있다. 시스템이 설치되면, 다른 모든 파일 시스템은 루트 파일시스템의 하위 디렉터리에 설치된다.
/bin
- user 실행파일을 포함, binary의 약자
/boot
- 리눅스 컴퓨터를 부팅하는 데에 사용되는 정적 부트로더와 커널 실행파일, 구성 파일을 포함
/dev
- device 장치 파일 디렉터리
- 시스템에 연결된 하드웨어 기기의 디바이스 파일을 포함 디바이스 드라이버가 아닌, 컴퓨터에 연결된 기기를 나타내고 그 기기에 접근을 가능하도록 하는 파일이다.
/etc
- etcetera 시스템 환경 설정 디렉터리 호스트 컴퓨터의 로컬 시스템 구성 파일을 포함
/sys
- 리눅스 커널 관련 정보가 있는 디렉터리
- /sys/devices/virtual/thermal/thermal_zone0/temp : cpu온도 확인
- /sys/devices : 장치에 대한 정보
- /sys/class/net : 네트워크 디바이스
- /sys/class/input : 키보드나 마우스와 같은 입력 디바이스
/home
- HOME 사용자 홈 디렉터리
/lib
- libraries 공유 라이브러리 및 커널 모듈 디렉터리
/lost+found
- LOST+FOUND 파일 시스템 복구를 위한 fsck의 링크 디렉터리
/media
- USB thumb 드라이브와 같이 호스트에 연결될 수 있는 외부 저장소를 마운트* 하는 곳
/mnt
- Mount 마운트 포인트 디렉터리
- 관리자(administrator)가 파일시스템을 작업 중일 때 사용되는 기본 파일시스템의 임시 mountpoint이다.
/opt
- OperaTion 애드온(Add-on) 소프트웨어 패키지 디렉터리
/proc
- Process 커널과 프로세스를 위한 가상 파일 시스템 디렉터리
- /proc/meminfo pc의 메모리 정보가 담겨있음
/root
- ROOT 루트 사용자 홈 디렉터리
/sbin
- System Binaries 시스템 명령어 디렉터리
- 시스템 관리에 사용되는 실행파일이 저장되는 곳이다
/tmp
- TeMPorary 임시 작업 디렉터리
- OS를 포함해 많은 프로그램의 임시 파일을 저장하는 데 사용된다. 부팅 시 초기화됨
- 유저는 일시적으로 파일을 여기 저장할 수 있다. 여기 저장된 파일은 예고 없이 삭제될 수 있음을 유의할 것.
/usr
- User 공유 파일 시스템 디렉터리
- 실행 바이너리와 라이브러리,. man파일과 다른 종류의 문서를 포함한 공유 가능한 읽기 전용 파일이다.
- /usr/include: C언어 헤더파일을 저장하는 곳
/var
- Variable data가변 자료 디렉터리
- 변수 데이터 파일이 저장되는 곳이다. 로그 파일, MySQL, DB파일, 웹서버 데이터, 이메일 등이 포함된다.
- /var/cache: 애플리케이션의 캐시 데이터가 저장되는 곳이다.
- /var/spool: 애플리케이션 스풀 데이터. 지연 처리되는 데이터를 저장하는 곳이다.
리눅스 기본 명령어
명령어 | 옵션 및 설명 |
cd | 리텍터리 이동 cd .. : 상위 디렉터리 이동 cd - : 이전 이동 디렉터리 이동 |
ls | 파일 리스트 보기 F : 파일 유형을 나타내는 기호를 파일명 끝에 표시 (디렉터리는 '/', 실행파일은 '*', 심볼릭 링크는 '@'가 나타남). l : 파일에 관한 상세 정보를 나타냅니다. a : dot 파일(.access 등)을 포함한 모든 파일 표시. t : 파일이 생성된 시간별로 표시 C : 도스의 dir/w명령과 같 이 한줄에 여러개의 정보를 표시 R : 도스의 dir/s 명령과 같이 서브디렉터리 내용까지. |
lsusb | usb 버스관련 정보와 연결된 USB장치 목록 표시 |
df | Disk Free. 파티션의 전체 용량, 사용한 용량, 남은 용량, 마운트 정보 등의 디스크 관련 정보들을 보여주는 명령어 -T : type. 파일시스템의 유형을 표기. -i : 파티션별 블록 사용 정보 대신 inode 정보를 표시합니다. -h: 사람이 보기 편하게 용량 단위별 표기. |
du | disk usage 디렉터리 사용량 확인 -h : 사람이 보기 편하게 용량 단위별 표기. -b,k,m : 바이트, 킬로바이트, 메가바이트 등 각 단위별 표기. -a : 디렉터리 내부의 각 파일 별 사용량을 표기. -s : 전체 사용량. 하위디렉터리를 보여주지 않음 -c : 마지막에 모둔 파일 디스크 사용량 합계를 보여줌. |
cp | 파일 복사 cp *.c ./source : source폴더에 .c 파일 이동 |
mv | 파일 이동 |
mkdir | 디렉터리 생성 |
rmdir | 디렉터리 삭제 |
rm | 파일 / 디렉터리 삭제 -r : 디렉터리 전체를 삭제 -i : 삭제 시 확인하면서 삭제 |
pwd | 현재 디렉터리 경로 표시 |
chomd | 파일 권한 변경 리눅스에서는 각 화일과 디렉터리에 사용권한을 부여. 예) -rwxr-xr-x guestbookt.html rwx :처음 3개 문자 = 사용자 자신의 사용 권한 r-x :그다음 3개 문자 = 그룹 사용자의 사용 권한 r-x :마지막 3개 문자 = 전체 사용자의 사용 권한 읽기(read)---------- 화일 읽기 권한 쓰기(write)---------- 화일 쓰기 권한 실행(execution)---------- 화일 실행 권한 없음(-)---------- 사용권한 없음 명령어 사용법 chmod [변경모드] [파일] # chmod 666 guestbook.html : test.html 화일을 자신에게만 r,w,x 권한을 줌 # chmod 766 guestbook.html : 자신은 모든 권한을 그룹사용자와,전체사용자에게는 읽기와 쓰기 권한만 줌 |
chown | 파일이나 디렉터리의 소유권 변경 chown user:group file.text |
alias / unalis |
별명 지정 alias ll="ls -l" 별칭 제거 unalis ll |
cat | 파일의 내용을 터미널에 출력하거나 파일 내용을 적어 만드는 명령어 |
more | cat은 한 화면을 넘기는 경우 내용을 볼 수 없지만 more명령어는 화면단위로 보기 가능 Space bar : 다음 페이지 Return(enter) key : 다음 줄 v : vi 편집기로 전환 /str : str 문자를 찾음 b : 이전 페이지 q : more 상태를 빠져나감 h : 도움말 = : 현재 line number를 보여줌 |
echo | 어떤 것을 echo 화면에 출력 |
head / tail |
head -n filename : n줄 만큼 위에서부터 보여줌 tail -n filename : n줄 만큼 아래에서부터 보여줌 |
tar | 압축/압축 해제 명령어 압축 tar -zcvf {파일명}.tar.gz [압축할 파일] 해제 tar -zxvf {파일명}.tar.gz |
zip / unzip |
zip파일 압축 / 압축 해제 압축 zip {파일명}.zip [압축할 파일] 해제 unzip {파일명}.zip |
top | 실시간 메모리 상태 표시 |
find | find {디렉터리} -name {fime명} 디렉터리 안에서 파일명 찾기 |
man | manual 페이지 제공 매뉴얼 페이지에는 해당 명령어의 설명, 사용법, 옵션, 예시 등이 포함 |
grep | 파일에서 특정 패턴의 문자열을 검색 grep -r "test" |
ps | 현재 실행중인 프로세스 출력 |
kill / killall |
프로세스 시그널 보냄 kill -9 {pid} : 강제종료 kill -l {pid}: 시그널의 전체 목록을 확인 kill -HUP {pid} : 재시작 시그널 kill {pid} : 종료 시그널 killall {process_name} : 종료 시그널 |
ln | 심볼릭 링크나 하드 링크를 생성 ln -s {path} {dir_name} |
ulimit | 시스템 커널에서 제한한 리스트 -a : core-file-size 등이 출력 -c : core file ulimit -c unlimited : 커널에서 제한한 코어파일을 풀어줌 |
gdb | 프로세스 디버그 ulimit -c unlimited 후 /proc/sys/kernel/core-pattern 에 코어파일 경로가 존재 echo core > /proc/sys/kernel/core-pattern 현재 경로에 core 파일 경로 설정 gdb -c core {process_name} : 해당 프로세스의 코어파일 디버깅 gdb -p {pid} : 현재 실행하고있는 해당 pid의 프로세스 디버그 * bt full : gdb 실행 후 명령어를 치면 error가 날 경우 위치를 알려줌 |
ssh | ssh 원격 호스트 접속 ssh root@192.168.67.3 |
scp | 원격 호스트워 파일을 복사 scp out/test root@192.168.67.3:/home/root |
wget | 네트워크를 통해 파일을 다운 wget http://example.com/file.txt |
diff | 두 차이를 비교 |
meld | meld로 두 파일 비교 |
history | 사용자가 사용한 명령어 히스토리 출력 |
free | 메모리 사용량을 보여줌 free -h |
watch | 주기적으로 프로그램을 실행하고 출력을 전체 화면에 보여줌 watch -n 5 'df -h' : 라인 5의 파티션 전체 용량을 보여줌 |
ifconfig | 네트워크 인터페이스 구성을 보여주고 설정함 ifconfig eth0 up ifconfig wlan0 192.168.10.10 netmask 255.255.255.0 |
iwconfig | 무선 네트워크 인터페이스를 구성 iwconfig wlan0 |
tcpdump | 네트워크 트래픽을 캡처하고 표시
|
ping | 다른 호스트로 ICMP ECHO_REQUEST를 보내 네트워크가 연결되어 있는지 테스트 |
'Embedded SW 기초' 카테고리의 다른 글
git 기초 명령어 (0) | 2024.06.14 |
---|---|
Peripheral과의 통신 - 3. I2C (0) | 2024.06.13 |
Peripheral과의 통신 - 2. UART (0) | 2024.06.11 |
Peripheral과의 통신 - 1. GPIO (0) | 2024.06.11 |
리눅스 커널& 디바이스 드라이버 (0) | 2024.06.11 |