BLOG ARTICLE 명령어 | 3 ARTICLE FOUND

  1. 2014.02.05 [MySQL] mysql 기초 명령어
  2. 2014.01.28 [Linux] 리눅스 기본 명령어 모음
  3. 2014.01.28 [Linux] vi 에디터 명령어

 

PHP에서 mySQL 데이터를 호출할때 사용 되는 기본적인 명령어 모음

 

 

 

 

[MySQL] MySQL 명령어 _완전기초 (데이터베이스는 삽입,검색,수정,삭제만 알아도 반은 안거란 말이 있죠~ )

USE database_name;        ← 사용할 데이터 베이스 선택 :

 

① 검색

   SELECT * FROM table_name WHERE abc_column='a' ;

② 수정

   UPDATE  tabel_name  SET  a_column='a'  WHERE b_column='b' ;

③ 삽입

   INSERT INTO  table_name (a_column, b_column) VALUES ('a', 'b') ;

④ 삭제

   DELETE FROM  table_name  WHERE d_column='del' ;

   ※ TRUNCATE table_name;   ← 전체 레코드 삭제 ( DELETE FROM table_name 보다 빠름 )

 

 

자~ 여기부터는 MySQL 명령어 기초를 살짝 넘어가 봅니다

 

① SELECT * FROM table_name WHERE abc_column='a' ORDER BY a_column DESC  LIMIT 100;

     └ order by a_column은 정렬,  oder by a_column desc는 역순정렬,  limit 100 은 100개까지

 

   SELECT * FROM table_name WHERE a_column like '%aaa%';

     └ a_column 에서 aaa 를 포함하는 모든 레코드를 가져옴

 

   SELECT * FROM table_name WHERE a_column BETWEEN 10 AND 100;

     └ a_column 에서 10 ~ 100 사이의 값을 가진 레코드를 가져옴

 

   SELECT a_column FROM table_name GROUP BY a_column;

     └ a_column 의 같은 값끼리 그룹을 묶음.

 

   SELECT count(*) FROM table_name;

      └ 테이블의 전체 레코드 갯수를 가져옴

 

 

UPDATE table_a SET table_a . a_column = table_b . a_column FROM table_a, table_b

    WHERE table_a.a_column = table_b.a_column  ;

       └ 두개의 테이블에서 조건을 비교하여 업데이트

 

③ 문자관련 함수

    SELECT LEFT(a_column, 2) FROM table_name;     ← a_컬럼 에서 왼쪽부터 2자리 잘라서 가져온다.

    SELECT MID(a_column, 2, 4) FROM table_name;   ← a_컬럼 2자리부터 오른쪽으로 4자리 만큼 가져온다.

    SELECT RIGHT(a_column, 3) FROM table_name;   ← a_컬럼 에서 오른쪽부터 3자리 잘라서 가져온다.

    SELECT * FROM table_name WHERE LENGTH(a_column)=10;  ← a_컬럼에서 길이가 10인 레코드만

    UPDATE table_name SET a_column=REPLACE(a_column,'변경전글자','변경후글자');

       └ a_컬럼의 '변경전글자' 라는 문자열을 '변경후글자'로 바꾸어 a_컬럼 수정

    UPDATE table_name SET a_column=TRIM(a_column);

       └ a_컬럼의 왼쪽 오른쪽 공백을 모두 제거

     SELECT AVG(a_column),MIN(a_column),MAX(a_column),SUM(a_column) FROM table_name;   

       └ AVG : 평균값, MIN : 최소값, MAX : 최대값, SUM : 합계

     SELECT version(),user(),database();

        └ MySQL 버젼 , 유저 , 데이터베이스명 보기

 

④ 날자관련 함수

    SELECT NOW();

 

 

자~ 여기 부터는 조금더 기초를 넘어 MySQL 명령어 기본기 다지기 정도? 잠시 쉬어갑시다~

 

JOIN : a_테이블 과 b_테이블 에서 a_컬럼의 값이 같은 레코드만 가져옴

    SELECT a_table.a_column, b_talbe.a_column

    FROM a_talbe, b_table

    WHERE a_table.a_column = b_table.a_column;

 

   INNER JOIN : 테이블A 와 테이블B를 비교하여

 

테이블A와 테이블B의 컬럼a 값이 000 인 것의

테이블B 컬럼b 값을 가져오는 쿼리 입니다.

 

SELECT  b.column_b

