데이터베이스 접속
$ mysql -u 사용자명 -p dbname

설치 직후에는 root 사용자에 비밀번호가 없으므로 다음과 같이 접속하여 MySQL을 관리할 수 있다.

$ mysql -u root mysql


비밀번호 변경
MySQL을 설치한 직후에는 root 계정에 암호가 지정되어 있지 않다.
다음 세가지 방법으로 비밀번호를 변경 할 수 있다.

mysqladmin이용
$ mysqladmin -u root password 새비밀번호

update문 이용
$ mysql -u root mysql

mysql> UPDATE user SET password=password('새비밀번호') WHERE user='root';
mysql> FLUSH PRIVILEGES;


Set Password 이용
SET PASSWORD FOR root=password('새비밀번호');


일단 root 비밀번호가 설정된 상태에서는 mysql이나 mysqladmin 명령을 실행할 때 -p 옵션을 붙여주고 기존 비밀번호를 입력해야만 한다.

사용자 추가/삭제
mysql> GRANT ALL PRIVILEGES ON dbname.* TO username@localhost IDENTIFIED BY 'password';

username 이라는 사용자를 password라는 비밀번호를 갖도록 하여 추가한다. username은 dbname이라는
데이타베이스에 대해 모든 권한을 가지고 있다.
username 사용자는 로칼 호스트에서만 접속할 수 있다. 다른 호스트에서 접속하려면
GRANT ALL PRIVILEGES ON dbname.* TO username@'%' IDENTIFIED BY 'password';

위를 또한 번 실행한다. '%'에서 홑따옴표를 주의한다.
추가 : '%'를 호스트네임으로 지정해도 모든 호스트에서 접속할 수 없었다. 각 호스트별로 다 지정해야 했다.

불필요한 사용자 삭제는
mysql> DLETE FROM user WHERE user='username';
mysql> FLUSH PRIVILEGES;


데이터베이스 생성/보기

데이터베이스를 생성하고,
mysql> CREATE DATABASE dbname;

현재 존재하는 데이터베이스 목록을 보여준다.
mysql> SHOW DATABASES;

특정 데이타베이스를 사용하겠다고 선언한다.
mysql> USE dbname;

쓸모 없으면 과감히 삭제한다.
mysql> DROP DATABASE [IF EXISTS] dbname;

IF EXISTS 옵션은 비록 데이타베이스가 없더라도 오류를 발생시키지 말라는 의미이다.


테이블 생성/보기

테이블을 생성하고,
mysql> CREATE TABLE tablename (
column_name1 INT,
column_name2 VARCHAR(15),
column_name3 INT );

현재 데이타베이스의 테이블 목록을 보고
mysql> SHOW TABLES;

테이블 구조를 살펴본다.
mysql> EXPLAIN tablesname;
혹은
mysql> DESCRIBE tablename;

이름을 잘못 지정했으면 이름을 변경할 수도 있다.
mysql> RENAME TABLE tablename1 TO tablename2[, tablename3 TO tablename4];

필요 없으면 삭제한다.
mysql> DROP TABLE [IF EXISTS] tablename;

 

현재 상태 보기

mysql> status

--------------
mysql Ver 11.18 Distrib 3.23.58, for pc-linux (i686)

Connection id: 26
Current database: study
Current user: study@localhost
Current pager: stdout
Using outfile: '
Server version: 3.23.58
Protocol version: 10
Connection: Localhost via UNIX socket
Client characterset: latin1
Server characterset: euc_kr
UNIX socket: /var/lib/mysql/mysql.sock
Uptime: 2 hours 9 min 59 sec

Threads: 1 Questions: 160 Slow queries: 0 Opens: 28 Flush tables: 1
Open tables: 1 Queries per second avg: 0.021
--------------

 

INSERT
mysql> INSERT INTO tablename VALUES(값1, 값2, ...);

혹은

mysql> INSERT INTO tablename (col1, col2, ...) VALUES(값1, 값2, ...);


SELECT
mysql> SELECT col1, col2, ... FROM tablename;

컬럼명을 *로 하면 모든 컬럼 의미.

mysql> SELECT col1 AS '성명', col2 AS '국어점수' FROM grade;

컬럼의 이름을 바꿔서 출력.

mysql> SELECT * FROM tablename ORDER BY col1 DESC;
mysql> SELECT col1, korean + math english AS '총점' FROM tablename ORDER BY '총점' ASC;

DESC는 내림차순 ASC는 오름차순.

mysql> SELECT * FROM grade WHERE korean < 90;

조건줘서 SELECT.

mysql> SELECT * FROM grade LIMIT 10;

결과중 처음부터 10개만 가져오기

mysql> SELECT * FROM grade LIMIT 100, 10;

결과중 100번째부터 10개만 가져오기. 첫번째 레코드는 0번 부터 시작한다.

UPDATE
mysql> UPDATE tablename SET col1=새값 WEHER 조건


