본문 바로가기

Linux20

OS 알아보기 Linux OS 확인 C#은 윈도우즈와 리눅스에 모두 동작합니다. 그런데 어떤 OS인지에 따라 사용하는 리소스에 접근하는 방법이 다릅니다. 특히 통신이나 데이터 베이스 접근을 다르게 해야 합니다. 그래서 C#이 동작할때 어떤 OS 상태인지 알 필요가 있습니다. 다음 코드는 동작 OS가 리눅스이면 true를 반환합니다. private static bool isLinux(){ bool ret=false; try{ int p=(int)Environment.OSVersion.Platform; ret=(p==4)||(p==6)||(p==128); } catch(Exception){ ret = false; } return ret; } 광고좀 꾹 눌러주시면 고맙겠습니다. 2021. 8. 14.
c#에서 ssh scp로 bash 명령어 실행 및 파일 전송 C#에서 ssh 실행 c#에서 ssh를 실행해서 Raspberry Pi를 조정할 수 있습니다. 또 ssh의 scp를 이용해서 파일 복사도 가능합니다. 먼저 Nuget 패키지 관리자를 이용해서 다음의 내용을 추가합니다. Renci.ssh.net과 WinSCP의 두 가지 방법으로 실행 방법을 선택해서 적용이 가능합니다. Renci.ssh.net을 이용한 bash 명령어 사용 다음 코드는 ssh로 Raspberry PI로 접근해서 ls -la이라는 명령어를 실행하고 결과를 PC의 콘솔로 출력하는 내용입니다. 다른 명령어를 사용해도 됩니다. using Renci.SshNet; using Renci.SshNet.Sftp; using Renci.SshNet.Common; SshClient client = new S.. 2021. 8. 11.
RaspberryPi-한글 설정 Raspberry Pi를 한글로 설정해서 설치하면, 처음에 한글 부분이 모두 보이지 않습니다. 이는 터미널에서도 동일합니다. 다음과 같은 내용을 설치하고 reboot 하면 한글 부분이 잘 보입니다. sudo apt-get install ibus -y sudo apt-get install ibus-hangul -y sudo apt-get install fonts-unfonts-core -y 2021. 8. 11.
MobaXterm, WinSCP의 설치와 활용 ssh 접속을 위한 MobaXterm ssh를 통해 Raspberry Pi에 접속해서 원격 작업을 많이 수행하게 됩니다. 가장 많이 사용하는 방법은 Putty를 이용하는 거겠죠. 그러나 Putty는 다중 모니터 환경을 제공하고 있지 않기 때문에 아주 조금 불편합니다. 'MobaXter은 4개의 다중 모니터 환경을 제공합니다. 즉 4개의 Raspberr Pi에 동시에 접속하거나, 한 개의 Raspberry Pi에 다른 4개의 경로에 접속해서 사용해도 됩니다. MobaXterm은 https://mobaxterm.mobatek.net/download.html에서 구할 수 있는데, 가정에서 사용하는 조건이면 무료입니다. 그러니 사무실에서 사용하려면 구매를 해야 합니다. 설치된 MobaXterm에서 4개의 모니터.. 2021. 8. 11.
RaspberryPi- sysv-rc-conf로 부팅 프로그램 관리 그리고 런 레벨 Raspberry Pi에서 부팅을 통해 동작하는 프로그램을 설정할 수 있습니다. 이를 관리하는 간단한 프로그램이 sysv-rc-conf로 다음과 같이 설치합니다. 이 프로그램은 sudo와 함께 사용해야 합니다. sudo apt-get install sysv-rc-conf 그러면 다음과 같이 리눅스의 런 레벨에 따라 동작할 프로그램을 지정할 수 있습니다. 사용 방법은 스크린 맨 위에 표시됩니다. 부팅 시, 동작하고자 하는 프로그램과 런 레벨을 x 표시로 묶어서 활성화하면 됩니다. 대부분의 프로그램이 적합한 런 레벨을 설정해 줍니다. 또한 프로그램의 실행 여부를 결정할 수도 있습니다. (service 명령어와 동일합니다.) 런 레벨(run level)은 어떤 내용으로 리눅스를 실행할 것인지 설정하는 방식입니.. 2021. 8. 11.
mplayer 설치와 활용방법(1) mplayer는 command로 제어하기 편리한 오디오 재생 프로그램입니다. 특히 slave mode를 통해서 제어가 가능합니다. mplayer의 설치 sudo apt-get install mplayer mplayer의 간단한 재생 기본 출력으로 선정된 사운드 카드로 재생하는 방법입니다. mplayer test.mp3 특정 사운드 카드를 선정해서 재생할 수도 있습니다. 사운드 카드 번호는 aplay -l 을 통해 확인할 수 있습니다. mplayer -ao alsa:devie=hw=0.0 test.mp3 만약 -ao를 사용하지 않고 지속적으로 사운드 카드를 지정하고 싶다면 다음이 파일 내용을 조정합니다. sudo nano ~/.mplayer/config 원하는 사운드 카드 번호를 입력합니다. ao=alsa.. 2021. 8. 11.
Linux-DOS format 파일의 사용 windows에서 생성된 파일을 linux에서 사용하려면 오류가 발생할 때가 있습니다. 이는 window에서 생성된 파일은 기보적으로 DOS format으로 기록되기 때문입니다. 이를 linu에서 사용하려면 다음의 파일을 설치하면 됩니다. sudo apt-install dos2unix 그리고 변환고자 하는 파일을 선택하여 실행하면 됩니다. sudo dos2unix test.txt 2021. 8. 11.
Linux- Shell 명령어에서 외부 변수 사용하기 shell를 사용할 때 가끔 외부 변수를 조건으로 사용하고 싶을 때가 있습니다. 다음과 같이 test.sh의 shell을 작성하면 두 개의 입력 변수를 받아서 화면에 출력하게 됩니다. #!/bin/Bash echo "> $1" echo ">> $2" 다음과 같이 실행해 보겠습니다. sh test.sh abc 1234 그러면 다음과 같이 출력됩니다. > abc >> 1234 shell에서 $0인자는 자기 자신을 의미합니다. c 언어에서 arg []의 첫 번째 내용이 자신의 이름을 표시하는 것과 같습니다. 그러므로 사용하고자 하는 인자는 $1부터 시작합니다. 2021. 8. 11.
alsamixer의 조정 명령어 amixer로 사운드 카드 상태 알아보기 alsa의 mixer를 명령어로 조정이 가능합니다. 이를 프로그램에서 응용해서 실행할 수도 있습니다. 실행 명령어는 다음과 같고, 조정 가능한 내용이 출력됩니다. 조정 가능한 내용은 사운드 카드마다 다르기 때문에 출력 내용을 잘 봐야 합니다. 여기서 -c 0는 알아보고자 하는 사운드 카드의 번호인데, usb 사운드 카드 한 개만 조정하도록 설정했기 때문에 0번 사운드 카드만 적용할 수 있습니다. 다른 사운드 카드의 번호는 aplay -l로 확인해서 적용하면 됩니다. amixer -c 0 Simple mixer control 'Speaker',0 Capabilities: pvolume pswitch pswitch-joined Playback channels: Fro.. 2021. 8. 11.
alsa의 믹서 조정 alsa는 믹서를 유틸리티로 포함하고 있습니다. 다음과 같은 명령어를 사용해서 믹서를 조정할 수 있습니다. alsamixer 그러면 조정 가능한 오디오 채널과 볼륨 조정 상태를 보여줍니다. 여기서 F5를 눌러서 사운드 카드를 선택합니다. 그리고 F5를 눌러 모든 오디오 채널을 표시하도록 유도합니다. 사운드 카드의 종류에 따라 보이는 내용이 다릅니다. 원하는 볼륨으로 조정 후에 esc 버튼을 눌러 종료합니다. 결과를 기록하고 싶으면 다음과 같이 실행합니다. sudo alsactl store 그런데 가끔 ssh로 위의 명령어를 실행하면 기록이 되지 않는 문제가 발생합니다. 이때는 vnc로 접근해서 터미널에서 실행하면 잘 됩니다. 위의 내용을 참조용으로만 사용해주세요. 무단 도용이나 무단 복제는 불허합니다. .. 2021. 8. 10.
alsa와 usb 사운드 카드 설치 alsa의 설치 alsa는 Advanced Linux Sound Architecture의 줄인 말로, 리눅스의 표준 오디오 인터페이스입니다. alsa는 라이브러리와 유틸리티를 포함하며 다음과 같이 설치합니다. sudo apt-get install libasound2-dev -y; sudo apt-get install alsa-utils -y 그리고 pi 사용자를 audio 사용자로 등록해 줍니다. (이 부분을 생략해도 됩니다) sudo adduser pi audio USB 사운드 카드 확인 Raspberry Pi의 내장 오디오 장치는 음질도 좋지 않지만 오디오 입력이 없는 단점이 있습니다. 그래서 일반적으로 usb 사운드 카드를 추가 설치합니다. 그리도 다음 명령어로 설치 상태를 확인할 수 있습니다. a.. 2021. 8. 10.
SQlite SQlite는 소형 데이터베이스를 구현하는데 매우 유용한 방식입니다. 기능도 소형 장치를 위해 적합한 수준입니다. Linux에서는 다음과 같이 SQlite를 설치하고 데이터베이를 생성하고 관리하는 브라우저도 함께 설치합니다. 이 브라우저는 Windows용도 있어 사용이 편리합니다. sudo apt-get install sqlite3 sudo apt-get install sqlitebrowser 다음과 같이 vnc로 접근해서 개발 부분을 보면 DB Browser for SQLite를 실행하면 데이터베이스 접근 및 생성이 가능합니다. 또는 ssh에서 sqlitebrower를 쓴 다음에 실행해도 아래의 화면을 볼 수 있습니다. 2021. 8. 10.
Linux- netstat, nmap. ufw로 네트워크 접근 관리 hr contenteditable="false" data-ke-type="horizontalRule" data-ke-style="style5" /> netstat netstat -a 명령어로 모든 network의 동작 상태를 볼 수 있습니다. netstat -l은 리스닝 상태만 보여줍니다. netstat -lnpt로 tcp의 리스닝 상태의 포트만 볼 수 있습니다. Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:8084 0.0.0.0:* LISTEN 556/mono tcp 0 0 0.0.0.0:22 0.0.0.0:* L.. 2021. 8. 10.
Linux- 네트워크 통신 속도 알아보기 네트워크의 송신 수신 속도를 알아보려면 다음과 같은 내용을 먼저 설치합니다. sudo apt=get install ifstat -y ifstat를 실행하면 사용 중인 모든 네트워크 카드의 통신 상태가 1초 간격으로 계속 출력됩니다. ^C를 눌러서 진행을 멈출 수 있습니다. eth0 wlan0 KB/s in KB/s out KB/s in KB/s out 0.00 0.00 0.04 0.13 0.00 0.00 0.04 0.13 0.00 0.00 0.04 0.11 0.00 0.00 0.04 0.11 이번엔 무선랠카드의 상태를 1초 간격으로 3번만 출력하겠습니다. ifstate -i wlan0 1 3 wlan0 KB/s in KB/s out 0.04 0.11 0.04 0.11 0.04 0.11 무선랜 상태를 한번.. 2021. 8. 10.
RaspberryPi- 하드웨어 정보 얻기 CPU 온도 알아보기 CPU의 온도를 다음과 같은 명령어로 알아볼 수 있습니다. vcgencmd measure_temp 그러면 다음과 같은 내용이 화면에 보입니다. temp=47.2'C 여기서 숫자만 추출해서 기록하고 싶으면 다음과 같은 shell 명령어를 만들면 됩니다. cgencmd measure_temp | grep -o '[0-9]*\.[0-9]*' 그러면 온도 부분의 숫자만 출력됩니다. CPU 사용률 CPU의 사용률을 구하려면 먼저 다음의 파일을 설치해야 합니다. sudo apt-get install sysstat -y 그리고 다음과 같이 실행하면 CPU의 전반적인 상태를 보여줍니다. mpstat Linux 5.10.52-v7+ (pi3-27) 2021년 08월 10일 _armv7l_ (4 CP.. 2021. 8. 10.
RaspberryPi- booting하고 자동으로 프로그램 시작하기 부팅과 동시에 프로그램을 실행하고 싶으면 아래의 파일을 열고 수정합니다. sudo nano /etc/profile.d/bash_completion.sh 파일의 맨 아래에 원하는 프로그램명을 추가합니다. 이때 맨 뒤에 '&'를 추가해서 백그라운드로 동작하도록 유도합니다. /home/pi/dasp/mono dasp.exe & 2021. 8. 10.
Linux- ssh의 root 접근 ssh를 root 권한으로 접근하려면 아래와 같이 파일을 열고 수정하면 됩니다. sudo nano /etc/ssh/sshd_config #PermitRootLogin without-password PermitRootLogin yes 2021. 8. 10.
Linux- dhcp의 고정 IP 할당 RaspberryPi- 네트워크에서 고정 IP로 할당하고 싶을 때 다음과 같은 파일로 접근합니다. sudo nano /etc/dhcpcd.conf 그리고 아래와 같이 원하는 IP 주소를 할당합니다. interface eth0 static ip_address=192.168.0.30 static netmask=255.255.255.0 static routers=192.168.0.1 static domain_name_servers=168.126.63.1 interface wlan0 static ip_address=192.168.0.40 static netmask=255.255.255.0 static routers=192.168.0.1 static domain_name_servers=168.126.63.1 2021. 8. 10.
RaspberryPi- IPv6 사용하지 않기 Raspberry Pi에서 IPv6를 사용하지 않도록 조정이 가능합니다. 다음과 같이 파일을 엽니다. sudo nano /boot/cmdline.txt 한 줄로 작성된 내용에 다음을 추가합니다. ipv6.disable=1 2021. 8. 10.
Linux에서 MONO설치-시작 리눅스에서 C# 사용 MONO는 Visual Studio 또는 MonoDevekop에서 생성된 C# 기반의 실행 파일(*. exe)을 Linux에서 동작하도록 지원합니다. 잘 아시다시피 C#의 막강한 GUI 개발 내용을 Linux에서 활용할 수 있어 매우 편리한 방법입니다. 이를 사용하기 위해서는 Linux에 MONO 관련된 내용을 설치해야 합니다. sudo apt-get install mono-runtime mono-mcs mono-devel mono-complete -y sudo apt-get install git autoconf libtool automake build-essential mono-devel gettext 테스트용 코드 만들기 원도우즈에서 VisualStuio(VS)로 C# 프로젝드를.. 2021. 8. 9.