Read more...‎ > ‎

리눅스 기본 명령어와 VI 실습 (1)

1. 리눅스 기본 명령어

가. 프롬프트

프롬프트 설정을 확인하는 방법과 수정하는 방법을 다음의 연습 문제를 통해서 배운다.

# 01. set 명령을 수행한다.
다음 Text 1-1 지문과 같이 set 명령을 수행한 후 출력되는 결과를 제출한다.

Text 1-1

set 실행

[student@linux-pplab ~]$ set

 

Example 1-1

set 실행, 출력 예

01.BASH=/bin/bash
02.BASH_ARGC=()
03.BASH_ARGV=()
04.BASH_LINENO=()
05.BASH_SOURCE=()
06.BASH_VERSINFO=([0]="3" [1]="1" [2]="17" [3]="1" [4]="release" [5]="i686-redhat-linux-gnu")
07....
08.PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "\007"'
09.PS1='[\u@\h \W]\$ '
10.PS2='> '
11.PS4='+ '
12....
13.USER=student
14.WINEPREFIX=/home/users/student/.google/picasa/3.0
15.XMODIFIERS=@im=nabi
16._=set
17.consoletype=pty
18.qt_prefix=/usr/lib/qt-3.3

 

Example 1-1에서 강조된 변수의 정보를 확인하고 기억한다. 이 변수들은 03.에서 사용된다.

# 02. env 명령을 수행한다.
다음 Text 1-2 지문과 같이 env 명령을 수행한 후, 출력되는 내용을 제출한다.

Text 1-2

env 실행

[student@linux-pplab ~]$ env

 

Example 1-2

env 실행 예

HOSTNAME=linux-pplab.cs.kookmin.ac.kr
SHELL=/bin/bash
TERM=xterm
HISTSIZE=1000
...
LESSOPEN=|/usr/bin/lesspipe.sh %s
DISPLAY=localhost:10.0
G_BROKEN_FILENAMES=1
XAUTHORITY=/root/.xauthH8UA3g
_=/bin/env
# 03. echo 명령을 사용하여 환경변수 값을 확인한다.
다음 Text 1-3 지문과 같이 env 명령을 수행한 후, 출력되는 내용을 제출한다.

Text 1-3

PROMPT 변수 확인

[student@linux-pplab ~]$ echo $PROMPT_COMMAND
[student@linux-pplab ~]$ echo $PS1
[student@linux-pplab ~]$ echo $PS2
[student@linux-pplab ~]$ echo $PS4

 

Example 1-4

[student@linux-pplab ~]$ echo $PROMPT_COMMAND
echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "\007"
[student@linux-pplab ~]$ echo $PS1
[\u@\h \W]\$
[student@linux-pplab ~]$ echo $PS2
>
[student@linux-pplab ~]$ echo $PS4
+

 

연습문제는 별도의 지시사항이 없을 경우, 수행하는 과정과 그 결과를 모두 제출하여야 합니다.

 

# 04. 프롬프트 바꾸기

BASH(본 쉘)에서 프롬프트를 변경하기 위해서는 03.번에서 확인했던 PS1 변수를 변경해야 한다.
다음 Text 1-4 지문을 순서대로 수행한 후, 프롬프트를 변경한다. 그리고 일련의 과정에서 출력되는 내용을 제출한다.

Text 1-4

PS1 변수 변경

[student@linux-pplab ~]$ echo $PS1
[student@linux-pplab ~]$ export PS1="[student@\h \W]\$"

 

Example 1-4

PS1 변수 변경 예

[student@linux-pplab ~]$ echo $PS1
[\u@\h \W]\$
[student@linux-pplab ~]$ export PS1="[mynickname@\h \W]\$"
[mynickname@linux-pplab ~]$ logout
# 05. 프롬프트 원상복귀하기
02.와 03.번에서 출력했던 PS1의 변수를 참고하여 원래의 프롬프트로 수정한다.
다음 Text 1-5 지문을 순서대로 수행하여 프롬프트를 복원한다. 그리고 일련과 과정에서 출렫되는 내용을 제출한다.

Text 1-5

PS1 변수 복원

[mynickname@linux-pplab ~]$ echo $PS1
[student@linux-pplab ~]$ export PS1="[\u@\h \W]\$"

 

Example 1-5

PS1 변수 복원 예

[mynickname@linux-pplab ~]$ echo $PS1
[mynickname@\h \W]\$
[mynickname@linux-pplab ~]$ export PS1="[\u@\h \W]\$"
[student@linux-pplab ~]$
# 06. 수정한 프롬프트를 다음에 접속할 때에도 반영되도록 수정하기
다음 Text 1-6 지문을 수행하여 04.에서 수정한 프롬프트가 터미널에 재접속하였을 때, 어떻게 변하는 지 확인한다.

