반응형

리눅스 상에서 

touch filename

으로 파일내 변화없이 시간 업데이트가 가능합니다.

windows 의 batch 명령어에서도 같은 기능을 하는 명령어를 찾아보았는데요

echo. >> filename

파일 내부 마지막에 공간을 넣어 파일 업데이트 하는 방식으로 시간 없데이트가 됩니다.

 

반응형
반응형

USB 드라이브가 몇개 있습니다. 집에 뒹구는 녀석들 보면 거의 8기가 16기가, 많으면 32기가 정도 되지요. 주로 선물로 받거나, 사은품으로 받거나 한 드라이브들이여서 속도도 그렇고 용량도 크지 않아 용도가 애매했습니다. 8기가 USB 드라이브들은 주로 OS 설치용으로 Linux, Windows 그리고  Mac 용으로 각 하나씩 가지고 있고, 16기가 같은 경우는 사무실에서 문서, 동영상등을 옮기는 용도로 사용하게 되었네요. 

영상을 작업 하다 보면, 용량이 큰 경우가 많은데요, 사무실에서 사용하는 32기가나 64기가의 큰 용량 USB 드라이브 들이 모두 USB 2.0만 지원하여 복사 하는데 시간이 너무 오래 걸리는 단점이 있었습니다. 그래서 이번에 좋은 Deal 로 SanDisk 의 128기가 짜리 Dual USB Drive 3.0 을 구입하게 되었습니다.

정품이여서 1년정도 국내에서 A/S 가 가능한것으로 알고 있습니다. 더 길면 좋겠지만, 정확하지는 않네요. 그리고 안드로이드 기기 중 5핀을 지원하는 기기라면 바로 꼽아서 외부 기기로 인식이 됩니다.

꽤 많은 OS 를 지원하여 여기저기에 꼽고 사용하기 수월합니다. Mac 용으로만 사용하면 좋겠지만, 사무실에서 하나의 OS 만을 사용하는것이 아니여서 여러 OS 를 지원하는 드라이브가 편하더군요.

정품인증 스티커는 살짝 떼어내어 드라이브에 바로 붙혀주고 사용중입니다. 세이네트웍스 전화번호를 위해 사진을 찍어 블로그에도 올리네요 ㅋ

양방향으로 밀어올리면서 USB 3.0 쪽으로 연결하는 단자가 나오게 하여 사용할 수도 있고, 그 반대로 밀어내리면, 5핀 단자가 나와서 지원하는 안드로이드 기기에 바로 연결하여 사용이 가능합니다.

50기가 정도를 복사/이동 을 해봤는데 USB 3.0 환경에서는 정말 빠르더군요. 발열이 심하게 일어나서 50기가 이상의 파일은 옮기다가 컴퓨터에서 USB 드라이브 인식을 못하게 연결이 끊기는 현상이 자주 일어나서, 50기가보다 작은 용량의 파일을 옮기는 데에만 사용 중입니다.

안드로이드 기기에서의 인식도 좋고, 바로 영화나 파일을 열수도 있어서 아주 편합니다. 좋은 가격으로 자주 올라오는 녀석이라서 사무실 분들 중 제 것을 사용해 보시고 바로 구입하시더군요.

넥서스 5x 와 아이폰을 사용중인 저로썬 5핀 연결잭은 크게 도움이 되지 않으나, 사무실에서 사용하는 삼성 태블릿과의 사용량이 많아 아주 만족하며 사용하고 있습니다. 

반응형
반응형


라즈베리파이에 curl 설치하려면 아래의 명령어를 실행시킵니다. 당연히 php5와 apache2 가 설치되어 있어야 합니다. 혹시 php4 환경이면 php5 대신 php4 라고 쓰고 실행히키면 됩니다. 권한 문제가 있을 시엔 sudo 실행 하면 됩니다. 

[참고 싸이트]


apt-get install php5-curl
/etc/init.d/apache2 restart



반응형
반응형


라즈베리파이를 Linux, Apache, MySQL, PHP 를 설치하여 웹서버로 응용사용해 봅니다.


1. 라즈비안 이미지를 다운받습니다. Raspbian https://www.raspberrypi.org/downloads/

2. 이미지를 만들고 SD 카드를 준비합니다. Win32 Disk Imager 프로그램을 이용 합니다.

3. 준비된 SD 카드를 라즈베리파이에 끼운 후, 모니터, 키보드 그리고 인터넷 케이블을 연결 한 뒤 전원을 켭니다.

4. 제일 먼저 초기 설정이나오는데, 초기설정에서 

- 1. Expand Filesystem 을 설정하고

