* Alias

자주 사용하는 명령어에 대해 저장하는 기능

예) alias gd = 'cd /home/share';


특정 폴더에 대해 자주 왔다 갔다 하는 경우에 좋다.


* id, who;

id : 현재 내가 누구인지 알려줌

who : 누가 접속햇는지 알려줌


* 관리자, 일반사용자


관리자 : super user, root

일반사용자 : user

콘솔창에서 마지막아 ~$가 뜬다면 일반 사용자



~# 가 뜬다면 루트 사용자이다.

참고) root 비밀번호가 설정 안되어있으면 su - 로 넘어갈 수가 없다 (Authni.. 블라블라 에러가 뜸)

사용자 추가 : sudo useradd -m [유저명]

비밀번호 추가 sudo passwd [유저명]


* 권한

ls -al 를 실행하면 아래처럼 자세하게 뜬다. 


제일 앞에 d 혹은 - 는 해당 파일의 타입을 뜻한다. d는 디렉토리, -는 일반 파일이다.


그 뒤로는 3개씩 잘라서 이해하면 된다. 

r,w,x 이렇게 표시가 되며 r은 read, w는 write, x는 excute, 즉 해당 파일의 읽기, 쓰기, 실행에 대한 명시이다.

3개씩 잘라서 이해해야는 이유는 각 단위별로 owner, group, other의 권한을 명시하기 때문이다.

즉 제일 아래 .profile의 경우 파일형태이고 owner는 읽고 쓸수 있다. group 멤버는 읽을수만 있고 other역시 읽을 수만 있다.


그 뒤에 root root의 경우 owner, group에 대한 명시이다.


* 권한부여 chmod

chmod o-r 파일명 : 해당 파일에 대해 other에 권한 중 r(읽기)를 뺀다(-)

chmod o+r 파일명 : 해당 파일에 대해 other에 권한 중 r(읽기)를 추가한다.


* x, 실행권한


hi-m.sh에 대해 실행권한(x)가 없기때문에 실행명령을 내려도 실행이 되지 않는다.

권한을 추가하니(chmod u+x hi-m.sh) 실행이 가능하다.





'Study)Hoguz > 8월)리눅스_생활코딩' 카테고리의 다른 글

리눅스, 생활코딩, 4회차  (0) 2018.08.06



import math;

def solution(n, a, b):
    min_ = min(a, b);
    max_ = max(a, b);
    root_temp = n // 2;
    temp = root_temp;
    while True:
        if min_ >  temp : # 두개 모두  temp 보다 큼
            root_temp //= 2;
            temp += root_temp;
            continue;
        elif max_ < temp:
            root_temp //= 2;
            temp -= root_temp;
            continue;
        elif min_ == temp:
            print("min")
            return int(math.log(root_temp, 2)) +1
        elif max_ == temp:
            return int(math.log(root_temp, 2))
        else:
            return int(math.log(root_temp, 2)) + 1;

위는 91점 코드인데 안되는 3가지 경우가 무엇인지 아직 생각아 안난다.
import math
def solution(n,a,b):
    a, b = min(a,b), max(a,b)
    for k in range(1, int(math.log2(n)+1)):
        if a%2 != 0 and a+1 == b:
            return k
        else:
            n, a, b = n/2, math.ceil(a/2), math.ceil(b/2) ###

이게 다른 방법, temp에 기인하지 않고 대진을 리셋하면서 올라간다 결과적으로 이 문제는 문제는 장황하지만 이진 탐색을 하는 문제이다
Nebo - Test - Page 5
  1. 개방폐쇄 원칙 (open closed)

0 확장에는 열려 있어야 하고
변경에는 닫혀 있어야 한다.
= 기능을 변경, 확장 가능하지만 기능을 사용하는 코드는 수정하지 x ) Memory byte 읽는 기능추가 = 기능은 추가되고 코드 변경 x
(코드는
interface 추가됨)
0 확장되는 부분이 추상화됐므로 가능

2.1 원칙이 깨질때 주요증상

  1. 다운캐스팅을 한다.
    instance of 사용
  2. 비슷한 if_else 블록이 존재

2.2 개방 폐쇄 원칙은 유연함 기능확장을 위해 기존코드 수정 = 확장에 닫히고 변경에 열림

  1. 리스코프 치환 원칙

0 상위타입이 아닌 하위 타입을 사용해도 기능이 정상적으로 수행

3.1 위반시 문제점
o 직사각형 정사각형 문제
o 서로 다른 리턴범위

3.2 원칙은 계약과 확장에 대한 0 명세된 계약대로
o instance of 사용은 원칙의 위반을 보여준 .

  1. 인터페이스 분리원칙
  2. 인터페이스는 인터페이스를 사용하는

클라이언트를 기준으로 분리해야 한다.

  • 용도에 맞게 인터페이스를 분리

4.3 인터페이스 분리 원칙은 클라이언트에 대한 .

  • 의존의 양면성
  1. 의존역전원칙
  2. 고수준모듈은 저수준모듈의 구현에

의존해서는 안된다. 저수준모듈이 고수준 모듈에서 정의상 추상타입에 의존해야 한다

  • 고수준 모듈: 바이트 데이터를 읽고 암호화하고
    결과 바이트 데이트를 쓴다

. 저수준모듈: 1. 바이트를 읽는다.

  1. 암호화 한다
  2. 데이터를 쓴다

  1. I 문제점
  2. 가격 계산 모듈이 쿠폰에 의존하게

되면 새로운 쿠폰추가시 가격 계산 모듈이 변경되는 상황 초래

  • 저수준이 변경되도 고수준에 영향을

끼치는게 원칙의 목적.

5.2 의존 역전원칙을 통한 변경의 유연함 확보

  • 저수준 모듈이 고수준에 의지.
  • 추상화

  • file Data Reader Bk Source 의존
  • Byte Source flow Control 입장에서

만들어
= 의존이 역전됨.

  • 소스코드 상에서 역전됨

5.4 의존 역전과 패키지

  • flow control Byte source

하나의 패케이로 묶을 있음

  1. 정리.
  2. 변화에 유연하게 대처하는
  3. 단일책임원칙, 인터페이스 분리원칙 = 객체의 크기 조절 (기능, 책임)
  4. 리스코프, 의존 역전원칙
    = 추상화, 다형성, 기능확장
1···567891011···46

+ Recent posts