FROM table_a as a
       inner join table_b as b on a.column_a=b.column_a
WHERE a.column='000'

 

 

 

 

UNION : a_테이블 과 b_테이블 에서 a_컬럼,b_컬럼 모든 값을 한꺼번에 가져옴

    SELECT a_column FROM a_table

    UNION

    SELECT b_column FROM b_table;

 

 

AND

리눅스에서 사용되는 주요 명령어 모음

 

리눅스 시스템 종료 방법
1. 바탕화면에서 : 시스템 -> 끄기 -> 끄기
2. 터미널에서 : "shutdown -h now", "halt", "init 0"

* shutdown 명령어
shutdown -h +10 (10분 후 종료, h:halt)
shutdown -r 22:00 (오후 10시에 재부팅, r:reboot)
shutdown -c (예약된 shutdown명령 취소)
shutdown -k now (종료 메세지는 보이나 종료 안댐.)

재부팅
- "shutdown -r now", "reboot", "init 6"

로그아웃
- "logout", "exit"

* init 명령어(런레벨, Runlevel)
0번 : 종료모드
1번 : 단일 사용자 모드(시스템 복구시 사용)
2번 : NFS 없는 다중 사용자 모드
3번 : 텍스트 모드의 다중 사용자 모드
4번 : 없음
5번 : x윈도우 모드의 다중 사용자 모드
6번 : 재부팅 모드
</etc/inittab 에 지정되어 있음.>

vi(visual)  ; ex) vi test.txt

man(manual) ; ex) man <명령어>

genisoimage ; iso 생성
ex) genisoimage -r -J -o test.iso /boot
    "-r -J" : 8글자 이상의 파일명 및 대소문자를 구분해서 인식
    "-o" : 출력할 파일을 위한 옵션
    "test.iso" : 생성될 iso 파일명
    "/boot" : 포함될 파일 또는 디렉토리

cdrecord    ; cd로 굽기
growisofs   ; DVD로 굽기

* ls 명령어 - dos의 "dir"
: ls    ; 현재의 디렉토리 목록
: ls /usr/bin   ; /usr/bin 의 디렉토리 목록
: ls -a   ; 디렉토리 목록(숨김파일 포함)
: ls -l  ; 디렉토리 목록 자세히
: ls *.txt  ; txt파일 보여줌
: ls -l /usr/bin/a* ; /usr/bin/ 디렉토리에서 앞글자가 a인 목록.

* cd 명령어 - 디렉토리 이동
: cd    ; 사용자의 홈 디렉토리로 이동
: cd ~root  ; root사용자의 홈 디렉토리로 이동
: cd ..   ; 상위 디렉토리로 이동
: cd /usr/bin  ; /usr/bin 디렉토리로 이동(절대경로)
: cd ../usr/bin ; 상대경로로 이동

* pwd (print working directory)
: pwd    ; 현재 작업중인 디렉토리 경로 출력