DELETE
mysql> DELETE FROM tablename WEHRE 조건


mysql에서 쿼리 결과 세로로 보기
-E 옵션을 줘서 실행한다.
$ mysql -E -u root -p mysql


=============================================
1. Mysql 기본 사용법
 
->Mysql 데이터베이스 접속하기
# mysql -u root mysql
 
-> mysql 관리자 root 패스워드 설정하기
# mysql -u root mysql
mysql> update user set password = password('shcm0816') where user = ' root';
 
-> 빠져나간후 데이터베이스를 재시작
# mysqladmin -u root reload
 
->패스워드 입력
# mysql -u root -p mysql
 
< 여러가지 관련 명령어 >
 
->데이터베이스 확인
mysql> show databases;
 
->테이블 확인
msyql> show databases;
msyql> desc user =>동일한 결과
 
2. 데이터베이스 생성 및 삭제
 
->데이터베이스 생성
① 첫번째 방법
# mysql -u root -p mysqlll
    msyql> create database TESTDB;
    msyql> show databases;
 
② 두번째 방법
# ./mysqladmin -u root -p create testdb2
Enter password:
# ./mysql -u root -p mysql
Enter passwor
 
cd /
msyql> show databases;
msyql> exit
Bye
#
 
->데이타 베이스 삭제
# ./mysqladmin -u root -p drop testdb2
Enter password:
 
mysql> drop database testdb2
 
# ./mysql -u root -p mysql
msyql> show databases;
 
