- 자신의 디렉토리를 이동하는 여러가지 방법


# cd

# cd $HOME

# cd ~



# cd /tmp

# pwd

# cd 

# pwd 


# cd -

# pwd

# cd ~


# cd -

# pwd

# cd $HOME



cd [경로]

$HOME 은 로그인한 계정의 홈 디렉터리를 의미

~ 도 홈 디렉터리

cd - 은 바로 전 디렉터리로 이동



- mkdir 명령어




- 0byte 파일을 만드는 다양한 방법

# touch a.txt

# > b.txt

# dd if=/dev/null of=c.txt count=0

# install -m 644 /dev/null d.txt


# ls -l

total 16

-rw-r--r-- 1 root root 0 Mar 27 11:08 a.txt

-rw-r--r-- 1 root root 0 Mar 27 11:09 b.txt

-rw-r--r-- 1 root root 0 Mar 27 11:09 c.txt

-rw-r--r-- 1 root root 0 Mar 27 11:09 d.txt




# mv a.txt aa.txt  <-- a.txt 를 aa.txt 로 변경

# mv a.txt aa.txt

# ls -l

total 16

-rw-r--r-- 1 root root 0 Mar 27 11:08 aa.txt

-rw-r--r-- 1 root root 0 Mar 27 11:09 b.txt

-rw-r--r-- 1 root root 0 Mar 27 11:09 c.txt

-rw-r--r-- 1 root root 0 Mar 27 11:09 d.txt



# install -d dirA  <-- dirA 라는 디렉토리를 생성

# ls -l

total 24

-rw-r--r-- 1 root root    0 Mar 27 11:08 aa.txt

-rw-r--r-- 1 root root    0 Mar 27 11:09 b.txt

-rw-r--r-- 1 root root    0 Mar 27 11:09 c.txt

drwxr-xr-x 2 root root 4096 Mar 27 11:14 dirA/

-rw-r--r-- 1 root root    0 Mar 27 11:09 d.txt




- aa.txt 를 dirA 디렉토리에 이동

# mv aa.txt dirA  

# ls

b.txt  c.txt  dirA/  d.txt

# ls dirA

aa.txt



- 여러개 파일을 다른 디렉토리로 이동하기

# mv b.txt c.txt d.txt   <-- !!! 중요 : 에러발생은 파일이 3개 이상일때는 반드시 마지막이 디렉토리가 와야 한다.

