본문 바로가기

Linux/기타

기본 명령어

** 보안 뉴스 사이트

- http://boannews.com

- http://boan.com

- http://dailysecu.com



**마운트 해제시에는(umount)

반드시 그 폴더에서 나와야 한다(장치 사용중에는 umount 불가)


**alias명령어

$HOME/.bashrc : 로그인시 맨 마지막에 실행되는 스크립트

ex) alias nt='netstat -nltp'


mkdir ". "

ls -a(안보이는 것들을 보여주기 위한 옵션)



**시스템을 종료하는 방법

# shutdown -h now

# init 0

# poweroff

# halt 


**시스템을 재부팅하는 방법

# shutdown -r now

# init 6

# reboot


** 기본 명령어 

               Linux                             Windows 

파일목록 출력 (LiSt)                             (dir)

화면 지우기   (clear, Crtl + L )                   (cls)

디렉토리 생성 (MaKe DIRectory)                 (md, mkdir)

디렉토리 이동 (Change Directory)                (cd)

작업디렉토리출력 (Print Working Directory)

디렉토리 삭제 (ReMove DIRectory)               (rd, rmdir)

파일 생성 (touch, echo, install, cp),              (copy con, echo)

파일 삭제 (ReMove)                             (del)

파일 복사 (CoPy)                                (copy)    

파일 이동 (MoVe)                                (move)

파일 이름변경 (MoVe)                           (ren)



** 윈도우 명령어 실습  

c:\> dir                  <-- 현재 디렉토리의 파일리스트를 출력해라

c:\> cls                  <-- 화면지워라

c:\> md Test              <-- Test 디렉토리를 생성해라

c:\> cd Test              <-- Test 디렉토리로 이동해라

c:\> echo 1234            <-- 1234 를 화면에 출력해라.

c:\> echo 1234 >  1.txt   <-- 1.txt 파일안에 1234 를 넣어라   ( > )

c:\> more 1.txt           <-- 1.txt 파일의 내용을 출력해라

c:\> echo 5678 >> 1.txt   <-- 1.txt 파일안에 5678 을 추가해라 ( >> )

c:\> more 1.txt           <-- 1.txt 파일의 내용을 출력해라

c:\> echo 3456 >  1.txt   <-- 1.txt 파일안에 3456 을 넣어라   ( > )

c:\> more 1.txt           <-- 1.txt 파일의 내용을 출력해라

c:\> dir                  <-- 현재 디렉토리의 파일리스트를 출력해라

c:\> del 1.txt            <-- 1.txt 파일을 삭제해라

c:\> cd ..                <-- 상위 디렉토리로 이동해라

c:\> rd Test              <-- Test 디렉토리를 삭제해라

c:\> cd \                 <-- 최상위 디렉토리로 이동해라

c:\> mkdir Test2          <-- Test2 디렉토리를 생성해라

c:\> cd Test2             <-- Test2 디렉토리로 이동해라

c:\> copy c:\windows\system32\calc.exe .  <-- calc.exe 를 복사해라

c:\> ren calc.exe calc2.exe  <-- calc.exe calc2.exe 로 이름을 변경해라

c:\> md Test3                <-- Test3 디렉토리를 생성해라

c:\> move calc2.exe Test3    <-- calc2.exe 를 Test3 디렉토리로 이동해라

c:\> dir Test3               <-- Test3 디렉토리를 출력해라

c:\> copy con 2.txt          <-- 0byte 짜리 파일 2.txt를 생성해라

^Z 엔터




** 여러가지 복사 방법


# cp /etc/passwd .

# rsync /etc/passwd passwd2

# dd if=/etc/passwd of=passwd3

# install -m 644 /etc/passwd passwd4

# cat /etc/passwd > passwd5

# scp  root@localhost:/etc/passwd passwd6

# ll /etc/passwd passwd passwd2 passwd3 passwd4 passwd5 passwd6

-rw-r--r-- 1 root root 1569 Mar 20 06:07 /etc/passwd

-rw-r--r-- 1 root root 1569 Mar 20 06:12 passwd

-rw-r--r-- 1 root root 1569 Mar 20 06:13 passwd2

-rw-r--r-- 1 root root 1569 Mar 20 06:13 passwd3

-rw-r--r-- 1 root root 1569 Mar 20 06:14 passwd4

-rw-r--r-- 1 root root 1569 Mar 20 06:14 passwd5

-rw-r--r-- 1 root root 1569 Mar 20 06:18 passwd6


** 리눅스 기본 명령어

파일목록 출력 (LiSt)

# ls 

디렉토리 생성 (MaKe DIRectory)

# mkdir TEST

디렉토리 이동 (Change Directory)

# cd TEST

작업디렉토리출력 (Print Working Directory)

# pwd

디렉토리 삭제 (ReMove DIRectory)

# rmdir TEST

파일 생성

# touch a.txt

파일 삭제 (ReMove)

# rm a.txt

파일 복사 (CoPy)

# cp install.log install.log2

