리눅스
Posts
554 posts[bash: csplit] 설정한 기준에 따라 텍스트 파일 분할하기
csplit은 리눅스에서 기본적으로 제공되는 파일 분할 프로그램이다. 특정 행번호, 또는 특정 문자열을 기준으로 파일을 분할해야 하는 경우에 사용한다. csplit의 인자(argument)는 아래와 같이 지정한다 csplit [옵션] [입력 파일] [패턴] 자주 사용하는 옵션은 아래와 같다. -f: 분할된 출력 파일 이름 지정 -z: 결과중에 크기가 0인 파일은 삭제 -k: 오류가 발생할 경우에도 이전까지 생성된 분할 결과 파일 유지(-k 옵션이 없으면 오류 발생시 출력 결과가 삭제된다.) 패턴은 행번호 또는 정규표현식(regular expression, regex), 그리고 반복 회수를 지정할 수 있다. 몇가지 예시를 통해서 살펴보자. 예시에 사용할 파일 sample.t
[리눅스커널][디버깅] dump_stack() 함수
dump_stack() 함수 dump_stack() 함수는 콜스택을 커널 로그로 출력합니다. 커널 로그로 콜스택을 보고 싶은 코드에 삽입하면 됩니다. 이 함수를 호출하려면 C 코드 윗부분에 다음과 같이 "linux/kernel.h" 해더 파일을 추가해야 합니다. #include dump_stack() 함수 선언부를 봅시다.asmlinkage __visible void dump_stack(void); 인자와 반환값 타입이 모두 void입니다. 커널 소스 코드 어디든 dump_stack() 함수만 추가하면 됩니다. dump_stack() 함수로 커널 로그에서 콜스택 확인하기이번엔 dump_stack() 함수를 써서 커널 로그로 콜스택을 볼 수 있는 패치 코드를 소
리눅스에서 cp 명령으로 복사를 하다가 중단한 것을 나중에 재개하는 문제
cp 명령으로 복잡한 디렉토리 구조의 엄청 많은 파일을 복사하던 중에 시간이 없어서 중단하고 내일 다시 이어서 복사를 진행해야 하는 상황이 벌어졌을 경우에 대한 내용이다. 가끔 이런 일이 벌어지는 관계로 작업 절차를 정리해 두기로. # ~/src 디렉토리의 내용 전체를 ~/backup 디렉토리로 복사 cp -r ~/src ~/backup 예를 들어 ~/src 디렉토리를 ~/backup 디렉토리 하위에 복사를 하고 있던 중에 ctrl-c 눌러서 중단을 했는데, 이미 복사된 것들을 다 지우고 다시 처음부터 복사하자니 그동안 들인 시간이 아깝다. 문제는 파일이 워낙 많다 보니, 대체 어느 파일을 복사하다가 중간에 끊어졌느냐를 찾아야 한다는 점. find 명령을 이용해서 ~/backup 하위에서
[리눅스커널][디버깅] printk에 대해서
printk printk는 printf와 유사한 기능입니다. printf는 윈도우 콘솔 프로그램이나 리눅스 시스템 프로그램에서 로그를 출력합니다. 마찬가지로 printk() 함수를 호출하면 커널 로그를 볼 수 있습니다. printk 를 커널 함수에 적절히 추가하면 유용한 디버깅 정보를 얻을 수 있습니다. 리눅스 커널 핵심 함수도 printk를 이용해 시스템 정보를 출력합니다. 커널 핵심 코드에서 printk를 쓰는 예시 코드를 소개합니다.[https://elixir.bootlin.com/linux/v4.14.70/source/arch/arm/kernel/process.c]01 void __show_regs(struct pt_regs *regs)02 {...03 printk("pc : [<%08l



![[Spoiler] '우주 형제' 완결. 매거진 신작 '천선 전기'.](https://img.zoomtrend.com/2026/06/10/1781142015-ECBD98ED8AB8EBA1A4EB9FACEBA5BCEB93A0EC9E90.jpg)