3. 새로 생성한 데이터베이스 등록하기
-> 데이터베이스를 새로 생성한 후에는 mysql 이라는 관리용 데이터베이스에 등록
->mysql 이라는 데이터베이스의 db라는 테이블에 TESTDB를 등록한 것
msyql> insert into db  values('%','TESTDB','root','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
msyql> select host, db, user from db
 
4.  Mysql 사용자등록(데이터베이스 소유자)
->mysql 을 사용할 사용자는 반드시 user 라는 테이블에 등록을 해줘야함
msyql> insert into user (host, user, password) values('localhost', 'sspark', password('shcm0816'));
 
->정상적인 등록여부 확인
msyql> select host, user, password from user;
 
->sspark이라는 사용자로 mysql 데이터베이스로 접속
msyql> mysql -u sspark -p
Enter password:
 
->새로운 데이터베이스를 생성하거나 새로운 사용자를 생성한 후에는 반드시 reload를 해줘야함
# mysqladmin -u root -p reload
Enter password:
 
5. 테이블 생성 및 삭제
msyql> create table testtable (
         ->uid mediumint(4) unsigned DEFAULT '0' NOT NULL auto_increment,
         -> name varchar(12) DEFAULT "" NOT NULL,
         -> email varchar (20) DEFAULT "" NOT NULL,
         -> PRIMARY KEY (uid)
         -> );
Query OK, 0 rows affected (0.00 sec)
msyql>show tables;
 
-> 필드 구조가 정의한 필드구조로 생성되었는지 확인
msyql> desc testtable;
 
-> 삭제
msyql> drop table testtable;
mysql> show tables;
 
6. 테이블속성 및 구조변경법
ALTER TABLE 테이블명 CHANGE[COLUMN] 필드명 필드타입
-> 기존 테이블에 필드 추가하기
 
mysql> er table testtable add column homepage varchar(30);
mysql> desc testtable;
 
-> 기존에 필드 속성 변경하기
ALTER TABLE 테이블명 CHANGE[COLUMN] 기존필드명 새필드명 필드타입
mysql> er table testtable change column homepage home varchar(50);
 
-> 기존에 필드 삭제
ALTER TABLE 테이블명 DROP [COLUMN] 필드명
mysql> er table testtable drop column home;
mysql> desc testtable;
 
-> 기존의 테이블삭제하기
mysql> create table sampletable
mysql> show tables;
mysql> drop table sampletable;
mysql> show tables;
 
7. 데이터 입력하기
mysql> insert into testtable (uid, name, email) values (', 'parksungsoo', sspark09@soback.kornet.net'" target=_blank>'sspark09@soback.kornet.net');
-> 주의: uid라는 필드는 auto_increment 라는 속성으로 생성했기 때문에 이 속성을 가진 필드들은 실제로 데이터값을 주지 않아도 자동적으로 1씩 증가.
 
->삽입할 필드는 생략가능
mysql> insert into testtable values(','sontaesoo','shutterbug@orgio.net');
 
->특정 필드에만 데이터를 입력할 경우에는 입력할 필드이름만을 나열 그에 해당하는 데이터 입력
mysql> insert into testtable (uid,name) values(','junwooki');
->정상적으로 입력되었는지 확인
mysql> select * from testtable;
 
8. 데이터 검색
SELECT(데이터검색하기)
->데이터검색의 일반적인 방법
 
-> 테이블의 모든 테이터를 검색
mysql> select * from testtable;
 
-> uid와 name 필드만을 조회
mysql> select uid, name from testtable;
->where문을 사용하여 특정 조건에 맞는 데이터만을 검색
mysql> select * from testtable where name = "sontaesoo";
 
->출력 결과 레코드의 중복제거하기(DISTINCT)
SELECT DISTINCT sex FROM testtable
 
->다양한 검색 방법
 
->'soo'라는 문자가 포함된 데이터를 모두 검색
->SELECT name FROM testtable WHERE name LIKE '%soo%'
mysql> select name from testtable where name LIKE '%soo%';
 
->특정한  한 문자로 시작하는 데이터만을 출력할 때에 사용하는 조회형식
SELECT name FROM testable WHERE name LIKE 'park%'
mysql> select name from testtable where name LIKE 'park%';
 
->특정 필드에 데이터가 NULL 인 경우를 조회한것
SELECT uid, name FROM testtable WHERE age IS NULL
mysql>select uid, name from testtable where age IS NULL;
 
-> 특정 필드의 데이터가 NULL이 아닌 경우
SELECT uid, name FROM testtable WHERE age IS NULL
 mysql>select uid, name from testtable where age IS NOT NULL;
 
-> SELECT name, uid, email FROM testtable WHERE savem > 5000 AND sex='M'
-> SELECT name, uid, savem FROM testtable WHERE savem >= 5000 ORDER BY savem 
     DESC
-> SELECT count(*) FROM testtable WHERE sex='M'
-> SELECT avg(savem) FROM testtable WHERE sex='M'
 
9. 데이터 수정하기
->UPDATE 테이블명 SET 필드명=필드값 또는 산술식 {, 필드명 = 필드값 또는 산술식}*[WHERE
   검색조건]
mysql> select * from testtable;
 
->uid 4 번의 데이터에 name 값과 email을 입력해 봄
mysql> update testtable set name = 'junyangmi' where age = 23;
mysql> update testtable set email = jym@superuser.co.kr'" target=_blank>'jym@superuser.co.kr' where age = 23;
mysql> select * from testtable;
 
-> uid 1 인 사람 (parksungsoo)의 나이를 25살로 수정
mysql> update testtable set age= 25 where uid =1;
 
->uid 2인 사람의 나이를 30살로 수정
mysql> update testtable set age = 30 where uid =2;
mysql> update testtable set age = 41 where uid=3;
 
-> 한해가 지났으므로 모든 사람의 나이를 한 살씩 증가
mysql> update testtable set age = age + 1;
mysql> select * from testtable;
 
10. 데이터 삭제하기(delete)
->Delete FROM 테이블명 [WHERE 검색조건]
mysql> select * from testtable;
mysql> delete from testtable where uid = 3;
 
11. 새로운 사용자 등록
-> Mysql 에 root로 접속
./mysql -u root -p
->Mysql DB 선택
mysql> use mysql;
mysql> show tables;
 
->새로운 DB 생성
mysql> create database xlare;
 
-> user 테이블에 입력 (user 라는 테이블에 새로운 사용자의 계정이름과 권한설정을 할 차례)
-> 호스팅사용자에 대한 설정 user테이블에 현재 사용장0ㅔ 대한 권한들을 모두 'N'로 설정
mysql> insert into user valuses('localhost', 'xlare', password('123'),'Y','Y','Y','Y','Y','N','N','N','N','N','N','N','N','N');
 
->user  테이블에 입력확인
mysql> select * from user where user = 'xlare' ;
 
-> db 테이블에 입력
mysql> insert into db values('localhost', 'xlare', 'xlare', 'Y','Y','Y','Y','Y','N','N','N','N','N',);
 
-> db 테이블에 입력 확인
mysql> select * from db where db = 'xlare';
 
-> 새로운 설정을 바로 적용키위해 mysqladmin 이라는 관리자명령어로 mysql 을 재시작
->reload를 해주지 않으면 생성했던 것들이 적용이 되지 않음
# ./mysqladmin -u root -p reload;
 
12. 일반사용자 권한설정(보안사항)
#./mysql -u root -p mysql
Enter password:
mysql> show tables;
--------------------
tables in mysql
--------------------
columns_priv
db
func
host
tables_priv
user
----------------------
 
->columns_priv 테이블
* 모든 특정 DB 의 특정 User 에 대한 특정 테이블의 각 컬럼에 대한 select, insert, update,
   reference 권한을 설정
mysql> desc columns_priv;
->db 테이블
* db라는 테이블에는 특정 DB에 대한 user들의 여러가지 권한들을 설정하는 테이블
mysql> desc db;
-> kebia 라는 데이터베이스의 소유자와 그 권한에 대해서 알아보고자 함.
-> kebia라는 데이터베이스의 소유자는 hyung 이라는 mysqkl 사용자이며 이 hyung 이라는 사용자
     는 이 kebia 라는 데이터베이스에 대한 각종 권한을 볼수 있음.
mysql> select * from db where db = 'kebia';
| localhost | kebia | hyung | Y  |   - - - - - ...........
------------------------
 
->tables_priv테이블
* columns_priv 테이블처럼 각 데이터베이스와 사용자 및 그 테이블에 대한 권한 설정
mysql > desc tables_priv;
---------------------
 
->user 테이블 : 새로운 사용자를 생성할때 이 테이블에 등록
-> 특정 사용자에 대한 Mysql에 존재하는 모든 데이터베이스에 대한 권한설정
-> 특정 사용자의 어떤권한에 대한 사항은 특정 데이터베이스가 아니라 Mysql에 존재하는 모든 데
     이터베이스에 권한이 주어짐.
-> host와 user, password 항목을 제외한 나머지 권한들은 모두 'N"로 설정
->특정한 사용자에 대한 특정한 데이터베이스에 대한 권한을 주려면 위에서 보았던 db라는 테이블
    에서 그 권한설정을 하는것이 안전함
 
13 .Mysql root 암호 변경하기
-> 방법 1:  mysqladmin 이라는 명령어 사용
# ./mysqladmin -u root -p password 12345
 
->방법 2: mysql의 set 이란 명령어로 root 암호 변경
# ./mysql -u root -p mysql
mysql> set password for root=passwd('12345678');
 
-> 방법 3: mysql 데이터베이스로 접속하여 update문을 사용하는 방법
# ./mysql -u root -p mysql
mysql> update user set password=password('12345' where user = 'root';
mysql> flush privileges;
 
->flush-privileges: 권한 테이블을 재시작한다. 권한 설정을 변경했을경우 반드시 재시작
mysql> flush privileges;
 
14. root 패스워드를 잊어버렸을 때는 어떻게?
->단계 1: 실행중인 mysql 종료
# ps -ef | grep mysqld
# killall mysqld
 
->단계 2: grant-table 미사용모드로 mysql시작 및 root로 접속
# .safe_mysqld --skip-grant-tables&
 
-> 단계 3: update문으로 root사용자 패스워드 변경
mysql> update user set password=password('12345') where user = 'root';
mysql> flush privileges;
 
-> 단계 4: 실행중인 mysql 다시 종료
# ps -ef | grep mysqld
# killall mysqld
 
-> 단계 5: 일반모드로 Mysql 재시작
# ./safe_mysqld&
# ps -ef | grep mysql
 
15. 특정 테이블의 구조보기(show columns from 테이블)
-> 특정테이블의 필드명 type, 설정값들을 보기 위한 것
-> 특정한 테이블의 칼럼(필드)구조를 보려면 "show columns from 테이블명"
-> 좀더 편리하여 많이 사용되는 명령문 " desc 테이블명"으로 확인
mysql> show columns form user;
 
->특정 테이블의 인덱스 보기
mysql> show index from user;
 
-> 데이타베이스의 설정상태 보기(show status)
mysql> show status;
# ./mysqladmin -u root -p status
 
-> 데이터베이스의 설정환경변수와 값보기(show variables)
mysql> show variables;
# ./mysqladmin -u root -p variables
 
-> 현재 데이터베이스에 연결된 프로세스들 보기(show processlist)
# ./mysqladmin -u root -p processlist
끝으로 원격에서 접근할려면 아래 내용을 참조하면 됩니다.
 
mysql 원격접속 권한 설정
 
>use mysql
>grant all privileges on *.* to 'oops'@'192.168.5.14'     
>identified by 'passwd' with grant option;
 
ip대신 % 를 주면 모든 호스트허용!
 
oops 라는 유저가 모든 권한을 부여받을 수있다 . 단 해당 아이피의 호스트 에서만.
 
이와 같은 설정은 select host,user from user; 로 확인해볼수 있다.

 

감사합니다.

 

도움주신url : http://blog.naver.com/PostView.nhn?blogId=athena1028&logNo=20060725715&redirect=Dlog&widgetTypeCall=true

 

by 초보인척 2013. 6. 27. 11:50

우분투 쉘 접속 시 메인 배너 띄우는 방법

 

1. vi /etc/issue.net

안에 등록하고 싶은 내용 추가.

 

2. vi /etc/ssh/sshd_config

Banner /etc/issue.net  주석 제거

 

/etc/init.d/sshd restart

 

by 초보인척 2013. 4. 10. 16:00

환경: ubuntu 11.04
문제점: 크롬에 플래시 plug-in이 작동하지않으며 missing plug-in이라고만 나옴.

해결:


sudo apt-get install flashplugin-installer

sudo mkdir /opt/google/chrome/plugins

sudo cp /usr/lib/flashplugin-installer/libflashplayer.so /opt/google/chrome/plugins

이렇게 된 이후 주메뉴에서 크롬의 속성 명령어코드를 다음과 같이 수정
  /usr/bin/chromium-browser --enable-plugins %U

 

도움주신url : http://wangmir.tistory.com/27

 

'Linux' 카테고리의 다른 글

MYSQL 계정생성 및 사용법 정리.  (0) 2013.06.27
우분투 메인 배너 추가  (0) 2013.04.10
[MySQL] DB 전체 백업과 복구 방법  (0) 2013.04.01
Apache 로그인 페이지(htpasswd) 걸기  (0) 2013.03.25
vi editor(편집기) 사용법  (0) 2013.03.20
by 초보인척 2013. 4. 5. 10:55

- 특정 데이타베이스 하나만을 백업

백업형식 : myslqdump -u DB계정명 -p 백업대상데이터베이스명 > 저장할파일명

복구형식 : mysql -u DB계정명 -p 복구할테이터베이스명 < 저장할파일명

 

# ./mysqldump -u root -p mysql > mysql.sql      //mysql 디비 백업 예

# ./mysql -u root -p mysql < ./mysql.sql           //mysql 디비 복구 예

 

// 위 백업결과물인 sql 파일은 디비를 생성하지는 않는다.. 다시말해 복구하려는 디비에 mysql이란 디비가 없다면 복구가 되지않는다.... 이점 유의

// 복구하려는 mysql 디비에 테이블이 이미 존재한다면 복구 실패... sql 파일에서 해당 디비의 테이블을 생성하므로.. 따라서 특정 데이타베이스 하나만을 복구 할 시에는 데이타베이스의 이름만 생성한 다음에 위 방법의 복구하여야 함

 

- 특정 데이타베이스의 특정 테이블 하나만을 복구 백업

백업형식 : myslqdump -u DB계정명 -p 데이터베이스명 테이블명 > 저장할파일명

복구형식 : mysql -u DB계정명 -p 데이터베이스명 < 저장할파일명

#./mysqldump -u root -p mysql user > user.sql

#./mysql -u root -p mysql < user.sql

 

- 여러개의 데이터베이스 한번에 백업과 복구

백업형식 : mysqldump -u root -p --databases [옵션] DB1 [DB2 DB3] > 파일명

복구방법 : mysql -u root -p < 파일명

# ./mysqldump -u root -p --databases mysql test > dbs.sql   //mysql, test 디비를 백업

# ./mysql -u -root -p < dbs.sql                                            //백업된 두 디비를 복구

//--databases 옵션 시 일반 백업과 달리 "CREATE DATABASE ..."문과 "USE DB .." 문이 추가됨

//달리 애기하면 DB를 생성할 필요가 없이 바루 디비가 생성되고 생성된 디비로 전환되고 테이블을 생성하고 인서트로 데이타를 붓는다.. 데이타베이스를 지정하면 안됨

 

- Mysql 의 전체 데이타베이스 백업

백업형식 : ./mysqldump -u root -p --all-databases > 파일명.sql

복구형식 : mysql -u root -p < 파일명.sql

//원본 데이타베이스명과 동일한 디비가 생성됨

- 기존 테이블 삭제후  백업된 파일로 복구를 위한 백업

 (mysqldump문으로 데이타베이스 백업 시 각각의 create table문 앞에 drop table문을 삽입한 형태가 된다)

백업형식 : ./mysqldump -u root -p --add-drop-table test > test.sql

//test 데이타베이스를 기존 태이블 삭제문을 추가하여 백업한다

복구형식 : ./mysql -u root -p test < test.sql

//기존 테이블을 삭제하고 복구한다는것에 유의

 

도움주신 url : http://community.365managed.com/?document_srl=7727

 

by 초보인척 2013. 4. 1. 09:07

HTPASSWD를 이용한 홈페이지에 패스워드 걸기 (User Authorization)

 

1) .htaccess 파일 만들기  ( 실제로 걸어넣을 웹 페이지 index 파일 있는곳에 생성하기 (예)/var/www/ 밑에 또는 /var/www/4bpenceil/ 이런식으로)

         cgiserver% cd /m1/pubcgi/user-id/html

         cgiserver% vi .htaccess

               ------ .htaccess의 내용입니다. -----

 

AuthName

"User Authorization"

인증화면에 표시

AuthType

Basic

 

AuthUserFile

/var/www/.htpasswd

.htpasswd파일의 위치

AuthGroupFile

/dev/null

그룹단위 인증 사용안함

 

<Limit GET>

       require valid-user

인증된 사용자만 사용허가

</Limit>

 

2) .htpasswd 파일 만들기

         .htpasswd 는 .htaccess 를 작성 후 htpasswd 를 실행하면 자동으로 생성되는 패스워드 파일입니다.

          가. 처음 사용자 만들기

htpasswd -c /var/www/.htpasswd superuser


         나. 사용자 추가하기

htpasswd /var/www/.htpasswd user2

         처음 사용자를 만들 경우 "-c" 옵션을 사용합니다.
         "-c" 옵션은 초기화 후 새로운 파일로 시작할 때 사용하는 옵션입니다.

          주의) user2를 만들 때 "-c" 옵션을 사용한다면 이전 user-id는 없어지고 다시 user2가 첫 사용자가 됩니다.

 

도움주신 url : http://blog.naver.com/polong77?Redirect=Log&logNo=140011269601

 

by 초보인척 2013. 3. 25. 17:29

vi editer 시작

          Usage) % vi [option] [filename(s)]

          Option) 

                     +/pattern : pattern이 처음을 나타내는 줄에서 편집기 시작

                     +N : N번째 줄에서 편집기 시작

                     -R : 읽기 전용으로 파일 열기