* rm - 삭제(권한이 있어야 함)
: rm abc.txt  ; 삭제(내부적으로 rm -i 로 연결됨
: rm -i abc.txt ; 삭제 시 확인을 물어본다
: rm -r abc  ; 디렉토리 삭제
: rm -rf abc   ; abc 이하 전부 강제 삭제

* cp - 복사
: cp abc.txt cba.txt ; abc.txt를 cba.txt 파일로 복사
: cp -r abc cba ; 디렉토리 복사

* touch - 크기 0 파일 생성, 존재시 수정 시간 변경
: touch abc.txt

* mv - 파일 이름 변경 및 위치이동
: mv aaa bbb ccc ddd ; aaa, bbb, ccc 파일을 ddd 디렉토리로 이동
: mv abc.txt www.txt ; 이름 변경

* mkdir - 새로운 디렉토리 생성
: mkdir abc  ; 현재 디렉토리 아래 abc 디렉토리 생성
: mkdir -p def/fgh ; 현재 디렉토리 아래 def/fgh 생성

* rmdir - 디렉토리 삭제(파일이 있으면 안됨)
: rmdir abc

* cat - 텍스트 작성 파일 화면에 출력
: cat install.log

* head, fail - 텍스트 파일 앞 10행 or 뒷 10행을 출력
: head install.log
: fail install.log

* more - 텍스트 파일 페이지 단위 출력
(space : 다음페이지, b : 앞페이지, Q : 뒷페이지)
: more install.log
: more +100 install.log ; 100행부터 보여줌

* less - more의 확장, pagedown, pageup 사용 가능
: less install.log
: less +100 install.log

* file - 파일의 종류 표시
: file install.log
: file /bin/gzip

* clear - 명령창을 깨끗하게
: clear


< 사용자 및 그룹 관련 명령어>
* useradd or adduser
-> 실행시 /etc/passwd, /etc/shadow, /etc/group에 새로운 행 추가.
: useradd newuser
: useradd -u 555 newuser  ; 555 라는 이름의 유저 추가
: useradd -g mygroup newuser  ; mygroup에 포함된 newuser 생성
: useradd -d /newhome newuser  ; 홈 디렉토리가 newhome인 newuser 생성
: useradd -s /bin/csh newuser  ; 기본 셸 /bin/csh 지정

* passwd - 비밀번호 지정 및 변경
: passwd newuser   ; newuser의 비밀번호 지정 및 변경

* usermod - useradd와 사용법 동일, 사용자 속성 변경
: usermod -g root newuser ; newuser의 그룹을 root 그룹으로 변경

* userdel - 사용자 삭제
: userdel newuser
: userdel -r newuser

* change - tkdydwk dkagh wnrlwjr qusrud
: change -l newuser  ; newuser에 설정된 사항 확인
: change -m 2 newuser  ; 설정암호 최소 일자(2일)
: change -M 30 newuser  ; 설정암호 사용가능 일자(30일)
: change -E 2013/12/12 newuser ; 2013/12/12에 암호 만기
: change -W 10 newuser  ; 만기 10일 부터 경고 메세지 출력

* groups - 사용자가 속한 그룹을 보여줌
: groups

* groupadd - 새로운 그룹 생성
: groupadd newgroup
: groupadd -g 555 newgroup ; 그룹 ID가 555인 newgroup생성

* groupmod - 그룹 속성 변경
: groupmod -n newgroup mygroup ; newgroup 이름을 mygroup으로 변경

* groupdel - 그룹 삭제
: groupdel newgroup
(해당 그룹을 주요 그룹으로 지정한 사용자가 없을 때 사용 가능)

* gpasswd - 그룹의 암호를 생성하거나 관리를 수행
: gpasswd newgroup  ; newgroup의 암호지정
: gpasswd -A newuser newgroup ; newuser를 newgroup의 관리자로 지정
: gpasswd -a user1 newgroup ; user1을 사용자로 추가
: gpasswd -d user1 newgroup ; user1을 사용자에서 제거


< RPM >
* 설치
: rpm -Uvh (패키지파일)
- U : (대문자) 설치되어 있지 않다면 'i'와 같이 설치,
       설치되어 있다면 업그레이드한다.
- v : 설치 진행상황 확인
- h : 설치진행과정을 화면에 출력

* 삭제
: rpm -e (패키지이름)
- e : Erase

* 이미 설치된 패키지 질의
: rpm -qa (패키지)  ; 설치되었는지 확인
: rpm -qf (파일의 절대 경로) ; 어느 패키지에 포함된 것인지 확인
: rpm -ql (패키지)  ; 어떤 파일이 포함되었는지 확인
: rpm -qi (패키지)  ; 상세정보

* 설치되지 않은 패키지 질의
: rpm -qlp (패키지)  ; 어떤 파일이 포함되었는지
: rpm -qip (패키지)  ; 상세정보

< YUM >
* 설치
: yum (-y) install (패키지) 
&&& -y 옵션을 쓰면 무조건 yes로 넘어감

* rpm파일 설치
: yum install (rpm파일)

* yum check-updata  ; 업데이트 가능한 목록 보기

* yum updata (패키지)  ; 패키지 업데이트, 없다면 install

* yum remove (패키지)  ; 패키지 제거

* yum info (패키지)  ; 패키지 요약 정보

* yum localinstall (패키지) ; 로컬에서 설치 (iso파일에서 설치)

* yum groupinstall "(패키지그룹)" ; yum grouplist로 확인후 통째로 설치

* yum list (패키지)  ; 패키지 리스트 출력
ex) yum list all(모든 리스트), yum list mysql*(mysql이 들어간 목록)

* yum provides (파일이름) ; 특정 파일이 어느 패키지에 들어있는지..

* yum install --nogpgcheck (rpm파일) ; GPG키 검사 생략
; 페도라에서 인증되지 않은 rpm파일을 설치시 GPG키 생략하고 설치됨.


