[bash: sed] 문자열 대체 명령 여러개를 파일에 저장해서 활용하기
By 반달가면 | 2018년 1월 15일 |
sed 명령에서 여러개의 문자열을 각각 대체할 경우 -e 옵션을 활용할 수 있는데(이전 게시물을 참고하자. 여기로), 대체 명령을 파일에 저장해서 이용할 수도 있다. 우선 -e 옵션의 예시를 보자. # 문자열 abc를 123으로, def를 456으로 대체 echo "abc def xyz" | sed -e 's/abc/123/' -e 's/def/456/' 123 456 xyz 위의 작업에서 -e 옵션에 사용할 명령들을 파일에 저장해서 불러올 수 있다. 예를 들어 test.sed 파일에 이 명령들을 저장했다면 아래와 같은 형태가 된다. # test.sed 파일 내용 확인 cat test.sed s/abc/123/ s/def/456/ test.sed 파일에 있는 명령어를 적용
curlftpfs - 리눅스에서 ftp 서버를 디렉토리에 연결(마운트)하기
By 반달가면 | 2018년 5월 9일 |
리눅스에서 curlftpfs를 활용하면 ftp 서버에 접속해서 작업하는 과정을 로컬(local) 디렉토리에서 작업하는 방식과 동일하게 만들 수 있다. ftp 서버의 디렉토리를 로컬 디렉토리에 연결(마운트)해 준다. 우선 curlftpfs 패키지를 설치하자. 데이안/우분투 계열 기준으로 터미널창에서 아래와 같이 입력 # curlftpfs 설치 sudo apt-get install curlftpfs 이제 연결을 해 보자. 예를 들어 ~/ftpfs_test 디렉토리에 연결할 ftp 서버 주소는 ftp.my_server.net, 접속 계정은 john, 암호는 abcd라면 아래와 같이 실행할 수 있다. curlftpfs ~/ftpfs_test 이제 ~/ftpfs_test 디렉토리로 가 보
[라즈베리파이] 시그널 - 커널에서 시그널은 어떻게 처리할까?
By Guillermo Austin Kim | 2018년 12월 2일 |
리눅스 커널 입장에서 시그널은 프로세스 간 통신을 위한 간단한 인터페이스입니다. 커널은 상황에 따라 시그널을 생성하고 전달해주는 역할을 수행합니다. 리눅스 커널에서 시그널에 대한 처리는 2단계로 나눌 수 있습니다. 1> 시그널 생성유저 공간에서 시그널을 설정하면 커널은 해당 프로세스의 태스크 디스크립터에 시그널 정보를 써줍니다. 시그널을 받을 프로세스 스택 최상단 주소에 있는 struct thread_info flags 멤버에 _TIF_SIGPENDING 매크로를 써 줍니다. 시그널을 받을 프로세스에게 누군가 시그널을 생성했고 해당 시그널이 전달될 것이라고 알려주는 것입니다. 이후 시그널을 받을 프로세스를 깨웁니다. 2> 시그널 처리시그널을 받을 프로세스가 시스템 콜이나 인터럽트 처리를 마무
[리눅스] insmod 명령어로 드라이버 설치 시 커널 내부 동작 디버깅해보기(ftrace)
By Guillermo Austin Kim | 2020년 6월 28일 |
이전에 다음 글에서 insmod 명령어를 통해 모듈 타입 디바이스 드라이버가 설치될 때,커널 내부 함수가 어떤 흐름으로 작동하는지 코드를 리뷰했습니다. [리눅스] 드라이버: module_init 키워드로 지정한 함수가 호출되는 원리 - sys_finit_module()http://rousalome.egloos.com/10016090 이어서 이번 시간에는 ftrace를 통해 hello_module_init() 함수가 어떻게 호출되는지 살펴보겠습니다. insmod 명령어로 디바이스 드라이버를 설치할 때의 전체 흐름 먼저 다음 그림은 insmod 명령어로 디바이스 드라이버를 설치할 때의 전체 흐름을 나타냅니다. 그림의 윗 부분에서 '유저 공간'으로 표기된 부분을 봅시다. insmod가 실행되어 시