🥕
TIL
  • [TIL] Studying tech / computer science knowledge
  • KeyMap
  • 알고리즘
    • 복잡도 계산 ( Computational Complexity )
    • DisjointSet-unionFind
    • Bellman-ford Algorithm
    • Dijkstra's Algorithm
    • DP ( Dynamic Programming , 동적 계획법 )
    • 플로이드-워셜 알고리즘 (Floyd-Warshall algorithm)
    • Kruskal's Algorithm
    • 최장 증가 수열 (Longes Increasing Subsequence)
    • Prim's Algorithm
    • 정렬
    • 시간복잡도 와 공간복잡도 ( Time Complexity & Space Complexity )
    • Topological Sort (위상 정렬)
  • 책 읽고난 후 요약
    • 프로그래밍 대회에서 배우는 알고리즘 문제해결 전략
    • cleancode
    • 도메인 주도 설계로 시작하는 마이크로서비스 개발
    • 오브젝트
  • CDC
    • debzium
    • kafka
  • 개발 상식
    • asciidoctor
    • 컴파일러
    • ELK 스택
    • 엔디안
    • git
    • Gitmoji
    • 테스트 종류
    • 라이브러리와 프레임워크
    • 정규 표현식
    • REST API
    • 동기와 비동기 / Blocking과 NonBlocking
    • Transaction Script와 Domain Model
    • 디자인 패턴
      • 행동 패턴
      • 객체 생성 패턴
        • 추상 팩토리 패턴
        • 빌더 패턴
        • 팩토리 메서드 패턴
        • [생성 패턴] 프로토 타입 (Prototype Parttern)
        • 싱글톤
      • 구조 패턴
        • 어댑터 패턴
        • 브릿지 패턴
        • 컴포짓(Composite) 패턴
        • 데코레이터
        • 프록시
    • refactoring
      • 중복 코드
      • 전역 데이터
      • 긴 함수
      • 긴 매개변수 목록
      • 가변 데이터
      • 이해하기 힘든 이름
  • 자료구조
    • AVL Tree
    • Splay Tree
    • aaTree
    • array-list
    • 자료구조 시간/공간 복잡도
    • 그래프
    • 힙
    • Red Black Tree
    • stack-queue
    • 트리 ( Tree )
  • DevOps
    • MSA
    • Kubernetes
      • AccessingAPI
      • controller
      • dashboard
      • kubernetes
      • object
      • pod
      • service
      • volume
  • Java
    • 어노테이션
    • 제어문
    • 데이터 타입
    • Enum
    • jvm
    • 연산자
    • thread
    • Java8
      • CompletableFuture
      • Date/Time
      • 어노테이션과 메타스페이스
      • 인터페이스
      • 람다식
      • Optional
      • 스트림
  • JavaScript
    • moduleProject
    • webpack-babel
    • 코어 자바스크립트
      • array
      • 함수 바인딩
      • 데코레이터와 포워딩
      • Class
      • 비교 연산자
      • Date 내장 객체
      • destructuring-assignment
      • function
      • 함수의 prototype 프로퍼티
      • 가비지 컬렉션 ( Garbage Collection )
      • JSON (JavaScript Object Notation)
      • map-set
      • 내장 프로토타입
      • new연산자와 생성자 함수
      • 객체
      • Object.keys, values, entries
      • 옵셔널 체이닝 '?.'
      • 프로퍼티 플래그
      • 프로퍼티 종류
      • 프로토 타입
      • 호출 스케줄링 ( scheduling a call )
      • scope
      • this
      • type-conversions
      • type
      • 함수의 자료형
      • var_let_const
  • Linux
    • 기본 명령어
    • 파일 종류
    • 리눅스
  • 네트워크
    • 응용 계층 ( Application Layer )
    • 오류 검출과 오류 정정
    • Http
    • Http Header
    • 컴퓨터 네트워크란
    • 네트워크 계층
    • 네트워크 제어 영역
    • 전송 계층 ( Transport Layer )
  • PHP
    • Facade
    • composer
    • scopeResolutionOperator
    • Laravel
      • SocialProvider
      • architecture
      • blade
      • controller
      • db
      • dbArchitecture
      • debug
      • eloquent
      • email
      • event
      • exceptionHandling
      • middleware
      • model
      • modelFactory
      • pagingLoading
      • queryBuilder
      • route
      • scout
      • seeding
      • tntsearch
      • validate
      • view
  • React
    • Next.js
    • React 란?
  • Spring
    • Controller
    • 요청이 들어왔을때 스프링이 처리하는 방법 ( 내부구조 )
    • ConfigurationProperties
    • Entity / DTO / VO
    • Maven
    • Repository와 DAO
    • 스프링 빈
    • Spring Framework
    • MVC 패턴
    • 도메인 입력값 검증
    • Spring Cloud
      • Spring Cloud
      • Eureka
    • Spring Data
      • JPA
      • JPA 어노테이션
      • 엔티티 비교
      • 복합 키와 식별 관계 매핑
      • JPA 예외처리
      • 객체지향 쿼리
      • EntityManagerFactory와 EntityManager
      • JPA 최적화
      • 프록시와 연관관계 맵핑
      • 연관관계
      • 상속관계 맵핑
      • 트랜잭션 범위와 영속성 컨텍스트
      • 데이터 타입
      • MySQL 연결
      • Pageable
    • Spring Project들과 library
      • Custom Serialize
      • Elasticsearch Index API
      • Spring HATEOAS
      • lombok (롬복)
      • Model Mapper
      • Object Mapper
      • Representation Model
      • Spring REST Docs
      • Spring Boot
    • Spring Security
      • Spring Security
      • Authentication
      • Authentication Filter
      • Authorization Filter
      • Filter Chain
      • SecurityContext
      • Spring OAuth2.0
    • Spring Test
      • AssertJ
      • Junit5
      • JunitParams
      • Mock Object
  • DataBase
    • ALIAS
    • CONCAT
    • CTE
    • Group By
    • HAVING
    • IFNULL
    • 인덱스
    • JOIN
    • ORDER BY
    • ROLLUP
    • SELECT
    • SELECT DISTINCT
    • SQL
    • WHERE
  • Web 상식
    • OAuth
    • WAS
    • HTTP통신 기반 인증
    • 브라우저
    • CSR 과 SSR
    • HTTPS
    • Web
