본문 바로가기

04번. IT 힌트얻기/▶ UNIX

Unix-Basic-02

 

 <vi문서 입력하기>
i - 현재 커서 위치 입력
a - 현재 커서 위치 오른쪽 입력
o - 현재 라인의 아래 라인을 입력 가능한 공백 라인으로 만듦
I - 현재 라인의 첫 문자 앞에 입력
A - 현재 라인의 마지막에 입력
O - 현재 라인의 위 라인을 입력가능한 공백 라인으로 만듦


<vi파일 편집하기>
지우기
dw - word단위로 지운다.
x - 하나씩지운다.
숫자 - 숫자만큼 지운다.
u - 방금전 작업 undo
shift + u - line 복구(라인을 벗어났을때는 안됨)
dd- 라인 삭제
dG - 현재 라인부터 파일의 마지막 라인 까지 삭제

 

<vi복사 및 변경>
yw -  word copy     붙이기 p(왼쪽), shifft+p (오른쪽)
yy - line copy
shift + j - 밑의 줄이 위로 붙는다.
r - 한 글자에 대해서 덮어쓴다.
shift+r - 거기서 부터 덮어쓴다.

 

<vi명령 취소 및 반복>
u - 바로 전에 실행한 명령을 취소
ㅕ - 현재 라인에서 실행한 모든 명령을 취소
. - 바로 전에 실행한 명령을 재실행

 

<vi검색 및 치환>
/pattern : pattern에 해당되는 문자를 찾아 커서를 이동, n키를 이용하여 다음 위치로 찾아감, shift+n은 반대로 찾아간다.
?pattern : 위와 동일하지만 위로 찾아가는 것이다.
문자열 치환하기: [라인번호]s/pattern1/pattern2/

 

<vi종료 및 저장>
ZZ - 파일을 디스크에 저장한 뒤, vi 종료
:wq! - 파일 디스크에 저장한 뒤, vi종료
:q! - 파일을 디스크에 저장하지 않고, vi 강제 종료

 

<vi확장 모드 명령>
:set number - 라인 번호 디스플레이
:set showmode - 현재 편집모드(입력모드/명령모드)표시

 

multihp1:/data2/unix/unix10>ls -ld /etc
dr-xr-xr-x  32 bin        bin           8192 11월 21일 10:19 /etc
--> 디렉토리 속성보기

 

multihp1:/data2/unix/unix10>ls -l /etc
-rw-r--r--   1 root       root          5760 11월 21일 15:01 utmp
-rw-r--r--   1 root       root         21980 11월 21일 15:01 utmpx
dr-xr-xr-x   2 bin        bin           8192 2004.09.21   uucp
lr-xr--r-T   1 root       sys             15 2004.09.20   uucpd -> /usr/sbin/uucpd
lr-sr-xr-t   1 root       sys             21 2004.09.20   vgcfgbackup -> /usr/sbin/vgcfgbackup
lr-sr-xr-t   1 root       sys             22 2004.09.20   vgcfgrestore -> /usr/sbin/vgcfgrestore
lr-sr-xr-t   1 root       sys             18 2004.09.20   vgchange -> /usr/sbin/vgchange
lr-sr-xr-t   1 root       sys             18 2004.09.20   vgcreate -> /usr/sbin/vgcreate
lr-sr-xr-t   1 root       sys             19 2004.09.20   vgdisplay -> /usr/sbin/vgdisplay
lr-sr-xr-t   1 root       sys             18 2004.09.20   vgexport -> /usr/sbin/vgexport
lr-sr-xr-t   1 root       sys             18 2004.09.20   vgextend -> /usr/sbin/vgextend
lr-sr-xr-t   1 root       sys             18 2004.09.20   vgimport -> /usr/sbin/vgimport
lr-sr-xr-t   1 root       sys             18 2004.09.20   vgreduce -> /usr/sbin/vgreduce
lr-sr-xr-t   1 root       sys             18 2004.09.20   vgremove -> /usr/sbin/vgremove
lr-sr-xr-t   1 root       sys             16 2004.09.20   vgscan -> /usr/sbin/vgscan
drwxr-xr-x   4 root       sys             96 2004.09.21   vhelp
lrwxr-xr-t   1 root       sys             17 2004.09.20   volcopy -> /usr/sbin/volcopy
lr-xr--r-T   1 root       sys             18 2004.09.20   vtdaemon -> /usr/sbin/vtdaemon
lrwxrwxrwt   1 root       sys             20 2004.09.20   vtdaemonlog -> /var/adm/vtdaemonlog
lr-xr-xr-t   1 root       sys             19 2004.09.20   vtgateway -> /usr/sbin/vtgateway
lr-xr-xr-t   1 root       sys             18 2004.09.20   vtserver -> /usr/sbin/vtserver
drwxr-xr-x   3 bin        bin             96 2004.09.21   vue
dr-xr-xr-x  11 bin        bin           8192 2004.09.21   vx
lr-xr-sr-t   1 root       sys             14 2004.09.20   wall -> /usr/sbin/wall
lr-xr-xr-t   1 root       sys             15 2004.09.20   whodo -> /usr/sbin/whodo
lrwxrwxrwt   1 root       sys             13 2004.09.20   wtmp -> /var/adm/wtmp
drwxr-xr-x   2 root       sys             96 2004.09.21   ximian
-rw-r--r--   1 root       root             0 6월 18일 23:49 xtab
lr-xr-xr-t   1 root       sys              9 2004.09.20   yp -> /usr/sbin
lr-xr--r-T   1 root       sys             25 2004.09.20   ypbind -> /usr/lib/netsvc/yp/ypbind
--> 그 서브디렉토리까지....

 

