[bash: awk] awk에서 외부 명령을 실행하고 결과를 변수에 저장하기
By 반달가면 | 2016년 12월 20일 |
awk에서 문자열 작업을 할 때 외부 프로그램을 실행하는 방법이다. awk 자체적으로도 제공하는 다양한 함수 외에 외부 명령을 필요로 하는 상황에서 아주 요긴하다. 예시를 하나 생각해 보자. my_data.txt 파일을 읽어서 한 행마다 MD5 해쉬값을 구해야 하는 경우다. awk에는 MD5 해쉬를 계산해 주는 함수가 없으므로 리눅스에서 제공하는 md5sum을 이용해야 한다. 먼저 md5sum 예시를 보자면 아래와 같다. # 문자열 abc의 MD5해쉬값 계산 echo "abc" | md5sum 0bee89b07a248e27c83fc3d5951213c1 - md5sum의 출력이 "[MD5해쉬값] - [파일명]" 형태이므로 해쉬값만 취하려면 cut을 이용해서 -c 옵션으로 아래와 같이 앞쪽
[라즈베리파이]워크큐(Workqueue) - 워크 초기화는 어떻게 하나
By Guillermo Austin Kim | 2018년 9월 5일 |
워크를 실행하기 위해서 먼저 워크를 초기화해야 합니다. 워크를 초기화하기 위해서 INIT_WORK() 혹은 DECLARE_WORK() 매크로를 써야 합니다. INIT_WORK() 매크로는 함수가 실행할 때 워크를 동적으로 초기화하고 DECLARE_WORK()은 컴파일이 될 때 전역 변수로 워크를 설정합니다. 두 매크로를 쓰면 워크를 어떻게 초기화하는지 드라이버 코드를 확인하겠습니다. 첫 번째로 INIT_WORK() 매크로로 워크를 초기화하는 방법입니다. 다음 4번째 줄 코드를 보겠습니다.1 void tty_buffer_init(struct tty_port *port)2 {3 struct tty_bufhead *buf = &port->buf;..4 INIT_WORK(&buf->wo
리눅스에서 특정 디렉토리를 다른 디렉토리에 마운트(mount)하기 (--bind 옵션)
By 반달가면 | 2019년 5월 11일 |
특정한 디렉토리를 다른 디렉토리에 마운트(mount)해서 양쪽 디렉토리가 같은 곳으로 연결되도록 할 수 있다. mount에서 --bind 옵션을 사용하면 된다. 예를 들어 /home/john/data 디렉토리를 /home/jane/data_from_john 디렉토리에 연결하는 경우다. mount를 사용하므로 심볼릭 링크(symbolic link)와 달리 루트 권한을 필요로 한다. # /home/john/data 디렉토리를 /home/jane/data_from_john에 마운트 sudo mount --bind /home/john/data /home/jane/data_from_john 마운트를 해제하려면 umount를 사용. # 마운트 해제 sudo umount /home/jane/da
ufw - 리눅스용 방화벽
By 반달가면 | 2021년 4월 5일 |
ufw는 우분투 계열 리눅스에 기본으로 탑재된 방화벽이다. 기본적인 몇가지 명령어들을 정리해 두기로. 방화벽이 활성화되어 있는지 상태를 확인하고 활성화/비활성화하는 예시는 아래와 같다. # ufw 상태 확인 sudo ufw status # ufw 상태 확인, 허용/거부 규칙 표시 (규칙 번호 표시) sudo ufw status numbered # ufw 활성화 sudo ufw enable # ufw 비활성화 sudo ufw disable 특정 접속을 허용하는 규칙은 allow, 거부하는 규칙은 deny로 지정한다. 예를 들어 특정 IP주소 또는 IP주소 대역을 허용 또는 거부할 수 있다. # 192.168.0.10으로부터의 접속 허용 sudo ufw allow