커서 이동 명령 

   j : 아래로 이동

   k : 위로 이동

   h : 죄로 이동

   l : 우로 이동

   G : 제일 마지막 줄로 이동

   #G : #번째 줄로 이동

   ^b : 한 화면 위로(앞으로) 이동

   ^f : 한 화면 아래로(뒤로) 이동

   ^u : 반 화면 위로(앞으로) 이동

   ^d : 반 화면 아래로(뒤로) 이동

   w : 한 단어 뒤로 이동

   b : 한 단어 앞으로 이동

   0 : 그 줄의 제일 앞으로 이동

   $ : 그 줄의 제일 끝으로 이동



 편집 상태로 들어가기

   i : 현재 커서 위치에 삽입

   a : 현재 커서 위치 다음에 삽입

   o : 현재 커서가 위치한 줄의 아래에 삽입

   I : 현재 커서가 위치한 줄의 제일 앞에 삽입

   A : 현재 커서가 위치한 줄의 제일 끝에 삽입

   O : 현재 커서가 위치한 줄의 윗줄에 삽입

   ESC : 명령 모드로 전환


 복사하기와 붙이기

   Y : 현재 커서가 위치한 줄을 버퍼에 복사

   yy : 현재 커서가 위치한 줄을 버퍼에 복사

   yw : 현재 커서가 위치한 단어를 버퍼에 복사

   #Y : 현재 커서가 위치한 줄에서 아래로 #개 만큼의 줄을 버퍼에 복사

   #yy : 현재 커서가 위치한 줄에서 아래로 #개 만큼의 줄을 버퍼에 복사

   p : 버퍼에 들어 있는 내용을 커서가 위치한 줄의 아래에 붙이기

   P : 버퍼에 들어 있는 재용을 커서가 위치한 줄의 위에 븥이기


 지우기

   x : 현재 커서 위치의 문자를 지우기

   dd : 현재 커서가 위치한 줄을 지우기

   #dd : 현재 커서가 위치한 줄에서 아래로 #개 만큼의 줄을 지우기

   dw : 현재 커서가 위치한 단어를 지우기

   #dw : 현재 커서가 위치한 단어로부터 #개 만큼의 단어를 지우기


 바꾸기

   r : 현재 커서가 위치한 문자를 바꾸기

   cw : 현재 커서가 위치한 단어를 바꾸기

   cc : 현재 커서가 위치한 줄을 바꾸기

   C : 현재 커서가 위치한 곳으로부터 줄 끝까지 바구기

   #cw : 현재 커서가 위치한 단어로부터 #개의 단어를 바꾸기

   #cc : 현재 커서가 위치한 즐로부터 #개의 줄을 바꾸기


 기타

   ^g : 현재 편집하고 있는 파일의 정보를 보여주기

   u : 방금한 명령을 취소하기

   U : 현재 커서가 위치한 줄에 대한 편집 명령을 취소하기

   . : 방금 한 명령을 되풀이 하기

   #. : 방금한 명령을 #번 되풀이 하기

   J : 현재 줄과 다음 줄을 붙이기

   ZZ : 현재 내용을 저장하고 끝내기

   ^ㅣ : 화면을 다시 그리기

   /pattern : 현재 커서가 위치한 곳으로부터 아래 쪽으로부터

          pattern과 일치하는 내용 찾기

   / : 앞에서 찾은 내용 다시 찾기

   n : 앞에서 찾은 내용 다시 찾기

   ?pattern : 현재 커서가 위치하는 곳에서부터 pattern과

          일치하는 내용을 위쪽으로 찾기


 ex 명령모드

   :w : 현재 내용을 저장하기

   :w filename : 현재 내용을 지정된 파일 이름으로 저장하기

   :w! : 현재 내용을 저장하되 강제로 덮어 쓰기

   :wq : 현재 내용을 저장하고 끝내기

   :q! : 현재 내용을 저장하지 않고 끝내기

   :e filename : 새로운 파일을 편집하기

   :n : 여러개의 파일을 편집할 때 다음 파일로 이동하기

   :r filename : 현재 커서가 위치한 곳에 지정된 파일 내용을 읽어오기

   :# : #번째 줄로 이동하기

   :#1, #2 d : #1번째 줄부터 #2번째 줄까지 지우기

   :#1, #2 y : #1번째 줄부터 #2번째 줄까지 내용을 버퍼에 복사히기

   :set : 여러 가지 vi환경변수를 설정하기

   :set number : 행의 앞에 행번호 보여주기( ↔ :set nonumber)

   :set autoindent : 자동으로 들여쓰기 실행하기( ↔ set noautoindent)

   :set ignorecase : 문자열을 검색할 때 대/소문자 구분하지 않기

          ( ↔ set noignorecase)

   :set showmode : 화면 아래쪽에 현재 모드를 보여주기

          ( ↔ set noshowmode)

   :!command : shell에서 command실행하기

   :shell : shell 실행하기

   :!!command : shell에서 command실행한 결과를 현재 파일에 삽입하기