multihp1:/data2/unix/unix10>touch dsfkjl ash ashde akdf D      


multihp1:/data2/unix/unix10>ls -a
.            .profile     D            ash          dsfkjl       f2
..           .sh_history  akdf         ashde        f1           last.out

 

multihp1:/data2/unix/unix10>ls ????*
akdf      ashde     dsfkjl    last.out

 

multihp1:/data2/unix/unix10>ls ?????
ashde

 

multihp1:/data2/unix/unix10>ls [0-9]* [A-Z]* [a-z]*
[0-9]*이(가) 없습니다.
AD        ADSF      SDFKA     akdf      ashde     f1        last.out
ADFANKL   D         SDFKN     ash       dsfkjl    f2

 

multihp1:/data2/unix/unix10>passwd
Changing password for unix10
Old password:
New password:
Passwords must differ by at least 3 positions
New password:
Re-enter new password:
Passwd successfully changed
multihp1:/data2/unix/unix10>

 

multihp1:/data2/unix/unix10>ls -l /usr/bin/vi
-r-xr-xr-t   6 bin        bin         249856 2007.02.05   /usr/bin/vi

--> 하나의 원본파일과 5개의 shortcut이 존재


multihp1:/data2/unix/unix10>touch suho
multihp1:/data2/unix/unix10>touch suho1

multihp1:/data2/unix/unix10>ls -l suho suho1
-rw-rw-rw-   1 unix10     unix             0 11월 21일 15:55 suho
-rw-rw-rw-   1 unix10     unix             0 11월 21일 15:55 suho1
multihp1:/data2/unix/unix10>touch suho
multihp1:/data2/unix/unix10>ls -l suho

-rw-rw-rw-   1 unix10     unix             0 11월 21일 15:55 suho
multihp1:/data2/unix/unix10>ls -l suho
-rw-rw-rw-   1 unix10     unix             0 11월 21일 15:55 suho
multihp1:/data2/unix/unix10>touch suho
multihp1:/data2/unix/unix10>ls -l suho

-rw-rw-rw-   1 unix10     unix             0 11월 21일 15:56 suho

--> 동일한 이름의 파일을 만들 경우에는 timestamp 만 변경을 할 뿐이다.

 

wc : word count
-- 일명 filter command 라고 부른다. --> 입력+출력을 동시에 함

multihp1:/data2/unix/unix10>wc
dkstngh
ashl
dfjkldf
sdfknldf  <-- 여기까지 입력하고 ctrl + d (end of file)  / 기타 다른 명령 (ctrl + c 나가기:interrupt)
4 4 30
첫번째 수 = line count
두번째 수 = word count
세번째 수 = character count


