취미생활
sudo는 정말 위험한 명령어다. 아무것도 모르는 사용자가 sudo rm -Rf / 를 입력해 서버를 전부다 날려버릴 수도 있지 않은가? 그래서 새 유저는 대부분은 sudo를 사용할 수 없다. 그렇다면 새 유저에게 sudo 권한을 부여하는 방법은 뭐가 있을까? 참고로 이 방법은 대부분의 리눅스 배포판에서 동일하다. sudoer 파일 변경 아주 전통적이고 직관적인 sudoer 파일 변경 방법이다. 정말 직관적이어서 변경하기도 엄청 쉽다. [newuser@찡긋 ]:~$ su Password : [root 비밀번호 입력] [root@찡긋 ]:/home/newuser# cd /etc [root@찡긋 ]:/etc# vi sudoers 위 그림에 빨간 박스와 같이 적어준 뒤 나가면 된다. 이제 sudo 명령어를 통..
기존에 python만 써보다가 요즘은 백엔드를 go로 많이 짠다는 이야기를 들어 golang을 배워보기로 했다. 프로그래밍 시작은 당연히 hello world! 찍어보기 아니겠는가? package main import "fmt" func main() { fmt.Println("Hello, World.") } 대충 시작하는 입장에서 코드를 보고 드는 생각을 적자면, package는 모듈 단위의 이름 선언으로 추정된다. C++로 따지면 namespace 같은 느낌인듯? import는 말 그대로 import이고 C/C++ 기준으로는 include 로 생각하면 될 듯 하다. func은 말 그대로 함수 즉 위 코드는 모듈 선언, 라이브러리 참조, 실행 코드로 이루어져있다.
C++로 개발하다 보면 프로토콜 관련 코딩을 진행할 때 비트단위 변수 제어가 필요한 상황이 자주 생긴다. 그럴 때 마다 등장하는게 구조체 비트 필드이다. 구조체 비트 필드는 별 거 없다. 구조체의 변수들을 비트 필드로 설정해놓은 것이 구조체 비트 필드다. 비트 필드는 쉽게 말해서 비트 값을 제한해둔 변수라고 생각하면 된다. 예시 코드는 아래와 같다. //비트 필드 예시 코드 unsigned int _data1:8; // 8bit unsigned int _data2:4; // 4bit unsigned int _data3:3; // 3bit 이렇게 비트 필드를 선언할 수 있는데, 정수 자료형은 모두 사용 가능하지만 가급적이면 unsigned int, int, bool을 사용하라고 권장하고 있다. https:..
https://drive.google.com/file/d/1gQPxi6-XZM2fQdI3ixWjKiDryZlqRZg1/view?usp=sharing win32diskimager-1.0.0-install.exe drive.google.com 해외 사이트에서 받기에는 넘 느려서 구드 올려놓음
예시 코드 .text .global _start _start: mov r0, #1 ldr r1, =message ldr r2, =len mov r7, #4 swi 0 mov r7, #1 swi 0 .data message: .asciz "hello world\n" len = .-message * 위 예시 코드는 ARM 리눅스 환경에서만 동작합니다. 빌드 명령어 $as 파일이름 -o 출력파일이름 $ld 출력파일이름 -o 실행파일이름 $./실행파일이름 참고사이트 : http://kerseykyle.com/articles/ARM-assembly-hello-world ARM assembly hello world tutorial How to write a simple hello world program in AR..
작업하다가 이렇게 하는게 아니구나 라는 생각이 들 때가 있다. 지금 작업 중인 파일만 이전 버전으로 되돌리고 싶은데 전체 리셋을 하기 위해 파일을 백업해야 할까? 귀찮아 죽겠는데... 그럴 땐 특정 파일에 이 명령어를 입력해주자 git checkout 파일이름 짜잔! 아주 손쉽게 작업 이전으로 되돌리는데 성공했다. 그런데 문득 든 생각... 특정 지점으로 파일을 복구할 수도 있을까? 해당 파일을 test commit 시점으로 되돌려보겠다. 일단 git log에서 커밋 코드를 복사한 뒤에 아래 명령어와 같이 사용한다. git checkout 커밋코드 파일이름 짜잔! 참고로 HEAD~1, HEAD~2, HEAD^1 를 커밋코드에 넣어서 사용할 수도 있다. 정말로 해당 파일이 이전 커밋 시점으로 되돌린 건지 ..
git merge를 진행하다보면 실수로 merge를 할 경우 되돌리다가 branch가 꼬이는 현상이 생기는데 아래 예시를 보자 해당 상황은 feature에서 시작된 branch인 mistake가 master와 merge 하였다. 이 때 mistake branch에서 commit을 취소하려면 아래 코드를 입력하면 된다. git reset --hard HEAD^ 아주 손쉽게 되돌아 왔다. 그렇다면 mistake branch를 master로 옮기는 방법도 있을까? 당연히 있다. 이럴 때는 HEAD^2를 같이 입력해주면 된다. git reset --hard HEAD^2 짜잔, 아주 손쉽게 branch를 옮겨가는데 성공했다. 참고로 이거 관련해서 좀 찾아보다가 HEAD~2가 HEAD^2와 같다는 해외 블로그를 봤..
[pi@NAS]$ sudo apt-get install youtube-dl 깃허브 주소 GitHub - DJmong/youtube-dl_mp3_script: youtube-dl command option is too long, and I need to make a url list file to download aut youtube-dl command option is too long, and I need to make a url list file to download automation - GitHub - DJmong/youtube-dl_mp3_script: youtube-dl command option is too long, and I need to make a... github.com 중국 출장 중에..