분류 전체보기 42

[생활코딩 리눅스 강의 정리] 섹션 2. IO Redirection

해당 글은 생활 코딩 이고잉님의 강의를 듣고 일부만을 정리한 글입니다. Intro 유닉스 프로세스에는 1개의 standard input, 2개의 output(standard output, error)이 존재한다. Output 1> 기호를 사용해서 standard output, 2> 기호를 사용해서 standard err를 리다이렉션 할 수 있다. # result.txt는 비어있고 error.log에 오류 메시지 출력 rm nofile.txt 1> result.txt 2> error.log >> 기호는 redirection한 결과를 append 한다. standard output을 모니터에도, 파일에도 보내고 싶지 않다면 /dev/null로 리다이렉션하면 된다. Input cat은 기본적으로 키보드 입력을..

[생활코딩 리눅스 강의 정리] 섹션 1. 리눅스 기초

해당 글은 생활 코딩 이고잉님의 강의를 듣고 일부만을 정리한 글입니다. --help와 man man 명령어를 통해 명령어의 사용법을 알 수 있다. 어떤 단어를 검색하고 싶다면 /를 입력 후 검색어를 입력한다. n을 통해 next occurrence로 넘어갈 수 있다. man을 종료하고 싶다면 q를 입력한다. sudo(super user do) 유닉스 계열의 운영체제들은 multi-user system이라는 특징을 가지고 있다. rm -rf /와 같은 심각한 명령을 처리하기 위해서는 super user 또는 root user의 권한을 가지고 있어야 한다. sudo는 잠시 super user의 권한으로 명령을 처리할 수 있게 해주는 커맨드이다. Package manager 패키지라는 것은 프로그램 또는 애플..

[리눅스 바이블] 16. 스크립트 제어

신호 처리 bash 쉘에게 전달되는 신호 다음은 널리 쓰이는 리눅스 신호이다. 신호 값 설명 1 SIGHUP 프로세스를 끊는다 2 SIGINT 프로세스를 중지시킨다 3 SIGQUIT 프로세스를 중단시킨다 9 SIGKILL 무조건 프로세스를 종료한다 15 SIGTERM 가능하면 프로세스를 종료한다 17 SIGSTOP 무조건 프로세스를 중단하지만 종료하지는 않는다 18 SIGSTP 프로세스를 중단 / 일시 중지하지만 종료하지는 않는다 19 SIGCONT 중단되었던 프로세스를 계속한다 신호 만들기 프로세스를 중지시키는 SIGINT 신호를 만들어내기 위해서는 Ctrl + C 키 조합을 누른다. 프로세스를 일시 중지시키는 SIGSTP 신호를 만들어내기 위해서는 Ctrl + Z 키 조합을 사용한다. ps를 통해 실..

[리눅스 바이블] 15. 데이터 보여주기

입력 및 출력 이해하기 리눅스 시스템은 모든 개체를 파일로 다루며 파일 디스크립터를 사용하여 각 파일 개체를 식별한다. 각 프로세스는 한 번에 최대 9개의 파일 디스크립터를 열 수 있다. 파일 디스크립터 0은 STDIN 파일 디스크립터 1은 STDOUT 파일 디스트립터 2는 STDERR STDIN 파일 디스크립터는 쉘의 표준 입력을 의미한다. 터미널 인터페이스에서 표준 입력은 키보드이다. STDOUT 파일 디스크립터는 쉘의 표준 출력을 뜻한다. 터미널 인터페이스에서 표준 출력은 모니터이다. STDERR 파일 디스크립터는 쉘의 표준 오류 출력을 의미한다. 기본적으로 STDOUT 파일 디스크립터와 같은 곳을 가리킨다. 오류만 리다이렉트하기 위해서는 2> 기호를 사용한다. 정상 출력을 리다이렉트하기 위해서는 ..

[리눅스 바이블] 14. 사용자 입력 처리

매개변수 전달하기 쉘 스크립트에 데이터를 전달하는 가장 기본적인 방법은 커맨드라인 매개변수를 사용하는 것이다. 쉘 스크립트내에서 $1, $2와 같이 아홉번째 매개변수인 $9까지 사용할 수 있다. 아홉번째 매개변수 이후에는 ${10}과 같이 변수의 번호 주위에 중괄호를 사용해야 한다. 각 매개변수는 빈 칸으로 구분되므로 매개변수 값에 빈 칸을 포함하려면 따옴표를 사용해야 한다. 스크립트의 이름은 $0에 저장되어 있다. 다만 스크립트를 어디에서 실행하느냐에 따라 다른데, $0 변수는 스크립트의 전체 경로 및 이름으로 설정된다. #!/bin/bash echo "The zero parameter is set to $0" 위의 파일을 bash /home/user/test.sh와 같이 실행하게 되면 /home/us..

