반응형

리눅스 28

칼리리눅스(kali linux) - static 네트워크 설정

칼리리눅스(kali linux) - static 네트워크 설정 virtualbox를 통해서 칼리리눅스를 설치하였습니다. 처음 칼리리눅스를 설정했을 때 바로 네트워크가 되지 않을 때 네트워크 설정을 확인해볼 수 있습니다. * 처음 네트워크 설정은 브리지 네트워크 입니다. (host OS와 guest OS가 동등한 네트워크를 사용합니다.) * 그래서 c클래스가 host OS와 같습니다. 처음 ifconfig로 설정을 확인해봤을 때 localhost 주소인 127.0.0.1만 뜨고 인터넷 연결이 안됩니다. vi /etc/network/interfaces를 입력하여 다음 창으로 접속해 아래와 같이 작성합니다.(이때 설정하고자 하는 ip주소와 서브넷마스크, 게이트웨이를 입력합니다.) dns-nameservers의..

C & Docker & LINUX 2017.09.23

리눅스 커널) 모듈 프로그래밍(읽기 쓰기가 가능한 Character Device 모듈 구현)

읽기 쓰기가 가능한 Character Device 모듈 구현 내용 : 리눅스 커널 2.6.36 버전에서 간단한 character device와 그 device driver를 만드는 커널 모듈을 제작한다. 1. 루트 권한을 획득한다. 2. 홈 디렉터리 밑에 module 이라는 디렉터리를 생성하고 그 디렉토리로 이동한다. 3. #yum install -y module-init-tools를 수행한다. 4. #cp minibuf.c minibuf2.c를 수행한다. 5. vi minibuf2.c를 수행하여 기존 코드의 device_write() 함수 내부를 아래와 같이 작성한다. #define DEV_MAJOR 254 #define DEV_MINOR 6 ssize_t device_write(struct file ..

C & Docker & LINUX 2017.05.10

리눅스 커널) 모듈 프로그래밍(간단한 Char Device 모듈 구현)

간단한 Char Device 모듈 구현 - 커널 모듈 프로그래밍** 리눅스 커널 2.6.36 버전에서 간단한 character device와 그 device driver를 만드는 커널 모듈을 제작한다. 1. 루트 권한을 획득한다. 2. 홈 디렉터리 밑에 module 이라는 디렉토리를 생성하고 그 디렉토리로 이동한다. 3. #yum install -y module-init-tools를 수행한다. 4. #vi minibuf.c를 수행하여 아래와 같이 코딩한다. #include #include #include #include #include #include #include #define DEVICE_NAME "Minibuf" #define BUFFER_LEN 1024 #define DEV_MAJOR 254 #..

C & Docker & LINUX 2017.05.01

리눅스 커널 컴파일

리눅스 커널 컴파일 전체적인 순서 (Centos 기준)1. 루트 권한 획득 후 커널 버전 확인 및 필요 패키지 설치2. 커널 소스코드 다운로드3. 기존 커널 옵션 초기화4. 커널 옵션 설정5. 새 커널 컴파일 및 설치6. 재부팅 1. 루트 권한 획득 후 현재 커널 버전 확인 및 필요 패키지 설치#su root -> 패스워드 입력 이후 루트 권한 획득 #uname -r 현재 커널의 버전 확인 #yum install -y gcc* ncurses-devel 커널 컴파일을 위한 패키지 설치 2. 커널 소스코드 다운로드- http://www.kernel.org/pub/linux #mv ./Desktop/linux-2.6.36.tar.gz /usr/src 다운로드 받은 커널을 /usr/src로 이동#cd /usr/..

C & Docker & LINUX 2017.04.25

c언어 - stdout, stderr의 차이점

c언어 stdout, stderr의 차이점****리눅스 Centos6에서 실행한 c언어 코딩이므로 다를 수 있습니다**** stdout - 표준 출력 stderr - 표준 에러 둘 다 콘솔화면에 출력하기 때문에 출력부분에서는 큰 차이가 없습니다. 하지만 표준 출력과 표준에러에서 가장 큰 차이점은 버퍼링입니다. 표준 출력(stdout)은 줄 단위의 버퍼링을 하지만 표준 오류(stderr)는 버퍼링 없이 바로 출력됩니다. 즉, 표준출력은 한 줄을 완성해야하고 표준 오류의 경우 한 줄이 완성되지 않아도 출력이 가능합니다. 예를 들면 charstr1과 charstr2로 구성된 c파일에서 순서대로 출력이 됩니다. 주의 깊게 봐야할 부분은 printf문입니다. printf문의 경우 변환명세 부분의 \n(개행문자)이..

C & Docker & LINUX 2016.10.11