너무 정리가 잘 되어 있어 퍼왔습니다. 문제 될 시 자삭 하겠습니다.



도움주신 url : http://applejara.tistory.com/240

by 초보인척 2013. 3. 20. 11:11

PHP 프로그램을 하다보면 html페이지에서 php페이지로 값을 넘겨야할 경우가 있다.

 

그럴때 컴퓨터나 환경에 따라 변수 값이 전달될때가 있고 전달이 안될때가 있다.


원인은 'register_globals의 활성화가 되어있거나 되어있지 않거나' 의 차이다.


이 것은 php.ini 파일 안에서  설정 가능하다.


php 4.2.0 부터 register_globals가 디폴트로 비활성화가 되어있다고한다.


vi /etc/php5/apach2/php.ini


register_globals = OFF  -> ON 해주면 될 것이다. 해결



도움주신 url : http://blog.naver.com/PostView.nhn?blogId=chaosson&logNo=130158349733


by 초보인척 2013. 3. 20. 10:00

여러명이 작업하는 리눅스 서버 일 경우


리눅스 작업 후 history 기록을 남기지 않고 종료 하고 싶을 때가 있다.


그럴때마다 히스토리 파일을 초기화 할 수 도 없는 노릇이다.


내가 작업한 내용만 남기고 싶지 않다면


