#!/bin/csh
#
# data extractor
#

set lat = "60 22.77700N"
set lon = "42 54.63700W"

foreach file ( `ls` )
   echo $file
   set clat = `awk '$1=="Latitude" {printf "%s %s",$3,substr($4,1,length($4)-1)}' $file`
   set clon = `awk '$1=="Longitude" {printf "%s %s",$3,substr($4,1,length($4)-1)}' $file`
   # set clat = `cat $file | awk '$1=="Latitude" {printf "%s %s",$3,substr($4,1,length($4)-1)}'`
   # set clon = `cat $file | awk '$1=="Longitude" {printf "%s %s",$3,substr($4,1,length($4)-1)}'`
   if (`echo $lat` == `echo $clat` && `echo $lon` == `echo $clon`) then
      set sl = `cat $file | awk '{if (NR>40 && $1=="//") print NR}'`
      # set sl = `cat $file | awk '{if (NR>40 && $1~/\/\//) print NR}'`
      awk -v sl=$sl 'NR>sl {print}' $file > $file:t:r_ext.txt
      # cat $file | awk -v sl=$sl 'NR>sl {print}' > $file:t:r_ext.txt
   endif
end

'Software > Shell script' 카테고리의 다른 글

[Linux/shell/bash/csh] shell 스크립트 튜토리얼  (0) 2020.01.20

[Jupyter/Python] How to use multi-kernel in jupyter notebook

 

1) make kernel spec

ipython kernelspec install-self --user

 

2) move to kernel spce
cd /home/[user name]/.local/share/jupyter/kernels
ls

 

3) choose kernel

cd python3

or

cd python2

ls

 

4) find out kernel.json and open this file

vi kernel.json

 

5) contents of kernel.json

{

 "_comment": "red is display name to jupyter notebook, blue is language type, green is interpreter(address or command)",
 "display_name": "Python 3",
 "language": "python",

 "argv": [
  "/home/[user name]/anaconda3/bin/python",
  "-m",
  "ipykernel_launcher",
  "-f",
  "{connection_file}"
 ]
}

[AWS/Ubuntu/Linux/Anaconda/Selenium] aws에서 작동하는 selenium 패키지를 활용한 python 실행 파일 만들기

 

aws에서 selenium 패키지를 활용하여 웹 크롤링 혹은 스크래핑을 진행하는 데 있어 정말 여러가지 오류들이 있어서, 이참에 아예 한번 싹 정리해봅니다.

 

아예 완전히 aws 인스턴스를 처음 만들었다고 가정합니다.

관련 페이지: https://omnil.tistory.com/67, https://omnil.tistory.com/144

 

1. 아나콘다 다운로드 및 설치

- 관련페이지의 설명과 같이 Anaconda3-2019.10-Linux-x86_64.sh 이 부분만 원하는 버전으로 바꿔주시면 됩니다.

wget https://repo.continuum.io/archive/Anaconda3-2019.10-Linux-x86_64.sh && sh Anaconda3-2019.10-Linux-x86_64.sh

 

2. 배쉬 리프레시 및 설치파일 제거

source ~/.bashrc && rm Anaconda3-2019.10-Linux-x86_64.sh

 

3. 새 폴더 생성 및 이동

mkdir sandbox && cd sandbox

 

4. unzip과 chromium-browser설치

sudo apt update && sudo apt install unzip && sudo apt-get install -y chromium-browser

 

5. chromium-browser version확인

- 여기서 확인한 버전으로 크롬드라이버를 깔아주어야 합니다.

chromium-browser --version

 

6. (위에서 확인한 버전에 맞는) 크롬드라이버 다운로드, unzip, chromedriver 실행권한 변경 및 기본 path로 이동

- 위에서 확인한 버전에 맞는 크롬드라이버 다운로드 링크는 >>여기<<서 확인하실 수 있습니다.
wget https://chromedriver.storage.googleapis.com/79.0.3945.36/chromedriver_linux64.zip

unzip chromedriver_linux64.zip && chmod +x chromedriver && sudo mv chromedriver /usr/bin/chromedriver && rm chromedriver_linux64.zip

 

7. 크롬드라이버 버전 확인

