Unix

[Unix] Unix 기본 명령어

행복하개! 2020. 11. 14. 00:15

 

 

 

pwd

현재 내가 어느 디렉토리에 있는지를 출력한다.

 

 

 

cd 명령

 

cd ..

바로 위 부모 디렉토리로 이동한다.

 

cd test1

test1 이름의 렉토리로 이동한다.

 

cd ../test1

부모 디렉토리 아래의 test1 이름의 디렉토리로 이동한다.

부모 디렉토리 아래에 test1 이름의 디렉토리가 있어야 한다.

 

cd ../test1/test2

부모 디렉토리 아래의 test1 이름의 디렉토리 아래의 test2 디렉토리로 이동한다.

 

cd /test1

루트 디렉토리 아래의 test1 디렉토리로 이동한다.

 

cd ~

홈 디렉토리로 이동한다.

 

cd ~/test1

홈 디렉토리 아래 test1 디렉토리로 이동한다.

 

 

 

디렉토리 명령

 

mkdir test1

현재 디렉토리 아래에 test1 이름의 디렉토리를 만든다.

 

rmdir test1

현재 디렉토리 아래에 test1 이름의 디렉토리를 삭제한다.

비어있는 디렉토리만 이 명령으로 삭제할 수 있다.

 

rm -r test1

test1 디렉토리와 그 아래 내용을 몽땅 다 삭제한다.

 

 

 

mv 명령

 

mv test1 test2

현재 디렉토리 아래에 test2 디렉토리가 없다면, test1 디렉토리 이름을 test2로 바꾼다.

                                                   있다면, test1 디렉토리를 test2 디렉토리 아래로 옮긴다.

 

mv test1 ..

현재 디렉토리 아래의 test1 디렉토리를 바로 위 디렉토리로 옮긴다.

 

mv ../test1 .

바로 위 디렉토리의 test1 디렉토리를 현재 디렉토리로 옮긴다.

 

mv test1 ~

현재 디렉토리의 test1 디렉토리를 홈 디렉토리로 옮긴다.

 

mv test1 ../test2

부모 디렉토리 아래에 test2 디렉토리가 없다면, test1 디렉토리를 부모 디렉토리로 옮기고 이름을 test2로 바꾼다.

부모 디렉토리 아래에 test2 디렉토리가 있다면, test1 디렉토리를 부모 디렉토리 아래의 test2 디렉토리 아래로 옮긴다.

 

 

 

ls 명령

ls 명령은 다음과 같은 형태로 사용된다.

ls

현재 디렉토리의 내용(파일과 서브디렉토리)을 출력한다.

 

ls 디렉토리1

디렉토리1 아래의 내용을 출력한다.

 

ls 파일1

파일1에 대한 정보만 출력한다.

 

ls -d 디렉토리1

디렉토리1의 내용이 아니고, 디렉토리1에 대한 정보만 출력한다.

 

ls .

현재 디렉토리의 내용을 출력한다.

 

ls test1

현재 디렉토리 아래 test1 디렉토리의 내용을 출력한다.

test1 이 디렉토리가 아니고 파일이라면, 그 파일에 대한 정보를 출력한다.

 

ls ..

부모 디렉토리의 내용을 출력한다.

 

ls ../test2

부모 디렉토리 아래 test2 디렉토리의 내용을 출력한다.

test2 가 디렉토리가 아니고 파일이라면, 그 파일에 대한 정보를 출력한다.

 

ls 명령 옵션

ls -l

(long)

ls 명령의 -l 옵션

디렉토리의 내용을 자세히 출력한다.

 

$ ls -l

total 2

drwxr-xr-x 1 pwk    197609         0           10 11 01:32  src/

-rw-r--r-- 1  pwk    197609    123593        10 11 01:25  t.txt

-rw-r--r-- 1  pwk    197609        32           10 11 02:58 Test.c

drwxr-xr-x 1 pwk    197609         0            10 11 01:32 test1/

drwxr-xr-x 1 pwk    197609         0            10 11 02:41 test2/

   권한       소유자   소유그룹   파일크기  수정날짜시각  이름

 