Text 1-6

터미널 재접속

[student@linux-pplab ~]$ export PS1="[mynickname@\h \W]\$"
[mynickname@linux-pplab ~]$ logout
... (다시 로그인) ...

로그아웃한 후 다시 로그인 하는 경우 프롬프트 변경이 초기화되는 것을 경험할 수 있을 것이다.

다음 Text 1-7 지문을 수행하여 04.에서 수정한 프롬프트를 계속 사용할 수 있도록 한다.

Text 1-7

프롬프트 영구 변경

[student@linux-pplab ~]$ echo PS1=\"[mynickname@\\h \\W]\\$\" >> ~/.bash_profile
[student@linux-pplab ~]$ logout
... (다시 로그인) ...
[mynickname@linux-pplab ~]$
# 07. 자신의 학번이 나타나도록 프롬프트 바꾸기
다음 Text 1-8 지문에서 "학번"에 자신의 학번을 넣어 수행한다. 앞으로 모든 제출자료에는 자신의 학번이 들어간 프롬프트가 있어야 한다.

Text 1-8

프롬프트에 학번이 나타나도록 영구 변경

[mynickname@linux-pplab ]$ echo PS1=\"[학번@\\h \\W]\\$\" >> \/.bash_profile
[mynickname@linux-pplab ]$ logout
나. 파일과 디렉토리 관리

지금부터의 연습문제는 위 07.번을 적용하여 수행하고, 그 결과를 제출한다.

# 08. ls를 사용하여 파일 목록 확인하기
다음 Text 2-1Text 2-2Text 2-3Text 2-4을 수행하여 ls 명령을 사용하는 방법을 익힌다.

Text 2-1

현재 디렉토리의 파일 확인

[학번@linux-pplab ~]$ ls

 

Text 2-2

부모디렉토리의 파일 확인

[학번@linux-pplab ~]$ ls ..

. 은 현재 디렉토리를 의미한다.
.. 은 부모 디렉토리를 의미한다.

 

Text 2-3

최상위 디렉토리의 파일 확인

[학번@linux-pplab ~]$ ls /

 

Text 2-4

홈 디렉토리의 파일 확인

[학번@linux-pplab ~]$ ls ~

~ 는 자신의 홈디렉토리를 의미한다.

# 09. mkdir을 사용하여 디렉토리 만들기
practice 라는 디렉토리를 만들어본다.

Text 2-5

practice 디렉토리 만들기

[학번@linux-pplab ~]$ ls
[학번@linux-pplab ~]$ mkdir practice
[학번@linux-pplab ~]$ ls

 

practice 라는 디렉토리 안에 week01 이라는 디렉토리를 만들어본다.

Text 2-6

week01 디렉토리 만들기

[학번@linux-pplab ~]$ ls practice
[학번@linux-pplab ~]$ mkdir practice/week01
[학번@linux-pplab ~]$ ls practice

자신의 학번 디렉토리를 만들고 그 안에 practice/week01 디렉토리를 한꺼번에 만들어본다.

Text 2-7

하위디렉토리 한번에 만들기

[학번@linux-pplab ~]$ ls 
[학번@linux-pplab ~]$ mkdir -p 학번/practice/week01
[학번@linux-pplab ~]$ ls
[학번@linux-pplab ~]$ ls 학번
[학번@linux-pplab ~]$ ls 학번/practice
# 10. cd를 사용하여 다른 디렉토리를 이동하기

practice디렉토리를 이동한다.

Text 2-8

practice 디렉토리로 이동하기

[학번@linux-pplab ~]$ ls
[학번@linux-pplab ~]$ cd practice
[학번@linux-pplab practice]$ ls

 

09.에서 만든 학번/practice디렉토리로 이동한다.

Text 2-9

상대경로를 이용하여 디렉토리 이동하기

[학번@linux-pplab practice]$ ls
[학번@linux-pplab practice]$ cd ../학번/practice
[학번@linux-pplab practice]$ ls

 

홈 디렉토리로 바로 이동한다.

Text 2-10

홈 디렉토리로 바로 이동하기

[학번@linux-pplab practice]$ cd 
[학번@linux-pplab ~]$ ls

 

이전에 있었던 디렉토리로 바로 이동한다.

Text 2-11

이전에 있었던 디렉토리로 바로 이동하기

