[모던 리눅스] bat로 파일 내용 이쁘게 보기 파일 내용을 볼때 cat을 많이 사용하지만, bat도 고려해볼 수 있다.bat은 구문강조를 지원하고 페이저 기능도 추가되어있다.sudo apt install bat 다음은 일반적인 cat 명령어의 결과, 다음은 batcat의 결과다. batcat 6글자를 치기 귀찮다면, alias로 등록!echo "alias cat='batcat'" >> ~/.bashrcsource ~/.bashrc 프로그래밍/Linux 2024.10.27
Apple silicon Mac에서 UTM으로 NetBSD 설치하는 방법 https://stevens.netmeister.org/631/utm/UTM은 애플 실리콘용 Virtual Machine이다. 링크를 따라 스텝을 수행하면 NetBSD를 설치할 수 있다. UTM 다운로드 링크: https://mac.getutm.app/NetBSD 최신 iso 다운로드 링크: https://nycdn.netbsd.org/pub/NetBSD-daily/HEAD/latest/images*aarch64 iso 사용 프로그래밍/Linux 2024.10.27
Advanced Programming in the UNIX Environment https://stevens.netmeister.org/631/ Course OutlineIn this course, students will learn to develop complex system-level software in the C programming language while gaining an intimate understanding of the Unix operating system (and all OS that belong to this family, such as Linux, the BSDs, and even Mac OS X) and its programming environment.Topics covered will include the user/kernel interface, f.. 프로그래밍/Linux 2024.10.27
POSIX 표준에 따라 CLI 애플리케이션 만들기 POSIX (Portable Operating System Interface) UNIX OS의 공통 API를 정리하여 이식성이 높은 유닉스 응용 프로그램을 개발하기 위한 목적으로 IEEE가 책정한 애플리케이션 인터페이스 규격. CLI 애플리케이션은 Flag, Option, Argument, Subcommand로 이루어져 있다. 처음 써보는 CLI 앱이어도 --help를 쳐서 나오는 설명을 읽고 당황하지 않고 쓸 수 있다. 프로그램마다 기상천외한 사용법이 있는게 아니라 어떠한 규칙이 있어보이는데, 그것이 바로 POSIX 표준 덕분이다. POSIX 표준은 Command line 옵션을 지정하고 구문분석하는데 사용되는 일련의 규칙을 제공하여 다양한 CLI 툴을 이해하고 사용하기 쉽게 만들 수 있도록 한다. #.. 프로그래밍/Linux 2023.06.11
LXD와 LXC의 차이 LXD란 무엇인가? 컨테이너 매니저다. LXD 자체는 컨테이너가 아니다. LXC라고하는 Linux Container를 구동할 수 있도록 해준다. 추가적으로, 클러스터링 같은 기능을 지원한다. LXC란 무엇인가? 리눅스 컨테이너. LXC container는 가상머신 같다.(VM-like) Docker 컨테이너는 변경사항이있고, 종료하고 다시 띄우면 변경사항을 잃는다. 반면에, LXC는 가상머신을 재부팅한 것처럼 변경사항이 유지된다. 프로그래밍/Linux 2022.10.04
[lxc] 인스턴스 생성 실패 Failed detecting root disk device: No root device could be found 해결방법 ubuntu@:~$ sudo lxc launch ubuntu:22.04 manager1 Creating manager1 Error: Failed instance creation: Failed creating instance record: Failed initialising instance: Invalid devices: Failed detecting root disk device: No root device could be found lxc 인스턴스 생성시에 No root device could be found 오류가 떴을 경우, profile에 root disk에 대한 storage 설정을 해주어야한다. storage 목록이 만약에 비었다면, $ lxc storage ls +------+--------.. 프로그래밍/Linux 2022.10.03
[Linux] 자바 버전 변경하기 JAVA 16버전을 사용하는 서버에서 안드로이드 빌드를 하는걸 구현하는 도중 "jlink executable /usr/lib/jvm/java-16-openjdk-amd64/bin/jlink does not exist."라는 오류가 발생했었는데, java-11-openjdk 아래에만 jlink가 설치되어 있었다. 그래서 16에서 11로 버전을 변경하게되었는데, 방법을 살펴보자. 1-1. 빠르고 쉬운 방법 update-alternatives를 이용하면된다. $ update-alternatives --config java 대체 항목 java에 대해 (/usr/bin/java 제공) 2개 선택이 있습니다. 선택 경로 우선순? 상태 ---------------------------------------------.. 프로그래밍/Linux 2022.07.24
Linux 날짜 기준으로 오래된 파일 삭제하기 find # 수정된지 2일 지난 파일 find -mtime +1 # 수정된지 2일 이내의 파일 find -mtime -1 # 수정된지 2일 지난 파일을 삭제 find -mtime +1 -delete # 수정된지 2일 지난 txt 파일을 삭제 find -name '*.txt' -mtime +1 -delete find 명령어를 이용하여 특정한 날짜 기준으로 파일을 삭제할 수 있다. 아래는 find 명령어의 관련 옵션들이다. 옵션명 설명 mtime modification time, 수정시간 (내용) ctime change time, 변경 시간 (속성/권한/크기 변화) atime access time, 접근 시간 (open) name 파일 이름 delete 삭제 crontab에 Task 등록하여 주기적으로 삭제.. 프로그래밍/Linux 2022.07.21
2 > &1의 진짜 뜻 # stdin, stdout, stderr "2>&1"를 알아보기전에 이들이 무엇인지 먼저 알아보아야한다. 표준입력(stdin), 표준출력(stdout), 표준에러(stderr)는 unix 커맨드를 실행할때 생성되는 3가지 데이터 스트림(data stream)이다. 스트림은 데이터를 전송할 수 있는 어떤 것인데, 여기서 세 데이터 스트림이 전송하는 데이터는 텍스트(text)다. # File Descriptor 알다시피, unix의 모든 것은 파일이다. 위 표준입/출력/에러 3가지도 unix에겐 파일인데, 프로세스가 열려있는 파일들을 관리하고 이 파일들에 접근하도록 하기 위해서 파일 디스크립터(File Descriptor)라는 추상 개념을 이용하게된다. 이름은 숫자가 아닐것처럼 생겼지만, 파일 디스크립터는.. 프로그래밍/Linux 2022.06.06