Linux I

eunheelog·2024년 5월 13일
0

Beyond SW

목록 보기
1/15

리눅스 배포판


: 리눅스 커널과 함께 기본적인 명령어와 애플리케이션을 묶어서 사용자가 바로 사용할 수 있게 패키징한 것

* 리눅스 커널 : 운영체제의 중심에서 하드웨어를 제어하는 역할을 담당하는 소프트웨어

설치

  • 오라클 VM 버추얼 박스 설치(https://www.virtualbox.org/)
  • 가상 시스템 가져오기 > ova 확장자 파일 선택
  • MAC 주소 정책 > 모든 네트워크 어댑터 MAC 주소 포함 선택


  • 리눅스와 사용자를 연결하는 것
  • 사용자가 커널을 직접 조작할 수 없기 때문에 둘 사이에 명령어를 받아들이고 커널의 실행 결과를 출력하는 소프트웨어
  • 커널의 인터페이스

터미널


  • 컴퓨터의 입출력만을 담당하는 전용 하드웨어
  • 리눅스를 다룰 때 하드웨어 터미널을 사용하는 경우는 거의 없으며 소프트웨어로 구현한 터미널 사용 !
  • 환경변수 확인 방법 ↓

* 주로 리눅스를 원격으로 접속, 조작함

원격 접속


  • 처음엔 OS 위에 VB 를 깔고 그 위에 Linux 를 깔아서 직접 실행함
  • mobaxterm 설치(https://mobaxterm.mobatek.net/)
    → 원격으로 접속할 때 보안이 들어있는 셸 SSH 사용(Installer edition 설치)
  • 접속하려면 Linux의 IP 주소를 알아야함 > ifconfig로 확인 !
  • apt : 패키지 매니저

    → 가상머신의 IP가 10.0.2.15임을 확인할 수 있음
  • clear 명령어 입력 시 cmd 다 지워짐
  • sudo apt install openssh-server 명령어로 설치 !
    (외부에서 접속할 때 허용해주는 라이브러리,,? 임)
  • sudo systemctl list-units | grep ssh 명령어로 설치 됐는지 확인
    → 아래처럼 ssh.service가 running 중이면 됨
  • 윈도우 PC IP도 확인해야함 > ipconfig로 확인 !
  • 와이파이로 연결했다면 Wireless LAN adapter Wi-Fi, 랜선으로 연결했다면 이더넷으로 확인
  • virtualBox에서 Ubuntu 우클릭 > 설정

    고급 > 우측에 있는 + 눌러서 추가하기


    → 이때 호스트 IP는 PC IP, 게스트 IP는 가상머신 IP, 호스트 포트는 아무거나, 게스트 포트는 22로 함

* 리눅스 포트는 22번이어야함 ! (SSH를 통해 원격으로 접속할 때는 22번 사용)

  • session > SSH

  • 리눅스는 ifconfig, 윈도우는 ipconfig
  • IP 주소, 포트 번호를 알면 접근 가능 !

포트 포워딩


  • PC 안의 프로그램을 찾아갈 때 쓰이는 포트

+) netstat -tnlp | grep 22 입력 시 LISTEN 이 보이는데 LISTEN 은 요청을 기다리고 있는 것

절대경로와 상대경로


  • 절대경로는 디렉터리의 깊이가 깊어질수록 길어진다
  • 상대경로는 현재 디렉터리의 위치를 기준으로 표기한다

* home 디렉터리로 갈 때 cd ~ 만 쳐도 됨 !

명령어 약자


  • pwd : print work directory (현재 경로)
  • cd : change directory
  • ls : list
  • d : directory
  • l : long (상세하게 나타냄)

디렉터리


* 디렉터리는 파란색으로 나타냄 !

  • ls / /home ~ 실행 결과

    → 인자가 3개임 (/ 는 루트 디렉터리)
  • 상세하게 보고 싶으면 옵션으로 l을 주면 된다 (ls -l)

- rwx → read, write, execute

  • ls -a 실행 결과
  • ls는 숨김 파일이나 폴더는 보여주지 않지만 ls -a 한 경우에는 숨김 파일까지 보여줌(앞에 . 붙은 게 숨겨진 파일)
  • ls -F / 하면 파일 종류도 알려줌
  • @는 링크 파일임(바로가기) ls -l /입력했을 땐 화살표로 나타냄
  • ls 옵션으로 조합해서 적용할 수 있음(a, l, F)

* 명령어에 대한 설명이 필요한 경우 --help 옵션을 지정하면 됨(대괄호에 있는 건 생략 가능)

  • mkdir 으로 파일 생성 가능 !
  • develop 폴더 안에서 만들고 싶은 경우
  1. cd develop / 후 mkdir
  2. mkdir 옵션으로 경로 지정
    ① mkdir /home/beyond/develop/test2
    ② mkdir ~/develop/test3
    ③ mkdir ./develop/test4 (상대경로)
  • 한꺼번에 여러 파일을 생성할수도 있음(mkdir test1 test2 test3)
  • mkdir ./develop/test8/test9를 실행한 경우, test8이 존재하지 않으면 오류가 발생함 → 없어도 생성할 수 있도록 하는 게 -p 옵션 !!(test8도 자동으로 생성해줌)

touch 명령어로 파일 생성


  • touch sample.txt → 텍스트 문서 생성
  • ls -l sample.txt
  • touch는 파일의 날짜와 시간을 수정하는 명령어지만 파일을 생성할 수도 있다 !
  • touch -c sample2.txt → -c는 sample2라는 파일이 없으면 만들지 말라는 옵션

파일 삭제


-rm 명령어 사용 (remove 약자)

  • 한번에 여러 개 삭제 가능 !
  • 디렉터리 삭제하려면 -r 옵션 지정해야함 (디렉터리 안에 있는 폴더 다 삭제되고 복구 불가능)
  • 빈디렉터리는 rmdir 명령어 사용해야함
  • 비어있지 않은 디렉터리 삭제하는 방법
    1. rmdir ./test/test9 한 후 rmdir ./test8
    2. rm -r test1 하면 전부 삭제됨
    3. rm -ir test1(-ri도 상관없음)
      → 삭제하기 전에 한 번 더 확인하는 옵션임 (i)

파일 내용 출력


  • cat 명령어로 파일 내용 출력
  • 인자로 여러개 입력할 경우 순차적으로 출력됨
  • echo → 뒤에 입력된 문자를 출력해주는 명령어 (공백 포함 시 '' 로 감싸야함)

    → echo로 내용이 있는 파일을 생성할 수 있음

    > 를 사용해 수정할 수 있음, >> 로 덧붙일 수도 있음
  • 몇번째 행인지 궁금할 경우 n 옵션을 주면 쉽게 확인 가능 !
  • 화면 단위로 파일의 내용을 출력하려면 less 사용
  • 한줄씩 넘기려면 Enter, 한 화면씩 넘기려면 스페이스, 한 화면 위로 올리려면 B, 나가고 싶으면 Q 누르면 됨

* bash_history : 이때까지 사용한 명령어가 기록돼있음

문자열 검색


  • less로 파일을 연 후 / 누르고 찾을 문자열 입력하면 찾을 수 있다 !
    (n을 누르면 다음 문자열이 나오고 shift + n 을 하면 이전 문자열이 나온다)

파일 복사


  • cp 복사할 파일명 생성할 파일명
  • 복사하고 원본 수정할 경우 복사본은 수정되지 않음 !!!
  • 이미 존재하는 파일로 복사하게 될 경우 덮어씀
  • i 옵션으로 한 번 더 확인하도록 할 수 있음
  • 같은 파일을 디렉터리 안에 복사하는 방법
    → cp [복사할 파일들][복사할 디렉터리]

디렉터리 복사


  • -r 옵션 지정해서 디렉터리 복사 가능 !
  • temp_copy를 temp에 복사(temp 안에 temp_copy가 생성)

파일/디렉터리 이동


  • mv 명령어를 사용해 파일이나 디렉터리 이동 가능 !
  • develop/temp/sample.txt를 develop 폴더로 이동하는 방법

  • 한 번에 여러 파일을 옮길 수 있음
  • 중복되는 파일이 존재한다면 덮어쓴다
  • -i 옵션을 사용해 한 번 더 확인한다

파일/디렉터리 이름 변경


  • mv 로 파일 이름 변경 가능 !
  • mv 로 디렉터리 이름 변경 가능 !
  • -i 옵션으로 한 번 더 확인 가능

링크 파일 생성


  • ln -s hello.txt hello_ln 으로 링크 파일 생성
  • rm hello.txt 하면 링크 파일 같이 삭제 될까? > 안됨(빨간색으로 변함)
  • hello.txt 파일을 새로 생성하면 hello_ln은 어떻게 될까? > 다시 링크하게 됨(파란색으로 변함)
  • ls -l temp_ln/ > 링크가 가리키는 파일의 정보를 보여줌

파일 검색


  • find 명령어 사용 > 디렉터리 트리를 내려가면서 조건에 맞는 파일 검색

  • 액션을 생략하면 기본적으로 검색 조건을 만족하는 파일의 경로를 출력
    $find <검색할 디렉터리> <검색 조건> <액션>

  • 파일 이름을 검색하려면 검색 조건으로 -name 이나 -iname 으로 이름을 지정해야함

    1. -name은 대소문자를 구분해서 검색함

      → -print 하면 내용 출력되고 생략하면 경로가 출력됨
      * 모든 txt 파일 찾기
    2. -iname은 대소문자를 구분하지 않고 검색함
  • 파일 형식으로 검색하려면 조건에 -type으로 형식을 지정해야함

  • 검색 조건을 여러 개 지정하려면 -a(and) 를 사용하여 지정해야함

    → -a 생략 가능

profile
⛧1일 1알고리즘⛧

0개의 댓글