- 3. Enable Boot To Desktop 을 Disable 합니다.

- 4. 필요에 따라 Internationalisation Options 를 설정해줍니다.

- 7. Overclock 을 Modest 로 해줍니다.

- 8. Advanced Options 에 들어가서 SSH Server 설정을 Enable 해줍니다.

- 8. Advanced Options 에서 update Raspberry Pi 를 해줍니다.


5. 설정이 끝난 후 라즈베리파이를 리부팅 해줍니다.

sudo reboot


6. 리부팅이 끝난 후 라즈베리파이의 ip 주소를 확인합니다.

ifconfig


7. OS 업데이트를 해줍니다. 시간이 꽤 걸립니다.

sudo apt-get update

sudo apt-get upgrade


8. Apache 설치를 합니다.

sudo apt-get install apache2 php5 libapache2-mod-php5


질문이 나오면 y 를 눌러 진행을 계속합니다. 시간이 꽤 걸리는 작업입니다.

혹시 오류가 난다면, 아래 명령어 2개를 시도해봅니다. 오류가 나지 않고 설치가 끝나면 아파치 서버를 재시작 합니다.

sudo groupadd www-data

sudo usermod -g www-data www-data


아파치 서버를 재시작 합니다.

sudo service apache2 restart


이제 다른 컴퓨터에서 웹브라우저를 열고 라즈베리파이의 IP 주소를 적어봅니다. "It works!" 라는 화면이 보이면 성공.


9, MySQL 을 설치합니다.

sudo apt-get install mysql-server mysql-client php5-mysql


질문이 나오면 y 를 눌러 진행을 계속합니다. 설치중에 MySQL 의 root 계정 암호를 설정하라고 나오는데, 원하는 암호로 설정한뒤 설치를 완료합니다.


10. FTP 설치

파일을 전송하기 위한 FTP 설치를 합니다. 먼저 web root 의 권한을 설정합니다.

sudo chown -R pi /var/www


vsftpd 를 설치합니다.

sudo apt-get install vsftpd


설치가 끝난 후 vsftpd 의 설정을 해줍니다.

sudo nano /etc/vsftpd.conf


- 1. anonymous_enable=YES 를 찾아 anonymous_enable=NO 로 설정

- 2. local_enable=YES 앞에 # 지워주기

- 3. write_enable=YES 앞에 # 지워주기

- 4. 맨아래에 내려가 force_dot_files=YES 적어주기

- 5. ctrl+X 를 누른 후 y 를 눌러 저장하며 나옵니다.


설정이 끝난 후 FTP 서비스를 재시작 해줍니다.

sudo service vsftpd restart


11. 마무리

암호 설정으로 마무리 해줍니다. ssh 연결이 가능한 상태이기 때문에 라우터에서 dmz 설정이 되어 있거나 하면 바로 라즈베리파이에 ssh 로 연결이 가능하므로, 누구나 다 알고 있는 라즈베리파이의 암호를 바꿔줍니다.


sudo passwd pi


그리고 root 의 암호도 바꿔줍니다. 두번째 명령어는 root 유저의 모드 변경 명령어입니다.


sudo passwd root

sudo usermod -L root


FTP 설정이 끝났습니다. FTP 클라이언트 프로그램으로 라즈베리파이에 연결하여 파일을 주고 받을 수 있게 되었습니다.


라즈베리파이에 LAMP 설정이 끝났습니다.





반응형
반응형


제가 사용하던 넷북을 마네 머신으로 만들고 정말 신나게 게임을 했습니다. 

2015/01/23 - #플스1 #플스2 #컨트롤러 를 PC 와 플스3 에서 사용 가능하게 해주는 아답터 PS2 adapter

두번째 마메 머신을 만들 기회가 있어 한번 더 만들어봤는데요, 주분투 가 정말 라이트한 리눅스로 마메 머신용으로 딱이네요.



동생이 사용하던 Dell Inspiron Mini (델 인스피론 미니) 910 입니다. 제가 사용하던 넷북이랑은 사양이 조금 다른데요, Atom N270 1.6Ghz 에, 램 1GB, 하드는 SSD 16기가네요. 

XUBUNTU 설치 후, 와이파이 문제가 있었는데요, 그거 여기 링크에서 해결했습니다. (http://forums.bodhilinux.com/index.php?/topic/9152-solved-dell-mini910-wireless-not-working/)

여하튼, 1기가 램에 1.6Ghz 라서 그런지, 라즈베리파이 보다는 마메 돌리는 속도가 꽤 좋더군요. 예전 넷북으로 뭘 할까 생각중이신 분들은 마메 머신으로 바꿔 보세요 :)


반응형
반응형


