본문 바로가기

linux19

Linux ] NAS 마운트 방법 1. NAS 접근 확인smbclient 패키지 설치sudo apt install smbclient 마운트 전에 공유가 열려 있는지, 어떤 공유 폴더가 있는지 확인 smbclient -L //192.168.1.100 -U 사용자-L : 서버가 제공하는 공유 목록을 보여줌-U 사용자 : NAS 사용자 계정 2. NAS 마운트cifs-utils 패키지 설치sudo apt install cifs-utils 1. 에서 확인된 공유 이름으로 마운트한다. 이때 NAS 공유 폴더 이름이나 로컬 마운트 지점에 한글 또는 공백이 들어가면 따옴표로 감싸야 한다.sudo mount -t cifs "//192.168.1.100/내 공유" /mnt/nas \ -o username=사용자,password=비밀번호,vers=.. 2025. 10. 12.
Linux Shell command로 CSV 파일을 보기좋게 출력하는 법 이 글에선 리눅스 터미널에서 쉘 명령을 활용해 CSV 파일을 출력하는 방법과 특정 column이나 row만 출력하는 방법을 소개한다. 1. 샘플용 CSV 파일 만들기cat sample.csvname,age,jobAlice,28,EngineerBob,32,DesignerCharlie,25,Data AnalystEOF 쉘에서 여러 줄의 텍스트 파일을 만들 때는 위와 같이 Here Document 구문을 사용할 수 있다.위 구문은 다음과 같이 동작한다.cat > sample.csv : 표준 출력을 파일로 리디렉션함... EOF : 위에서 지정한 키워드가 나오면 입력을 종료함 (EOF 대신 END, EOL 등 원하는 문자로 대치할 수 있다.) 단순히 cat 명령을 사용해 파일을 출력하면 다음과 같이 보인다.. 2025. 9. 27.
Linux ] 명령줄에서 Wi-Fi 연결하는 방법 방법 1. nmcli를 사용하는 방법nmcli는 NetworkManager의 명령줄 도구로, 간단한 명령어로 Wi-Fi에 연결할 수 있다. 1. 무선 인터페이스 확인$ nmcli device wl(Wireless Lan)로 시작하는 wifi 타입의 장치를 확인한다. 예: wlan0, wlp3s0 등 2. 주변 Wi-Fi 네트워크 검색$ nmcli device wifi listIN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY * XX:XX:XX:XX:XX:XX Galaxy S22 4146 Infra 6 130 Mbit/s 76 ▂▄▆_.. 2025. 7. 15.
Linux ] systemd에 서비스 등록하는 방법 systemd란 무엇이고 언제 쓰일까?🐧리눅스 시스템에서 systemd란 백그라운드에서 실행되는 프로그램인을 제어하는 도구이다. 일반적으로 프로그램을 터미널에서 직접 실행하면, 터미널이 종료될 때 프로그램도 같이 종료된다. 하지만 개발자가 프로그램 배포 시 원하는 형태는 다음과 같은 것이다.사용자가 컴퓨터에 로그인하지 않아도 프로그램이 항상 동작해야 함.프로그램이 실패나 오류로 종료되더라도 자동으로 다시 시작해야 함.애플리케이션 실행 중에 발생한 에러와 상태 로그를 쉽게 추적할 수 있어야 함.이런 요구사항을 해결해주는 것이 바로 systemd이다. 즉, 내가 개발한 애플리케이션이 백그라운드에서 안정적으로 실행되고 관리될 수 있도록 한다. ✓ 용어 정리데몬 (Daemon) :백그라운드에서 실행되는.. 2025. 7. 3.
듀얼 부팅 PC에서 Linux와 grub 완전히 삭제하기 리눅스 삭제하기 1. 윈도우로 부팅한다. 2. 관리자 권한으로 명령 프롬프트 실행 3. diskpart를 실행한다.diskpart 4. 아래 절차대로 리눅스가 설치된 디스크를 초기화한다.# 디스크 목록 확인list disk# 초기화할 디스크 선택, 디스크 관리(diskmgmt.msc)를 통해 리눅스가 설치된 디스크를 확인한다.sel disk # 디스크 초기화, 전체 데이터가 삭제된다.clean# 새 파티션 생성create partition primary# 파티션 선택sel part 1# 포맷format fs=ntfs quick# 드라이브 문자 할당assign grub 부트로더 삭제하기 1. 윈도우로 부팅한다. 만약 바로 grub에 진입하면 그 전에 bios에 들어가서 부팅 순서를 바꿔야한다. 2. .. 2025. 5. 30.
Ubuntu ] Failed to fetch... Hash sum mismatch 오류 해결 방법 sudo apt update 실행 시 다음과 같은 오류 메시지가 발생한 경우의 해결 방법Failed to fetch... Hash Sum mismatch  이 오류는 APT 서버에서 받은 파일의 해시값이 로컬에서 기대한 값과 일치하지 않을 때 발생하며, 주로 다운로드 중 중단으로 로컬 캐시가 손상되었거나, 미러 서버와의 동기화 문제로 인해 발생한다.  해당 오류 발생 시, 아래 순서대로 해결을 시도해볼 수 있다  1. 오류 복구 시도sudo apt update --fix-missing  2. APT 캐시 삭제 후 재시도sudo apt-get cleansudo rm -rf /var/lib/apt/lists/*  3. /etc/apt/sources.list 파일을 수정해 다른 APT 미러 서버로 재시도  4.. 2025. 5. 27.
Linux와 Windows 듀얼 부팅시 시간이 어긋나는 문제 해결하기 문제 원인컴퓨터에는 RTC(Real-Time Clock)라는 칩이 메인보드에 내장되어 있는데, RTC는 배터리 전원을 사용해 컴퓨터가 꺼져 있어도 지속적으로 시간을 카운팅하는 기능을 한다. 그리고 컴퓨터가 다시 켜지면 운영체제는 RTC에 저장된 시간을 불러오고 이후에는 소프트웨어적으로 시스템 시간을 관리한다. 하지만 윈도우와 리눅스가 RTC에 시간을 저장하는 방식에 차이가 있는데 윈도우는 로컬 타임을 저장하고, 리눅스는 UTC를 저장한다. 때문에 윈도우와 리눅스를 번갈아 부팅할 경우 시간이 어긋나는 문제가 발생할 수 있다.   문제 해결 방법 문제 해결을 위한 2가지 방법을 생각해 볼 수 있겠다. 리눅스가 하드웨어 시계를 로컬 시간으로 처리하도록 하는방법윈도우가 하드웨어 시계를 UTC로 처리하도록 하는 .. 2024. 12. 27.
왜 Windows 만 path 구분자로 Backslash를 사용할까 웹 (http://www.google.com/), 리눅스 (/home/user/), Android 등 대부분의 곳에서 path 구분자로 / forward slash를 사용하는데 왜 윈도우만 \ backslash를 사용할까? MS-DOS 1.0 시절에는 디렉터리를 지원하지 않았고 / 를 명령어의 옵션을 선택하는 용도로 사용했다. 현재도 명령 프롬프트에서 dir /? 를 치면 dir 명령어로 사용가능한 옵션의 목록을 볼 수 있다. MS-DOS 2.0 시절부터는 디렉터리 지원을 도입했지만 / 문자는 이미 다른 용도로 사용하고 있었기 때문에 시각적으로 가장 비슷해 보이는 문자인 \ 를 path 구분자로 사용하기로 했다. 즉 윈도우만 path 구분자로 backslash를 사용하는건 DOS시절의 레거시인 셈이다. .. 2023. 7. 11.
Linux ] cat 명령어, > 리다이렉션 📝 cat 명령어 사용법 cat [옵션][파일명] 📝 파일 내용 출력하기 cat file.txt cat -n file// 행번호 표시해서 출력 cat file1 file2// 여러 파일을 연속해 출력 📝 리다이렉션 사용해 파일 만들기 cat 명령어와 > 리다이렉션 사용해 파일 만들기 cat > file// 기존에 있던 내용을 지우고 저장 cat >> file// 기존 파일 내용 뒤에 연속해 기록 치면 파일 내용을 입력할 수 있게 커서가 깜빡거린다. 내용 입력 후 엔터를 치고 Ctrl + D 를 누르면 입력한 내용이 파일에 저장이 된다. echo 명령어와 > 리다이렉션 사용해 파일 만들기 echo "Hi" > hi.txt 기타 명령어의 출력 내용을 파일에 기록하기 ll > file.txt ls -al > .. 2022. 10. 10.
Linux ] 연속으로 명령 실행시키기 ; & && || pipe a; b : 앞의 명령어가 실패해도 다음 명령어 실행 a && b : 앞의 명령어가 성공했을 때 다음 명령어가 실행 a & b : 앞의 명령어를 백그라운드로 돌리고 동시에 뒤의 명령어를 실행 a || b : 앞의 명령어가 성공했을 때 다음 명령어 미수행, 앞의 명령어 실패 시 다음 명령어 실행 그 외 a | b : pipe, a의 수행 결과를 b가 받아서 수행 ex. cat /etc/passwd | grep mail 시스템의 계정정보가 들어있는 /etc/passwd 파일을 출력하는데 mail 이란 문자열이 들어간 라인만 필터링 tail -20 /etc/passwd | cat -n /etc/passwd 파일을 뒤에서 20줄 출력하는데 cat -n 옵션인 줄번호를 붙여 출력 2022. 10. 9.
Linux ] mv, rename 명령어 사용법, 파일명 변경, 파일 이동, 확장자 일괄 변경 📝 mv 명령어 사용 파일명 변경 mv 기존파일명 변경파일명 📝 mv 명령어 사용 파일 이동 mv 기존파일경로/기존파일명 옮길경로/변경파일명 파일이 위치를 이동하면서 파일명을 변경하는 것도 가능 📝 rename 명령어를 사용하기 위해 설치 sudo apt install rename 📝 테스트용 빈 파일 만들기 touch test1.c && touch test2.c 📝 rename 명령어 사용하여 확장자 또는 파일명 일괄 변경하기 rename 's/변경전문자열/변경후문자열/' 변경대상 rename 's/.c/.txt/' *.c rename 's/.txt/.c/' *.txt rename 's/test/TEST/' *.c 2022. 10. 9.
C, Linux ] pthread 사용해 보기 pthread 사용해 보기#include #include #include #include #include void *thread1_func (void *vargp){ unsigned short cnt=0; printf("Thread 1 function starts...\n"); while(1) { sleep(1); printf("thread1_func is running ===>(%d)\n", cnt++); }}void *thread2_func (void *vargp){ unsigned short cnt=0; printf("Thread 2 function start.. 2022. 8. 25.
C, Linux ] ls 명령어 구현 리눅스의 ls 명령어 구현하기 #include#include// 디렉터리 관련 DIR, struct dirent, opendir(), readdir(), closedir() 등이 정의된 헤더 포함#include// Unix 에 쓰이는 표준 심볼들과 상수, 함수들이 정의된 헤더 포함#includeint main(int argc, char* argv[]){ // cwd에 1024 byte 동적할당 char * cwd = (char *)malloc(sizeof(char) * 1024); // DIR 과 dirent 구조체 포인터를 만들고 일단 NULL 대입 DIR * dir = NULL; struct dirent * entry = NULL; .. 2022. 8. 17.
C, Linux ] main 함수의 매개변수 사용해서 파일 입출력 하기 main 함수에 전달되는 파라미터를 활용해 코드를 짤 때는 아래와 같이 출력해 디버깅 해보면 편하다.for(int i=0; i 1. main 함수의 argument 로 파일이름과 파일에 저장할 문자열을 입력받아 파일을 생성하는 프로그램#include#include#includeint main(int argc, char *argv[]){ /* for(int i=0; i "); return 0; } FILE *fp; fp = fopen(argv[1], "w"); if(fp==NULL){ printf("file open error!"); return 1; .. 2022. 8. 17.
Linux Ubuntu ] Waiting for cache lock : Could not get lock /var/lib/dpkg/lock-fro 오류 해결 apt update 또는 apt install 시 아래 문구가 무한 반복되는 오류 잠긴 캐시 파일을 다음 명령어로 삭제 sudo rm /var/lib/dpkg/lock* 2022. 8. 14.
Linux ] Vim 에디터 단축키 및 설정 커서 이동gg : 맨 위로 커서 이동G : 맨 아래로 커서 이동[Home] : 현재 줄의 맨 앞으로 커서 이동[End] : 현재 줄의 맨 뒤로 커서 이동shift + h : 현재 보이는 페이지 기준으로 맨 위로 커서 이동shift + m : 현재 보이는 페이지 기준으로 중간 위치로 커서 이동shift + l : 현재 보이는 페이지 기준으로 맨 아래로 커서 이동d : 현재 단어의 맨 앞으로 커서 이동 원하는 줄번호로 커서 이동:줄번호  스크롤Page Up : 한 페이지 위로 스크롤Page Down : 한 페이지 아래로 스크롤Ctrl + u : 반 페이지 위로 스크롤Ctrl + d : 반 페이지 아래로 스크롤Ctrl + y : 한 줄 위로 스크롤Ctrl + e : 한 줄 아래로 스크롤  복사/붙여넣기/잘라내.. 2022. 8. 14.
VMware 에 Linux Ubuntu 설치하기 VMware 다운로드 경로 : https://www.vmware.com/kr/products/workstation-player/workstation-player-evaluation.html 설치 우분투 iso 이미지 다운받기 최신 버전은 공식 홈페이지에서 다운받고 예전 버전은 아래 사이트에서 다운 받는다. http://old-releases.ubuntu.com/releases/ Ubuntu 20.04.3 LTS 데스크탑버전으로 다운받았다. 여유 공간이 있는 드라이브에 원하는 이름으로 폴더 생성 나중에 설치 선택 아까 만들어둔 폴더 경로 선택 디스크 용량을 지정하고 가상 머신의 내용을 하나의 파일에 저장할 것인지, 여러 파일에 나눠 저장할 것인지를 선택 생성후 edit 가상 머신에 설치된 리눅스의 동작에 .. 2022. 8. 13.
[ VMware ] 에서 USB 인식이 안될 때 문제 해결 윈도우키+R키로 실행창을 열고 services.msc 를 입력 VMware USB Arbitration Service 를 찾아서 시작유형은 자동으로 하고 시작을 눌러 상태를 실행중으로 바꿔줌 VMware 세팅창을 열어 Hardware 부분에 USB Controller가 add되어 있고 Connections에는 show all USB input devices 가 체크되어 있는지 확인 이제 가상환경에서 usb를 꽂으면 게스트os에 연결할지 묻는 창이 뜨고 확인을 누르면 된다. lsusb 명령어로 확인해 보니 잘 인식 됨. 2022. 4. 5.
[ Mediapipe ] Ubuntu Linux에 설치하고 실행해보기 with python on VirtualBox 실행환경 Virtual Box Ubuntu 20.04.4 LTS desktop ver Python 3.8.10 OpenCV 4.5.5 0. 파이썬 설치되어있는지 확인하고 안되어있으면 설치하기 Ubuntu 20.04버전을 깔았다면 Python 3.x 버전이 이미 설치되어있다. dpkg -l 명령어로 현재 깔려있는지 알 수 있으며 안깔려 있는 경우 다음 명령어로 설치가능 sudo apt-get install python3 1. pip 설치하기 sudo apt-get update sudo apt-get install python3-pip 2. pip로 OpenCV 라이브러리 설치 pip3 install opencv-python 잘 설치가 됐다 warning이 떴으니 ~/.bashrc 를 열어 PATH 추가도 .. 2022. 4. 4.
반응형