multihp1:/data2/unix/unix10>last | wc -l
1254
--> unix에 접속했던 기록은 몇건이 있나.

multihp1:/data2/unix/unix10>last | more
--> 위의 것을 page단위로 보여주어라.

multihp1:/data2/unix/unix10>more /etc/passwd
root:fPyHC2zqO3F3Q:0:3::/:/sbin/sh
daemon:*:1:5::/:/sbin/sh
bin:*:2:2::/usr/bin:/sbin/sh
sys:*:3:3::/:
adm:*:4:4::/var/adm:/sbin/sh
uucp:*:5:3::/var/spool/uucppublic:/usr/lbin/uucp/uucico
lp:*:9:7::/var/spool/lp:/sbin/sh
nuucp:*:11:11::/var/spool/uucppublic:/usr/lbin/uucp/uucico
hpdb:*:27:1:ALLBASE:/:/sbin/sh
www:*:30:1::/:
ora817:ByGjd7yrTE8dI:20:101::/oracle8:/usr/bin/ksh
dbamgr80::21:101:,,,:/disk3:/usr/bin/ksh
oracle:x:102:101:,,,:/oracle:/usr/bin/ksh
dba100:x:200:101:,,,:/DBA5/DBA805/dba100:/usr/bin/ksh
dba101:x:201:101:,,,:/DBA3/DBA805/dba101:/usr/bin/ksh
dba102:x:202:101:,,,:/DBA3/DBA805/dba102:/usr/bin/ksh
dba103:x:203:101:,,,:/DBA3/DBA805/dba103:/usr/bin/ksh
dba104:x:204:101:,,,:/DBA3/DBA805/dba104:/usr/bin/ksh
dba105:x:205:101:,,,:/DBA3/DBA805/dba105:/usr/bin/ksh
dba106:x:206:101:,,,:/DBA3/DBA805/dba106:/usr/bin/ksh
dba107:x:207:101:,,,:/DBA3/DBA805/dba107:/usr/bin/ksh
dba108:x:208:101:,,,:/DBA3/DBA805/dba108:/usr/bin/ksh
dba109:x:209:101:,,,:/DBA3/DBA805/dba109:/usr/bin/ksh
dba110:x:210:101:,,,:/DBA3/DBA805/dba110:/usr/bin/ksh
dba111:x:211:101:,,,:/DBA4/DBA805/dba111:/usr/bin/ksh
dba112:x:212:101:,,,:/DBA4/DBA805/dba112:/usr/bin/ksh
dba113:x:213:101:,,,:/DBA4/DBA805/dba113:/usr/bin/ksh
dba114:x:214:101:,,,:/DBA4/DBA805/dba114:/usr/bin/ksh
dba115:x:215:101:,,,:/DBA4/DBA805/dba115:/usr/bin/ksh
dba116:x:216:101:,,,:/DBA4/DBA805/dba116:/usr/bin/ksh
dba117:x:217:101:,,,:/DBA4/DBA805/dba117:/usr/bin/ksh
dba118:x:218:101:,,,:/DBA4/DBA805/dba118:/usr/bin/ksh
dba119:x:219:101:,,,:/DBA4/DBA805/dba119:/usr/bin/ksh
dba120:x:220:101:,,,:/DBA4/DBA805/dba120:/usr/bin/ksh
dba121:x:221:101:,,,:/DBA5/DBA805/dba121:/usr/bin/ksh
dba122:x:222:101:,,,:/DBA5/DBA805/dba122:/usr/bin/ksh
dba123:x:223:101:,,,:/DBA5/DBA805/dba123:/usr/bin/ksh
dba124:x:224:101:,,,:/DBA5/DBA805/dba124:/usr/bin/ksh
dba125:x:225:101:,,,:/DBA5/DBA805/dba125:/usr/bin/ksh
dba126:x:226:101:,,,:/DBA5/DBA805/dba126:/usr/bin/ksh
dba127:x:227:101:,,,:/DBA5/DBA805/dba127:/usr/bin/ksh
passwd (14%)
---> more를 단독으로 쓰일 때는 display의 기능이 있다.