- chromium-browser --version과 동일해야 합니다.

chromedriver --version

 

8. 파이썬 파일에서 사용할 패키지 설치

pip install selenium telepot

 

9. 스크린 작동

- 스크린에 관련하여서는 >>페이지<< 하단에 자세하게 나와있습니다.
screen -S noti

 

10. 파이썬 파일 실행

- 파이썬 파일 이름은 watch_key.py입니다.

python watch_key.py

 

11. 파이썬 파일 내부에서 selenium을 사용할 경우에는 반드시 아래와 같은 옵션을 주고 드라이버를 실행하여야 합니다.

from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')

driver = webdriver.Chrome(options=chrome_options)

'Software > AWS' 카테고리의 다른 글

[AWS/Linux] wget으로 아나콘다 깔기  (0) 2019.09.20

[python/pandas] read_csv에서 line contains NULL byte 에러

Error-

  Line contains NULL byte

 

원인-

  말 그대로 파일에 NULL 바이트가 섞여서 판다스에서 read_csv로 변환할 수 없다는 에러이다.

  보통 utf-16 인코딩 파일을 읽어오려할 때 발생한다.

 

해결법-

  가장 간단한 방법은 원본파일의 인코딩을 재설정하는 것이다.

  팁으로 가장 간단하게 메모장으로 열어서 인코딩만 바꿔 재 저장해주는 방법이 있다.

  리눅스에서는 

  $ iconv -c -f utf-16 -t utf-8 file.csv > file2.csv

  명령어를 통하여 인코딩을 바꿔줄 수 있다.

  이 경우 추가적으로 file separation을 제대로 못 잡아주는 경우가 생길 수 있다.

  이 경우엔 명시적으로 sep='\t'옵션을 주면 해결되는 경우가 대부분이다.

[python/jupyter/notebook] 주피터 노트북으로 발표하기!

 

주피터 노트북으로 발표할 수 있는 방법은

1] nbviewer

  장점: 온라인으로 바로 보여줄 수 있음, 공유가 쉬움

  단점: 매 강의자료마다 gist로 publish해주어야함, 강의자료 공개, 인터넷 환경 필수

2] nbconvert

  장점: 다른 어떤 조작도 필요없이 커맨드 명령어 만으로 바로 강의자료를 만들어줌

  단점: 컨버팅에 인터넷 환경 필수, 각 강의자료마다 하나하나 변환해주어야 함

3] RISE

  장점: 인터넷 필요 없음, 주피터 노트북만 떠 있다면 바로 주피터를 슬라이드 쇼로 변환가능, 쇼 중간에 셀 실행 가능

  단점: 처음 설치가 까다로움

의 세가지가 있습니다.

그리고 그 전에 각 셀마다 슬라이드 타입을 설정해 주어야 합니다.

 

0] 슬라이드 타입 설정

1) 메뉴바 -> View -> Cell Toolbar -> Slideshow를 클릭

2) 그러면 각 셀 위에 오른쪽에 dropdown메뉴로 slide 타입을 설정할 수 있는 메뉴가 생성

3) 각 셀마다 슬라이드 쇼에서 어떻게 나타낼지를 결정해주면 된다.

  slide : 한 화면에 나올 slide

  sub-slide : 한 화면에 나오는 slide지만 위의 slide에 종속되어 있는 슬라이드. 아래화살표 버튼을 누르면 보여줄 수도 있지만, 바로 슬라이드를 넘김(>)으로 생략할 수도 있다.

  fragment : 한 슬라이드내에서 '나타나기'로 나타나는 조각을 만든다.

  skip : 노트북에서는 보이지만 슬라이드 화면에서 보이지 않는 셀로 만든다.

  notes : 발표시에 참고가능한 노트로 만든다.

4) 저장한다.

 

1] nbviewer

1) 주피터 노트북 파일(.ipynb)로 저장된 파일을 메모장으로 열어준다.

2) 나오는 코드를 그대로 전체 복사

3) gist.github.com에 접속

4) 새 글쓰기를 해서 관련 내용을 붙여넣은 뒤 'create public gist'를 눌러 새 글을 만든다.

5) 새 글이 써진 뒤 url에서 자기 아이디 뒤의 해시코드를 복사한다.