집에서 사용하는 라우터에 usb 하드디스크를 물려 망내 쉐어디스크로 사용중이며 samba 로 연결하여, 편리한게 아이패드나, 아이폰 그리고 xbmc 에서 미디어 파일들을 접근하여 사용하고 있습니다.


요즘 유닉스/리눅스 공부한다고, 좀 사양 떨어진 넷북에 주분투를 설치하였고 메인 컴퓨터는 맥북이 있지요. 둘다 유닉스 계열 OS 라 많이 편하네요. 여하튼  양쪽 컴퓨터에서 미디어 파일들을 usb 하드디스크에 올리고 싶은데요.. 직접 분리해서 usb 로 연결하는게 가장 좋은 방법이긴 합니다만.. 그래도 라우터에 물려 있으니 일종의 공유폴더로 연결하여 넷북에서 네트워크를 이용한 파일 업/다운로드 를 하고 싶더라구요.

그래서 알아보니, 의외로 간단했습니다.


1. 홈디렉토리에 media/share 폴더를 만든다

2. etc/fstab 파일을 열어 아래 내용을 적어준다

3. 마운트 한다.



1. 홈디렉토리에 media/share 폴더를 만든다


mkdir /media/share


2. etc/fstab 파일을 열어 아래 내용을 적어준다


중요한 부분은 삼바 서버의 공유파일 경로입니다.

확인하려면 아래 명령어로 확인 할 수 있습니다.

서버이름 혹은 아이피를 사용하여도 되며, -U 뒤에 있는 admin 은 사용자 이름입니다.


sambaclient -L 192.168.1.1 -U admin


공유된 폴더가 usb0_1 인것을 확인 할 수 있습니다. 자 그럼 /etc/fstab 의 내용을 변경해 봅니다.

읽기 전용파일 이라서 관리자 모드로 sudo 를 넣어줘야 변경이 가능합니다.


명령어 내용은