drwxrwxrwx

첫문자 d = 디렉토리, - 파일

rwx 읽기 쓰기 실행 권한이 다 있다.

rw- 읽기 쓰기 권한만 있다.

r-- 읽기 권한만 있다.

--- 아무 권한이 없다.

 

x 대상이 파일인 경우 실행 권한, 대상이 디렉토리인 경우에는 들어갈 수 있는 권한

 

첫번째 rwx = 파일을 소유한 사람의 권한

두번째 r-x = 파일 소유 그룹에 속한 사람의 권한

세번째 r-x = 소유자도 소유 그룹도 아닌 사람의 권한

 

ls -a

(all)

-a 옵션이 있으면, 디렉토리 내용을 출력할 때, 도트 파일에 대한 정보도 출력한다.

-a 옵션이 없으면 도트 파일에 대한 정보는 출력되지 않는다.

 

ls -S

(size)

파일 크기 내림차순으로 정렬하여 출력한다.

-S 옵션이 없으명 파일명 오름차순으로 정렬하여 출력한다.

 

ls -r

(reverse)

기본 출력 순서를 역순으로 출력한다.

ls -Sr 파일 크기 오름차순으로 정렬하여 출력한다.

ls -r 파일명 내림차순으로 정렬하여 출력한다.

 

ls -R

(recursive)

하위 디렉토리와 그 하위 디렉토리까지 재귀적으로 반복해서 출력한다.

파일을 마지막으로 수정한 시각의 오름차순으로 정렬하여 출력한다.

 

ls --help

도움말을 출력한다.

ls 명령 뿐만 아니라, 모든 명령에 이 도움말 출력 옵션이 있다.

 

 

ls -lh

파일 크기를 K, M, G 등 적절한 단위로 출력한다.

 

ls -lt

(long, time)

파일을 마지막으로 수정한 시각의 내림차순으로 정렬하여 출력한다.

 

ls -ltr

(long, time, reverse)

 

 

 

cp 명령

copy

파일이나 디렉토리를 복사한다.

 

cp 명령은 다음과 같은 형태로 사용된다.

cp 파일1 파일2

파일1을 복사하여 파일2를 생성한다.

파일2가 이미 있다면 덮어써진다.

 

cp 파일1 파일2 파일3 디렉토리1

파일1, 파일2, 파일3을 디렉토리1 아래에 복사한다.

디렉토리1가 없다면 에러가 발생한다.

디렉토리1 아래에 동일한 이름의 파일이 이미 있다면, 덮어써진다.

 

cp -R 디렉토리1 디렉토리2

디렉토리1과 그 아래 내용을 몽땅 복사하여 디렉토리2를 생성한다.

만약 디렉토리2가 이미 있었다면, 디렉토리1과 그 아래 내용을 몽땅 복사하여, 디렉토리2/디렉토리1를 생성한다.

 

cp -R 디렉토리1 디렉토리2 디렉토리3 디렉토리4

디렉토리1, 디렉토리2, 디렉토리3 들과 그 아래 내용들을 몽땅 복사하여

디렉토리4/디렉토리1, 디렉토리4/디렉토리2, 디렉토리4/디렉토리3 들을 생성한다.

디렉토리4 없었다면 에러가 발생한다.

 

cp test1.txt test2.txt

현재 디렉토리의 test1.txt 파일을 test2.txt 이름의 파일로 복사한다.

test2.txt 파일이 이미 있다면 덮어써지고, 없어면 새로 생성된다.

 

cp test1.txt ..

현재 디렉토리 아래의 test1.txt 파일을 바로 위 디렉토리에 복사한다.

 

cp ../test1.text .

바로 위 디렉토리의 test1.txt 파일을 현재 디렉토리에 복사한다.

 

cp test1.txt ~

현재 디렉토리의 test1.txt 파일을 홈 디렉토리에 복사한다.

 

cp test1.txt src

현재 디렉토리에 src 디렉토리가 있다면, 현재 디렉토리의 test1.txt 파일을 src 디렉토리에 복사한다.

                                          없다면, 현재 디렉토리의 test1.txt 파일을 src 이름의 파일로 복사한다.

 

