코드스테이츠 - 3회차 백엔드 부트캠프/Section 1

2022.08.26 금 - 리눅스

곰돌이볼 2022. 8. 26. 09:43

📄 학습내용

컴퓨터 제어 방식

  • CLI : Command-Line Interface, 명령어를 통해서 컴퓨터를 제어하는 방식
  • GLI : Graphic-Line Interface, 그래픽 화면에서 사용자가 컴퓨터를 제어하는 방식

 

리눅스 기본 명령어

  • pwd : 현재 위치를 절대 경로로 출력
pwd

  • mkdir : 새로운 디렉터리 생성
mkdir 디렉터리명

  • ls : 디렉터리 안에 있는 디렉터리나 파일 출력
    • -l : 파일이나 디렉터리의 상세내역 출력
    • -a : 숨어있는 디렉터리나 파일을 전부 출력
    • -al 또는 -la : 숨어있는 디렉터리나 
ls
ls -a
ls -l
ls -al

  • cd : 다른 디렉터리로 이동
cd 디렉터리명

  • touch : 새로운 파일 생성
touch 새로운파일명

  • > : > 왼쪽 명령어의 결과를 > 오른쪽 파일에 저장
명령어 > 파일명

  • cat : 파일의 내용 출력
cat 파일명

  • \ : 디렉터리나 파일의 이름에 공백이나 특수문자가 있는 경우에 사용하는 문자
  • rm : 파일이나 디렉터리를 삭제
    • -rf : 옵션 r(recursive)은 일정한 행동을 반복하고, 옵션 f(force)는 강제적으로 행동을 진행한다. 그러므로 내용이 들어있는 디렉터리를 제거할 때 사용가능한 옵션이다. 
rm 파일명 또는 디렉터리명
rm -rf 디렉터리명

  • mv : 파일이나 디렉터리를 다른 디렉터리로 옮기거나, 이름을 변경
mv 파일명(또는 디렉터리명) 이동할디렉터리
mv 파일명(또는 디렉터리명) 새로운파일명(또는 디렉터리명)

  • cp : 파일이나 디렉터리 복사
    • -rf : 내용이 있는 디렉터리를 복사하기 위해서 사용하는 옵션
cp 파일명(또는 디렉터리명) 새로운파일명(또는 디렉터리명)
cp -rf 디렉터리명 새로운디렉터리명

 

  • whoami : 현재 사용 중인 사용자명을 출력
whoami

  • sudo : 관리자 권한 획득
    • 사용자가 파일을 안전하게 관리할 수 있도록 있는 관리자 계정이 존재한다. 이때 새로운 프로그램을 설치하거나, 업데이트 및 삭제할 때 잠시 관리자 계정을 획득해서 이를 진행한다. 또는 관리자 권한이 필요한 부분을 진행하기 위해서 사용된다.
  • man : 명령어의 메뉴얼
man 명령어

 

 

경로 & 키워드

  • / : 루트 또는 디렉터리를 구분하기 위해서 사용
  • . : 현재 디렉터리
  • .. : 상위 디렉터리
  • ~ : 루트에서부터 사용자 경로까지의 경로를 의미
  • 절대 경로 : 기준점(루트 / )를 기준으로 경로를 표현하는 방식
  • 상대 경로 : 현재 디렉터리 위치를 기준으로 경로를 표현하는 방식

 

텍스트 에디터 nano

  • window에 있는 메모장과 유사한 텍스트 에디터로 기본적으로 설치되어 있다.
  • 파일 저장 명령어 : ctrl+o
nano 파일명
nano

 

  • 패키지 : 프로그램 설치 및 동작에 필요한 파일들이 압축된 것
  • 패키지 매니저 : 패키지의 관리를 도와주는 도구
  • apt 패키지 매니저와 패키지 명령어
    • sudo apt update : 설치가능한 패키지 리스트 업데이트
    • apt list --upgradable : 업데이트가 간으한 패키지 리스트 출력
    • sudo apt upgrade : 전체 패키지 업데이트
    • sudo apt --only-upagrad install 패키지명 : 특정 패키지만 업데이트
    • apt show 패키지명 : 패키지 정보 출력
    • sudo apt install 패키지명 : 패키지 설치
    • apt list --installed : 설치된 패키지 출력
    • sudo apt remove 패키지명 : 패키지 삭제
    • apt search 패키지명 : 패키지 검색

 

설치한 패키지

  • neofetch : 사용자 정보 확인
sudo apt install neofetch
neofetch

  • sl : ls를 반대로 입력했을 때 나오는 귀여운 애니메이션
sudo apt install sl
sl

  • asciiquarium : 귀여운 물고기를 볼 수 있는 애니메이션 영상, 물고기는 랜덤으로 등장한다.
