본문 바로가기
반응형

프로그래밍/리눅스9

Shell script STDOUT vs STDERR (2>&1) Bash shell에서는 표준출럭(stdout) 과 표준에러(stderr)이 있습니다. 서로 출력을 해주는 것이지만 성격이 다릅니다. 이것들을 설명해보고자 합니다. 1.File descriptor STDIN 0 STDOUT 1 STDERR 2 파일 디스크립터는 파이프, FIFO, 소켓, 터미널, 디바이스, 일반파일 등 종류에 상관없이 모든 열려있는 파일을 참조할때 쓴다. 2. STDOUT vs STDERR 해당 출력은 stdout에 해당될까? stderr에 해당될까? 답은 stdout에 해당되는 출력입니다. 해당 출력은 stderr에 해당되는 출력입니다. 두개의 공통점은 출력을 해주고 있는 것이죠. 하지만... 쉘 스크립트를 만들어 실행시키다 보면 해당 문구가 정상 출력 문구인지, 에러 출력 문구인지 구.. 2021. 9. 26.
Linux awk 사용법 및 응용법. awk에 대한 설명이 많고, 1. awk 란? AWK(오크;Aho Weinberger Kernighan)는 유닉스에서 처음 개발된 일반 스크립트 언어입니다. AWK라는 이름은 이 스크립트 언어를 만든 앨프리드 에이호, 피터 와인버거, 브라이언 커니핸 세 명의 성의 앞글자를 따서 붙여졌다고 합니다. AWK의 기본 기능은 텍스트 형태로 되어있는 입력 데이터를 행과 단어 별로 처리해 출력하는 것입니다. awk는 기본적으로 하나의 행을 레코드(Record)로 바라보며 처리합니다. awk는 처리방식도 특이하고, 명령어를 스크립트처럼 사용할 수 있는 것이 특징입니다. 즉, 입력을 주어진 분리자(field seperator)로 분리하여 명령을 처리합니다. 2. awk 명령어 awk는 기본적으로 문장을 문자 단위로 나.. 2021. 7. 20.
리눅스 파이프(pipe) 에 대한 설명 ( '|' ) 리눅스에서 저희는 파이프( | )를 자주 사용합니다. 이 파이프에 대해 알아보려고 합니다. 그럼 우선 리눅스 명령이 어떤식으로 실행되는지 알아야 합니다. 1. 리눅스 쉘 사용자는 리눅스 커널과 통신하기 위해서 리눅스 쉘이라는 녀석을 사용합니다. 정확히는 커널과 운영체제를 이어주는 녀석입니다. 기본적으로 리눅스를 사용하는 환경은 /bin/bash 라는 쉘을 사용합니다. 일명 배쉬쉘.... 자신이 어떤 쉘을 사용하는지 확인하려면 다음과 같은 명령어를 입력해주시면 됩니다. # echo $SHELL 저희가 이런 쉘을 사용하기 위해서 터미널 창을 열게 됩니다. 이런 터미널은 하나의 프로세스입니다. 그리고 'ls', 'cd', 'cat' 등의 명령어는 이 터미널이 갖고있는 정보를 기준으로 실행되게 됩니다. 2. 리.. 2021. 3. 31.
c++] make, makefile의 사용방법(기본적인 설명) 1. makefile 이란?? 요 세개의 파일이 있다고 가정해 봅시다. 우리는 아래와 같은 명령어를 통해 실행파일을 만들어낼 수 있습니다. $ g++ -c test1.cpp add.cpp -> test1.o, add.o 파일 생성(오브젝트 파일) $ g++ -g test1.o add.o -> a.out 파일 생성(실행 파일) or $ g++ test1.cpp add.cpp -> test1.o, add.o, a.out 파일 생성 이렇게 된다면 해당 폴더 안에는 6개의 파일이 존재하게 됩니다. 그런데 만약에 헤더 파일을 바꾸거나, mius.cpp라는 코드가 추가되거나, 동적 라이브러리를 추가하게 되거나 등.... 다시 컴파일 해야할 일이 생깁니다. 또한 .o(오브젝트 파일)은 쓸모가 없어고 보기에도 폴더 자.. 2020. 5. 18.
gcc/g++ 분할 파일 컴파일 하기. C언어. 1. 함수 등록. 123456789101112// test.c #include int add(int a, int b); int main(){ printf("%d\n", add(1, 2)); return 0;} cs 123456// add.c int add(int a, int b){ return a + b;} cs 명령어. $ gcc test.c add.c (오브젝트 파일 과정과 실행파일 지정 생략 가능) 2. 헤더 파일선언 1234567891011// add.h #ifndef _ADD_H_#define _ADD_H_ #include int add(int a, int b); #endif cs 123456// add.c int add(int a, int b){ return a + b;} cs 123.. 2020. 5. 17.
gcc / g++ 사용법과 설명 1. 소개. GNU 프로젝트에 의해 개발되었으며, 현제는 여러 언어를 컴파일하는 컴파일러입니다. 여기서!!컴파일 : 고급언어(C, C++, JAVA, etc...)를 컴퓨터가 알아먹을 수 있도록 하는 일련의 과정을 뜻함.컴파일러 : 고급언어(C, C++, JAVA, etc..)를 기계어(어셈블리어)로 바꿔주는 프로그램을 뜻함. 리눅스에 "test.c" 라는 C 파일이 있고 이를 GCC로 컴파일해보겠습니다. 이런식으로 진행이 됩니다. 그럼 전처리가 진행되는 부분부터 살펴보도록 하겠습니다. gcc와 g++ 사용법과 다른것은 그냥... C언어면 gcc 사용하면되고 C++파일이면 g++로 사용심 됩니다. 2. 전처리 전처리란?? #include, #define, typedef, extern 과 같은 것들이 정의.. 2020. 5. 17.
리눅스(Ubuntu18.04 ver) .bashrc, .profile, .bash_profile, .vimrc 가 없을 경우!! 리눅스를 사용하다보면 예상치 못하게 파일이 날아갈 때가 있습니다. 또 이것 저것 설치하다가 지우고를 반복하다보면 사용중인 계정(/home)에 있는 디렉토리 혹은 파일들이 없어져 있을 때도 있죠. 사용자 계정을 새로 만들고 그 계정에 들어갔는데 정말 아무것도 없을 때도 있죠.... 분명히 없는 이유는 있지만 리눅스에 익숙하지 않은 사람들에겐 상당히 당황스럽고 짜증나는 일입니다. 제목에서 볼 수 있듯이 .bashrc, .profile, .bash_profile 같은 기본 shell 코드가 없어질 때도 있습니다. 특히 root계정은 괜찮은데 user 계정이 말썽이죠..... 그래서 user계정을 사용하고 있는데 .bashrc, .profile, .bash_profile 파일들이 없어졌을 때 해결방법을 알려드리.. 2019. 8. 29.
Ubuntu 18.04 버전 인터넷 자꾸 끊길 때 자동 Reset해주는 프로그램. 안녕하세요? 저는 현재 Ubuntu 18.04 버전을 사용하고 있습니다. 그리고 공부할 때 원격접속(ssh)를 통해서 리눅스를 사용하고 있습니다. 근데 사용하다보면 간혹 인터넷 연결이 끊길 때가 있습니다. LAN선은 잘 물려있는데 말이죠... 즉, 하드웨어적으론 정상인데 소프트웨어 적으로 끊긴다는 뜻입니다. 해결 방법은 '$ reboot' 명령어로 리눅스를 재시작 하거나, '$ sudo service network-manager restart' 명령어를 입력해 줘서 리눅스의 network를 restart하는 방법이 있습니다. 근데 집에서 리눅스를 켜놓고 밖에 나와서 접속하려고 할 때 연결이 위와 같은 현상으로 끊기게 되면 아무것도 못하게 됩니다..... 집에 누군가가 있다면, 전화로 LAN선을 뺏다 꽂으.. 2019. 8. 25.
Linux] tar 정의 및 사용방법 tar이라는 녀석은 Unix, Linux의 명령어 입니다.이녀석의 주 역할은 여러개의 파일을 하나로 묶는 역할을 합니다.(압축이 아닙니다.) 탄생배경은 1979년 AT&T 벨 연구소에서 만들었으며 마그네틱 테이프(자기 테이프)에 파일을 저장하기 위해 만들어 졌습니다.그리고 요즘은 주로 백업, 관리, 배포 등의 목적으로 사용됩니다.때문에 Tape archive의 준말로 tar이 되었으며 tarball이라고도 불립니다. 위 사진은 test.c, test_2.c, test_3.c 파일 3개를 test.tar로 묶은 결과입니다.보시면 test.tar의 크기가 더 커진걸 알 수 있습니다. 그 이유는 tar로 파일을 묶게되면 각 파일마다 헤더가 붙게 됩니다.각 해더는 512블록으로 이뤄져 있으며 filed offs.. 2019. 8. 18.
반응형

스킨편집 -> html 편집에서