cp test1.c test2.c ../src

현재 디렉토리의 test1.c 파일과 test2.c 파일을 부모 디렉토리 아래의 src 디렉토리에 복사한다.

부모 디렉토리에 src 이름의 디렉토리가 없다면, 에러가 발생한다.

cp -R src src_backup

src 디렉토리 아래 내용을 몽땅 복사하여 src_backup 디렉토리를 생성한다.

src_backup 디렉토리가 이미 있다면, src_backup/src 디렉토리를 생성한다.

 

cp -R src test backup

src, test 디렉토리 아래 내용을 몽땅 복사하여 backup/src, backup/test 디렉토리를 생성한다.

backup 디렉토리가 없다면 에러가 발생한다.

 

cp 명령 옵션

 

-i

(interactive)

기존 파일을 덮어쓰게 되는 경우에, Y/N를 확인한다.

 

-l

(link)

파일의 내용을 복사하는 대신 hard link를 만든다.

hard linkWindows에서 바로 가기 링크와 유사한 것이다.

자세한 내용은 나중에 설명한다.

 

-s

(symbolic link)

파일의 내용을 복사하는 대신 symbolic link를 만든다.

symbolic linkWindows에서 바로 가기 링크와 유사한 것이다.

자세한 내용은 나중에 설명한다.

 

-R

(recursive)

디렉토리와 그 아래 내용을 몽땅 복사한다.

 

-u

(update)

기존 파일을 덮어쓰게 되는 경우에, 덮어쓸 파일이 덮여쓰여지는 파일보다 최신 날짜인 경우에만 덮어쓴다.

 

-v

(verbose)

복사 과정을 장황하게 출력한다.

 

 

 

mv 명령

move

파일이나 디렉토리 이름을 바꾸거나 다른 디렉토리 아래로 옮긴다.

 

mv 명령은 다음과 같은 형태로 사용된다.

mv 파일1 파일2

파일1의 이름을 파일2로 변경한다.

파일2가 이미 있다면 덮어써진다.

 

mv 파일1 파일2 파일3 디렉토리1

파일1, 파일2, 파일3을 디렉토리1 아래로 옮긴다.

디렉토리1가 없다면 에러가 발생한다.

디렉토리1 아래에 동일한 이름의 파일이 이미 있다면, 덮어써진다.

 

mv 디렉터리1 디렉토리2

디렉토리2가 없다면, 디렉토리1의 이름을 디렉토리2로 변경한다.

디렉토리2가 이미 있었다면, 디렉토리1을 디렉토리2 아래로 옮긴다.

디렉토리2 아래에 이미 디렉토리1이 있다면 에러가 발생한다.

 

mv 디렉토리1 디렉토리2 디렉토리3 디렉토리4

디렉토리1, 디렉토리2, 디렉토리3 을 디렉토리4 아래로 옮긴다.

옮길 디렉토리와 동일한 이름의 디렉토리가 디렉토리4에 이미 있다면, 그 디렉토리의 이동만 취소되고,

다른 디렉토리는 이동된다.

 

mv test1.txt test2.txt

현재 디렉토리의 test1.txt 파일의 이름을 test2.txt 로 변경한다.

test2.txt 파일이 이미 있다면 덮어써지고, 없으면 새로 생성된다.

 

mv test1.txt ..

현재 디렉토리 아래의 test1.txt 파일을 바로 위 디렉토리로 이동한다.

 

mv ../test1.text .

바로 위 디렉토리의 test1.txt 파일을 현재 디렉토리로 이동한다.

 

mv test1.txt ~

현재 디렉토리의 test1.txt 파일을 홈 디렉토리로 이동한다.

 

mv test1.txt src

현재 디렉토리에 src 디렉토리가 있다면, 현재 디렉토리의 test1.txt 파일의 src 디렉토리 아래로 옮긴다.

                                          없다면, 현재 디렉토리의 test1.txt 파일을 src 이름으로 변경한다.

 

