본문 바로가기

IT/Linux

(78)
[Linux] mv [참고사항] touch touch 는 파일의 날짜정보를 변경하는 명령어로 touch [파일명] 으로 비어있는 파일을 생성할 수 있습니다.
[Linux] Cmake 업데이트 [Ubuntu] CMake 업데이트 하는 방법 nipa에서 지원 받은 서버에 카카오에서 딥러닝 기반으로 개발한 Khaiii 형태소 분석기를 설치하려고 하던 중 (PythonHome) ubuntu@nipa2020-0000:~/somjang-utils/khaiii/build$ cmake .. CMake Error at CMakeLi.. somjang.tistory.com
[Linux] GPU 정보 확인 우분투 그래픽 카드 GPU 확인 방법 $ lspci | grep -i VGA 혹은 $ nvidia-smi --query | fgrep 'Product Name'
[Linux] vi 이동 단축키 vi 페이지 이동 명령 ctrl+f - 다음 페이지로 ctrl+b - 이전 페이지로 gg - 파일 첫 문장으로 G - 파일 끝으로 :숫자 – 숫자 번째 문장으로 이동 vi 페이지 이동 명령 vi 명령 노트 가끔 까먹는 vi 명령들을 적어 놓습니다. vi 페이지 이동 명령 ctrl+f - 다음 페이지로 ctrl+b - 이전 페이지로 gg - 파일 첫 문장으로 G - 파일 끝으로 :숫자 – 숫자 번째 문장으로 이동 * ingorae.tistory.com vi 단축키 정리 · 초보몽키의 개발공부로그 vi 단축키 정리 27 Mar 2017 | vim 학습자료 vi 단축키 삽입 키 기능 i 커서 위치에 Insert I 줄 맨 앞에서 Insert a 커서 다음에 Insert A 줄 맨 뒤에서 Insert o 커서 ..
[Linux] vi 에서 문자열 검색 1. 먼저 vi 를 실행하고 : 를 눌러 명령어 모드에 들어갑니다. 2. / or ? 으로 문자열 탐색 현재 커서 위치에서 아래방향으로 탐색 /찾을문자열 예) :/text 현재 커서 위치에서 윗방향으로 탐색(역방향 탐색) ?찾을문자열 예) :?text 3. 그 다음 문자열를 탐색(계속 탐색)을 하려면 소문자 "n" 을 누르면 되고 이전 문자열를 탐색(계속 탐색 - 역방향)을 하려면 대문자 "N"을 누르면 됩니다. 4. 정규식도 사용할 수 있다! 예) Text 로 시작하는 문자열을 찾을때 /^Text
[Linux] 리눅스의 구조 (커널,kernel) 리눅스는 기본적으로 커널,쉘,응용프로그램으로 동작됩니다 커널이란 하드웨어와 소프트웨어 사이에서 제어 역활을 해주는것이며 쉘로 부터 데이터를 받아와서 주 기억 장치로 보내는 역활을 하고 있습니다 커널이 주 기억 장치로 보낸 데이터를 프로세스라고 하며 그 프로세스를 cpu는 처리하게 됩니다 또한 커널은 프로세서 및 메모리 파일 시스템 디바이스 네트워크르 관리하며 리눅스 커널의 특징은 Free,가상 메모리 시스템,가상의 파일시스템,멀티 쓰레드등을 지원합니다 커널은 이벤트 중심 프로그램으로써, 응용 프로그램으로부터의 시스템 콜 요청이나 하드웨어의 인터럽트 요청을 처리한다. 리눅스 커널이란? 응용 프로그램 동작을 위한 환경을 제공하고 하드웨어를 제어하는 역할을 해주어, 응용 프로그램이 본래 목적만을 실행하도록 돕..
[Linux] gcc Include / library 경로 설정 * INCLUDE gcc가 어떤 path에서 헤더 파일을 읽어오는지 알고 싶다면, gcc를 실행할 때 -v gcc test.c -v C_INCLUDE_PATH 환경 변수를 써서 지정할 수도 있습니다 (포맷은 PATH와 동일) C++ include path를 지정하기 위해서 CPLUS_INCLUDE_PATH를 쓰기도 합니다. -I option을 써서 지정할 수 있으며 (여러 디렉토리를 지정하기 위해 중복으로 사용 가능) -I C 소스는 표준 디렉토리에 있는 헤더 파일을 이용하여 개발을 할 수도 있지만, 표준 디렉토리가 아닌 위치에 있는 레더 파일을 가져와서도 개발을 할 수 있다. 그 때 그 디렉토리의 위치를 지정해주는 옵션이다. 이 옵션 또한 예제를 보고 하면 금방 진행할 수 있다. * LIB etc/ld..
[Linux] gcc컴파일 옵션 [gcc 컴파일] 1) gcc 파일명(*.c) : Default로 out 파일이 생성된다. (ex a.out) 2) gcc -c 파일명(*.c) : 오브젝트 파일을 생성한다. 3) gcc -c 오브젝트_파일명(*.o) 파일명(*.c) gcc -o 실행파일명(*.out) 오브젝트_파일명(*.o) 4) gcc -o 실행파일 파일명(*.c) : 실행 파일을 만든다. (3번을 한줄로...) [gcc 옵션] 1. -Wall 옵션 : 모든 모호한 코딩에 대해서 경고를 보내는 옵션 2. -W 옵션 : 합법적이지만 모호한 코딩에 대해서 경고를 보내는 옵션 3. -W -Wall 옵션 : 아주 사소한 모호성에 대해서도 경고가 발생 4. O2 옵션 : 최적화 레벨 2로 설정. (대부분의 최적화를 시도) 5. -E 옵션 : ..
[Linux] 파일속 문자열 찾기 리눅스 파일 찾기, 파일속 문자열 찾기 1. 리눅스 파일명으로 검색하는법. 사용법 find [찾을위치] -name [파일명] 예) 최상위 폴더부터 하위로 'apache'로 시작하는 파일 찾기. find / -name 'apache*' 예) usr 폴더부터 하위로 'apa'로 시작하는 파.. overcode.tistory.com
[Linux] gcc -o 컴파일 과정
설치된 package 확인하기
E45: 'readonly' option is set (add ! to override) 해결 방법 1. sudo 명령어를 통해서 관리자(ROOT) 권한으로 전환 2. 문제의 파일을 열어서 수정해보세요. 명령어 공유 $ sudo vi 파일이름 추가정보 위의 방법으로 해결이 안될 경우, 저장하실때 wq 명령어 대신 w! 명령어를 사용해 보세요! [리눅스] E45: 'readonly' option is set (add ! to override) 안녕하세요. 플랫폼공작소입니다. 오늘은 [리눅스] E45: 'readonly' option is set (add ! to override) 에러를 해결하는 방법을 공유하려합니다. vi에디터를 사용하시다가 E45: 'readonly' option is set (ad.. doctorson0309.tistory.com
E: unable to locate package E: unable to locate package libncurses5-dev 우분투 11.04의 경우에는 build-essential 패키지는 기본적으로 설치되어 있었으나 9.10에서 테스트할 때에는 build- essential 패키지 조차도 설치되어 있지 않았으며 apt-get install 명령어로 설치 시도시 다음과 비슷한 에러들이 발생 하였다. E: unable to locate package build-essential E: unable to locate package libncurses5 E: unable to locate package libncurses5-dev E: unable to locate package bin86 문제의 원인 : 우리가 사용하는 우분투의 버전에는 해당 버전마다 ..
apt-get 명령어/ package 설치, 삭제, 검색 apt-get 명령어 정리 (패키지 설치,제거) https://blog.outsider.ne.kr/346 Ubuntu의 apt-get 명령어 정리 apt-get(Advanced Packaging Tool)은 우분투(Ubuntu)를 포함안 데비안(Debian)계열의 리눅스에서 쓰이는 팩키지 관리 명령어 도구입니다. 우분투에.. luckeex.tistory.com
vi 편집기 라인 이동
cmake option cmake 예약 변수 cmake에는 자동으로 지정된 변수들이 많은데 이들을 잘 알아야 원하는 빌드 설정을 하고 CMakeLists.txt도 쉽게 작성할 수 있다. 대부분 CMAKE_로 시작하며 CMakeCache.txt를 보면 어떤 변수들이 있는지 볼 수 있다. 그 중 중요한 몇 개만 여기에 설명하는데 아래 내용을 보다가 이 변수들이 나오면 의미를 찾아보자. CMAKE_CURRENT_SOURCE_DIR: 소스 파일들을 찾을 디렉토리 경로로 CMakeLists.txt가 있는 경로가 기본 값으로 들어있다. 다른 경로를 설정할 때 이 변수를 기준으로 상대 경로를 만들면 편하다. CMAKE_INSTALL_PREFIX: make install 할때 빌드 결과물이 복사될 경로로 /usr/local이 기본 값이다. ..
make install INSTALL() 설치 경로 설정 보통 라이브러리를 설치할 때 github에서 라이브러리 소스를 다운로드 받아 make를 하여 라이브러리 파일이 만들어 진 후 make install을 실행하여 라이브러리를 시스템에 설치한다. 설치란 별게 아니고 라이브러리를 다른 곳에서도 쓸 수 있도록 소스 파일(*.cpp)을 제외한 바이너리와 헤더 파일들을 다른 곳으로 복사하는 것을 말한다. 설치할 경로는 위에서 CMAKE_INSTALL_PREFIX 변수로 지정했다. 이 변수를 지정하지 않으면 기본적으로 /usr/local에 설치된다. INSTALL()은 복사할 파일의 종류에 따라 설치 경로에 대한 상대 경로를 지정한다.
CMake Build System / gcc, make, cmake 차이점 리눅스에서는 보통 편집기와 컴파일러가 분리되어있다. 리눅스에서의 통합개발환경이란 VS처럼 자체적인 컴파일러까지 포함하는게 아니고 리눅스에 기본 설치된 컴파일러인 gcc를 잘 가져다 쓰는 코드 편집기를 말한다. IDE 마다 각자의 방식으로 소스코드 목록과 의존성을 관리하는 프로젝트 파일을 만드는데 소프트웨어를 배포할 때 특정 IDE의 프로젝트 파일을 배포하게 되면 그 소프트웨어를 받아서 쓰는 사람도 특정 IDE를 설치해야 하는 번거로움이 있다. 그래서 리눅스에서 공통적으로 사용하는 빌드 시스템이 있는데 바로 make와 cmake다. 그래서 소프트웨어을 개발할 때는 편리한 IDE를 쓰고 배포하거나 남의 소프트웨어를 가져다 쓸 때는 command line에서 리눅스 빌드툴을 써서 직접 빌드를 한다. gcc, ..
cmake 과정 설치가 되었으면 CMakeLists.txt파일을 만듭니다. (참고로 파일명을 주의해야합니다. 특히 대소문자 구분해서 CMakeLists.txt파일입니다.) 위의 소스의 리스트를 빌드하겠습니다.([C++] Make와 Makefile 작성법에서 사용하던 소스들...) Makefile로 작성할 때는 여러 의존성 관계까지 작성을 했는데 cmake의 빌드 파일인 CMakeLists.txt은 엄청 심플하네요. 이걸로 Makefile 파일을 작성하겠습니다. cmake를 실행하면 3개의 파일과 1개의 디렉토리가 생긴 것을 확인할 수 있습니다. 그럼 저 Makefile를 make하기 전에 Makefile의 내용을 살펴보겠습니다. 무언가 엄청난 빌드 파일입니다... 자세히 분석해 보면 이해를 하겠는데... 굳이 이해할 필..
vi 편집기 검색, 하이라이트 설정
vi 편집기 라인 복사 (명령모드에서) 한 줄 복사: yy 한 줄 삭제: dd 붙여넣기 : -p N줄 복사나 삭제는 nyy ndd ex) 3줄 복사 -> 3yy [리눅스 Linux] vi 편집기 블락 범위 복사, 주석 블럭 처리, 범위 삭제, 비주얼 블럭 모드, 복붙 norm [ 리눅스 Linux, 유닉스 Unix 포스팅 링크 모음 ] 안녕하세요~!! 저번 시간 vi 편집기의 아주 기초 사용법에 이어서 오늘 vi편집기에서 자주 사용하게 될 블락 복사 기능에 대해서 간단하고 빠르게~ 다 jhnyang.tistory.com
vi 편집기 라인 출력 [리눅스 유닉스] vi편집기 라인 출력하기, 행번호 출력, 검색 결과 하이라이터 색깔칠하기 (hlsearch 안녕하세요!! 아주아주 간단하게 다뤄볼 정말 초스피드로 끝날 거 같은 정보성 포스팅입니다. vi 편집기에서 행번호, 라인번호 출력하기 라인번호 출력해주는 명령어예요. 라인번호출력 :set num jhnyang.tistory.com
update-alternatives 명령어 alternatives (cf, update-alternatives)는 심볼릭 링크를 생성, 제거, 관리, 조회할 수 있는 기능을 제공하는 GNU 라이센스의 커맨드라인 툴. 즉, 심볼릭 링크를 통해서 특정 커맨드에 대해 디폴트 버전 혹은 경로를 정의할 수 있다. 다만, Debian 계열의 리눅스에는 update-alternatives 명령어만 제공 (perl 언어에 대한 의존성을 제거하기 위해 기존의 alternatives 스크립트가 재구현이 되었다고 함)되고, Redhat 계열의 리눅스 명령과 제공하는 기능에는 다소 차이가 있지만, 이번에는 공통적인 기능과 옵션에 대해서만 정리하기로 하였다. 추가로, 예제들은 Redhat 기준으로 정리하였다. 심볼릭 링크 생성하기 (–install) --install ..
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 명령..
[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이 설치되..
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를 사..