C기반 라즈베리파이 시작 - 리눅스

KOKOKU·2024년 3월 7일

이제부터 진정한 개발자가 되기위해 노력하자!

어제 개학하고 드디어 첫 수업을 들었다.
바로 ICT 응용설계1 과목!

리눅스를 이용해서 라즈베리파이를 사용하는 데 필요한 모듈의 소프트웨어를 설치해야 한다. 그래서 오늘의 주제는 리눅스이고, 매 주 수요일 혹은 목요일마다 여기 Velog에 올릴 예정이다!

주차별 강의내용은 다음과 같다.

앞으로 다 정리해서 올릴 예정이다.
일단 기본적으로 알아야 하는 Linux 명령어에 대해 알아보자.

내 컴퓨터(Windows 10)에는 리눅스가 깔려있지는 않다. 물론 WSL(Windows Subsystem for Linux)이 있지만 우분투와 비교했을 때 호환성이 좋지 않기 때문에 VMware를 사용하자!

아래는 내가 작년에 작성한 VMware 설치 방법이다. 참고하자.
https://blog.naver.com/happykimdw/222970969220

설치 후, 이제 우분투를 실행하자.

1. 계정 생성

첫번째는 루트권한 계정을 제외한 내 계정을 만들어야 한다.
먼저 루트계정으로 접속한다.

명령어를 작성하기 전에 @ 앞이 root가 아니라면
sudo -i 명령을 내린 뒤, root에 맞는 암호를 작성한 뒤 접속한다.
[username@Localhost ~] $ sudo -i
[이후 root 비밀번호 작성]

계정이름이 happy라면 아래와 같이 명령을 내린다.
[root@Localhost ~] # adduser happy

다음, 암호를 두 번 입력하라는 문구가 뜰 것인데, 내가 설정하고 싶은 암호를 입력한다.

2. 계정 생성 여부 확인

이후, 계정 생성 여부를 확인하는 과정을 거친다.
[root@Localhost ~] # ls /home
이렇게 작성하면 현재 만들었던 계정들의 이름을 확인할 수 있을 것이다.
여기서 logout 후에 happy 계정으로 login도 가능하다.

3. 계정 삭제

계정을 삭제 할 줄 알아야 한다. 계정삭제는 다음과 같다.
[root@Localhost ~] # userdel -r happy

이렇게 작성하면 해당 계정이 삭제된다.

Directory 계층구조

디렉토리란, 우리가 윈도우에서 생성하고 삭제하는 그 '폴더'라고 생각하면 된다. 즉, 리눅스에서는 폴더를 디렉토리라고 부른다.

먼저 아래와 같이 명령을 내리자.
[root@Localhost ~] # ls /

이후에는 결과가 아래와 같이 뜰 것이다.

우리는 슬래쉬('/')를 포함하여 명령을 내렸다. 이것은 리눅스 시스템에서 루트 디렉토리를 말한다. 즉, 'ls /' 는 리눅스 최상위(root) 하위에 존재하는 모든 폴더들을 출력하는 것이다.

통상적으로 아래와 같은 디렉토리 계층구조를 가진다.

여기서 대표적인 루트 하위 디렉토리 종류에 대해 알아보자.

리눅스 기본 디렉토리

  1. bin : 명령어 실행 파일을 포함한다.
  2. boot : 부팅에 필요한 커널 파일을 가지고 있다.
  3. dev : device의 준말로, 장치 파일이 들어있다.
  4. etc : 리눅스 설정을 위한 각종 파일이 들어있다.
  5. home : 사용자 계정 홈 디렉토리가 생성되는 디렉토리다.
  6. Lost + found : 파일시스템에 문제가 발생하여 복구할 경우 문제 파일 포함
  7. media : CD-ROM이나 USB같은 외부장치를 연결하는 디렉토리
  8. mnt : 파일시스템을 임시로 마운트하는 디렉토리
  9. opt : 추가 패키지가 설치되는 디렉토리
  10. proc : 프로세서 정보 등 커널 정보가 저장된다.
  11. run : 실행 중인 서비스와 관련된 파일 저장
  12. srv : FTP나 Web 등 시스템에서 제공하는 서비스의 데이터 저장
  13. sys : 리눅스 커널과 관련된 파일 저장
  14. tmp : 시스템 사용중에 발생하는 임시 데이터 저장
  15. usr : 기본실행파일과 라이브러리 파일, 헤더파일 등 저장, 특히 우리가 설치한 서드파티 소프트웨어들은 보통 여기에 저장된다.
  16. var : 시스템 운영중에 발생하는 데이터나 로그 등의 파일 저장