asciiquarium

 

파일 또는 디렉터리의 소유자와 사용 권한을 확인

  • drwxrwxrwx : ① d ②rwx ③ rwx ④ rwx
    • ① d : 디렉토리 또는 파일 구분
    • ② rwx : user(사용자)
    • ③ rwx : group(그룹)
    • ④ rwx : other(그 외의 사람들)
  • - : 첫번째 자리일 경우에는 파일이라는 의미이고, 나머지는 권한없음을 의미
  • d : 디렉터리
  • r : read 권한
  • w : write 권한
  • x : execute 권한

 

사용 권한 변경

  • chmod : 파일이나 디렉터리의 사용 권한 변경
  • 방법 1) symbolic method ; 연산자와 접근자를 통해서 사용 권한을 변경하는 방식
    • 명령어 : chmod ①②③ 파일명
    • ① 접근자 클래스 : u, g, o, a
    • ② 연산자 : +, -, =
    • ③ 접근 권한 : r, w, x
  • 방법 2) absolute form : 숫자를 통해서 사용 권한을 변경하는 방식
    • 명령어 : chmod ①②③ 파일명
    • rwx : r=4, w=2, x=1 이진수 계산법
    • 각 ①(user)②(group)③(other) 값들은 필요한 권한(rwx)들만의 값들을 더한 값

 

환경변수

  • 환경변수 : 환경에 따라서 프로그램에 영향을 주는 변수값들
  • 전역 환경변수와 지역 환경변수
    • 전역 환경변수 : 모든 사용자가 사용가능한 환경변수
    • 지역 환경변수 : 환경변수를 설정한 사용자만 사용 가능한 환경변수

 

임시적으로 환경변수 설정 방법(in linux)

  • 지역변수 : 변수명=값
  • 전역변수 : export 변수명=값

 

영구적으로 환경변수 설정 방법

  • linux 지역변수: 홈 디렉터리(~)에서 .zshrc 또는 .bashrc 파일의 맨 아래에 변수와 값을 추가해서 사용 가능
  • linux 전역변수 : /etc/profile의 권한을 777로 변경 후 변수와 값을 추가해서 사용 가능
  • window : '시스템 환경 변수 편집' → 환경변수 → 환경 변수를 추가 및 삭제 가능

 

환경변수 확인 방법

  • linux : export
  • window : cmd 창 → set 명령어

 

터미널을 통해서 명령어가 실행되는 과정

  • 1) 터미널(terminal)에 명령어 실행
  • 2) 터미널의 명령어가 쉘(shell)로 전달
  • 3) 쉘은 터미널로부터 받은 명령어를 해석해서 커널(kernel)로 전달
  • 4) 커널은 쉘로부터 받은 명령어를 실행해서 하드웨어가 동작
  • 5) 하드웨어 동작 후 실행 결과를 커널로 전달
  • 6) 커널을 실행 결과를 쉘로 전달
  • 7) 쉘을 실행 결과를 터미널로 전달해서 터미널에서 실행한 명령어 결과가 화면에 출력

 

 공부 난이도

리눅스 ☆☆☆☆★

 

🧶 발생한 문제 및 해결방법

  • 문제점) ubuntu로 접속을 했을 때 내가 설정한 kung(username)으로 접속되지 않고 root 계정으로 접속이 되었다.
  • 해결방법) su username 명령어를 통해서 문제를 해결하였다.

 

root → user : su username

user → root :  su

 

Term::Animation과 asciiaquarium을 설치해야 제대로 동작함

+추가) Term::Animation을 설치받기 위해서 /tmp에 다운받은 asciiquarium.tar.gz과 Term-Animation-2.6.tar.gz을 삭제해도 asciiquarium은 정상적으로 동작한다. 필요없는 파일은 그때그때 지우는 것이 중요한 것 같다.

 

 

🌕 느낀점

  리눅스는 작년 2학기에 리눅스 서버 스터디를 진행해서 크게 어려운 부분은 없었다. 환경변수 부분만 자세하게 공부할 수 있었다. 어려운 점이 있었다면 굿모닝 세션에서 멘토님이 보여주신 asciiquarium 설치가 쉽게 되는 줄 알았는데 생각보다 복잡했다. 구글링을 통해서 따라하다가 계속 막히는 부분이 발생해서 해결하는데 30분 정도의 시간이 소모된 것 같다. 그래도 해결해서 asciiquarium이 제대로 동작한다는 사실에 만족한다. 그리고 처음에 linux에 접속했을 때, user가 아닌 root 사용자로 접속되어서 조금 당황스럽긴 했지만 금방 문제를 해결할 수 있었다.