6) https://nbviewer.jupyter.org/에 접속한다.

7) 복사한 해시코드를 입력창에 붙여넣고 Go!를 누른다.

8) 발표자료가 바로 실행된다.

 

2] nbconvert

1) jupyter nbconvert <주피터파일>.ipynb --to slides --post serve 명령어를 터미널에서 입력한다.

2) 이 과정은 인터넷이 필요한 과정이다.

3) 만들어진 .html파일은 인터넷이 없어도 사용할 수 있다.

 

3] RISE

1) pip3 install jupyter_contrib_extensions

(or conda install -c conda-forge jupyter_contrib_nbextensions)

2) jupyter contrib nbextension install --user

3) pip3 install rise

(or conda install -c damianavila82 rise)

 * 혹은 jupyter-nbextension install rise --py --sys-prefix 도 가능

 * 만약 permission denied에러가 난다면 --sys-prefix옵션을 빼고 실행하면 된다.

4) jupyter nbextension enable rise --py --sys-prefix

 * 만약 permission denied에러가 난다면 --sys-prefix옵션을 빼고 실행하면 된다.

5) 메뉴바 아래 아이콘 버튼 중 맨 오른쪽에 차트모양의 'enter/exit RISE Slideshow'가 뜨면 성공! 이제 이 버튼으로 슬라이드쇼를 시작할 수 있다.

6) 단축키는 alt+r

[Linux/Ubuntu] apt-get 패키지 다운로드 서버(sources.list) 변경

<br>

1) 에러
아카이브를 받을 수 없습니다. 아마도 apt-get update를 실행해야 하거나 --fix-missing 옵션을 줘서 실행해야 할 것입니다.
kr.archive.ubuntu.com 연결 실패
Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
'kr.archive.ubuntu.com'의 주소를 알아낼 수 없습니다

kr.archive.ubuntu.com에 연결할 수 없습니다

아카이브를 받을 수 없습니다

kr.archive.ubuntu.com에 연결하는 중입니다

kr.archive.ubuntu.com 404 not found


2) 원인

Ubuntu를 한글로 변경하게 되었을 때 패키지 다운로드 서버가 자동으로 http://kr.archive.ubuntu.com/ubuntu/로 설정이 됩니다.(/etc/apt/sources.list 파일 변경) 근데 이 서버가 속도 이슈도 있고, 몇 패키지의 경우에는 설치가 안되는 에러가 있습니다. 그래서 이 기본 패키지 서버를 바꾸어주면 에러가 없어집니다.


3) 해결
패키지 다운로드 서버를 바꿔주면 됩니다.

sudo vi /etc/apt/sources.list
명령어 입력시 sources.list파일이 열립니다.

여기서
:
을 입력해 주시면 명령모드가 실행됩니다.(화면 제일 하단에 깜빡이며 명령 대기)


여기에서 %s/kr.archive.ubuntu.com/ftp.daumkakao.com을 입력해주시고 엔터를 치시면

14 substitutions on 14 lines라는 글이 명령줄에 나타날 것입니다.

그럼 :wq를 입력하고 엔터를 쳐서 커맨드 창으로 나와

sudo apt-get update; sudo apt-get upgrade -y를 실행해줍니다.

에러없이 실행되면 제대로 동작한 것입니다.

이후에 에러가 난 명령을 다시 실행해보면 이번엔 에러없이 잘 설치되는 것을 보실 수 있습니다.

[Linux/Ubuntu] 우분투 18.04 한글 설정!

 

우분투는 처음에 영어로 깔던, 한국어로 깔던 한글 키보드 지원이 되지 않습니다.

 

이번에는 그래서 한글이 써지도록 우분투를 세팅해보도록 하겠습니다.

한글과 영어 둘다 같은 방법을 따라야 하니, 파일명 혹은 버튼 이름이 다르더라도, 위치와 모양을 보고 따라와주시면 됩니다.

 

혹시 몰라 한글과 영어 둘다에서 언어변경을 진행하여 보았습니다.

1) 우분투 화면 좌하단의 점 9개짜리 버튼을 눌러주시면 모든 프로그램의 확인이 가능합니다.

