본문 바로가기

프로그래밍/리눅스23

vi 에서 특정 문자열 이후 모든 문자열 삭제 (문자열 치환) 리눅스 vi 으로 특정 문자열을 수정하는 것이 편리할 때도 있습니다. 아래와 같은 경우 문자열이 아무리 길어도 명령어 한 줄이면 한 번에 수정이 되서 오히려 메모장보다 편리한 경우가 많습니다. 가끔 사용할 때마다 까먹어서 내가 보려고 정리하게 되네요. - 특정 패턴의 문자열 이후 모든 문자열 삭제 (문자열 치환) :%s/문자열.*// - 파일 편집 중 특정 패턴의 문자열을 한 꺼번에 수정 (치환) 하는 방법 :%s/문자열/변경 문자열/ - 문자열 맨 앞에 특정 문자열 추가 :%s/^/문자열/g - 문자열 맨 뒤에 특정 문자열 추가 :%s/$/문자열/g 2023. 11. 27.
svn: warning: cannot set LC_CTYPE locale svn 명령어 수행 시 아래와 같은 오류가 발생할 경우 체크해봐야할 사항을 정리해봅니다. svn: warning: cannot set LC_CTYPE locale svn: warning: environment variable LANG is en_US.UTF-8 svn: warning: please check that your locale name is correct 1. export 명령어로 현재 locale 을 확인한다. 2. locale 이 설정되어 있지 않을 경우 export LC_ALL="ko_KR.UTF-8" 수행 3. 정상적으로 동작할 경우, 자동으로 추가하기 위해 .bashrc 파일에 추가. 2023. 1. 26.
[linux/리눅스] 패킷 캡쳐를 위한 tcpdump 사용 예제 (옵션 사용법) 리눅스에서 Network 환경을 체크할 때 가장 유용하게 쓰는 명령어입니다. 가장 많이 쓰면서도 자주 쓰는 옵션이 아니면 자주 까먹는 tcpdump 사용 example 을 모아보겠습니다. 1. 기본적으로 사용되는 옵션 -i [인터페이스명] 해당 인터페이스를 캡처 한다. -n 모든 주소들을 변환하지 않음 (port, addres) -c [number] 캡처할 패킷 수 tcpdump -i eth1 -n -c 10 2. 시간을 정확히 보고싶을 때 -t 시간표시 하지 않음 -tt 시간을 형식없이 초로 표시 -tttt 년/월/일/시간/분/초 형식으로 표시 tcpdump -i eth4 -n -tttt -c 10 3. 캡처한 내용을 파일로 저장 -w [파일명] 캡처한 정보를 파일명으로 저장한다. /home/jungf.. 2022. 9. 28.
[linux] crond, crontab 사용법 cron 은 linux 에서 특정한 작업을 주기적으로 실행할 때 아주 유용한 명령입니다. crond 는 crontab 이라는 설정 파일에 따라 주기적으로 동작합니다. 한 번 설정 해놓으면 거의 변경할 일이 없기 때문에 자주 사용하지는 않지만 그렇기 때문에 쓸 때마다 까먹게 되네요. crontab 작성 방법 /etc/crontab 의 기본적인 작성 방법은 아래와 같습니다. 분: 실행될 분을 표시합니다. (* 는 매 분마다 실행) 시간: 실행될 시간을 표시합니다. (* 는 매 시마다 실행) 일: 실행될 날짜를 표시합니다. (* 는 매 일마다 실행) 월: 실행될 월을 표시합니다. (* 는 매 월마다 실행) 요일: 실행될 요일을 표시합니다. (* 는 모든 요일마다 실행) 사용자: 실행할 권한을 표시합니다. (r.. 2021. 1. 17.
[shellscript] 중복 실행 방지 - Avoid redundant execution 쉘스크립트를 작성하다보면 중복 실행에 의해 문제가 발생하는 경우가 종종 있습니다. 이런 경우를 방지하기 위해 간단한 중복 실행 방지 코드를 적용할 수 있습니다. 실행 예하기 코드는 간단하게 1초에 한 번식 현재 시간을 출력하는 shellscript 입니다. Main function 에서 현재는 1초 sleep 후 현재 날짜를 수행하고 있습니다. 중복으로 실행할 경우 하기와 같이 1초에 1번씩 실행되어야 할 것들이 여러 번 출력되는 것을 확인할 수 있습니다. 이렇게 중복해서 실행될 경우 예상하지 못했던 문제가 발생할 수 있기에 중복 실행 코드를 추가합니다. 중복 실행 방지 코드중복 실행 방지 코드는 프로그램 실행 시 pid 번호를 특정 파일에 적어놓고 프로그램이 종료할 경우 해당 파일을 삭제합니다. 중복으.. 2021. 1. 13.
[shellscript] error: garbage option 오류 shellscript 에 중복 방지 기능을 추가하던 중 "error: garbage option" 이런 오류가 발생했습니다. 이상하게도 해당 오류가 발생하고 난 후에는 제가 작성한 파일이 모두 없어져서 한참을 헤맸습니다. 오류 내용은 아래와 같습니다.error: garbage option Usage: ps [options] Try 'ps --help ' or 'ps --help ' for additional help text. For more details see ps(1). 해당 오류는 basename 을 사용하여 수행 중에 lock 파일을 생성하고 수행이 끝나면 해당 lock 파일을 삭제하여 실행파일 중복 방지를 하는 로직이였는데 문제원인은 lock 파일 이름과 실제 수행되는 실행 파일의 이름이 같아.. 2021. 1. 13.
[shellscript] 실행 옵션 - getopt shellscript로 프로그램을 만들다 보면 실행 인자 및 옵션을 필요로 하는 경우가 많이 있습니다. shellscript에서 실행 옵션을 구현을 하는 방법은 getopt 함수를 쓰면 매우 간단해집니다. 이 번 포스팅에서는 제가 자주 사용하는 간단한 실행 옵션 예제를 공유하고자 합니다. 간단한 실행 옵션 예제 이 파일은 실행 옵션 기능을 확인하기 위해 간단히 만든 스크립트입니다. 크게 사용법, 실행 옵션 설정, 실행 옵션 확인 이렇게 세 부분으로 나뉘어 있습니다. 필요한 옵션을 만들 때에는 빨간색으로 표시된 부분을 주의해서 변경해야 합니다. - 인자가 있는 실행 옵션 옵션 뒤에 ":"를 붙여줍니다. 아래 예에서는 "m" 옵션과 "u"옵션이 해당합니다. - 인자가 없는 실행 옵션 옵션만 정의합니다. 아래.. 2021. 1. 8.
[svn 오류] svn: E155009: Failed to run the WC DB work queue associated with SVN 명령을 수행하다 보면 "svn: E155009" 오류가 발생하는 경우가 있습니다. 해당 경우는 WC work queue 에 문제가 있을 경우에 발생합니다. 해당 오류가 발생했을 때는 svn cleanup 명령도 되지 않습니다. svn: E155009: Failed to run the WC DB work queue associated with '[FILEPATH]', work item 755319 (file-install [FILE_NAME] 1 0 1 1) svn: E155017: Can't install '[FILE_NAME]' from pristine store, because no checksum is recorded for this file 해결을 위해서는 아래와 같은 방법으로 간단히 해결.. 2021. 1. 5.
[ubuntu v14.04.1] MariaDB 설치 방법 mariaDB 홈페이지에 방문하면 Linux 종류와 version 에 따른 설치법이 자세하게 나옵니다.downloads.mariadb.org/mariadb/repositories/MariaDB - Setting up MariaDB Repositories - MariaDBTo generate the entries select an item from each of the boxes below. Once an item is selected in each box, your customized repository configuration will appear below. 1. Choose a Distro SLES openSUSE Arch Linux Mageia Fedora CentOS RedHat Mint Ubu.. 2020. 12. 23.
[swig 간단 예제] python 에서 C 라이브러리 함수 호출 SWIG 란 SWIG 는 C나 C++ 과 다른 여러가지 언어들을 간단하게 연결시켜서 사용할 수 있도록 도와주는 언어이다. 즉 C나 C++ 로 만들어진 여러가지 코드들을 Perl, Python, Tcl, Ruby, Java 등에서 사용가능하도록 만들어 준다. 우리가 자주사용하는 스크립트 언어인 Perl, Python 은 매우 강력하지만 몇가지 단점들을 가지고 있다. source 코드가 공개된다는 점과, 실행 속도가 느리다는 점이다. 즉, 속도에 매우 민감한 효율적인 코드를 작성할 필요가 있을때 문제가 될 수 있다. SWIG 를 이용하면 인터페이스 부분은 매우 빠르고 손쉽게 개발이 가능한 Perl, Python 등으로 개발을 하고 코드를 숨겨야 되거나 혹은 나은 성능을 필요로 하는 핵심 부분은 C 로 작성하.. 2020. 12. 4.
[리눅스/Linux] 컴파일을 위한 Makefile 간단 예제 - 여러개의 파일 지난 포스팅에서 아주 간단한 Makefile 예제를 소개했습니다. 간단 예제의 Makefile 을 조금씩만 손 보면 원하는 형태의 프로그램을 간편하게 컴파일할 수 있습니다. 한 번만 만들어놓으면 코드 수정 후 make 명령만 실행하면 알아서 컴파일 하고 실행 파일까지 만들어주니 리눅스 환경에서는 거의 필수로 생각해도 됩니다. Makefile 관련 포스팅 [리눅스] 컴파일을 위한 Makefile - 간단 예제 simple example 여러 개의 파일을 컴파일하는 Makefile 예제 이번에는 여러 개의 파일을 컴파일하는 Makefile 을 소개하도록 하겠습니다. 우선 컴파일을 수행할 프로그램 코드를 만들어줍니다. 지난 시간에 만들었던 test.c 를 그대로 이용하고 약간 확장해서 korea.c, worl.. 2020. 12. 3.
[프로그래밍] ASCII table, 아스키 코드표 컴퓨터의 언어 - ASCII 코드 ASCII는 정보 교환을 위한 미국 표준 코드를 나타냅니다. 컴퓨터는 숫자만 이해할 수 있으므로 ASCII 코드는 'a' 또는 '@'와 같은 문자 또는 특수문자 등을 컴퓨터가 알아볼 수 있는 숫자로 표현한 것입니다. ASCII는 오래 전에 개발되었으며 현재 사용되지 않는 문자는 초기에 만들어진 용도로 거의 사용되지 않습니다. 아래는 ASCII 문자 테이블이며 0~32번까지 처음 32개의 문자는 현재는 사용되지 않습니다. ASCII는 실제로 텔레타이프와 함께 사용하도록 설계되었으므로 설명이 다소 모호합니다. Notepad.exe 에서 ASCII 텍스트를 생성하거나 MS Word에서 파일을 '텍스트 전용'으로 저장하는 것이 바로 ASCII 형식으로 저장하는 것입니다. 0x0.. 2020. 12. 3.