리눅스 C언어 (파일 목록 읽어내기)

리눅스 C언어 (파일 목록 읽어내기) 리눅스 디렉터리 구조체 struct dirent 헤더 파일 dirent.h에는 디렉터리의 구조를 구조체 dirent로 정의하고 있다. struct dirent { long d_ino; //I-노드 번호 off_t d_off; //offset unsigned short d_reclen; //파일 이름 길이 char d_name[NAME_MAX+1]; //파일 이름 } 디렉터리 파일을 읽어 내려면 단순히 파일을 열어 저장된 구조체를 하나씩 읽으면 된다. 삭제된 파일의 i-노드 번호가 0이 된다. opendir 함수는 변수 dirname에 지정된 디렉토리 스트림을 열어 처음을 가리킨다. 함수 #include DIR *opendir(const char *dirname); 반..

C & Docker & LINUX 2016.10.08

리눅스 쉘 스크립트 예제(alias, csh, 구구단, 피보나치수열)

리눅스(Centos 6 * 7) - 쉘 스크립트 예제(alias, csh, 구구단, 피보나치수열) 예제 1번 새로운 파일 삭제 명령 del명령을 alias을 이용하여 만들어 보시오. (단. del명령은 실제로 파일을 삭제하지 않고 특정 디렉터리(휴지통)으로 옮긴다.) 답: rm 명령을 통해서 삭제를 하면 휴지통을 거치지 않고 바로 완전삭제가 됩니다. del명령은 mv명령을 통해서 휴지통으로 옮기는 명령으로 만들 수 있습니다. 리눅스에서 휴지통의 경로는 cd 홈/계정/.local/share/Trash/files입니다. mv의 옵션으로 -t가 있습니다. 옵션의 기능은 전체 원본 파일을 대상 디렉터리로 이동시킵니다. 예제 2번 csh를 사용할 때에도 프롬프트에 호스트의 이름이 나올 수 있도록 만들어 보시오. ..

C & Docker & LINUX 2016.10.07

alias를 이용하여 파일 휴지통 이동(mv, rm)

alias를 이용하여 파일 휴지통 이동(mv, rm) 리눅스에서 rm명령을 이용하여 파일을 삭제하는 경우 복구가 어렵습니다. 윈도우에서 파일을 삭제하면 휴지통으로 이동하는 방식과 달리 리눅스의 rm명령은 바로 영구삭제입니다. 그래서 alias를 통해서 새로운 명령어를 만들어 삭제하기 이전에 휴지통에 보관하려고 합니다. alias는 익명, 가명이라는 뜻으로 복합적인 명령어에 가명을 붙여 사용할 수 있습니다. 방법은 mv명령을 통해서 파일을 휴지통으로 이동시키는 것입니다. alias del="mv -t /홈디렉터리/계정/.local/share/Trash/files" OS는 Centos7입니다. ----------------------------------------------------------------..

C & Docker & LINUX 2016.10.04

리눅스 -quotacheck 허가거부, cannot guess foromat from fiilename 에러

quotacheck 허가거부 및 Cannot guess fromat from filename on /dev/~ error Centos6.5로 quota 실습을 진행하던 도중 quotacheck -a -u -m 명령을 입력하면 아래와 같은 에러가 발생하였습니다. quotacheck: Cannot guess format from filename on /dev/xvdc1. Please specify format on commandline. quotacheck: Cannot find filesystem to check or filesystem not mounted with quota option. 그리고 허가 거부라는 에러가 발생하였습니다. 이렇게 말입니다. 구글링을 해도 답이 안 나왔습니다. 해결방법) 위의 ..

C & Docker & LINUX 2016.06.01

리눅스 하드디스크 파티션(fdisk) 및 마운트(mount)하기

리눅스 하드디스크 파티션(fdisk) 및 마운트(mount)하기 fdisk - 하드디스크를 파티션하는 명령어 mount - 리눅스 파일구조와 하드디스크를 연결하는 명령어 mkfs - (파티션 포맷 명령어) 하나의 하드디스크 파티션을 리눅스 파일 시스템으로 만드는데 사용된다 df - 디스크의 잔여공간 조회 ** 리눅스 파티션 , 마운트 하기 - vmware virtual machine을 통해서 열개의 하드디스크를 추가로 설치를 한다 - /dev 디렉터리에서 조회한 추가된 하드디스크 ** 파티션되어 있는 sda 하드디스크를 제외한 10개의 추가 디스크들~ -- sdb 하드디스크 하나를 primary 파티션으로 나누려고 합니다 ** fdisk /dev/sdb 명령을 통해서 sdb하드의 파티션을 진행할 수 있습..

C & Docker & LINUX 2016.05.17
반응형