만약 여기서 한개 혹은 두개의 프로그램만 보이신다면 하단의 All을 눌러주세요.

2) 여기서 Language Support 혹은 언어지원을 클릭하여 실행해줍니다.

3) 거의 100% 처음 실행시 무언가를 설치하라는 창이 뜰 겁니다. install 클릭하여주시고, 자동으로 유저인증창이 뜨게 되는데, 그냥 비밀번호 입력하여 주시면 됩니다.

4) 설치 완료 후 해당 창에서 키보드입력기가 Ibus인지 확인하여 주시고, Install/Remove Languages[언어 설치/제거]버튼을 클릭하여 줍니다.

5) 목록에서 Korean을 선택하여 체크하시고 apply버튼을 눌러줍니다. (한국버전의 경우 '한국어'이지만, 영문버전으로 설치하였을 경우에는 Korean입니다.)

여기서 설치할 때 한번 더 비밀번호를 물어볼 수 있습니다.

6) 처음 창에서 Language 탭에 한국어가 추가되었는지 확인합니다.

만약 추가가 되지 않았으면 Install/Remove Languages버튼을 클릭하여 Korean을 체크 해제하시고 apply후 다시 Korean을 체크 하시고 apply하여 재설치 해줍니다.

* 이미지와 같이 맨 위에 뜨지 않을수도 있습니다. 하단의 회색으로 뜨더라도 설치가 된 것입니다.

7) 터미널 창을 띄우고 <code>ibus-setup</code>을 입력하여 실행해줍니다.

8) 새로운 창이 뜹니다. 2번째 탭의 'input method'[입력기]에 가셔서 Add 버튼을 눌러줍니다.

9) 새 창에서 ...을 클릭하여 주시고 Korean을 선택한 다음 Hangul을 Add하시면 됩니다.

여기서 ...클릭 후에 Korean이 뜨지 않는 경우가 있는데 이때는 우분투 재시작 후 7)번 부터 다시 진행하시면 됩니다.(한글 버전에선 '한국어'로 뜨고, 영문버전에선 Korean으로 뜹니다.)

 

언어지원 프로그램에서 할 일은 다 끝났습니다.

 

10) 다음은 다시 점 9개짜리 좌하단 버튼을 누르시고 Settings 혹은 설정 아이콘을 클릭합니다.

 

11) Region & Language 혹은 지역 및 언어설정 탭에서

Language를 클릭하셔서 '한국어'로 바꿔주시고 Done을 누릅니다.

이때 바로 아래에 Restart버튼이 생기는데, 잠시 후에 키보드 설정까지 끝내고 재시작하도록 하겠습니다.

12) 그 아래 input source에서 +버튼을 눌러 Korean을 선택하고 Korean(Hangul)을 체크하여 Add버튼을 눌러줍니다.

 

 

13) 새로 추가된 Korean(Hangul)을 선택해주시면 아래쪽에 톱니바퀴 버튼이 생깁니다. 이걸 클릭해주세요.

14) 새로 뜨는 창에서 기존의 방법들을 다 지우고 Add(추가) 버튼으로 키보드의 '한영키'를 눌러줍니다.

보통은 Alt_R로 표시됩니다. (추가(add)버튼을 누르면 아무것도 입력되지 않은 상태로 아래와 같은 창이 떠 있습니다. 키를 누르면 그 키가 검은색으로 표시되고, 이 상태에서 확인을 누르시면 됩니다.)

 

(여기서 기존의 방법들 중 Hangul이 있고, 톱니모양 옆에 키보드 버튼을 눌렀을 때도 한영변환키가 Hangul이라 한영키 누르면 한글과 영문이 바뀔 것 같지만 안됩니다. 실제로 Add하여 한영키 눌러보면 한영키는 Alt_R입니다. 일종의 낚시..)

 

15) 이후엔 확인 버튼들을 눌러 창을 전부 꺼주고, 설정창에서 Restart버튼을 클릭하여 재시작해줍니다.

16) 재시작되면 폴더이름 업데이트창이 뜨는데,

다른 포스팅에서도 언급하였듯이 한글로 된 폴더명은 가끔 좋지않은 결과를 가져오기 때문에 다시묻지않기에 체크하시고 예전 이름 유지버튼을 눌러줍니다.

 