[리눅스 바이블] 13. 반복문 사용하기

for 명령 다음은 bash 쉘 for 문의 기본 형식이다. for var in list do commands done #!/bin/bash for test in A B C D E do echo "test: $test" done 다만 목록안에 홑따옴표(')가 있다면 bash 쉘은 이를 구분자로 인식한다. 따라서 \를 써서 이스케이프 처리를 해주거나, 곁따옴표로 둘러싸야 한다. 또는 우리가 원하는 데이터 값 사이에 빈칸이 있다면 이를 겹따옴표로 감싸야 한다. 직접적인 목록말고도 명령의 출력을 사용할 수도 있다. #!/bin/bash file="states" for state in $(cat $file) do echo "Visit beautiful $state" done 위처럼 명령의 출력을 읽을 때도 구분..

DeepFM: A Factorization-Machine based Neural Network for CTR Prediction 리뷰

논문 링크: https://arxiv.org/abs/1703.04247 DeepFM: A Factorization-Machine based Neural Network for CTR Prediction Learning sophisticated feature interactions behind user behaviors is critical in maximizing CTR for recommender systems. Despite great progress, existing methods seem to have a strong bias towards low- or high-order interactions, or require expertise featu arxiv.org 본 논문은 Wide & Deep L..

[리눅스 바이블] 12. 조건문 사용하기

if-then 구문 사용하기 구조적 명령의 가장 기본은 if-else 구문이다. 형식은 다음과 같다. if command then command1 command2 ... elif command then command3 command4 ... else command5 command6 ... fi 일반적인 프로그래밍 언어에서는 if문 다음에 오는 객체는 True/False 값을 평가하는 표현식이나, bash 쉘의 if문은 그 줄에 정의된 명령을 실행한다. 이 명령의 종료 상태가 0이라면 then 뒤에 명령이 실행되고, 0이 아니라면 실행되지 않는다. test 명령 사용하기 위의 방법은 bash의 if-then 구문이 명령의 종료 상태 코드말고도 다른 조건은 평가할 수 없다. 하지만 test 명령을 사용함으로..

[리눅스 바이블] 11. 스크립트 구축의 기초

여러 명령 사용하기 두 개의 명령을 함께 실행하고 싶다면 같은 프롬프트 라인에 세미콜론(;)으로 둘을 구분하여 입력한다. 스크립트 파일 만들기 쉘 스크립트 파일을 만들 때에는 파일의 첫 번째 줄에 사용하고 있는 쉘을 지정해야 한다. #!/bin/bash date whoami 보통의 쉘 스크립트 라인에서 #은 주석으로 사용되지만, 첫 번째 줄은 # 기호 다음에 느낌표를 쓰면 쉘에게 이 스크립트가 어떤 쉘에서 실행되는지를 알려준다. 스크립트 파일을 실행하기 위해서는 PATH 환경변수안에 있는 쉘 스크립트 파일이 있는 디렉토리를 추가하거나, 프롬프트에서 쉘 스크립트 파일의 절대/상대 경로를 명시해야 한다. 또한 쉘이 쉘 스크립트 파일을 실행하기 위해서는 실행권한을 줘야하는데, 주로 chmod 명령을 사용한다...

[리눅스 바이블] 8. 파일시스템 관리하기

리눅스 파일시스템 살펴보기 기본적인 리눅스 파일시스템 이해하기 리눅스 OS와 함께 도입된 원래의 파일시스템은 확장 파일시스템(ext)로, 이 시스템은 물리적 장치를 다루기 위해서 가상 디렉토리를 사용하며 물리적 장치에 고정 길이의 블록을 이용해서 데이터를 저장하는 유닉스와 비슷한 파일시스템을 리눅스에 제공한다. ext 파일시스템은 가상 디렉토리에 저장되어 있는 파일에 대한 정보를 추적하기 위하여 아이노드(Inode)라는 시스템을 사용한다. 아이노드 시스템은 각각의 물리적 장치마다 파일 정보를 저장하기 위해 아이노드 테이블이라는 것을 만드는데, 가상 디렉토리에 저장되는 각 파일은 아이노드 테이블에 항목을 가진다. 리눅스는 데이터 파일이 만들어질 때 파일시스템이 할당하는 고유한 번호(아이노드 번호)를 써서 ..