mv test1.c test2.c ../src

현재 디렉토리의 test1.c 파일과 test2.c 파일을 부모 디렉토리 아래의 src 디렉토리로 옮긴다.

부모 디렉토리에 src 이름의 디렉토리가 없다면, 에러가 발생한다.

 

mv src src_backup

src_backup 디렉토리가 없으면, src 디렉토리 이름을 src_backup으로 변경한다.

src_backup 디렉토리가 이미 있다면, src 디렉토리를 src_backup 디렉토리 아래로 옮긴다.

 

cp src test backup

src, test 디렉토리를 backup 디렉토리 아래로 옮긴다.

backup 디렉토리가 없다면 에러가 발생한다.

 

mv 명령 옵션

 

-i

(interactive)

기존 파일을 덮어쓰게 되는 경우에, Y/N를 확인한다.

 

 

 

rm 명령

(remove)

삭제

 

rm 명령은 다음과 같은 형태로 사용된다.

rm 파일1

파일1을 삭제한다.

 

 

rm 파일1 파일2 파일3

파일1, 파일2, 파일3를 삭제한다.

 

 

rm -r 디렉토리1

디렉토리1과 그 아래 내용을 몽땅 삭제한다.

 

rm 명령 옵션

-f

(force)

절대 Y/N를 물어보지 않고, 그냥 몽땅 다 삭제한다.

 

-i

(interative)

하나씩 Y/N를 물어봐가며 삭제한다.

 

-v

(verbose)

자세한 작업 내용을 출력한다.

이 옵션은 대부분의 명령에 있다.

 

 

 

와일드 카드(Wild Card)

여러 파일을 이동하거나 복사하거나 삭제할 때, 파일 이름을 일일이 입력하기 번거롭다.

대상 파일들을 한번에 지정하고 싶을 때 와일드 카드를 사용한다.

와일드 카드를 이용하여 파일명 패턴을 지정한다.

와일드 카드는 정규식 패턴과 다르다.

 

*

어떤 문자열과도 일치한다. 빈 문자열과도 일치한다.

 

rm *.c

현재 디렉토리의 파일들 중 파일 이름 끝 부분이 .c 인 모든 파일을 삭제한다.

: test1.c test2.c hello.c main.c

 

rm test1.*

현재 디렉토리의 파일들 중 파일 이름 앞 부분이 test1. 인 모든 파일을 삭제한다.

: test1.c test1.o test1.exe test1.bak

 

rm test*.c

다음과 같은 파일들이 삭제된다.

test.c test1.c test2.c test34.c testhello.c testWorld.c

 

rm *

현재 디렉토리의 모든 파일이 삭제된다.

디렉토리를 삭제되지 않는다.

도트 파일도 삭제되지 않는다.

 

rm .*

현재 디렉토리의 모든 도트 파일을 삭제한다.

도트로 시작하는 디렉토리는 삭제되지 않는다.

 

rm -r *

현재 디렉토리의 모든 파일과 모든 디렉토리를 삭제한다.

 

?

어떤 한 문자와 일치한다

 

rm test?.c

다음과 같은 파일들이 삭제된다.

test1.c test2.c

 

다음과 같은 파일들은 삭제되지 않는다.

test.c test34.c

 

[abc]

a 문자나 b 문자나 c 문자 중 한 문자와 일치한다.

 

rm test[34].c

test3.c 파일과 test4.c 파일을 삭제한다.

 

 

 

cat

(concatenate)

파일 내용을 화면에 출력한다.

 

cat 파일1

파일1 내용을 화면에 출력한다.

 

cat 파일1 파일2 파일3

파일1, 파일2, 파일3의 내용을 순서대로 화면에 출력한다.

 

cat -n 파일1

파일1 내용을 화면에 출력한다.

이때 각 줄의 앞에 줄번호를 붙여서 출력한다.

 

 

 

clear

화면의 내용을 지운다.

'Unix' 카테고리의 다른 글

[Unix] vi 기본 명령어  (0) 2020.10.22
[Unix] 유닉스 만화  (0) 2020.09.01