unset HISTFILE

exit

하게 되면 히스토리를 남기지 않고 서버를 빠져 나오게 된다.


반대로 히스토리를 무조건 남기는 것도 있다

vi /etc/bash.bashrc 끝부분에


declare -r HISTFILE 추가하면 된다.

by 초보인척 2013. 3. 18. 13:56

cband 모듈을 아래 사이트에서 다운로드 합니다.

http://codee.pl/cband.html
[root@ruo91 ~]# cd /usr/local/src
[root@ruo91 ~]# wget http://cband.linux.pl/download/mod-cband-0.9.7.5.tgz
[root@ruo91 ~]# tar xzvf mod-cband-0.9.7.5.tgz
[root@ruo91 ~]# cd mod-cband-0.9.7.5
[root@ruo91 ~]# ./configure --with-apxs=/usr/local/apache2/bin/apxs
[root@ruo91 ~]# make && make install

설치가 완료 되면 아파치 설정 파일인 httpd.conf 에 모듈이 자동으로 붙는걸 확인 할수 있습니다.
[root@ruo91 ~]# cat /usr/local/apache2/conf/httpd.conf | grep cband
LoadModule cband_module       modules/mod_cband.so

아파치 설정 파일인 httpd.conf 에 아래 내용을 추가 해줍니다.
[root@ruo91 ~]# vi /usr/local/apache2/conf/httpd.conf
# 관리자 페이지 설정
# Allow from 에 있는 아이피로만 접근 가능
<IfModule mod_cband.c>
     <Location /cband-status>
         SetHandler cband-status
         Order Deny,Allow
         Deny from All
         Allow from 127.0.0.1 192.168.0.2
     </Location>