Powered by GitBook
On this page
  • ◾ rm
  • ◾ cp
  • ◾ mv
  • ◾ mkdir
  • ◾ 파일 출력
  • 사용자 관리
  • ◾ adduser
  • ◾ passwd
  • ◾ usermod
  • ◾ userdel
  • ◾ change
  • 파일/디렉토리 소유와 허가
  • ◾ chmod
  • ◾ chown
  • ◾ chgrp
  • ◾ 링크
  • 패키지 관리
  • ◾ dpkg
  • ◾ apt-get
  • 파일 압축
  • ◾ xz
  • ◾ bzip | gzip | zip/unzip
  • 파일 묶기
  • ◾ tar
  • 파일 검색
  • ◾ find
  • ◾ which
  • Reference
  1. Linux

기본 명령어

◾ rm

파일이나 디렉토리를 삭제

  • i : 삭제할지 확인 메시지

  • f : 확인하지 않고 바로 삭제 (-f를 명시하지 않아도 default)

  • r : 하위에있는 파일,디렉토리들 모두 삭제

◾ cp

파일이나 디렉토리 복사

  • r : 디렉토리 복사

◾ mv

파일을 이동하는 명령어인데 이동하면서 이름을 재설정할 수 있어 rename할때도 사용

◾ mkdir

디렉토리 생성

  • p : 지정한 부모디렉토리가 존재하지 않아도 부모디렉토리까지 생성

◾ 파일 출력

  • cat : 파일의 내용 모두 출력

  • head : 위의 10행만 출력

  • tail : 아래의 10행만 출력

    • 숫자 : head와 tail옵션으로 숫자를 지정하면 10행이 아닌 지정한 행의 내용을 출력

  • more/less : 페이지 단위로 출력

    • spacebar : 다음페이지

    • B : 맨 앞페이지

    • Q : 종료

    • 화살표, pageup, pagedown : less부터 가능

사용자 관리

사용자 정보는 /etc/passwd 를 열어보면확인이 가능하고 각 행의 의미는 다음과 같다.

사용자이름 : 암호 : 사용자ID : 그룹ID : 추가정보 : 홈디렉토리 : 기본 셸

암호가 x로 표시되어있는 것은 /etc/shadow에 비밀번호가 저장되어있다는 의미이고 이 파일을 열어보아도 암호는 해쉬화 되어있어서 알 수 없다.

◾ adduser

새로운 사용자를 추가해주는 명령어

adduser user1

adduser --home /home/myDir user1  #홈 디렉토리 지정
adduser --shell /bin/zsh user1    #기본 셸 지정

◾ passwd

사용자의 비밀번호 변경

passwd user1

◾ usermod

사용자의 속성 변경

usermod --home /home/myDir user1  #홈 디렉토리 지정
usermod --shell /bin/zsh user1    #기본 셸 지정

