본문 바로가기

잡다한 기술

(84)
[Ubuntu] 우분투 쉘 스크립트 사용방법 # 쉘 스크립트 - 쉘 스크립트를 만드는 방법$ vim 이름.sh # "#!"의 의미 #!는 해당 문서의 인터프리터를 구분하기 위한 구문이다.아래는 인터프리터 마다 사용되어지는 #!의 예시다 #!/bin/sh #!/bin/csh -f#!/usr/bin/perl -T #!/usr/bin/php #!/usr/bin/python -O #!/usr/bin/ruby # sh의 매개변수 쉘 스크립트를 사용하다 보면사용자마다 매게변수를 받아 사용하고 싶은 경우가 있다. $ sudo sh 이름.sh 매개변수1 매개변수2 .... 이런식으로 말이다.그렇다면 셀스크립트에선 어떻게 받아야 할까? 간단하다. $1 : 첫번째 매개변수 의미$2 : 두번째 매게변수 의미... 이런 방식으로 매개변수를 받아 사용하면된다. 하지만 $..
[Ubuntu] 우분투 도커를 이용해서 Mysql 접속 # 도커로 mysql 접속하는 방법 도커 접속 $ sudo docker exec -it mysql bash mysql 접속 $ mysql -u root -p 그 후 사용자 비밀번호를 입력하면 접속이 된다. # 마무리 위 포스트는 제가 직접 제작한 것 입니다.그렇기 때문에 틀린점이나 설명이 엉성한 점이 존재할 수 있습니다.만약 틀린점이나 설명이 엉성한 부분이 존재하면 댓글로 알려주세요.빠른 처리 하도록 하겠습니다. 티스토리 앱으로는 댓글 이용이 불가능 하므로 웹 브라우저로 봐 주세요(URL : http://junprogramer.tistory.com/) 읽어주셔서 감사합니다.
[Ubuntu] 우분투 쉘 스크립트에서 날짜 출력하는 방법 # 날짜 출력 방법 쉘 스크립트에서 날짜를 출력해야될 경우가 있다.그럴경우 아래와 같이 사용이 가능한다. - 년을 출력하고 싶은 경우$(date '+$Y') - 월을 출력하고 싶은 경우$(date '+$m') - 일을 출력하고 싶은 경우 $(date '+$d') -년월일을 같이 출력하고 싶은 경우$(date '+$Y$m$d') 위와 같이 사용이 가능하다.또한 날짜도 수정이 가능하다. - 현재 년도로 부터 1년 뺀 날짜를 출력하고 싶은 경우$(date --date '-1 year' +%Y) - 현재 달로 부터 1달 뺀 날짜 출력$(date --date '-1 month' +%m) - 현재 일로 부터 1일 뺀 날짜 출력$(date --date '-1 day' +%d) # 마무리 위 포스트는 제가 직접 제작한..
[Ubuntu] 우분투에서 Mysql데이터를 CSV로 만들기 # 예시 - 첫번째 예시 $ mysql -p my_db -e "SELECT * FROM my_table" | sed 's/\t/","/g;s/^/"/;s/$/"/;' > my_table.csv - 두번째 예시(쉘 스크립트에서 가능) #!/bin/bash db=YOUR_DBuser=YOUR_USERpass=YOUR_PASS for table in $(mysql -u$user -p$pass $db -Be "SHOW tables" | sed 1d); do echo "exporting $table.." mysql -u$user -p$pass $db -e "SELECT * FROM $table" | sed 's/\t/","/g;s/^/"/;s/$/"/;' > $table.csvdone # 마무리 위 포스트는 제가..
[Ubuntu] 우분투 16.04에서 로컬 SMTP 만드는 방법 # 여는글 웹서비스를 사용할 경우 메일을 자주 이용한다.필자도 메일을 사용해야되는 경우가 발생하여로컬 SMTP를 이용해 메일 시스템을 구축하기로 마음 먹었다. 하지만 필자의 우분투는 16.04 를 사용하는데다른 우분투들과 호환이 안되는 경우가 발생하였다.때문에 많은 시행착오를 통해 여차저차해서 구현했는데,어떻게 구현했는지 자세히 알아보자. # 로컬 SMTP 셋팅 먼저 우분투에 apt-get을 한번 업데이트 하자.(하지만 필자는 실제 업데이트시 오류가 발생하여 패스하였다.) $ sudo apt-get update 기본적으로 깔아야할 패키지는 mailutils 하나인데 이것이 오지게 에러를 발생하여 고생했다.하지만 오류를 무서워 하지 말고아래 방법을 따라오면 잘 될것이라 확신한다. 그럼 mailutils를 ..
[Ubuntu] 우분투에서 screen(스크린) 사용 방법 # 스크린(screen)이란? 스크린(screen)이란 우분투에서 가상의 우분투를 하나 더 만들어 주는 기능이다.예를 들어 어떤 한 컴퓨터에 같은 게임 두개를 돌리고 싶다.하지만 게임 클라이언트 자체적으로 같은 게임 클라이언트를 돌리수 없게 만들어져 있다.그렇다면 컴퓨터를 하나 더 사서 돌려야 할까?답은 아니다.가상의 컴퓨터를 하나 더 만들어서 거기다가 돌리면 된다. 즉 스크린은 우분투를 하나 더 만드는 것이다.때문에 하나의 컴퓨터에서 두개 또는 세개 아니면 여러개의 우분투가 돌아갈 수 있다. 간단히 생각하면 백그라운드에서 돌아가는 우분투이기 때문에스크린을 사용하지 않고 서버에 로그인 후 특정 프로그램을 실행시키고로그아웃하면 세션 종료로 인해 해당 프로그램이 자동으로 꺼지는데스크린을 이용하면 스크린이 가..
[Ubuntu] 우분투에서 크론탭 사용방법 # 여는글 시간에 따라 반복 작업을 해야하는 경우가 존재할 수 있다.그럴때 윈도우에서는 윈도우 스케쥴러를 이용하면 된다.하지만 우분투에선 무엇을 이용해야 할까?바로 크론탭이다. # 크론탭 사용법 위에서 말했다시피 크론탭을 사용하면 우분투에서도 반복 작업이 가능하다.주로 쉘 스크립트(.sh)를 작성하고 그 다음 크론탭에 해당 쉘 스크립트를 등록하여설정된 시간에 따라 쉘 스크립트를 사용하도록 만드는 일을 크론탭이 한다. 크론 탭을 사용하기에 앞서 먼저 크론탭 명령어들을 살펴보자 크론탭을 사용할 때 보통 아래에 네가지 명령어를 사용한다. - 크론탭 리스트 확인$ crontab -l - 다른 사용자의 크론탭 리스트 확인$ crontab -l -u 유저명 - 크론탭 등록 및 수정$ crontab -e - 크론탭 ..
[Javascript] 자바스크립트로 클론 만드는 방법 # 코드 - 객체 또는 배열 클론 만들기 Array.from(document.querySelectorAll('li')).forEach(li => { }) > 제이쿼리의 $('li').each(() => {$(this) // li element}) 함수랑 같은 역활을 한다.제이 쿼리가 아닌 순수 자바스크립트로는 위와 같이 구현을 한다.querySelectorAll() 함수는 유사배열을 반환한다. Array의 프로토타입 함수를 사용하려면 Array.form() 함수를 이용해서 유사배열을 배열로 변환해야한다. 이후에Array.protototype.foreEach() 함수를 이용해 li 엘리먼트를 순회할 수 있다.Array.prototype에는 map(), reduce(), every(), some() 등 lo..