17) 텍스트편집기 등으로 한영변환이 이루어지는지 확인해봅니다.

한영변환키를 눌렀을 때 우측 상단에 en이 번갈아 표시됩니다.

그러나 버튼을 눌러도 번갈아 표시가 되지 않는다면 한번 클릭하여 보시면, 버튼 활성화가 안되어있습니다.

이것을 활성화해주시면 한글이 작동됩니다.(이것 때문에 한참 헤맸습니다.)

이후엔 한영키 눌러주면 잘 en과 한이 변환됩니다.

 

 

이렇게 설정해주시면 이제 우분투에서도 한글을 사용하실 수 있습니다.

[Linux] 우분투 설치 후 nvidia 그래픽 카드 드라이버 설정

우분투를 설치 시 기본적으로 드라이버는 전부 잡으나, 노트북에 nvidia 그래픽 카드가 따로 달려있을 때는 자동으로 드라이버를 잡지 못합니다.(요새는 기본적으로 cpu칩셋에 내장 그래픽이 들어가서 이걸로 잡는 것 같습니다.)

일단 내 컴퓨터에 nvidia 드라이버가 제대로 깔렸는지 확인하기 위해서 nivida-smi명령어를 실행해봅니다.
명령어가 제대로 실행되지 않으면 드라이버가 설치되지 않은 것 입니다.

그럼 드라이버를 설치해 보겠습니다. 방법은 아주 쉽습니다.

먼저
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo ubuntu-drivers autoinstall
이 두줄의 코드를 실행하여 드라이버를 설치하여 주십시오.

이후
sudo reboot
명령어를 통하여 재부팅 후에

제대로 nvidia가 설치되었는지 확인하는 방법은 아래 두가지 중 하나를 통하여 확인해보시면 됩니다.
sudo nvidia-settings
nvidia-smi

추가적으로 현재 컴퓨터의 그래픽카드 사양은 아래의 명령어로 확인해보실 수 있습니다.
lspci | grep VGA

[Linux] 우분투 18.04 설치하기!

 

사실 요새 OS설치는 갈수록 쉬워지고 있습니다. 그럼에도 불구하고 어느정도는 가이드가 있어야 설치가 더 쉬워지기 때문에 이 글을 작성합니다.

 

1) 먼저 Ubuntu OS 설치 USB를 만들어주어야 합니다.

이는 https://omnil.tistory.com/151를 참조하시면 됩니다.

 

2) 이후에는 usb를 컴퓨터에 연결하고 bios세팅에서 usb를 부팅디스크로 잡아주면 됩니다.

보통 부팅 후 F2키를 연타하면 bios로 넘어가고 여기서 바이오스마다 다르지만 boot settings와 같은 메뉴에서 부팅 순서를 변경하던가, 직접 부팅할 디스크를 설정할 수 있습니다.

* 윈도우즈와 다르게 설치하면서 자동으로 꺼졌다 켜졌다하지 않고, 우분투는 한번에 쭉 설치하니 한번만 부팅 디스크로 설정해줘도 괜찮습니다.

 

3) install ubuntu 선택

처음 화면은 까만색 도스창에서 펼쳐지는 grup창입니다. 기본적으로 우분투 트라이얼 버전이 선택되어있고, 약 10초간의 자동선택 시간이 있습니다. 저희는 직접 우분투를 설치할 것이므로 그 아래 install ubuntu를 선택하여줍니다.(한번 선택을 변경하면 자동 선택시간은 사라집니다.)

 

4) 언어선택

그러면 보라색 화면이 나오면서 ubuntu로고가 뜰 것입니다.

이후 인스톨 화면의 처음은 언어선택입니다.

한국어로 하셔도 괜찮지만, 가장 기본적인 영어로 선택하시는 것을 추천드립니다. 그래서 이후의 과정은 '영어'를 기준으로 설명드립니다.

(물론 한국어로 설치하신 뒤 영문으로 시스템을 돌리는 방법도 있고, 영문으로 설치 뒤 한글로 변경하는 방법 두가지 다 존재합니다.)