파일 이동 (MoVe)

# mkdir 7.7

# mv install.log 7.7

# ls 7.7

파일 이름변경 (MoVe)

# cd 7.7

# ls 

install.log

# mv install.log a.txt

# ls

a.txt



** 리눅스 기본 명령어 연습


#rpm -qa > intall.log

# ls

1.txt  7.7  anaconda-ks.cfg  install.log2  install.log.syslog

# mkdir Test   <-- Test 디렉토리를 생성한다

# dir   <-- Linux 에서도 윈도우 사용자를 위해 dir 명령어가 존재한다

1.txt  7.7  anaconda-ks.cfg  install.log2  install.log.syslog  Test

# ls    <-- 현재 디렉토리의 파일 리스트를 출력한다 (ls . 과 동일)

1.txt  7.7  anaconda-ks.cfg  install.log2  install.log.syslog  Test

# cd Test  <-- Test 디렉토리로 이동한다.

# pwd      <-- 현재 디렉토리의 경로를 출력한다

/root/Test

# echo 1234 > 1.txt   <-- 1234 의 내용을 가진 1.txt 파일을 생성한다

# ls          <-- /root/Test 디렉토리에 1.txt 파일이 생성되었다

1.txt

# cat 1.txt   <-- 1.txt 파일의 내용을 출력한다

1234

# more  1.txt <-- 1.txt 파일의 내용을 출력한다

1234


** 0byte 크기의 파일을 생성하는 여러가지 방법

# touch 2.txt  

# install /dev/null 3.txt

# cp /dev/null 4.txt


# ls -l      <-- 파일의 리스트를 자세히(-l 옵션) 보여준다

total 20

- 권한 하드링크 소유자 그룹 타인

-rw-r--r-- 1 root root 5 Jul  7 18:53 1.txt

-rw-r--r-- 1 root root 0 Jul  7 19:09 2.txt

-rwxr-xr-x 1 root root 0 Jul  7 19:11 3.txt

-rw-r--r-- 1 root root 0 Jul  7 19:11 4.txt


# mkdir 5.txt    <-- 5.txt 디렉토리를 생성한다

-디렉토리는 ls -l의 첫 번째 문자가 d로 표시된다.

-유닉스(리눅스포함)에서는 파일의 확장자 개념이 없다.

# ls -l

total 28

-rw-r--r-- 1 root root    5 Jul  7 18:53 1.txt

-rw-r--r-- 1 root root    0 Jul  7 19:09 2.txt

-rwxr-xr-x 1 root root    0 Jul  7 19:11 3.txt

-rw-r--r-- 1 root root    0 Jul  7 19:11 4.txt

drwxr-xr-x 2 root root 4096 Jul  7 19:19 5.txt  <-- d 를 주목!!!

~


** cp 의 인자는 2개이면 첫번째 인자를 두 번째 인자로 복사하지만

3개 이상의 인자가 오면 마지막 인자는 디렉토리가 와야한다.

# cp 1.txt 2.txt 3.txt 4.txt 6.txt  <-- 6.txt 디렉토리가 없으므로 에러

cp: target `6.txt' is not a directory

# ls

1.txt  2.txt  3.txt  4.txt  5.txt  <-- 5.txt 디렉토리가 있으므로 복사

# cp 1.txt 2.txt 3.txt 4.txt 5.txt

# ls 5.txt

1.txt  2.txt  3.txt  4.txt

# rm -f 5.txt/1.txt  <-- 5.txt 디렉토리의 1.txt 파일을 강제(-f 옵션)로 삭제한다.

# rm -f 5.txt/2.txt  <-- 5.txt 디렉토리의 2.txt 파일을 강제(-f 옵션)로 삭제한다.

# rm -f 5.txt/3.txt  <-- 5.txt 디렉토리의 3.txt 파일을 강제(-f 옵션)로 삭제한다.

# rm -fv 5.txt/4.txt <-- 5.txt 디렉토리의 4.txt 파일을 강제(-f 옵션)로 삭제하면서

# 화면에 삭제된 것을 출력(-v 옵션)한다.

removed `5.txt/4.txt'



**mv

(윈도우는 대소문자 구분 X, 유닉스는 대소문자 구분 O)

1. 파일명 변경 (새로운 파일에 복사한 뒤 이전 파일 삭제) -> 같은 디렉토리

2. 파일 이동 (새로운 파일에 복사한 뒤 이전 파일 삭제) -> 다른 디렉토리

- mv 를 이용해서 파일의 이름을 변경하고 파일을 이동해보자.

- 조건은 아래 두 가지가 존재한다.

- 1. 파일명을 그대로 옮길 것인가 ? 

- 2. 파일명을 이름을 변경하고 옮길 것인가 ?

# ls

1.txt  2.txt  3.txt  4.txt  5.txt

# mv 5.txt 6.txt

** ls -F옵션은 파일의 유형에 따라서 파일명 뒤에 문자로 표시한다.

# ls -F

