[참조] http://www.thegeekstuff.com/2008/09/backup-and-restore-mysql-database-using-mysqldump/






저작자 표시
신고
Creative Commons License
Creative Commons License

posted by youp_han matrim


http://pyrius.info/2012/11/17/ios-sh-shell-scripting/


iOS 개발 하면서 사용할 수 있는 쉘 명령어들 입니다. 아마 sh 파일들은 app 안에 포함되어 있어야 하며, 따로 외부 스크립트를 실행한다거나 할때엔 아이튠스 등록 시 문제가 발생 할 수 있습니다.

저작자 표시
신고
Creative Commons License
Creative Commons License

posted by youp_han matrim


(참고: http://ios-blog.co.uk/tutorials/quick-tips/quick-tip-converting-nsstring-to-nsdata/ )


NSString 변수를 NSData 변수로 값타입 변환하는 방법입니다.

jSon 의 serialization 을 하기 위해선 값 타입을 바꿔서 사용해야 하는경우가 있습니다.



NSString 에서  NSData 로 변환


NSData *data = [json dataUsingEncoding:NSUTF8StringEncoding];


//null 인경우를 대비해서 아래와 같이 적어줍니다.\0 바이트를 없애주는 라인입니다.

// 개인적으로는 잘 사용하지는 않고 있습니다. 

data = [data [subdataWithRange:NSMakeRange(0, [json length]-1)]];


   

NSData 에서 NSString 로 변환


NSString* newStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];


혹은


NSString* newStr2 = [NSString stringWithUTF8String:[data bytes]];



저작자 표시
신고
Creative Commons License
Creative Commons License

posted by youp_han matrim


NSArry 내에 있는 내용을 NSLog 로 찍어 보려고 할때 간단하게 2 가지 방법이 있습니다.


1) NSLog(@"shopDetail = %@", shopDetail);


2) for 루핀 사용하기         

for (NSString *str in shopDetail) {

    NSLog(@"shopDetail = %@", str);

}


1) 번을 사용하든, 2)번을 사용하든 결과물은 같습니다.

2015-07-07 23:49:11.250 redCat[1471:24953] shopDetail = (

        {

        address = "XXXXX@gmail.com";

        businessHour = "11:00(11AM) ~ 20:00(8PM), \Uc2e0\Uc815,\Uad6c\Uc815\Uc5f0\Ud734,\Ucd94\Uc11d\Uc5f0\Ud734,\Ud06c\Ub9ac\Uc2a4\Ub9c8\Uc2a4\Ub0a0\Uc740 \Uc27d\Ub2c8\Ub2e4.";

        city = "\Uc11c\Uc6b8";

        country = "South Korea";

        description = "XXXXX @Apkoojung";

        latitude = "37.523809";

        lin2 = "\Uc6cc\Ud130\Uc2a4\Ud2b8\Ub9ac\Ud2b8";

        line1 = "\Uac15\Ub0a8\Uad6c \Uc2e0\Uc0ac\Ub3d9 550-14 1\Uce35";

        longitude = "127.024297";

        name = "\Uc555\Uad6c\Uc815\Uc810";

        number = "+82-2-111-ZZZZ";

        seqNo = 2;

        shopCode = 002;

    }

)


저작자 표시
신고
Creative Commons License
Creative Commons License

posted by youp_han matrim

LAMP 설치후, 메버릭스에서 요세미티로 업그레이드 한 후 아파치 세팅을 다시 활성화 해야 합니다.

참고 싸이트 (http://jason.pureconcepts.net/2012/10/install-apache-php-mysql-mac-os-x/)


컨픽 파일을 백업 합니다.

cd /etc/apache2/
cp httpd.conf httpd.conf.bak 


좋아하는 텍스트 에디터로, 컨픽 파일을 열어줍니다.

vi httpd.conf 


다음 라인을 찾은 후 # 를 앞에서 지워줍니다.

LoadModule php5_module libexec/apache2/libphp5.so


개인적으로 #를 지우지 않고, 다음 라인을 추가했습니다. 이후 바로 Apache 를 리스타트 해줍니다.

170 LoadModule php5_module /usr/local/opt/php54/libexec/apache2/libphp5.so
apachectl restart



저작자 표시
신고
Creative Commons License
Creative Commons License

posted by youp_han matrim


집에서 사용하는 라우터에 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배 정도 빠른듯 합니다.



저작자 표시
신고
Creative Commons License
Creative Commons License

posted by youp_han matrim


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




저작자 표시
신고
Creative Commons License
Creative Commons License

posted by youp_han matrim



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

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 테이블의 내용을 모두 성공적으로 화면에 보여주었네요.


이상입니다. 

저작자 표시
신고
Creative Commons License
Creative Commons License

posted by youp_han matrim


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 로 실행하였습니다.

저작자 표시
신고
Creative Commons License
Creative Commons License

posted by youp_han matrim

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 응용




저작자 표시
신고
Creative Commons License
Creative Commons License

posted by youp_han matrim

1 2 3 4 5 ... 12


티스토리 툴바