리눅스 명령어 사용

이제 모든곳에서 필요한 명령어를 사용해보자.
그 전에 우리는 명령 입력 기호에 대해 알아야한다.
이걸 알아야 하는 이유는, 나중에 간혹 내가 지금 root계정으로 명령을 하는지, 일반계정으로 명령어를 내리는지 헷갈려서 실수를 하거나 그러는 경우가 종종있다. 그리고 그냥 알아도 좋지 않은가.

'$' => 일반 사용자 기호
'#' => 관리자(root) 사용자 기호

별거 아니지만, 나중에 기억하면 분명히 도움 될 것이다.

또한 내가 지금 명령어를 내리고 있는 위치가 궁금할 때가 있다. 보통 우분투를 딱 켰을 때의 위치는 내 홈 디렉토리에 위치된다.

명령어 취소

명령어 취소는 매우 간단하다. 그냥 키보드에서 우리가 보통 복사할 때 사용하는 키 'Ctrl-c' 를 누르면 된다.

대표적인 명령어

우리가 리눅스를 처음 접하든, 엔지니어이든 간에 아래 명령어는 쓸 일이 매우 많아서 꼭 기억하는 것이 좋다.


추가적으로, sudo와 su 명령어가 있다.

sudo(Super User Do)

sudo는 전에 언급했지만, Super user do, 현재 계정에서 root의 권한을 빌리는 것을 말한다. 우리가 서드 파티 소프트웨어를 설치하거나 일반 계정에 루트 권한을 부여할 때 사용한다.
쉽게 말하면 윈도우10에서 관리자 권한 실행을 할 때 기존에 실행이 안되던게 실행이 되는 일이 있었을껀데 바로 이런 이유 때문일 것이다.

su(Switching User)

현재 계정을 로그아웃하지 않고, 다른 계정으로 전환하는 것을 말한다. 이렇게 하면, 우리는 다른 계정의 home으로 접속할 수 있다.
ex) [username@Localhost] $ su happy
=> 일반 계정 happy로 스위칭(전환)

chmod(change mode)

파일이나 디렉토리의 접근 권한을 변경할 때 사용한다.
명령어에 'ls -l' 이렇게 작성하면, 우리는 rwxrwxrwx... 이런 식으로 써있는 것을 봤을 것이다.(예전에 해 봤다면..^^)
이것은 rwx => Read(문서 읽기 가능), Write(작성 후 '저장' 가능), eXcute(실행 가능)를 의미한다. 즉 약자이다.
또한 이 rwx가 3번 써있는데, 순서대로 소유자 권한, 그룹사용자 권한, 기타사용자 권한이다.
또한 이것을 chmod 명령어를 통해 변경할 수 있는데, 이 때 명령어를 다음과 같이 작성한다.
[username@Localhost] $ chmod 777 file1
여기서 7은 => 111을 의미한다. 즉 100 => 4라면, r만 가능하고 wx는 0의 값으로 해당 작업이 불가능하다.

chown

파일이나 디렉토리의 소유자와 소유 그룹을 변경할 때 사용한다.

alias

긴 명령어를 짧게 만드는 데 유용하다.
ex) [username@Localhost] $ alias If = 'ls -F'
이렇게 작성한다면 ls -F라는 명령어를 사용할 때 If라고 작성하면 그 명령어가 작동한다!
특히 긴 문장의 명령어를 내릴 때 이 alias를 자주 사용한다.

history

실행되었던 명령어를 출력한다.
!! -> 바로 직전의 명령어를 실행한다.
또한, 우리는 사용했던 명령어를 txt파일에 저장해서 보관하고 싶을 때가 있다. 그럴 땐 다음과 같이 명령어를 사용하면 된다.

[username@Localhost] $ history > commands.txt

profile
Valuable

0개의 댓글