[//경로/공유폴더] [내컴퓨터마운드폴더] [파일타입] [사용자,패드워드] [0,0]


파일타입은 오래된 자료의 경우 smbfs 파일타입을 사용하라고 하는데요, 이미 사용하지 않는 오래된 타입이라서 cifs 를 사용해야 하더군요. 패키지가 없으면 다운받을 수 있습니다. 


sudo apt-get install cifs-utils


파일을 열어 서버공유폴더 내용을 작성 해 줍니다. 참고로 fstab 은 시스템 컨픽 파일로, 유닉스/리눅스 시스템에서 볼 수있습니다. uilt-linux 패키지중 하나며, 사용가능한 디스크 현황 그리고 파티션 현황 그리고 이 디스크와 파티션들이 시스템에서 어떻게 사용되는지의 정보를 가지고 있는 파일입니다.


sudo vim /etc/fstab

//192.168.1.1/usb0_1 media/share cifs user=admin,passwd=admin 0 0



내용을 저장하고 나옵니다. :qw


3. 마운트 한다.

smb 서버 공유폴더를 마운트 해줍니다. 마운트 하면 폴더 형태로 보이게 됩니다.


sudo mount media/share



짜쟌~

이렇게 파일 메니저에서 손쉽게 samba/공유 폴더 에 접근 가능케 되었습니다. 다운로드는 물론 업로드도 가능합니다. 하지만 제 라우터의 경우엔 너무 느리네요. usb 로 직접 꽂아서 파일 옮기는게 10000배 정도 빠른듯 합니다.



반응형
반응형


cat hello.txt : hello.txt 파일 내용을 보여줍니다.
more hello.txt : hello.txt 내용을 spacebar 를 이용하여 화면에 한페이지씩 보여줍니다. more page
less hello.txt : hello.txt 내용을 한줄 한줄 읽어 내려갈 수 있으며 spacebar 한페이지씩 보여줍니다. move a line by line
wc hello.txt : hello.txt 단어, 라인, word count
wc -l hello.txt : hello.txt 라인 카운트를 보여줍니다. no. of line
wc -c hello.txt : hello.txt 파일 크기를 보여줍니다. (byte)
wc -m hello.txt : hello.txt 글씨 카운트를 해줍니다. (character)
head -3 hello.txt : hello.txt 내용 중 첫 3 줄을 보여줍니다.
tail -3 hello.txt : hello.txt 내용 중 마지막 3줄을 보여줍니다.


history : 현재까지 실행했던 모든 명령어들을 보여줍니다.


Redirection

출력의 경로수정


cal : 달력을 출력합니다.


     August 2014   
Su Mo Tu We Th Fr Sa
                1  2
 3  4  5  6  7  8  9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31


cal > output.txt : 달력을 출력한 뒤 내용을 outpu.txt 파일에 담습니다.

cat output.txt : output.txt 파일 내용을 화면에 출력합니다.


     August 2014   
Su Mo Tu We Th Fr Sa
                1  2
 3  4  5  6  7  8  9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31


Pipeline

여러개의 명령어를 순차적으로 실행하여 결과값을 출력합니다.


cat /etc/passwd | tail -3


vmplayer:x:502:503:vmplayer:/images/vmplayer:/usr/bin/feit-windows-A2013.sh
oprofile:x:16:16:Special user account to be used by OProfile:/home/oprofile:/sbin/nologin
vmuser:x:503:504:vmuser:/var/lib/vmuser:/bin/bash

bash-4.1$ who
11776352 tty3         2014-08-13 12:06 (:0)
11776352 pts/0        2014-08-13 12:10 (:0.0)


bash-4.1$ who | head -1
11776352 tty3         2014-08-13 12:06 (:0)


bash-4.1$ who | grep 11776352
11776352 tty3         2014-08-13 12:06 (:0)
11776352 pts/0        2014-08-13 12:10 (:0.0)

bash-4.1$ cat /etc/passwd | cut -d: -f1,5


bash-4.1$ who
11776352 tty3         2014-08-13 12:06 (:0)
11776352 pts/0        2014-08-13 12:10 (:0.0)


bash-4.1$ who | cut -d' ' -f1
11776352
11776352
bash-4.1$ who | cut -d' ' -f1 | sort
11776352
11776352
bash-4.1$ who | cut -d' ' -f1 | sort | uniq
11776352
bash-4.1$ who | cut -d' ' -f1 | sort | uniq >username.txt

bash-4.1$ who | awk '{ print $3}'
2014-08-13
2014-08-13


bash-4.1$ who | awk '{ print $1, $3}'
11776352 2014-08-13
11776352 2014-08-13

bash-4.1$ ls /bin | wc -l
131


bash-4.1$ ls /bin | head -1
alsaunmute


bash-4.1$ ls /bin | head -10
alsaunmute
arch
awk
basename
bash
cat
cgclassify
cgcreate
cgdelete
cgexec


bash-4.1$ ls /bin | head -79 | tail -1
netstat


계산식
x=$((2+2))
echo x is $x //prints out the result




반응형
반응형



아직 포스팅할 내용들이 많지만..

db 연결 방법이 궁금해서 아주 간단한 mysql 연결 shell script 를 찾았습니다.


음.. 일단 mysql 서비스가 실행 한다는 가정하에.. dbtest.sh 라는 파일을 만듭니다.


vim dbtest.sh

 + dbtest.sh                                                                      

  1 #!/bin/bash

  2 mysql -u root redCat<<EOFMYSQL

  3 select * from MenuItem;

  4 EOFMYSQL


스크립트를 작성 후, 내용을 저장 한 뒤 권한을 바꿔줍니다. 

좀더 편리하게 만들 예정입니다만, 일단 가장 간단한 스크립드를 먼저 공유합니다.


chmod 700 dbtest.sh


제 맥에서 돌고 있는 mysql 서비스엔 redCat 이라는 데이터베이스가 있습니다. redCat 데이터 베이스 안에 있는 MenuItem 테이블의 내용을 모두 성공적으로 화면에 보여주었네요.


이상입니다. 

반응형
반응형


Vim 사용하시는 분들은 아마도 여러 세팅을 하여 config 을 저장할 수 있도록 한 뒤 사용중이라고 하네요. 이번에 간단하게 줄 번호 보여주는 세팅 과 인덴트 를 자동으로 해주는 세팅을 만들어봤습니다.


기본적으로 .vimrc 파일이 없어서 저는 만들어야 했습니다. 만들기 전에 확인 필수 입니다.


vim .vimrc



이렇게 만들고 나면 vim 실행하니 제 화면이 아래와 같이 변하였습니다.

그외에 더 많은 세팅을 원하시면 다음 링크가 유명한 Ultimate VIM configuration 입니다.


여하튼 vim 세팅은 이정도로 하고, 쉘 스크립트의 if-else 예문을 소개합니다.

shell script 의 if-else 는 간단합니다. 주의해야 할 점은 비교 변수와 "[" 그리고 시작의 "if" 사이에 모두 공백이 필요합니다.



간단하게 echo 로 이름을 묻고, name 변수에 read 해줍니다. 같은 방법으로 나이를 물은 뒤 age 변수에 read 하지요.


if 문의 기본 문법은 if [ 변수 test 대상 ] then 실행문 else 실행문 fi

이렇게 됩니다. if 로 시작하여 if 의 반대인 fi 로 끝을 내 줍니다. 비교 test 는 -lt (less than 보다 작다) 를 사용했는데요, 그외 다른 어떤 비교 test 들이 있는지는 확인 가능합니다.


여기서는 간단하게 18 세 이상이면 맥주를.. 이하면 안된다.. 라고 간단하게 출력합니다.


man test

혹은

man [


메뉴얼 내에 많은 내용이 있는데요 그중 몇개만 추려봤습니다.


       STRING1 = STRING2
              the strings are equal

       STRING1 != STRING2
              the strings are not equal

       INTEGER1 -eq INTEGER2
              INTEGER1 is equal to INTEGER2

       INTEGER1 -ge INTEGER2
              INTEGER1 is greater than or equal to INTEGER2

       INTEGER1 -gt INTEGER2
              INTEGER1 is greater than INTEGER2

       INTEGER1 -le INTEGER2
              INTEGER1 is less than or equal to INTEGER2

       INTEGER1 -lt INTEGER2
              INTEGER1 is less than INTEGER2

       INTEGER1 -ne INTEGER2
              INTEGER1 is not equal to INTEGER2


자.. 이렇게 만들어진 스크립트 테스트를 하면 결과는 다음과 같습니다.

항상 실행 전에 파일 접근 권한을 700 으로 사용자에게 읽기 쓰기 실행 권한을 부여합니다.




간단한 쉘 스크립트 내 if-else 사용법을 알아봤습니다. 


다음은 if-elif-else 예문입니다. 최간단 계산기.


1) 2개 의 argument 를 받습니다.

2) 계산법을 받습니다.