wc 파일명을 하면 입력을 그 파일로 해라는 뜻이다.
wc < file --> 입력의 방향 재지정 꺽쇠라고 함 -

 

multihp1:/data2/unix/unix10>wc -l /etc/passwd
259 /etc/passwd
--> 259명이 등록되어 있음


multihp1:/data2/unix/unix10>cat /etc/passwd | wc -l
259
--> |는 전달하는 것이다. | 앞의 값을 붙잡아서 |의 뒤로 보내주는 역할을 함

 

multihp1:/data2/unix/unix10>ls
AD        ADSF      SDFKA     akdf      ashde     f1        last.out  suho1
ADFANKL   D         SDFKN     ash       dsfkjl    f2        suho
multihp1:/data2/unix/unix10>ls | wc -w
15
multihp1:/data2/unix/unix10>ls | wc
15 15 78
--> 현재 디렉토리안의 파일의 개수를 구하여라...

 

multihp1:/data2/unix/unix10>mv -i suho suho1
suho1을(를) 삭제합니까?(y/n) y
--> 파일명을 변경해준다. i 옵션을 주면

 

multihp1:/data2/unix/unix10>mkdir a
multihp1:/data2/unix/unix10>mkdir b

multihp1:/data2/unix/unix10>mv a b
multihp1:/data2/unix/unix10>ls
AD        ADSF      SDFKA     akdf      ashde     dsfkjl    f2        suho1
ADFANKL   D         SDFKN     ash       b         f1        last.out
multihp1:/data2/unix/unix10>cd b
multihp1:/data2/unix/unix10/b>ls
a

--> 디렉토리일 경우는 덮어쓰는게 아니고 하위디렉토리로 복사하는 역할을 함

 

multihp1:/data2/unix/unix10>alias mv='mv -i'
multihp1:/data2/unix/unix10>mv suho suho1
mv: suho: 사용할 수 없습니다.: 그러한 파일 또는 디렉토리가 없습니다.
multihp1:/data2/unix/unix10>mv suho1 suho2
suho2을(를) 삭제합니까?(y/n) y
-- 알리아스를 사용해서 우리가 반드시 사용할 것을 미리 셋팅해주는 효과가 있다.
--> 로그아웃되면 해지가 된다. 계속 쓰려면 어떻게 해야 하냐? .profile 즉 환경파일에 셋팅을 해주어야 한다.
-->알리아스를 자동화시켜서 ㄴ젛기 위해서. .profile, .콘쉘아이시에 넣는다.

 

multihp1:/data2/unix/unix10>cp -r /var/adm/cron .
--> -r(디렉토리 복사를 할 경우 사용한다.)
--> /var/adm/cron을 현재 폴더에 복사를 한다.

 

multihp1:/data2/unix/unix10>cp -rf /var/adm/cron .
--> 강제 권한으로 사용을 함

 

multihp1:/data2/unix/unix10>mkdir aa
multihp1:/data2/unix/unix10>mkdir aa/bb


multihp1:/data2/unix/unix10>mkdir -p aaa/bbb/ccc
-> -p은 한번에 생성한다.


multihp1:/data2/unix/unix10>rmdir aa/bb
multihp1:/data2/unix/unix10>rmdir aa

--> rmdir은 삭제할 때 잘 사용하지 않음

 

multihp1:/data2/unix/unix10>rm -r aaa
--> 한 번에 삭제를 한다.

 

multihp1:/data2/unix/unix10>alias c=clear
multihp1:/data2/unix/unix10>alias d=date

--> 공백이 있을 경우는 '' 을 해주는 것이다. 예를 들어 rm= 'rm -i'처럼 공백이 들어갔을경우는 처리를 해줌

 

 

 

이 글은 스프링노트에서 작성되었습니다.

'04번. IT 힌트얻기 > ▶ UNIX' 카테고리의 다른 글

Unix-basic-08  (0) 2011.11.24
Unix-basic-05  (0) 2011.11.23
Unix-Basic-04  (0) 2011.11.22
Unix-Basic-03  (0) 2011.11.22
Unix-Basic-01  (0) 2011.11.21