< 파일 압축, 묶기 >
* bzip2 - bz2로 압축하거나 풀기
: bzip2 (파일명)  ; 파일명.bz2 로 만든다.
: bzip2 -d "파일명.bz2" ; 파일명.bz2 를 일반파일로 만든다

* bunzip2 - bzip2 -d 와 같다.

* gzip - gz으로 압축하거나 풀기
: gzip (파일명)   ; 파일명.gz 로 만든다.
: gzip -d "파일명.gz"  ; 파일명.gz 를 일반파일로 만든다.


* tar - 확장명 tar로 묶거나 풀기
[동작]
: c     ; 새로운 묶음
: x    ; 묶인 파일을 풀어줌
: t    ; 묶음을 풀기전에 경로 표시
[옵션]
: f(필수) - 묶음 파일명 지정  ; 생략시 tape로 백업
: v - visual    ; 과정을 보여줌
: z - tar + gzip
: j - tar + bzip2
[사용예]
: tar cvf xinetd.tar
: tar xvfj (파일명.tar.bz2)
: tar xvfz (파일명.tar.gz)

< 파일 위치 검색 >
* find [경로] [옵션] [조건] [action]
[옵션] -name, -user(소유자), -newer(전, 후) -perm(허가권), -size(크기)
[경로] -print(디폴트), -exec(외부명령 실행)
[사용 예]
: find /etc -name "*.conf" ; /etc 에 확장자 conf 파일 검색
: find ~ -perm 644  ; 허가권이 644인 파일 검색
: find /bin -size +10k -size -100k  ; 10kb~100kb인 파일 검색
: find ~ -size 0k -exec ls -l { } \;
     -> 사용자 홈 디렉토리 하위에 파일 크기가 0인 파일 목록 상세히 출력
: find /home -name "*.swp" -exec rm { } \;
     -> /home 홈 디렉토리 하위에 확장자 swp파일 삭제

* which (실행파일명) - PATH에 설정된 디렉토리 검색(절대경로 포함)

* whereis (실행파일명) - 실행 파일 및 소스, man 페이지 파일까지 검색

* locate (파일명) - updatedb 명령 이후 사용가능
                    파일목록 데이터베이스 검색, 빠르고 유용.

< wine 설치하기 >
http://kltp.kldp.net/stories.php?story=00/08/11/9653999

< 시스템 설정 > ststem-config-xxxx
&&& 패키지 업데이트 yum -y install system-config-xxxx
: boot   ; 초기 부팅 설정
: data   ; 날짜, 시간 설정
: firewall   ; 방화벽
: keyboard  ; 키보드
: language  ; 언어
: lvm   ; lvm 설정
: network  ; 네트워크
: printer   ; 프린터
: rootpassword  ; root 비밀번호
: service  ; 서비스 가동/중지
: users  ; 사용자 설정
: bind   ; 네임 서버
: display   ; x 윈도우 환경 설정
: httpd   ; 웹 서버 설정
: nfs    ; NFS 서버 설정
: samba   ; 삼바 서버 설정
: vsftpd  ; FTP 서버 설정

< CRON >
- 주기적으로 반복되는 일 설정
- /etc/crontab 파일
ex) 01 * * * * root run-parts /etc/cron.hourly
     02 4 * * * root run-parts /etc/cron.daily
     04 4 * * 0 root run-parts /etc/cron.weekly
     42 4 1 * * root run-parts /etc/cron.monthly
     분 시 일 월 요일 권한 실행명령 (0~6 = 일~월요일)

< AT >
- 일회성 작업 예약
- 한번 실행되고 소멸
ex) at 실행 후 #at <시간>,
     완료시 ctrl+D,
     확인   at-l,
     취소   atrm <작업번호>

< Network 관련 명령어 >
: system-config-network
: system-config-network-tui ; 텍스트 기반
: service network (start/stop/restart/status)
: ifup <장치이름> / ifdown <장치이름>  ; 장치 작동
: ifconfig <장치이름>   ; 해당 장치의 ip주소 설정 정보 출력
: nslookup   ; DNS 서버 작동 테스트
: ping (IP/URL)  ; 네트워크 응답 테스트

< Network 설정관련 파일 > - system-config-network 후
: /etc/sysconfig/network ; 네트워크의 기본적인 정보가 설정된 파일
: /etc/sysconfig/network-script/ifcfg-eth0(or ifcfg-eth1)
     ; 장치에 설정된 네트워크 정보 모두