3) 계산을 출력합니다.


vim calc.sh



받을 argument 들은 $1, $2 로 받습니다.

$(($1+$2)) 로 계산 합니다.



결과입니다. 실행 시, argument 를 2개 넣어줍니다. 예에서는 8 과 9 로 실행하였습니다.

반응형
반응형

Shell Script 의 기본


bash-4.1$ x=3
bash-4.1$ echo $x
3


bash-4.1$ echo "hello     there"
hello     there

bash-4.1$ echo 'hello     there'
hello     there
bash-4.1$ echo hello      there
hello there


bash-4.1$ echo "the value of x:     $x"
the value of x:     3
bash-4.1$ echo 'the value of x:     $x'
the value of x:     $x
bash-4.1$ echo 'I have $10000'
I have $10000


bash-4.1$ echo Today is `date`
Today is Wed Aug 6 12:50:46 EST 2014
bash-4.1$ echo "Today is `date`"
Today is Wed Aug  6 12:51:00 EST 2014




permission

bash-4.1$ ls -l
total 2
-rw-r--r--+ 1 11776352 Students   0 Jul 30 13:06 a.txt
-rw-r--r--+ 1 11776352 Students   0 Jul 30 13:06 c.txt
-rw-r--r--+ 1 11776352 Students 334 Aug  6 12:40 hello.txt

bash-4.1$ chmod 600 a.txt
bash-4.1$ ls -l
total 2
-rw-------+ 1 11776352 Students   0 Jul 30 13:06 a.txt
-rw-r--r--+ 1 11776352 Students   0 Jul 30 13:06 c.txt
-rw-r--r--+ 1 11776352 Students 334 Aug  6 12:40 hello.txt

bash-4.1$ chmod 644 a.txt
bash-4.1$ ls -l
total 2
-rw-r--r--+ 1 11776352 Students   0 Jul 30 13:06 a.txt
-rw-r--r--+ 1 11776352 Students   0 Jul 30 13:06 c.txt
-rw-r--r--+ 1 11776352 Students 334 Aug  6 12:40 hello.txt

first --- user (u)
second --- group (g)
third --- other (o)

0 000
1 001 * execute = 1
2 010 * write = 2
3 011
4 100 * read = 4
5 101
6 110
7 111

readable, writable, executable = 4+2+1 = 7 (rwx)

chmod 755 myfile
chmog o+x myfile
chmog o-x myfile



Script 실행


bash-4.1$ hello.sh
bash: hello.sh: command not found
bash-4.1$ pwd
/home/11776352/usp/2
bash-4.1$ /home/11776352/usp/2/hello.sh
hello world
bash-4.1$ cd ..
bash-4.1$ 2/hello.sh
hello world
bash-4.1$ cd 2/
bash-4.1$ ls
a.txt  c.txt  hello.sh    hello.txt
bash-4.1$ ../2/hello.sh
hello world
bash-4.1$ ./hello.sh
hello world


 Script 응용




반응형

+ Recent posts