한국어로 설치시에는 설치 과정이 한글로 안내되어 설치의 체감 난이도가 확 낮아지는 것이 장점입니다.

 

5) 키보드 선택은 English(US)

딱히 맥에서 듀얼부팅을 하신다거나 하신 것이 아니시면 그냥 English(US)설정해주시면 됩니다. (맥의 경우 English - Machintosh 선택해주시면 됩니다.)

* 참고로 맥북에서 리눅스는 2015버전 맥북까지는 자동으로 드라이버를 잡지만, 그 이후 맥북(뉴 맥북)은 따로 드라이버를 설치하셔야 합니다. 즉, 설치시 따로 usb 직렬 마우스와 키보드가 없으면 설치가 불가능합니다.

 

6) 인터넷 연결

리눅스는 인터넷 연결 후 설치하시는 편이 좋습니다. 자잘한 버그픽스나 업데이트등을 설치하면서 자동으로 진행해주기때문입니다.

인터넷 글 중에 무선랜 오류가 있어서 유선랜으로 진행하여야만 한다는 글이 있는데, 제가 설치해본 결과로는 꼭 유선랜을 고집할 필요가 없습니다. 유선 랜이 연결되지 않았으면 자동으로 무선랜을 잡고 와이파이 연결시도합니다.

그러나 안전하게 설치하시려면 유선랜으로 진행하시고, 만약 이 과정에서 무선랜을 못잡거나 무선랜에서 와이파이에 접속이 되지 않는경우 유선랜으로 진행하시는 편을 추천드립니다.

 

7) 설치 형식

7-1) 다른 OS 없이 처음 우분투를 설치하는 경우

Erase disk and install ubuntu를 선택하시고, 아래 체크박스는 하나도 선택하지 않으시고 진행해주시면 됩니다.

7-2) 다른 OS 위에 듀얼로 우분투를 설치하는 경우

제일 아래 '기타'를 선택하신 뒤 다음으로 넘어가 파티션 설정을 해주시면 됩니다.

물론 이 과정 전에 우분투를 설치할 파티션을 따로 설정해주셔야 합니다. 윈도우즈의 디스크매니저나 맥의 디스크 유틸리티에서 진행해주시면 됩니다.

관련 포스팅: https://omnil.tistory.com/153

 

8) 기타 설정

위의 과정이 가장 복잡한 과정이며, 이후에는 현재 시간을 표시할 시간대를 설정하고, 유저 아이디와 패스워드를 설정하는 것만 남아있습니다.

이 과정 뒤에 본격적인 설치가 진행되고, 설치가 완료되면 재부팅 해야한다는 메시지가 뜹니다.

컴퓨터가 재부팅 과정에서 완전히 꺼지면 설치 usb를 제거해주시고(그 전에 제거하면 remove media, then restart와 같은 메시지가 표시되며 꺼지지 않습니다. 이때는 강제 종료 후 부팅해주셔도 크게 문제가 없습니다.) 다시 부팅되면 우분투가 깔린 것을 알 수 있습니다.

 

9) 한국어로 설치시

한국어로 설치시에는 설치과정의 가독성의 증가 및 한글 패키지 자동 설치 등의 이점이 있습니다만, 파일 이름이 전부 한글로 설정되어버립니다.

이 한글 파일명은 초기에 한글 키보드 사용이 설정되어 있지 않은 상태에서 파일 시스템을 찾아가기에 힘들 뿐더러, 가끔 어떤 앱의 설치시에 에러가 나기도 합니다.

그래서 기본 폴더명을 영어로 바꿔주게 되는데, 이때 간단하게 할 수 있는 방법이 있습니다.

<code>export LANG="C"</code>

<code>xdg-user-dirs-gtk-update</code>

이 두줄의 명령어를 실행하시고 재부팅하시면

위와 같은 창이 뜹니다.

여기서 Don't ask me this again에 체크하시고 Update Names 버튼을 눌러주시면 폴더명 변경이 완료됩니다.

 

다음과정에서는 만약 nvidia그래픽 카드가 깔린 컴퓨터의 경우 드라이버의 설치법과 한글 혼용 언어설정에 대하여 알아보도록 하겠습니다.

+ Recent posts