전체 글
-
apt-get 으로 설치가 안될 때 PPA Repository 추가하기Practical_skills/odds and ends 2019. 8. 27. 14:13
lm-sensors 모듈 ppa 를 통해 설치 PPA는 보통 프로그램 패키지를 Ubuntu 버전별로 제공하기 때문에 현재 사용중인 Ubuntu의 버전을 확인 $ sudo lsb_release -appa for ubuntu home 에서 lm-sensors 검색 위에서 나온 codename 에 맞는 PPA name 를 선택 페이지의 상단에 있는 ppa:로 시작하는 문자열을 저장소 추가 시 사용해야 하니 따로 복사 예를 들어 ppa:whoopie79/trusty 이후 ppa:user/ppa-name 부분이 위에서 복사해둔 문자열 $ sudo add-apt-repository ppa:user/ppa-name $ sudo apt-get update $ sudo apt-get install package-name..
-
libpcap 을 사용하여 packet capture하기Practical_skills/odds and ends 2019. 8. 26. 11:35
libpcap의 기본 libpcap을 사용하려는 이유 libpcap은 Portable Packet Capturing Library의 줄임말로 packet을 캡처하기 위한 함수들의 모음이다. 여러가지 패킷 캡처 도구 중 libpcap library의 가장 큰 장점은 window를 쓰던 linux를 사용하던 운영체제에 비종속적이라는 장점이 있기에 이것을 사용하려고 한다. libray 설치 apt-get을 사용하여 libpcap-dev 설치 $ sudo apt-get install libpcap-dev설치경로 확인 ldconfig -p | grep pcap /usr/lib/x86_64-linux-gnu 에 libpcap.so, libpcap.so.0.8 가 설치됨을 확인했다. libpcap 버젼확인 API사용..
-
sublime text를 사용하여 c++ 개발환경 설정하기Practical_skills/odds and ends 2019. 8. 26. 09:47
이 포스트에서는 linux 환경(ubuntu 16.04)의 sublime text에서 c++코드를 빌드하고 실행하는 것을 할 예정이다. 참고한 포스트(windows에서) linux에서 sublime text 설치 terminal 에서 apt-get install 사용 $ sudo add-apt-repository ppa:webupd8team/sublime-text-3 $ sudo apt-get update $ sudo apt-get install sublime-text g++ 컴파일러 연결 requirement : g++ 설치 기본빌드 [Tools]-[Build System]에서 [C++ Single File] 로 체크해두면 cpp 파일을 빌드할 수 있다. (빌드 단축키는 [Ctrl]+[B]. 빌드와 함..
-
symbolic link로 연결된 디렉토리 추가Practical_skills/web 2019. 8. 14. 17:12
ln명령을 사용하여 symbolic link를 만든다. 터미널에서 아래명령으로 링크생성$ sudo ln -s {연결할디렉토리} {바로가기만들디렉토리} 권한 허용 /etc/apache2/site-enabled/000-default.conf 경로에서 Options ExecCGI FollowSymLinks로 저장하여 권한 허용 후 터미널에서 아래의 명령으로 서버재시작하여 변경된 설정적용 $ sudo service apache2 restart
-
Query string을 가져오기Practical_skills/web 2019. 8. 14. 14:26
query string 값을 python으로 알아낼 수 있는 방법에 대해서 공부해보자 아래와 같은 코드에서 ?id=name에 해당하는 부분이 query string이다. index.py?id=namequery string을 python에서 처리하려면 cgi module이 필요하다. cgi 모듈 을 사용하는 방법에 대해 알아보자. 이래의 코드를 사용하면 name에 해당하는 변수가 pageId로 할당된다. import cgi form = cgi.FieldStorage() pageId = form["id"].value
-
문자열 치환Practical_skills/web 2019. 8. 14. 13:16
가정 htmltemplete=''' total context ''' variable = 'context' 가 주어졌을 때 htmltemplete 사이사이에 변수들을 치환하여 넣고 싶다고 하자. formating 이라는 기술을 사용하면 위의 문제를 효과적으로 해결할 수 있다. python string format이라고 검색해서 보자 순서대로 데이터를 치환하고 싶다면 positional formating을 사용하자 # old style '%s context %d' %(var1, var2) # new style '{} context, {}'.format(var1, var2) 이름기반으로 치환하고 싶다면 named placeh..
-
Web개요Practical_skills/web 2019. 8. 14. 11:10
web에대한 기본지식 - 생활코딩의 영상 참조 목표 google map chart api를 통해 만든 html파일들을 local web server를 만들고 그곳에 올려보자 offline에서 동작하는 것들을 web에서 할수있도록 하면 좋을 것 같다. server를 만드는 방법 static web hosting(github사용) - web server를 제공하는 외부 업체를 찾는 방법 web server를 직접를 만드는 방법 활용 소프트웨어 Apache (무료,일등) - 이것을 사용 IIS Nginx apache를 설치하면 web browser에서 local_ip/index.html 를 검색할 때 var/www/html 경로에 index.html파일이 열리게 된다. CGI html을 사용하서 web pag..
-
git 사용하기(3)Practical_skills/git 2019. 7. 16. 11:06
오늘은 이어서 commit --amend 명령의 사용과 하나의 remote repository를 공유하면서 여러개의 local repository에서 작업을 할 때 발생할 수 있는 문제에 대해서 다루어 보겠다. 아래의 링크를 참고하면서 보자. 우선 reset 과 revert의 명확한 차이를 짚고 넘어가자. 짧게 말한다면 이전에 했던 rebase와 cherry-pick의 차이와 비슷하게 이력을 남기고 돌아가느냐 지우고 돌아가느냐 이다. reset과 revert의 차이1 reset과 revert의 차이2 reset revert Problem 4. patch set (amend or paste change-id) my patchset and other patch set.by Daejin switch back ..