본문 바로가기

전체 글

(611)
PATH 설정 $PATH 설정 영구 등록 앞서 알아본 환경 변수 등록 방법은 어디까지나 임시로만 적용되는 것이며 해당 터미널이나 쉘 등이 종료되면 해당 내용은 초기화됩니다. 해당 환경 변수 내용을 영구적으로 등록하여 언제나 사용하고 싶다면 사용자자별 환경 설정 파일이나 시스템 환경설정 파일에 추가해주어야 합니다. export PATH=/추가할 경로1:/추가할 경로2:/경로3:$PATH gedit 같은 문서 편집 프로그램을 열어 환경 설정 파일 말미에 위 구문을 작성하고 저장해주시면됩니다. 그러나 이것은 터미널 작업에 익숙지 않은 분들에게 권장드리는 방법이고 터미널 작업에 익숙한 터미널에서 바로 내용을 추가하고 적용할 수 있습니다. 환경 설정 파일 백업 study@study-VirtualBox:~$ cp ~/.bashr..
apt-get Linux에서는 설치 가능한 소프트웨어가 온라인상의 저장소(Repository)에 저장되어 있고, 필요할 때마다 패키지를 다운로드 받아 사용하는 방식으로 새로운 소프트웨어를 설치합니다. 여기에 사용되는 명령어가 바로 apt-get 입니다. 새로운 소프트웨어의 설치는 관리자 권한이 필요하기 때문에 이 명령어를 사용할 때는 주로 앞에 sudo를 붙여서 sudo apt-get으로 사용합니다. 저장소(Repository)는 한곳에만 저장되어 있는것이 아니라 전 세계 곳곳에 같은 자료를 복사해서 운영하는 미러(Mirror) 서버가 존재합니다. 만약 하나의 저장소만 운영한다면 물리적 거리상의 문제로 다운로드 속도가 매우 느리고, 서버가 부하를 견뎌내기 어려울 것입니다. 이 저장소의 위치는 Ubuntu를 설치할 당시..
[Linux] cpu 정보 확인 0. CPU 정보 확인 > cat /proc/cpuinfo 1. CPU 코어 전체 개수 확인 > grep -c processor /proc/cpuinfo 2. 물리 CPU 수 확인 > grep "physical id" /proc/cpuinfo | sort -u | wc -l 3. CPU당 물리 코어 수 확인 > grep "cpu cores" /proc/cpuinfo | tail -1 [리눅스] 리눅스에서 CPU 정보 확인하기 리눅스에서 CPU 정보 및 CPU 코어개수, 물리 CPU 수를 쉽게 확인하는 방법이다. 결론적으로 /proc/cpuinfo 에 모든 정보가 나와있지만, 개수를 확인하고 싶은데 일일이 찾아보기 귀찮을 땐 1~3번 참고. 0. nota.tistory.com [Linux] uname 명령..
git 일반적 명령어 정리 github.com/jeonghwan-kim/git-usage
[Linux] directory 구성 / 리눅스 소스레벨 구조 외부 업체에서 제공하는 프로그램을 설치할 경우, /opt에, 컴파일 해서 설치하는 경우나 사용자가 압축을 풀어 설치하는 경우는 /usr/local을 기본 디렉토리로 설치되며, 패키지로 설치하는 경우, /usr을 기본 디렉토리로 설치됩니다. 그리고, 디렉토리 구성은 /usr[/local]/bin : 실행파일 /usr[/local]/share: 공유파일로 그림이나 문서, 아이콘등 /usr/[local]/lib: 각종 라이브러리 /etc: 각종 설정파일 /var: 각종 상태나, 캐시등 $HOME/.패키지명: 사용자별 설정 및 저장된 파일 및 작업디렉토리 kernel 디렉터리 : 태스크 관리자가 구현된 디렉터리이다. - 테스크의 생성과 소멸, 프로그램의 실행, 스케줄링, 시그널 처리등의 기능 구현. arch 디..
apt-get install 로 설치된 위치찾기 Windows 에서는 대부분 Program files 디렉토리에 설치가 되는 편인데 Ubuntu 는 좀 이곳저곳에 설치되는 느낌이 강합니다. 어떤 방법으로 설치하느냐에 따라서도 좀 달라지고 게다가 어떤 계정으로 설치하느냐에 따라 달라지는 것 같기도 하고요. 패키지가 설치 된 디렉토리 찾는법을 알아보겠습니다. apt-get install 로 설치된 경우 dpkg -L apt-get install 로 설치한 패키지는 검색이 됩니다. dpkg -L openjdk-8-jre gem 으로 설치된 경우 gem environment gem environment | grep ruby
pip & pip3 설치(install) 방법 pip이란 python으로 작성된 패키지의 설치 및 관리를 해주는 프로그램이다. pip을 이용하면 의존성 문제를 자동적으로 해결해주기 때문에 편리하다. 만약 pip이 설치되어 있다면 pip list 명령을 통해 현재 설치되어 있는 패키지들의 리스트를 확인할 수 있다. pip은 Python 2.x용, pip3는 Python 3.x용 프로그램이다. apt-get install python-pip apt-get install python3-pip 우분투(Ubuntu)에서 pip & pip3 설치(install) 방법 – Wanho Choi pip이란 python으로 작성된 패키지의 설치 및 관리를 해주는 프로그램이다. pip을 이용하면 의존성 문제를 자동적으로 해결해주기 때문에 편리하다. 만약 pip이 설치되..
sudo 사용 문제점 응? sudo 쓰지 말라고? sudo를 통해 문제를 해결했지만, 올바른 해결책인가 싶은 느낌이 들기 시작했습니다. 그래서 디버깅을 시작해보았습니다. 가장 먼저, PermissionError가 왜 발생하는지 살펴보는 것으로 시작했습니다. 문제: admin은 /usr/local/…에 파일을 쓸 권리가 없다. pip3 install의 default 설치 경로는 다음과 같습니다. /usr/local/bin/python3.6 문제는, 해당 경로에 파일을 쓰거나(write) 변경할(edit) 권리(privilege)가 저에게는 없다는 점입니다. 이 때의 저는 administrator(이하 admin으로 쓰겠습니다)입니다. admin이 무엇이고, 왜 일반 admin에게는 읽고 변경할 권리가 없는 지에 대해서는 잠시 ..
Library 경로 설정 우분투에서 개발하면서 가장 적응이 안되었던것이 Library 가져다 쓰는것이었다.(*.so, *.a) 매번 검색하는게 귀찮아서 블로그에 기록해둔다. 보통 아래와 같이 3가지 방법이 주요하다. 1. Home 디렉토리의 .profile 또는 /etc/.profile 에 라이브러리를 추가 * .profile은 숨김파일로 ls -al 옵션을 함께 줘야 보여진다. 2. 쉘에서 Path 지정. - LD_LIBRARY_PATH=/home/user/lib:$LD_LIBRARY_PATH - export LD_LIBRARY_PATH 3. /etc/enviroment에 입력하거나, bash가 시작될때 불러올 수 있도록 home 디렉토리의 .bashrc에 입력 끝으로 우분투에서 필요한 공유 라이브러리들은 ldconfig를 사..
동적 링크 라이브러리, ldconfig 2. 다운받은 폴더로 이동해 압축을 풀고 폴더로 들어간다. tar -xf protobuf-2.6.0.tar.gz cd protobuf-2.6.0 3. 아래 명령을 통해 빌드한다. sudo ./configure sudo make sudo make check sudo make install 4. 설치가 되었는지 확인한다. protoc --version 5. 만약 위에서 오류가 발생하면 아래와 같이 해본다. sudo ldconfig ldconfig란? ldconfig 는 동적 링크 라이브러리(.so)로 소스컴파일 한 실행 파일을 ldd[파일이름] 해보면 링크가 안되어 있을 시 경로를 못찾는 것들이 나오는데 이를 해결할 떄 사용한다. 이때 동적링크를 /etc/ld.so.conf 에 해당 라이브러리 경로를 삽입 ..
protobuf 설치 빌드 중 'make: protoc: Command not found' 메세지와 함께 빌드가 안되는 문제가 생겼다. protoc는 Google 에서 개발한 언어, 플랫폼에서 자유로운 메세지 전송 방법인 Protocol Buffer 이다. 설치 방법 1. https://developers.google.com/protocol-buffers/ 에서 코드를 다운 받는다. (protobuf-2.6.0.tar.gz) 2. 다운받은 폴더로 이동해 압축을 풀고 폴더로 들어간다. tar -xf protobuf-2.6.0.tar.gz cd protobuf-2.6.0 3. 아래 명령을 통해 빌드한다. sudo ./configure sudo make sudo make check sudo make install 4. 설치가 되었..
how to check llvm version number in windows 10 llvm is not the name of a command line program. LLVM comes with a bunch of developer tool. If you got the full clang distribution, you get clang, a C/C++/Obj-C/... compiler (command line is clang). Many developer tools command line program: opt, llc, etc. Locate the bin directory in the package you downloaded. how to check llvm version number in windows 10 Hi i downloaded llvm using svn checkout..
[DFS] 두더지 굴 dfs 함수 부분의 4방향 탐색을 dx, dy를 이용하여 다음과 같이 편리하게 작성할 수 있다.
[C/C++] 포인터 반환 함수 먼저 함수 반환값의 자료형을 지정할 때 int *ten()과 같이 int 포인터로 지정했습니다. 그리고 변수를 선언하고 값을 할당한 뒤 변수의 메모리 주소를 반환합니다. 컴파일을 해보면 지역 변수의 주소를 반환한다면서 컴파일 경고가 발생합니다. 즉, num1은 함수 ten안에서만 사용할 수 있는 지역 변수이며 함수가 끝나면 사라집니다. 그래서 return &num1;과 같이 지역 변수의 주소를 반환하는 것은 잘못된 방법입니다. 초보자들은 이런 실수를 하기 쉬우니 꼭 기억하세요. 출력 결과에서 10이 잘 나오는 것은 예제 프로그램이 매우 간단해서 10이 저장된 변수가 덮어 쓰여지지 않았기 때문입니다(환경에 따라 10이 아예 안나올 수도 있습니다. 그때 그때 달라요). 프로그램이 커지고 복잡해지면 사라진 지..
[vscode] 단축키 현재 줄 복사 : shfit + alt + up, down arrow 줄 바꿈 : alt + up,down arrow
이미 push한 commit 메시지 수정 git rebase HEAD~거슬러올라가고 싶은 커밋 수 -i 를 실행하면, pick ce6a857 revise "manager/userinfo.jsp" revise "3 cards(user information) are not in a row" by counting in jsp if statementpick 6bfb747 Add "reviseTrainerInformation By Manager" pick 9710b50 Revise "deleteMember & deleteTrainer By Manager" "set member.trainer_id='NULL' when member's personal trainer is deleted and print all of Members' information in..
readme 파일 작성법 사실은 내가 보기위한 마크다운 문법설명서 - 3. 개행과 문자강조 사실은 내가 보기위한 마크다운 문법설명서 - 3. 개행과 문자강조 . GitHub Gist: instantly share code, notes, and snippets. gist.github.com
[Git] 과정 도식 working dir git add로 다음 단계 staging area, index git commit으로 다음 단계 staging area, local repo, head git push로 다음 단계 remote repo, repo Git 사용 중 자주 만나는 이슈 정리 코딩보다 어려운 버전 관리 parksb.github.io
[DP]Stock max profit Dynamic Programming Interview Questions: How to Maximize Stock Profits Find the maximum profit given a list of stock prices medium.com
시간복잡도 ranking polynomial time . exponential time
[DP] LCS(Longest Common Subsequence, 최장 공통 부분 수열) 최장 공통 부분 수열 문제 최장 공통 부분 수열(LCS) 문제는 두 개의 문자열에서 순서대로 겹치는 문자가 최대 몇 개인지 구하는 문제입니다. 예를 들어 ABCBDAB와 BDCABA에서 LCS는 BCAB나 BDAB나 BCBA입니다. 앞에서부터 겹치는 것들을 찾아서 문자열을 만들 때 그것이 가장 길다면 LCS가 되는 거죠. 이 문제는 다음과 같이 분석할 수 있습니다. i라는 문자열과 j라는 문자열이 있다고 칩시다. lcs(i,j)는 이 두 문자열의 LCS 길이입니다. 만약 문자열의 마지막 두 문자가 같다면 lcs(i, j) = lcs(i-1, j-1) + 1과 같습니다. lcs(ABCBDAB, BDCAB)는 lcs(ABCBDA, BDCA) + 1과 같은 거죠. 만약 두 문자열의 마지막 문자가 다르다면, l..
Dynamic Programming 동적 프로그래밍은 이름이 조금 이상한데요. 프로그래밍은 컴퓨터 프로그래밍이라는 뜻이 아니라 테이블을 만든다는 뜻입니다. 그리고 전혀 다이나믹하지도 않습니다. 그래서 어떤 서울대 교수님은 동적 프로그래밍 대신 기억하기 프로그래밍이라는 용어를 쓰기도 합니다. 메모이제이션 강좌를 보셨나요? 재귀 호출 시, 반복적으로 계산되는 것들의 계산 횟수를 줄이기 위해 이전에 계산했던 값을 저장해두었다가 나중에 재사용하는 방법입니다. 메모이제이션이 동적 프로그래밍 중 하나입니다. 알고리즘을 짤 때 분할정복 기법을 사용하는 경우가 많습니다. 큰 문제를 한 번에 해결하기 힘들 때 작은 여러 개의 문제로 나누어서 푸는 기법인데요. 작은 문제들을 풀다보면 같은 문제들을 반복해서 푸는 경우가 생깁니다. 그 문제들을 매번 재계산하지..
curl과 wget 차이점 웹페이지 혹은 웹에서 다운로드를 명령행에서 다운받을 때 wget 또는 curl 명령을 사용합니다. (과거에는 wget 을 더 애용했습니다. 그냥 단순 url 내용을 가져올 요량으로요) wget이나 curl을 사용하는데 가장 큰 차이점은 Recurring입니다. wget은 되는 반면 curl은 안됩니다. 따라서 curl은, 주로, 단일 혹은 3개 이하의 대용량(2GB) 이하의 파일을 다운 받을 때 유용하게 쓰입니다. 둘다 지원하는 내용 - FTP, HTTP, HTTPS 프로토콜을 이용하여 명령행으로 컨텐츠 다운로드 - 스크립트 등을 이용하여 자동으로 작업 가능 - 오픈소스 및 프리소프트웨어 - 90년대 프로젝트 시작 CURL의 특징 - libcurl 이용 : 크로스 플랫폼의 아주 많이 사용하는 라이브러리 ..
ls -al, 파일 정보 확인 날짜순으로 정렬 ls -ltr
find 파일 찾기 리눅스 find 명령어 사용법. (Linux find command) - 리눅스 파일 검색. 1. find 명령어. find는 리눅스에서 파일 및 디렉토리를 검색할 때 사용하는 명령입니다. 이름 그대로 리눅스에서 접근할 수 있는 파일 시스템에서, 파일 및 디렉토리를 "찾는(find)" 것이죠. 그런데 � recipes4dev.tistory.com
debian, ubuntu 리눅스에 대한 배경 지식을 알아 두면 우분투를 더욱 이해하기 쉬워집니다. 그 이유는 우분투의 뿌리가 리눅스이기 때문입니다. 사실 리눅스는 많은 사람들이 이미 접하고 있습니다. 스마트폰의 안드로이드 운영체제도 제일 밑단에서는 리눅스 커널을 기반으로 하기 때문입니다. 리눅스는 유닉스(Unix)를 기반으로 개발된 오퍼레이팅 시스템입니다. 리눅스의 역사는 리처드 스톨만(Richard Stallman)의 GNU 프로젝트와 함께 시작합니다. 1990년대 초 GNU 프로젝트는 운영체제에 필요한 많은 프로그램(라이브러리, 컴파일러, 텍스트 편집기, 유닉스 쉘 등)을 만들어냈습니다. 그러나 장치 드라이버, 커널 등이 완성되지 않았었는데요, 1991년에 핀란드의 프로그래머인 리누스 토발즈(Linus Torvalds)가 사..
aarch64 AArch64 또는 ARM64 는 ARM 아키텍처 의 64 비트 확장입니다 . ARM 아키텍처의 근본적인 변화를 나타냅니다. 64 비트 아키텍처 (예 : Cortex-A32는 32 비트 ARMv8-A CPU [2] 인 반면 대부분의 ARMv8-A CPU는 모든 ARMv8-R과 달리 64 비트를 지원함)를 "AArch64"라는 이름으로 추가합니다. ARM 아키텍처 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 64/32비트 아키텍처발표2011년 (9년 전)(2011)버전Armv8-A, Armv8.1-A, Armv8.2-A, Armv8.3-A, Armv8.4-A, Armv8.5-A, Armv8.6-A인코딩AArch64/A64 및 AArch32/A32는 32비트 명령어를 사용하며, T3..
arm architecture와 x86 architecture 리눅스 시스템 정보 확인하기 리눅스 시스템 정보(CPU, 메모리, 디스크, 네트워크 카드 등)를 확인하는 명령어에 대해 작성한 글입니다 zzsza.github.io ARM (Advanced RISC Machine) 는 RISC 동안 (축소 명령어 세트 컴퓨팅) 아키텍처 x86A는 CISC (복합 명령 집합 컴퓨팅) 하나. ARM 명령어는 레지스터에서 데이터를 로드 및 저장하기 위한 몇 가지 명령어가있는 레지스터에서만 작동하고 x86은 메모리에서 직접 작동 할 수 있다는 것입니다. x86 이라는 뜻은 인텔(INTEL)의 CPU 시리즈 이름이자 그 CPU의 명령체계 아키텍쳐 이름입니다 인텔이 만든 x86은 CPU의 내부 명령어를 처리하는 로직 아키텍쳐를 뜻한다. x86 아키텍처는 계속 진화하면서 16bit,..
linux 비트확인
curl 명령어 웹 request를 테스트할 수 있는 명령어입니다. 특히 rest 애플리케이션 개발 시 테스트하는데 유용합니다. 주로 GET / POST / PUT / DELETE의 CURD를 확인할 수 있습니다. [option] -S, --show-error Show error. With -s, make curl show errors when they occur -L, --location Follow redirects (H) [Linux] curl 사용법 curl 사용법 X​ㅁ cURL 명령행 기반 웹 요청 도구. 특히 REST 애플리케이션을 개발 테스트시에 유... blog.naver.com