: /etc/resolv.conf  ; DNS서버의 정보 및 호스트 이름이 들어있는 파일
: /etc/hosts   ; 현 컴퓨터의 호스트 이름 및 FQDN이 들어있는


<< 파이프, 필터, 리다이렉션 >>
< pipe > - 두 개의 프로그램을 연결해주는 연결통로
: | 을 이용함.
ex) ls -l /etc | more  ; /etc에 파일이 너무 많아서 한페이지씩 봄

< filter > - grep, tail, wc, sort, grep, awk, sed 등
ex) ps -ef | grep bash  ; ps -ef 는 모든 프로세스 번호 출력하므로
                                  bash라는 글귀가 들어간 프로세스만 출력
     rpm -qa | grep bind ; 설치된 패키지중 bind라는 글자가 들어간
       패키지만 출력

< re-direction >
- 표준 입출력 방향을 바꿈.
- 표준입력은 키보드, 출력은 모니터지만 이를 파일로 처리하고 싶을 때 주로 사용
ex) ls -l > aa.lst  ; ls -l의 결과를 aa.lst 파일에 씀(orerwrite)
     ls -l >> aa.lst  ; 위와 같지만 append
     sort < aa.lst  ; aa.lst 파일을 정렬해서 화면에 출력
     sort < aa.lst > bb.lst ; aa.lst를 정렬해서 bb.lst에 쓴다.


< 프로세스 관련 명령어 >
1. ps - 현재 프로세스 상태 확인
ex) ps -ef | grep (프로세스이름)

2. kill - 프로세스 강제 종료 "-9" 옵션을 함께 사용하면 무조건 종료
ex) kill -9 (프로세스번호)

3. pstree - 부모 자식 프로세스관계를 트리형태로 보여줌

< vi 에디터 비정상적 종료시 대처법 >
ex) vi abc.log 를 비정상적으로 종료시
-> abc.log.swp(임시 Swap File)생성.
--> ls -a 로 파일 확인하고 "rm .install.log.swp"으로 삭제.

< 데몬(Daemon) ~= 서비스(Service) >
: 눈에는 보이지 않지만 현재 시스템에서 활동중인 프로세스(백그라운드) 

 

출처: http://blog.naver.com/minki1111?Redirect=Log&logNo=100189238563

 

AND

1. vi 에디터의 모드

- 명령모드 : 명령어를 실행할 수 있는 상태

- 입력모드 : 원하는 문자열을 입력시킬 수 있는 상태

- ESC : 입력모드에서 명령모드로 전환시킴

 

2. 명령모드 명령어

- i : 입력모드로 전환

- a : 커서의 다음칸부터 입력

- [n]x : n의 수만큼 글자삭제

- [n]dd : n의 라인수만큼 삭제

- u : 명령취소

- [n]yy : n의 라인수만큼 복사

- p : 붙여넣기

- :wq : 저장후 종료

- :w : 저장

- :q : 종료

- :q! : 저장하지않고 종료

 

3. 화면스크롤

- ctrl+f : 한화면 다음으로

- ctrl+b : 한화면 이전으로

- ctrl+d : 반화면 다음으로

- ctrl+u : 반화면 이전으로

- G : 파일의 맨 끝으로 이동

- [n]G : n번째 라인으로 이동

- :[n] : n번째 라인으로 이동

 

4. 검색

- / [검색단어] : 현재 위치에서 아래방향으로 검색단어를 검색

- n : 이전 검색을 반복

- ? [검색단어] : 현재 위치에서 위방향으로 검색단어를 검색

- N : 이전 검색을 반복, 방향은 반대

 

5. 치환

- :[n],[m] s/[찾을 문자]/[치환할 문자]/[옵션]

n번째 줄부터 m번째 줄까지 문자를 치환

m이 $일경우 문서의 끝까지 치환

옵션이 g 일 경우 찾은 문자를 모두 치환

옵션이 c 일 경우 찾은 문자를 치환할 것이지 확인 메세지 출력

 

6. 환경설정

/usr/share/vim/vim61/vimrc_example.vim 을 자신의 홈 디렉토리에 vimrc로 복사하여 편집

- set autoindent 자동 들여쓰기

- set cindent C 파일 자동 들여쓰기

- set number 행번호 표시

- set backup 백업파일 자동생성

 

 

   출처: http://blog.naver.com/imju1196?Redirect=Log&logNo=20184691090

AND