◾ userdel

사용자 삭제

userdel user1
userdel -r userdel  #홈 디렉토리까지 삭제

◾ change

사용자의 암호를 주기적으로 변경하도록 설정

change -E 2023/12/01 user1  #만료일 지정
change -M 30 user1          #최대 30일까지 사용가능

파일/디렉토리 소유와 허가

◾ chmod

파일의 읽기쓰기실행권한을 own/group/other에 다르게 부여

◾ chown

파일의 소유자를 지정

◾ chgrp

파일의 소유그룹을 지정

◾ 링크

링크에는 하드 링크와 심볼릭 링크 두개가 존재하는데 하드링크는 원본 파일과 같은 아이노드를 사용하게 되고 심볼릭링크는 새로운 아이노드를 생성해 이 아이노드는 원본파일을 가리키는 포인터가 저장되어있어 원본파일을 가리키는 링크를 생성하게된다.

touch baselink
ln baselink hardlink    #하드링크 생성
ln -s baselink softlink #심볼릭링크 생성
ls -il                  #아이노드번호와 파일정보 출력

하드링크는 원본파일의 데이터블럭을 그대로 사용하기 때문에 크기가 동일하고 심볼릭링크는 원본 파일 포인터를 가지고있기 때문에 크기가 작다.

하드링크는 디렉토리내에 원본파일이 사라져도 이상이 없지만, 심볼릭링크는 디렉토리내에 원본파일이 사라지면 링크가 끊기게 된다.

아이노드

리눅스의 파일시스템에서 사용하는 자료구조로 파일의 소유권, 허가, 종류, 실제 대이터의 위치 등의 정보가 들어있고 모든파일이나 디렉토리는 각자 1개씩의 아이노드가 존재한다.

패키지 관리

◾ dpkg

apt-get이전의 패키지관리자

◾ apt-get

dpkg를 확장한 패키지관리자

/etc/apt 에 설정파일들이 존재하고 source.list파일에 패키지 파일을 검색하는 네트워크 주소가 들어있다.

파일 압축

◾ xz

xz 파일이름         ## 파일이름.xz로 압축
xz -d 파일이름.xz   ## 파일 압축 해제
xz -l 파일이름.xy   ## 압축 진행상황 출력
xz -k 파일이름.xy   ## 압축 후 기존 파일 삭제 x

◾ bzip | gzip | zip/unzip

파일 묶기

여러개의 파일을 한개의 파일로 묶는 명령어로 프로그램을 통해서 우리가 윈도우에서 압축하는 것은 사실은 먼저 파일을 하나로 묶은 후 압축하는 것이다.

리눅스에서는 이를 따로 관리하며, 편의성을위해 한번에 할 수 있는 옵션도 존재는 한다.

◾ tar

tar확장자로 묶고 푸는 명령어

  • c : 새로운 묶음 생성

  • x : 묶인 파일을 품

  • t : 풀기전에 묶인 경로를 보여준다.

  • C : 지정된 디렉토리에 압축을 푼다.

  • f(필수) : 묶음 파일 이름 지정

  • v : 파일이 묶이거나 풀리는 과정을 보여준다.

  • J : tar + xz

  • z : tar + gzip

  • j : tar + bzip2

tar cvf my.tar 디렉토리     #묶기
tar cvfJ my.tar 디렉토리    #묶기 + xz압축
tar cvfz my.tar 디렉토리    #묶기 + gzip압축
tar cvfj my.tar 디렉토리    #묶기 + bzip2압축

tar tvf my.tar             #파일 확인

tar xvf my.tar               #파일 풀기
tar Cxvf /home/ubuntu my.tar #지정 경로에 풀기
tar xfJ my.tar               #xz압축해제 + tar풀기

파일 검색

◾ find

find 경로 옵션 조건 action

  • name : 이름

  • user : 소유자

  • perm : 허가권

  • size: 크기

  • exec : 후의 다른 명령어 실행

find /etc -name "*.conf"    #/etc밑에 .conf인 확장자 검색
find ~ -perm 777            # 홈 디렉토리에 777허가권 파일 검색

find ~ -size 10k -exec ls -l {} \;  # 홈디렉토리에 파일 크기가 10인 파일을 상세히 출력

-exec앞의 명령줄이 {}안에 들어가게 되어 실행된다.

◾ which

절대 경로를 포함한 path에 설정된 디렉토리에서만 검색한다.


Reference

이것이 우분투 리눅스다 - 우재남

PreviousLinuxNext파일 종류

Last updated 3 years ago