# 사용자 트래픽 설정
     <Location /cband-me>
         SetHandler cband-status-me
         Order deny,allow
         Deny from all
         Allow from all
     </Location>
</IfModule>

cband 를 이용하여 제한 하기 위해서는 <VirtualHost> 와 </VirtualHost> 사이에 아래 내용이 추가 되어야 합니다.
단일 사용자일 경우 하루에 100MB 트래픽 사용 가능
CBandUserLimit 100Mi
CBandUserPeriod 1D
<VirtualHost *:80>
ServerName localhost:80
ServerAdmin ruo91@naver.com
DocumentRoot /home/ruo91/public_html
CustomLog /home/apache2-log/ruo91-access.log combined
ErrorLog /home/apache2-log/ruo91-error.log
LogLevel warn
ServerSignature Off
  <Directory "/home/ruo91/public_html">
      Options FollowSymLinks
  </Directory>
     CBandLimit 100Mi
     CBandPeriod 1D
</VirtualHost>

하나의 사용자가 여러개 사용중일 경우
하루에 100MB 트래픽을 서로 공유하여 사용
 <CBandUser foobar>
     CBandUserLimit 100Mi
     CBandUserPeriod 1D
 </CBandUser>
 <CBandUser foobar>
     CBandUserLimit 100Mi
     CBandUserPeriod 1D
 </CBandUser>

