본문 바로가기

Computer science (이동 완료)/linux

리눅스 기초 강좌 정리

 

  • 기초명령어

who/whoami/uname/hostname

 

  • . : 현재 디렉토리
  • .. : parent directory

 

  • ls :

ls -lS : size 로 정렬

ls -lSr : size reverse 정렬

ls -lt : 시간순으로 정

ls -R : 하위 디렉토리까지 다 봄

 

  • find . -name <찾을 이름>

 

  • 정규표현식 : [1~5], *, ^3

 

  • 리눅스 명령어 도움말

man <cmd>

<cmd> --help

 

  • 복사 (cp), 삭제 (rm)

옵션 :  -i : interactive  -f : force  -r recursive(디렉토리 포함)

 

  • cat <file> : 파일 내용 보기

nl <file>

more <file>

head <file>

 

  • 디렉토리 구조 이해

/bin : 실행파일 모아둔 곳 (일반 유저 용)

/boot : 부팅파일 모아둔 곳

/etc : 시스템 설정 파일

/dev : 디바이스, 장치 파일 (키보드,모니터,usb)

/home :

/lib : 라이브러리 모아둔 곳 (window 의 dll)

/sbin : 시스템 관리자 명령어 모아둔 곳

/mnt : 마운트 하는 곳

/proc : 프로세스, 메모리 상태 설정 값 저장

/opt : 리눅스 이외의 sw

/tmp : 임시 디렉토리

/usr : unix system resource (윈도우의 Program files), 프로그램 설치하면 여기 설치 됨

/media : 미디어 장치

 

  • 패키지 설치 경로 이해

/usr : 응용 프로그램 설치 계층

/usr/bin : system 관리자가 패키지 매니저 (apt) 를 사용해서 설치

/usr/local/bin : system 관리자가 패키지 매니저 (apt) 를 사용 안! 하고 설치 (직접 컴파일 등)

~/.local : pip 에서 user 권한으로 패키지 설치 시, 라이브러리 설치되는 경로

*python 가상환경 사용 시, 가상환경 하부 bin 에 설치

 

  • 패키지관리 : rpm (조회,삭제)

패키지설치 : yum (설치)

 

  • ftp client : 외부 ftp 사용

 

  • 파일의 분류 : file <파일 이름>

- : 일반 파일

d : 디렉토리

l : 심볼릭 링크

c : charater

 

  • 하드링크, 소프트(symbolic) 링크 : ln <원본 파일> <바로가기 파일 이름>

 

  • bash 설정 파일

/etc/profile

