엔지니어스 - Engineeus

[Raspbian] Raspberry Pi (라즈베리파이) - [4] 리눅스 폴더구조 및 명령어 본문

Autonomous Tech./IOT

[Raspbian] Raspberry Pi (라즈베리파이) - [4] 리눅스 폴더구조 및 명령어

Engineeus 2020. 1. 6. 23:29
728x90

start()

{


이전 포스트 에서는 리눅스 원격 접속에 관하여 다루었습니다.

https://mickael-k.tistory.com/35

 

Raspberry Pi (라즈베리파이) - [3] 리눅스 원격 접속

start() { 저번 포스트는 Raspbian을 설치 하는 포스트를 다뤘습니다. https://mickael-k.tistory.com/34 Raspberry Pi (라즈베리파이) - [2] 라즈비안(Raspbian) 설치 start() { 저번 포스트 에서는 라즈베리파이..

mickael-k.tistory.com


본 포스트 에서는 리눅스의 파일 구성과 명령어에 대해 다루도록 하겠습니다.

 

좀 재미 없으면 대충 훑어 보시고 나중에 이 글이 생각 나시면 다시 오셔서 보시면 아 이런게 이런 의미고 이런 단어의 축약형이구나, 아.. 그렇구나.. 라고 느끼실 거예요!! 암기 보다는 참조 용으로 보시면 좋을듯 합니다.

 

리눅스 파일 구성

 

리눅스는 최상위1개 그리고 그 다음 2번째 디렉터리 몇가지를 주 축으로 아래로 파생 되어 나가는 트리 구조를 갖습니다. 총사령관이 '/'이고 그 다음 각 그룹의 부대장들이 있고 이런 식인 거죠. 하지만 '/'는 사실 아무 의미 없고 그 다음 부대장들이 의미 있는 디렉토리의 시작 이라고 보면 됩니다.

 

어떤 폴더의 주소를 설명 해 줄때 '/home/rick' 이런식으로 설명 해 주면 됩니다. 또한 자주 쓰는 용어 중에 '. (점)' 은 현재 디렉토리, '.. (점점)'은 바로 전(상위) 디렉토리를 나타냅니다.

 

아래는 리눅스 최상위 디렉토리의 의미를 나타냅니다.

/bin ls, mount, rm 등과 같은 기본적인 리눅스 명령어들이나 실행 파일이 위치. binary의 약자
/boot 리눅스 커널, 부트로더 설정 파일과 같이 시스템 초기화시 필요한 파일 위치
/dev 리눅스에서 하드웨어 장치들을 대신하는 디바이스 파일들이 위치. developer의 약자
/etc 시스템 모양과 동작을 결정하는 각종 시스템 설정 파일들이 위치
/home 여러 사용자들의 홈 디렉터리들이 위치 (주로 메인이 됨)
/lib 중요한 동적/공유 라이브러리와 커널 모듈들이 위치함. library의 약자
/lost+found 파일 시스템의 오류로 인한 비정상적인 파일이 위치. fsck 명령이 사용 함
/media 외장하드, 플로피디스크, CD 와 같이 외부 장치가 자동으로 마운트 되는 위치
/mnt 네트워크 파일 시스템과 같은 임시 마운트 장치를 위한 마운트 위치. mount의 약자
/opt 시스템에 옵션으로 추가하는 패키지들을 저장하는 곳. option의 약자
/proc 커널이 프로세스에게 정보를 전달할 수 있도록 만들어진 가상 파일 시스템. /process
/root 시스템 관리자인 슈퍼 유저의 홈 디렉토리
/sbin 슈퍼 유저가 사용할 수 있는 중요한 관리 명령어들이 위치. system binary
/srv HTTP 또는 FTP와 같은 서비스들의 데이터 디렉터리. service의 약자
/sys 커널 관점에서 시스템 정보를 획득하거나 설정할 수 있는 가상 파일 시스템. system의 약자
/tmp 응용 프로그램이 사용하는 임시 파일들이 위치. temporary의 약자
/usr 대부분의 유틸리티, 응용 프로그램 및 설정 파일, 라이브러리 등이 위치함. (/usr/bin: 응용프로그램, /usr/lib: 라이브러리, /usr/share: 각종 관련 자원 파일, /usr/local: 기타 추가 설치 파일)/ user의 약자
/var 빠르게 갱신되거나 변화하는 가변 데이터들이 위치함(/var/log: 시스템 로그 파일들, /var/maili: 메일, /var/www: 웹 서버 파일). variable의 약자

리눅스 명령어

리눅스에 기본적으로 터미널창(ctrl + alt + t)을 열고 아래와 같이 명령어를 칩니다.

 

명령어 (옵션) 매개변수

명령어 다음 옵션을 치고 그다음 매개변수 순으로 오죠.

 

 

  • Ctrl + z

프로세스 중단

 

 

  • Ctrl + c

프로세스 종료

 

 

  • update

리눅스에서는  소프트웨어 패키지 파일인 .deb확장자를 사용 합니다. 이는 apt-get(원격 서버로부터 패키지를 설치 할 수 있는 도구)를 이용 해 패키지 파일들을 업데이트하고 업그레이드 합니다. 이해가 안가면 그냥 파일들을 apt-get 을 통해 업데이트하고 업그레이드 해서 최신 버전을 쓰게 한다고 생각 하시면 될 듯 합니다.

 

※ 참고로 apt-get은 쵝느 그냥 apt로 대체 되어 가고 있습니다. apt로 사용 하셔도 무방 합니다.

 

아래 명령을 통해 최신 업데이트 할 수 있는 파일을 검색하고 그 리스트를 사용자에게 알려 줍니다.

sudo apt-get update

 

 

  • upgrade

위 업데이트로 정보는 주지만 업그레이드는 안해줍니다. 아래 명령을 통해 최신 버전으로 패키지들을 업그레이드 해 줍니다.

sudo apt-get upgrade

 

  • install

새로운 패키지를 설치 할 때 사용 합니다. [패키지 이름]란에 다운로드 할 패키지 이름을 적습니다.

sudo apt-get install [패키지 이름]

 

  • remove

다운로드 한 패키지 들을 지울 때 사용 합니다.

sudo apt-get remove [패키지 이름]

 

 

  • ls

예를들면 전체 폴더를 출력해라 라고 하면,

ls

전체 폴더를 최근 날짜 기준으로 출력해라 하면 아래와 같습니다.

ls -t

전체 출력이라 매개변수는 딱히 없구요.

 

 

  • cd

또 자주 쓰는 명령어는 'cd' 입니다.

'cd'는 폴더를 이동할 때 쓰는 겁니다.

cd /home으로 이동
cd .. 이전(상위) 폴더로
cd ../.. 상위의 상위 폴더로
cd /filename 현재 위치에서 'filename'이란 폴더로 진입

 

그 외 중요한 명령어들을 아래 적겠습니다. 다시 한번 말씀 드리지만 외우실 필요 보단 한번 보고 넘어 가시고 나중에 사용 하시면서 다시 찾아 보며 익히시면 되겠습니다.사람의 언어든 컴퓨터 언어나 명령어든 주입식 암기 보다는 사용을 통해 자연스럽게 익히는게 최고라고 생각 합니다.

sudo super do 최고 관리자 권한을 빌려 모든 쓰기, 읽기 등을 수행
pwd print working directory 현재 작업 디렉터리 출력
cd change direcroty 디렉토리 변경
ls list segments 현재 디렉토리의 파일 출력
rm remove 폴더나 파일 삭제
mv move 폴더나 파일을 다른 디렉토리로 이동
cp copy 폴더나 파일을 다른 디렉토리로 복사
mkdir make directory 디렉토리 생성
rmdir remove directory 디렉토리 제거
touch   수정시간 갱신
tar tape archive 압축 풀기
gzip   .gz 확장자로 압축 하기
man manual 도움말
chmod change mode 권한 제어
diff difference 파일간의 차이점 비교
du disk usage 해당 폴더의 용량을 KB, kilobyte로 나타낸다
df disk free 전체 파일 시스템의 공간
free   메모리 할당을 자세하게 나타냄
top   전체 프로세스 목록과 cpu 및 메모리 점유율 실시간으로 나타냄
kill   현재 사용중인 프로세스 강제 종료
ifconfig interface configuration 네트워크 인터페이스 장치 확인
ping   네트워크 성능 확인 용
cron   정해진 시간에 특정 명령 수행

 


그 외 주요 용어 및 기능

  • 셸 프롬프트 (shell prompt)

터미널을 열면 바로 내 채팅창의 ID 같이 아래처럼 나오게 된다.

pi@raspberrypi:~ $

 

여기서 의미는 아래와 같다.

pi 계정 ID
@ 앞 뒤 구분 용
raspberrypi Host 이름
~ /home/pi(계정 ID)를 담고 있음
$ 앞 뒤 구분 용

 

 

  • tap 기능

또한 팁이 있다면 'cd'를 작성 중 한 글자라도 친후 'tap'을 치면 바로 글자가 생성 됩니다. 예를 들자면 현재 폴더안에 '/bin, /bol, /system' 이라는 3개의 폴더가 있다고 하면 'cd /s' 까지만 치고 탭을 누르면 'cd /system'이 자동 완성 됩니다. 하지만 그럼 'b'는 2개라 안될까요? 라고 질문을 한다면 중복이 있다면 중복 되는걸 보여주고 제가 한글자 더 칩니다. 예를 들어 'cd /bi'까지 치고 다시 탭 하면 'cd /bin'이 완성이 됩니다. 

 

  • 절대경로 상대경로

절대 경로란 사용자의 컴퓨터 상의 최상위 디렉토리부터 의 경로 이다.

cd /home/work/project/linux_project

 

 

절대 경로로 프로그래밍을 자주 하는게 좋은건 아닌것이 다른 사람이 내 코드를 이용 할때 그 사람의 폴더 트리 환경에 따라 계속 수정을 해야 한다.

 

상대경로란 현재 위치서 부터 그 대상 디렉토리 까지의 경로이다. 내 위치가 위 경로에서 'linux_project'인데 상위의 상위인 'work'폴더로 가고 싶다면?

cd ../../work

 

  • ~

터미널 창에서 ~ (물결모양)의 의미는 '/home/계정'이라고 보시면 됩니다.

 

 


다음 포스트에서는 Linux의 기본 편집기인 vi 또는 vim 편집기를 소개하고 사용법을 알아가도록 하겠습니다.

https://mickael-k.tistory.com/37?category=819692

 

Raspberry Pi (라즈베리파이) - [5] 리눅스 vi 사용법

start() { VI 사용 방법 return 0; }

mickael-k.tistory.com


return 0;

}

Comments