본문 바로가기
  • Welcome.

분류 전체보기292

[리눅스1] [#12 i-node] - i-node, Link생성, Hard Link, Soft Link, 특수권한, Set -UID, Set - GID, Set - Bit a. 확인 : ls -i b. 정의 : - UNIX 시스템에서 사용하는 파일 구조 - 값을 숫자로 표현 - 원본과 사본을 구분하는 목적 - 핵심: (1) 이름이 문자(파일명) = 논리적 구조 = 변수 (2) 이름이 숫자(i-node) = 물리적 구조 = 상수 c. 구조 d. 실습 - Link 생성 : ln (1) Hard Link : ln /bin/bash bash1 (2) Soft Link : ln -s/bin/bash bash2 - Hard Link vs Soft Link (1) Hard Link {1} 원본 : /bin/bash {2} 링크 : /root/bash1 {3} /root/bash1 파일을 수정 -> /bin/bash 파일도 동시에 수정 {4} 원본과 i-node값이 동일 = 물리적 파일.. 2021. 4. 12.
[리눅스1] [#11 소유권] - 소유자와 소유그룹, 소유권 변경 a. 소유자와 소유그룹으로 구성 - 소유자 : 파일을 생성했거나 직접 관리하는 계정 - 소유그룹 : 소유자가 속한 그룹 - 소유자 > 소유그룹 b. 소유권 변경 - 소유자와 소유그룹을 동시에 변경 : chown (1) chown user.group abc.txt (2) chown user:group abc.txt - 소유자만 변경 : chown (1) chown user abc.txt - 소유그룹만 변경 : chown, chgrp (1) chown .group abc.txt (2) chown :group abc.txt (3) chgrp group abc.txt ** " . " 을 기준으로 잡음 ** a1의 소유자가 adm으로 변함. a1의 소유그룹이 bin으로 변함. a1의 소유자, 소유그룹이 root,.. 2021. 4. 12.
[리눅스1] [#10 허가권의 이해] - 구조, 특징, 허가권 변경, chmod a. 구조 : 3(rwx)x3(USER, GROUP, OTHER) = 9자리 - 읽기 : Read - 쓰기 : Write - 실행 : eXtend b. 특징 : 8진수 = 0~7 - 권한 없음 : 0 또는 - - 읽기 : 4 또는 r - 쓰기 : 2 또는 w - 실행 : 1 또는 x - 전체 : 7 또는 rwx c. 구조 구분 USER GROUP OTHER 결과 읽기 r r r 444 쓰기 w w w 222 실행 x x x 111 결과 7 7 7 777 d. 허가권 변경 : chmod - 숫자 : USER, GROUP, OTHER 모두 변경 (1) chmod 644 abc.txt : rw-r--r-- (2) chmod 755 abc.txt : rwxr-xr-x (3) chmod 600 abc.txt : .. 2021. 4. 12.
[리눅스1] [#09 ls -l (또는 ll)의 이해] - a. ex) - 예시 : lrwxrwxrwx. 1 root root 7 4월 10 16:24 bin -> usr/bin b. FIle Type (1) - : File (2) b : Block Device (HDD 등 물리 저장소) (3) c : Console (사용자 접속) (4) d : Directory (폴더) (5) l : Symbolic Link (바로가기) c. 허가권(Permission) : rwxrwxrwx (1) 첫번째 rwx : 소유자(USER) (2) 두번째 rwx : 소유그룹 (GROUP) (3) 세번째 rwx : 소유자 외 (OTHER) d. 링크 수 : 1 e. 소유권 : root root (1) 첫번째 root : 소유자 (2) 두번째 root : 소유그룹 f. 생성(또는 최종 .. 2021. 4. 12.
[리눅스1] [#08. 2개 이상의 명령어 사용에 관한 몇 가지 방법] - pipe 또는 filter, 교집합, 합집합, 표준입출력 8. 2개 이상의 명령어 사용에 관한 몇 가지 방법 a. pipe 또는 filter - 키 : Shift + \ = | - 정의 : 1번 명령어 출력에 2번 명령어를 대입 - 사용법 : [명령어1] | [명령어2] - 예시 : ls -l / 실행 시 "lib" 라는 단어만 찾아서 출력 = ls -l / | grep lib b. 교집합(AND) - 정의 : 1번 명령어 실행 후 2번 명령어 실행 - 형식 : [1번 명령어] && [2번 명령어] - 예시 (1) 가능 예시: {1} ls / && ls -l /tmp {2} ls /tmp && ls /kor (/kor 경로는 없지만 앞 명령어가 성립하므로 가능) (2) 불가능 예시 : ls /kor && ls -l /tmp (/kor 경로가 없기 때문에 실행X.. 2021. 4. 12.
[리눅스1] [#07. 명령어의 절대 경로] - which 7. 명령어의 절대 경로 - 확인 : which - 특징: (1) 환경변수(PATH) 에 등록한 경로에서 검색 (2) alias에 등록한 경우에는 설정한 내용까지 확인 가능 2021. 4. 12.
[리눅스1] [#06. 기초명령어]- shellcommand, 명령어 구조, 접속자확인, 경로, 파일내용 확인, 단축어 명령어 형식 6. 기초 명령어의 이해 a. shell command 이해 - 출력: [root@localhost ~]# - 사용자 계정명: root - PC 이름(호스트명) : localhost - 현재 경로 : ~ (사용자의 root directory) - 계정 형식 : (1) # : root (2) $ : 일반 b. 명령어 구조: [명령어] [옵션] [인자값] c. 나는 누구인가? - Kernel Version: uname -r - 접속자 확인 : (1) 나는 누구인가? : who am i (2) 전체 접속자 확인 : who - 구분: (1) tty : Console (직접 접속) (2) pts : Remote (원격 접속) 위의 경우에는 원격접속한 사용자가 없기 때문에 직접 접속한 나 자신인 tty1만 출력됨... 2021. 4. 12.
[자료구조] by C언어 #12 [연결리스트] ㅡㅡㅡㅡㅡ #include #include //연결리스트를 구현할 구조체 typedef struct NODE{ int data; struct NODE* next; }node; int main(void) { node* head = (node*)malloc(sizeof(node)); // 헤드(시작)노드 생성 head->next=NULL; // 머리 노드의 next값은 NULL이다. // 노드연결 node* node1 =(node*)malloc(sizeof(node)); // 노드생성. node1->next = head->next; //노드연결. // node1의 다음주소는 머리노드가 가리키던 다음주소(NULL)를 저장. node1->data =10; // node1의 데이터에는 10을 저장. head->n.. 2021. 4. 9.
[Python] 예제 - 등비수열 찾기 #시작 값(a), 등비(r), 몇 번째인지를 나타내는 정수(n)가 입력될 때 #n번째 수를 출력하는 프로그램을 만들어보자. ㅡㅡㅡㅡㅡ a, r, n= map(int, input("시작 값(a), 등비(r), 몇번째(n)항을 출력할 것인지 입력:").split()) sum=a*(r**(n-1)) print("일반항은 {}*({}**(n-1)이고 {}번째 항은 {}입니다.". format(a, r, n, sum)) ㅡㅡㅡㅡㅡ 2021. 3. 30.
[자료구조] by C언어 #09 [stack 구조] Stack 구조 - 후입선출(LIFO; Last In First Out)의 구조 - 저장된 데이터의 역순으로 데이터를 처리함 - ‘짐을 쌓아올린 형태’라는 의미의 구조 - 데이터의 저장은 push (밀어 넣기)라고 하며, 데이터의 처리는 pop (꺼내기)이라고 한다. 예) 인터넷 탐색의 ‘뒤로가기’ 기능 ‘실행취소’ 기능 텍스트 입력 커서 STACK 메모리 영역 (변수의 선언, 함수의 return) CPU의 연산 길 찾기 ㅡㅡㅡㅡㅡ #include #include #include #define MAX 8 #define TRUE 1 #define FALSE 0 void stack_test01(); void stack_test02(); int push(int data); int pop(); int arr[M.. 2021. 3. 30.
[Python] - 예제 [삼각형 만들기] ㅡㅡㅡㅡㅡ num=int(input("숫자 입력:")) for i in range(0, num): for j in range(0, num): if j 2021. 3. 29.
[Python] 예제 [사각형 출력하기 #1 ] ㅡㅡㅡㅡㅡ num = int(input("숫자를 입력하시오:")) # 입력한 수를 num에 저장. for i in range(1,num+1): for j in range(1, num+1): print("*", end=“”) # end=“” 로 처리함으로써 줄바꿈이 일어나지 않도록 설정. print("\n"). # 한줄이 끝날 때 줄바꿈(i의 값이 증가할 때 마다) ㅡㅡㅡㅡㅡ 2021. 3. 29.
[자료구조] by C언어 -#08 [Quick sort] ㅡㅡㅡㅡㅡ #include #include #include #define SWAP(a, b) { int c = a; a = b; b = c; } // "교환" #define MAX 10 void quick_sort(int* arr, int start, int end) { // arr=숫자열 / start: 0부터. / end: MAX-1 = 9부터.// int pivot = arr[(end + start) / 2]; // (0+9)/2 => 4. pivot에 4 저장. int i = start; // i에 0저장. int j = end; // j에 9저장. while (i 2021. 3. 29.
[자료구조] by C언어 #07 [insertion sort] 삽입 정렬 알고리즘 (Insertion Sort) : 앞의 원소부터 차례대로 진행하여 원소 앞의 이미 정렬된 배열에 자신의 위치를 삽입하는 알고리즘 시간복잡도 : O(n**2) ㅡㅡㅡㅡㅡ #include #define MAX 8 void print_array(int list[], int n) { int i; for (i = 0; i remember; --j) // .. 2021. 3. 28.
[자료구조] by C언어 -05- [Merge Sort, Quick Sort] 합병 정렬 알고리즘 (Merge Sort): 정렬할 배열을 더 이상 나눠질 수 없는 배열로 나누어(Divide) 배열 단위별로 정렬(Conquer)해 나가는 알고리즘. 시간 복잡도 : O(n log n) ㅡㅡㅡㅡㅡ #include #define MAX 8 int tmp[MAX]; void merge(int list[], int left, int mid, int right) { int l_idx, r_idx, c_idx, t_idx; // l_idx : 왼쪽 배열의 커서 // r_idx : 오른쪽 배열의 커서 // c_idx : 작은수가 들어가야하는 배열의 현재 위치 // t_idx : 남은 원소를 한꺼번에 저장할 때 사용할 임시 인덱스 l_idx = c_idx = left; r_idx = mid + 1;.. 2021. 3. 27.
728x90