1.txt  2.txt  3.txt*  4.txt  6.txt/(뒤에 *은 실행 권한을 가진 파일을 말함)


# mv 1.txt 6.txt

# ls

2.txt  3.txt  4.txt  6.txt

# ls 6.txt/

1.txt

# mv 2.txt 6.txt/22.txt

# ls 6.txt/

1.txt  22.txt

# mv 3.txt 6.txt/33.txt

# ls 6.txt/

1.txt  22.txt  33.txt


- 현재 디렉토리에 33.txt 파일을 3.txt 로 변경한다.

- 아래 1~3의 명령어들은 모두 동일한 결과를 가져온다.

- 1. mv 6.txt/33.txt ./3.txt 

- 2. mv 6.txt/33.txt /root/Test/3.txt

- 3. mv 6.txt/33.txt  3.txt  

# mv 6.txt/33.txt  3.txt  

# ls

1.txt  22.txt  3.txt  4.txt  6.txt

               ~~~~~

# ls 6.txt/  <-- 파일이 다 옮겨졌으므로 아무 것도 출력이 안되다.



- 파일 삭제

# rm 1.txt 

rm: remove regular file `1.txt'? y

# rm -f 22.txt 

# rm -fv 3.txt 

removed `3.txt'

# rm -f 4.txt 

# ls

6.txt

- rmdir 은 디렉토리를 삭제하는 명령어지만 디렉토리에 파일이 하나라도

존재하면 삭제가 안된다. 그러므로 잘 사용하지 않고 rm -rf 를 많이 사용한다.

** rm의 -f옵션은 강제로 삭제하는 옵션이다.

** rm의 -r옵션은 재귀(recursive) 옵션이다. !!!항상 주의할 것!!!

# touch 6.txt/a.txt

# rmdir 6.txt/

rmdir: 6.txt/: Directory not empty

# rm -rf 6.txt/


- mv 로 파일(디렉토리)의 이름을 변경한다.

# cd ..

# ls

1.txt  7.7  anaconda-ks.cfg  install.log2  install.log.syslog  Test

# mv Test TEST

# ls

1.txt  7.7  anaconda-ks.cfg  install.log2  install.log.syslog  TEST



> 덮어쓰기
. 현재 디렉토리를 나타냄



** 이동키

h - 왼쪽

j - 아래

k - 위

l - 오른쪽


Y(복사)

P(붙이기)

J( 아랫줄을 현재줄로 붙이기)

dd : 한줄 삭제

gg : 1번 라인으로 이동하는 명령어

G : 파일의 끝 라인으로 이동하는 명령어

숫자+G : 해당 숫자의 라인으로 이동하는 명령어

w : 워드 단위로 이동하는 명령어

W : 워드 단위로 이동하는 명령어 (특수문자 무시)

ctrl+~ : 대문자를 소문자로 변경

b : 뒤로 이동

B : 단어의 처음으로 이동하는 명령어

커서의 위치 : 아무곳이나 상관없다.

:%s/^/mv / (전체 문서에서 라인의 처음 시작부분을 mv_(mv공백) 으로 변경해라

:범위s/찾을문자/변경할문자/

^ : 라인의 처음을 의미한다.

% : 전체 문서를 의미






** 대문자로만 되어있는 파일들을 소문자로 된 파일명으로 변경할 때

1. 현재 디렉토리에서 파일명들을 저장하는 텍스트 파일을 만든다

# ls > list.txt

2. 텍스트 파일열어서 (복사, 붙이기, 아랫줄을 현재줄로 붙이기 명령어를 사용하여) 한줄에 같은 파일명 두개가 되도록 한다.

#Y PJ

3. 이동키와 ctrl + ~ 키를 사용하여 같은줄에 있는 파일명 중 오른쪽 파일명을 소문자로 변경한다.

w : 워드 단위로 이동하는 명령어

W : 워드 단위로 이동하는 명령어 (특수문자 무시)

ctrl+~ : 대문자를 소문자로 변경

b : 뒤로 이동

B : 단어의 처음으로 이동하는 명령어

4. 각 라인의 시작부분에 (mv ) 를 입력하도록 한다.

:%s/^/mv / (전체 문서에서 라인의 처음 시작부분을 mv_(mv공백) 으로 변경해라 -> 명령키에서 사용

5. 저장한 뒤 bash [텍스트파일] 명령어를 실행하여 변경하면 끝.

bash list.txt






문자열의 끝은 NULL

=> 문자열 배열에서 Null 문자 전까지만 문자열로 인식, 그 뒤로 쓰레기값이 들어있어도 상관이 없다.



***오늘 배운거

리눅스 기본명령어

윈도우 기본명령어

메이크파일로 여러파일을 한번에 컴파일하기



'Linux > 기타' 카테고리의 다른 글

퍼미션  (0) 2015.04.21
yum  (0) 2015.04.20
rpm  (0) 2015.04.17
소프트웨어 설치  (0) 2015.04.16
vi편집기 사용하기  (0) 2015.04.15