mv: target `d.txt' is not a directory

# mv b.txt c.txt d.txt dirA

# ls

dirA/

# ls dirA

aa.txt b.txt  c.txt  d.txt




- 디스크 사용량 보기

[root@localhost ksw]# du -h /bin

7.5M /bin

[root@localhost ksw]# du -sh /etc

68M /etc

[root@localhost ksw]# useradd dutest

[root@localhost ksw]# du -sh ~dutest

56K /home/dutest

[root@localhost ksw]# du -sh ~

220K /root



du -sh [경로] or [파일명]

~사용자명 -> 사용자명의 홈 디렉터리

~ -> 로그인한 사용자의 홈 디렉터리



- 파일의 내용을 출력하는 명령어

cat, tac, head, tail, less, more

~~~


cat 은 다양하게 사용할 수 있다.


# cat /etc/passwd > passwd

# cat << END

>  kajfa

> fajkfdjakf

> anfafkakfja

> END

 kajfa

fajkfdjakf

anfafkakfja

# cat << END

>    END

>  END

> kadjf

> END

   END

 END

kadjf





리다이렉션


> 기호 : 출력 방향 지시자

ex) 명령 > 파일 : 명령어의 실행결과를 파일 안으로 넣는다.

    명령 > 장치명 : 명령어의 실행결과가 장치명으로 보내진다.


>> 기호 : 출력 방향 지시자 (추가의 의미)

ex) 명령 >> 파일 : 새로운 명령을 파일 안으로 추가한다.


< 기호 : 입력 방향 지시자

<< 기호 : 입력 방향 지시자

ex) 명령 < 파일 : 파일에 있는 것을 명령으로 보냄




- 출력리다이렉션 예제


xshell 을 이용하여 한 CentOS에 SSH연결을


2개로 만든다.



tty 명령어로 터미널 번호를 확인한다.




/dev/pts/2 와 /dev/pts/3 을 사용 중인 걸 확인 가능


pts/0# tty

/dev/pts/0

pts/0# echo Hello 

Hello

pts/0# echo Hello > /dev/pts/4


pts/4# tty

/dev/pts/4

pts/4# Hello  <-- pts/0 에서 보내준 내용

pts/4# echo Hi

Hi

pts/4# echo Hi > /dev/pts/0


pts/0# Hi      <-- pts/4 에서 보내준 내용



pts/0# cat << END > /dev/pts/4 <-- 결과를 /dev/pts/4 로 출력한다.

> aksjfd

> akfdj

> dkfja

> END


pts/4# aksjfd

akfdj

dkfja




- /dev/null 로 리다이렉션을 보낼때 많이 사용한다.

  (출력 메세지를 감추고 싶을때 사용한다.)


> 1> 동일

2>


stdin  (0) : 키보드 (입력)

stdout (1) : 모니터 (정상출력)

stderr (2) : 모니터 (에러출력)


# kjfdkdlkckdk

-bash: kjfdkdlkckdk: command not found

# dladskjdkdjd  > /dev/null 

-bash: dladskjdkdjd: command not found

# dladskjdkdjd  2> /dev/null 

# echo $?

# ls 1> /dev/null 

# echo $?



echo $? 를 할 때 결과 값으로는


바로 전 명령어가 실패 했을 시 0이 아닌 다른 값이 온다.



- 리눅스에서 사용되는 파일의 종류

# ls -l /bin/ls

-rwxr-xr-x 1 root root 95116 Jul 22  2011 /bin/ls*

# ls -ld /bin

drwxr-xr-x 2 root root 4096 Mar 27 11:47 /bin/

# ls -l /bin/awk

lrwxrwxrwx 1 root root 4 Sep  7  2013 /bin/awk -> gawk*

# ls -l /dev/sda

brw-r----- 1 root disk 8, 0 Mar 27 10:40 /dev/sda

# ls -l /dev/tty1

crw--w---- 1 root tty 4, 1 Mar 27 10:43 /dev/tty1

# ls -l /dev/log 

srw-rw-rw- 1 root root 0 Mar 27 10:40 /dev/log=

# ls -l /dev/initctl 

prw------- 1 root root 0 Mar 27 11:47 /dev/initctl|




- 다양한 파일 만들기 

# dd if=/dev/zero of=file count=0

# install -d directory

# ln -s file symboiclink

# mknod -m 666 zero c 1 5

# mknod -m 666 null c 1 3

# mknod -m 640 sda b 8 0

# mkfifo -m 600 initctl

# mknod -m 600 initctl2 p

# mksock log; chmod 666 log



명령어1 ; 명렁어2

명령어1 실행 후 명령어2 실행

(명령어1이 실패여부 관계없이 끝나면 명령어2 실행됨)


- find를 이용한 파일유형 찾기

# find /bin -type f -name ls

# find /bin -type f -name ls -ls

# find / -maxdepth 1 -type d -name etc -ls

# find /dev -type s -ls

# find /dev -type p -ls

# find /dev -type l -ls

# find /dev -type b -name sda -ls

# find /dev -type c -name tty1 -ls


검색 결과 많아서 생략




- 파이프로 통신하기

1. 네임드 파이프

pts/0# mkfifo ABC

pts/0# ls -l ABC 

prw-r--r-- 1 root root 0 Mar 27 1

pts/0# echo 123 > ABC


pts/1# cat ABC 

123





2. 언네임드 파이프

# cat /etc/passwd | head -1


| -> 시프트 + 백스페이스 왼쪽 키 이다.