<VirtualHost *:80>
ServerName ruo91.yongbok.net:80
ServerAdmin ruo91@naver.com
DocumentRoot /home/ruo91/public_html
CustomLog /home/apache2-log/ruo91-access.log combined
ErrorLog /home/apache2-log/ruo91-error.log
LogLevel warn
ServerSignature Off
  <Directory "/home/ruo91/public_html">
      Options FollowSymLinks
  </Directory>
</VirtualHost>

<VirtualHost *:80>
ServerName pigeonbok.yongbok.net:80
ServerAdmin ruo91@naver.com
DocumentRoot /home/pigeonbok/public_html
CustomLog /home/apache2-log/pigeonbok-access.log combined
ErrorLog /home/apache2-log/pigeonbok-error.log
LogLevel warn
ServerSignature Off
  <Directory "/home/pigeonbok/public_html">
      Options FollowSymLinks
  </Directory>
</VirtualHost>

트래픽 용량 단위는 byte 며 아래와 같이 표현 가능합니다.
K, M, G : 1000 byte 단위
Ki, Mi, Gi : 1024 byte 단위

또한 트래픽 용량이 초가 했을시 초과 페이지를 볼수 있도록 설정 가능 합니다.
CBandDefaultExceededURL http://test.com/traffic_over.html
# 하루 트래픽 100MB 제한이고 값을 넘어가게 되면 자동으로 해당 URL 로 이동
<VirtualHost *:80>
ServerName localhost:80
ServerAdmin ruo91@naver.com
DocumentRoot /home/ruo91/public_html
CustomLog /home/apache2-log/ruo91-access.log combined
ErrorLog /home/apache2-log/ruo91-error.log
LogLevel warn
ServerSignature Off
  <Directory "/home/ruo91/public_html">
      Options FollowSymLinks
  </Directory>
     CBandLimit 100Mi
     CBandPeriod 1D
     CBandDefaultExceededURL http://test.com/traffic_over.html
</VirtualHost>

cband-status 관리자 페이지 접속 화면
http://www.testserver.com/cband-status


도움주신 url : http://www.cyworld.com/ruo91/3235401

by 초보인척 2013. 3. 18. 11:12

아이폰에서 지원하는 airvideo 라는 아주 훌륭한 어플이 있다.

보통은 윈도우에 server를 설치하여 운영을 한다.

그렇지만, 난 리눅스에 설치를 해보고 싶은 욕망이 생겨버려서 해버렸다.

 

apt-get install python-software-properties

apt-add-repository ppa:rubiojr/airvideo

apt-get update

apt-get install airvideo-server

 

# airvideo config

vi /opt/airvideo-server/AirVideoServerLinux-properties

 

path.ffmpeg = /opt/airvideo-server/bin/ffmpeg     -----  무얼의미하는지 모르겠다. 아마도 airvideo 경로를 말하는거 같다

path.mp4creator = /usr/bin/mp4creator     -----  무얼의미하는지 모르겠다. 아마도 airvideo 경로를 말하는거 같다

path.faac = /usr/bin/faac     -----  무얼의미하는지 모르겠다. 아마도 airvideo 경로를 말하는거 같다

password =            --- airvideo 어플로 접속 시 패스워드 설정이다

subtitles.encoding = euc-kr    ---- 언어 선택이다. 난 한국사람이므로 euc-kr

subtitles.font = NaumGothic    ----  자막 font 이다

subtitles.size = 130

folders =             --------- 접속시 연결되는 동영상 폴더이다

 

설치가 완료 되었다. 아주 잘 나온다. 그러나 난감한 상황에 부딪혔다

자막이 깨진다;;

자막 깨지는 문제 (폰트 설치로 해결)

apt-add-repository "deb http://dev.naver.com/repos deb/"

apt-get update

apt-get install ttf-nanum ttf-nanum-coding

 

추가

한글 자막 보기 

- 나눔글꼴 설치 (나눔고딕 글꼴을 다운받아 '/usr/share/fonts/truetype/'에 복사 후, 폰트캐쉬 갱신)

sudo cp *.ttf /usr/share/fonts/truetype/

sudo fc-cache -v

- /opt/airvideo-server/AirVideoServerLinux.properties 설정 (한글 코드페이지 설정 및, 자막 폰트를 나눔고딕으로 변경)

subtitles.font = NanumGothic
subtitles.encoding = windows-949


자막이 안 깨지고 아주 잘 나온다.

 

by 초보인척 2013. 3. 15. 14:29
| 1 2 3 4 5 |