/etc/profile.d/*.sh

~/.bash_profile

~/.bashrc

 

  • env : 환경 변수 파일 전부 다 보기

echo $<변수 파일 이름>

 

  • 리다이렉션 : > , >> (추가 쓰기)
  • 파이프라인 : 
  • 하드링크, 소프트(symbolic) 링크 : ln <원본 파일> <바로가기 파일 이름>

 

  • 리눅스 패키지 관리:

-  package management : 소프트웨어 설치 관리 시스템

저수준 툴(low-level tools) : 실제 패키지의 설치, 업데이트, 삭제 등을 수행
고수준 툴(high-level toos) : 의존성의 해결, 패키지 검색 등의 기능을 제공

아래 표는 리눅스 배포판 별로 저수툰/고수준 패키지 관리 도구를 나타내었다

 

 

- Debian 계열 (Debian, Ubuntu) :

dpkg(debian pacakage) : windows 의 *.exe 와 비슷한 설치 파일, 설치 파일이 이미 존재 할 때 사용, 해당 패키지만 설치하고 종속되어 설치 필요한 프로그램을 설치하지는 않음

apt-get (Advanced Packaging tool) : 저장소 url 을 /etc/apt/source.list 에 작성하여, 인터넷으로 해당 저장소에서 파일 다운로드 및 설치.

☑️ help: apt-get install -h

✅ 설치: apt-get install 패키지명
✅ 패키지목록 업데이트: apt-get update : sources.list를 최신으로 업데이트함
✅ 패키지 업그레이드: apt-get upgrade 패키지
✅ 삭제: apt-get remove 패키지
✅ 완전삭제: apt-get purge 패키지
✅ 사용안하는 패키지 제거: apt-get autoremove
✅ 내려받은 아카이브 파일제거: apt-get clean or apt-get autoclean

 

- Redhat 계열 (CentOS, Fedora) : rpm / yum (low/high)

RPM (Redhat Package Manager)

RPM이 나오기 전 초기의 리눅스에서는 모든 패키지를 설치할때 직접 컴파일한 후에 수동으로 설치해야 했다. 물론 컴파일은 위한 소스 파일은 tar, gzip으로 묶여있었다. 그렇기 때문에 패키지 설치에 많인 시간이 필요하게 되었고, 이를 극복하고자 RedHat 사에서 패키지 관리 프로그램인 RPM을 개발하게 되었다. 마치, Windows 계열의 setup.exe 파일과 비슷하게 자동으로 설치해주는 프로그램이다. RPM 패키지는 컴파일되어 설치한 실행파일, 설정파일, 라이브러리 등을 하나로 묶어놓은 파일을 말한다. 대표적인 특징은 아래와 같다.

1) YUM과 마찬가지로 패키지 인스톨 프로그램이다.
2) 인터넷이 연결되어있지 않아도 설치가 가능하지만, rpm 확장자로된 패키지 프로그램이 필요하다.
3) 패키지 사이에 의존하고 있는 패키지까지 자동으로 설치되지 않는다.
4) 기본 사용 명령어

  • 설치: rpm -Uvh [패키지명]
  • 삭제: rpm -e [패키지명]
  • 설치확인: rpm -qa [패키지명]
  • 상세정보: rpm -qi [패키지명]

YUM (Yellodog Updater Modified)

YUM은 RPM 기반의 시스템을 위한 자동 업데이터 및 패키지 설치, 제거 프로그램이다. 듀크 대학교의 Linux@DUKE 프로젝트의 일부분으로 개발되었다. RPM과 다르게 인터넷 사용이 필수이기 때문에 패키지간 의존성 문제를 해결할 수 있다. 예를들어 A 패키지를 설치하기전에 필요한 B 패키지까지 모두 한번에 설치가 가능하며, 의존도를 자동으로 찾고 알아서 설치해준다. 대표적인 특직은 아래와 같다.

1) RPM과 마찬가지로 패키지 인스톨 프로그램이다.
2) 인터넷에서 바로 설치가 가능하기 때문에 패키지 프로그램이 따로 필요없다.
3) 패키지 사이에 의존하고 있는 패키지까지 자동으로 설치가 가능하다.
4) 기본 사용 명령어

  • 설치: yum install [패키지명]
  • 삭제: yum remove [패키지명]
  • 업그레이드: yum update [패키지명]
  • 목록: yum list [패키지명]
  • yum 데이터베이스 동기화 업데이트: yum update

 

  • yum, apt 등 패키지 의존성 관리하는 주체는?

- package repository : database of programs and libraries

dependency 를 포함한 package information 은 package repository 에 함께 저장되며, package maintainter 에 의해서 관리됨. pacakge maintainer 는 프로그램을 패키징한 한 사람이나 그룹

 

https://youtu.be/uRZr35xIBqg

 

https://wookiist.tistory.com/10 

 

[Wiki] '/bin' 디렉토리와 '/usr/bin' 디렉토리의 차이는 무엇일까? ('/bin' vs '/usr/bin')

/bin 과 /usr/bin의 차이는? 우분투를 사용하다가 문득 /bin과 /usr/bin의 차이가 궁금해졌다. 궁금하던 차에 정리해보았다. 다양한 종류의 /bin Linux와 Unix 계열의 OS에는 굉장히 다양한 .../bin 디렉토리가

wookiist.dev

 

https://velog.io/@broccoliindb/apt-get-%EC%99%80-dpkg%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90

 

apt-get 와 dpkg의 차이점

windows의 \*.exe 와 비슷한 설치파일이며 확정명은 \*.deb이다. 이것을 package라고 부름dpkg로 파일을 설치할 때는 \*.deb 설치파일이 이미 피씨에 존재하고 있을 때 아래처럼 설치할 수 있다.☑️ help: dp

velog.io

 

https://minhan2.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4-%ED%8C%A8%ED%82%A4%EC%A7%80-%EB%B9%84%EA%B5%90aptdpkgyumrpm

 

리눅스 패키지 비교(apt,dpkg,yum,rpm)

공식 문서와 블로그, 검색 등을 통해 제가 원하는 자료를 만들고있습니다. 되도록 이미지에대한 정확한 출처를 밝히고자 하지만, 책이나 PDF를 인용하여 사용한듯한 곳에서는 정확한 출처를 찾

minhan2.tistory.com

 

yum, apt 패키지 의존성 관리는 누가 하지..?

https://www.quora.com/How-do-package-managers-like-yum-APT-work-Who-maintains-them

 

How do package managers like yum, APT work? Who maintains them?

Answer (1 of 2): As you might already know, a package repository is a database of programs and libraries. Every package depends on one or more packages. We call them as dependencies. All package information including their dependencies are stored in the pa

www.quora.com