[학번@linux-pplab ~]$ cd -
[학번@linux-pplab practice]$ ls
# 11. pwd명령을 사용하여 현재 위치를 확인하기
10.의 실행을 다시해보고 ls 대신에 pwd를 실행해본다.

Text 2-12

pwd로 경로 확인하기 (1)

[학번@linux-pplab ~]$ pwd
[학번@linux-pplab ~]$ cd practice
[학번@linux-pplab practice]$ pwd
[학번@linux-pplab practice]$ cd ../학번/practice
[학번@linux-pplab practice]$ pwd

 

Text 2-13

pwd로 경로 확인하기 (2)

[학번@linux-pplab practice]$ cd ~
[학번@linux-pplab ~]$ pwd
[학번@linux-pplab ~]$ cd -
[학번@linux-pplab practice]$ pwd
# 12. touch명령을 사용하기

practice01.txt 파일을 생성한다.

Text 2-14

touch 명령을 이용한 파일 생성

[학번@linux-pplab ~]$ ls -l
[학번@linux-pplab ~]$ touch practice01.txt
[학번@linux-pplab ~]$ ls -l

touch 명령으로 생성한 파일은 파일 크기 0바이트임을 확인한다.

 

09.에서 만든 practice 디렉토리의 수정일을 변경한다.

Text 2-15

touch 명령을 이용한 수정일 변경

[학번@linux-pplab ~]$ ls -l
[학번@linux-pplab ~]$ touch practice
[학번@linux-pplab ~]$ ls -l

touch 이전과 후의 시간 정보를 비교해본다.

 

# 13. cp 명령 사용하기
practice01.txt 파일을 practice02.txt 파일로 복사한다.

Text 2-16

파일 복사하기

[학번@linux-pplab ~]$ ls -l
[학번@linux-pplab ~]$ cp practice01.txt practice02.txt
[학번@linux-pplab ~]$ ls -l
# 14. mv 명령 사용하기

practice02.txt 파일의 이름을 practice.txt로 변경한다.

Text 2-17

파일 이름 변경하기

[학번@linux-pplab ~]$ ls -l
[학번@linux-pplab ~]$ mv practice02.txt practice.txt
[학번@linux-pplab ~]$ ls -l

mv 명령으로 디렉토리의 이름도 변경할 수 있다.

변경한 파일 practice.txt를 학번/practice/디렉토리로 이동한다.

Text 2-18

파일 이동하기

[학번@linux-pplab ~]$ ls -l
[학번@linux-pplab ~]$ ls -l 학번/practice
[학번@linux-pplab ~]$ mv practice.txt 학번/practice
[학번@linux-pplab ~]$ ls -l
[학번@linux-pplab ~]$ ls -l 학번/practice

mv 명령으로 파일을 다른 디렉토리로 이동할 수 있다.

이동한 practice.txt 파일을 홈디렉토리로 이동하고, 이름을 practice02.txt로 변경한다.

Text 2-19

파일 이동과 함께 이름 바꾸기

[학번@linux-pplab ~]$ ls -l
[학번@linux-pplab ~]$ ls -l 학번/practice
[학번@linux-pplab ~]$ mv 학번/practice/practice.txt practice02.txt
[학번@linux-pplab ~]$ ls -l
[학번@linux-pplab ~]$ ls -l 학번/practice

Text 2-17과 Text 2-18을 동시에 수행할 수 있다.
# 15. rm 명령 사용하기

1-나 에서 생성한 모든 파일과 디렉토리를 삭제한다.

Text 2-20

파일 삭제하기

[학번@linux-pplab ~]$ ls -l
[학번@linux-pplab ~]$ rm practice01.txt practice02.txt
[학번@linux-pplab ~]$ ls -l

rm 명령 후에 파일을 나열하면 나열한 모든 파일을 삭제한다.

 

Text 2-21

디렉토리 삭제하기

[학번@linux-pplab ~]$ ls -l
[학번@linux-pplab ~]$ rm practice

디렉토리는 rm 명령에 -r 옵션을 주어야만 삭제할 수 있다.
[학번@linux-pplab ~]$ ls -l
[학번@linux-pplab ~]$ rm -r practice
[학번@linux-pplab ~]$ ls -l
[학번@linux-pplab ~]$ rm -r 학번

디렉토리에 다른 파일이나 디렉토리가 포함된 경우 -f 옵션을 함께 주어야만 삭제할 수 있다.
[학번@linux-pplab ~]$ ls -l
[학번@linux-pplab ~]$ rm -rf 학번
[학번@linux-pplab ~]$ ls -l