IT공부

[IT 통합 기초] 리눅스 명령어(mkdir, rmdir, rm, touch)

shine94 2020. 9. 15. 14:26

1. mkdir(make directory)
 : 빈 디렉터리 생성 명령어

   mkdir "옵션" "만들고 싶은 디렉터리의 이름과 경로"

 

 

2. mkdir와 * 예제

1) 빈 디렉터리 생성

   mkdir /test

 

2) * 예제

   cp /home/test/d/ini* /test/

   cp /home/test/d/*cfg /test/

   cp /home/test/d/*gi* /test/

[실습] samadal에 test1 디렉터리를 만들기

   mkdir /home/samadal/test1/

 

 

3. [잊지말자...!] 디렉터리일 때, 끝에 /가 붙고 파일은 뒤에 /가 붙지 않는다.

   [그러나...!] 경로 상 마지막에 오는 디렉터리는 / 생략 가능

 

 

4. 옵션 -p를 이용, 필요하다면 경로에 없는 디렉터리까지 생성 가능

   mkdir -p /home/samadal/test1/test2/test3/

 

 

5. rmdir(remove directory)
 : 빈 디렉터리를 삭제하는 명령어

   rmdir "옵션" "삭제하고 싶은 디렉터리의 경로"

 

 

6. rmdir 예제

   rmdir /home/samadal/test1/test2/test3/

 

 

7. 옵션 -p를 이용, 오른쪽에서 왼쪽 순으로 경로에 있는 빈 디렉터리를 순차적으로 삭제

   순차적으로 삭제 작업 진행 중에 빈 디렉터리가 아닌 디렉터리를 발견하면 에러와 함께 명령어 종료

   rmdir -p /home/samadal/test1/test2/

 

 

8. rm(remove)
 : 파일이나 디렉터리를 삭제하는 명령어

   rm "옵션" "삭제하고 싶은 디렉터리나 파일의 경로"

 

 

9. rm 예제

   rm ./inittab

 

 

10. rm 명령어를 이용하여 디렉터리를 삭제하고 싶다면 옵션 -r을 이용해야 한다.

   (옵션 -r : 디렉터리나 파일 상관없이 삭제 가능하게 하는 옵션)

   rm -r /home/test/

 

 

11. -f 옵션 추가 사용하여, 파일이나 디렉터리를 삭제할 때 물어보지 않고 바로 강제 삭제 가능

   rm -r -f /home/samadal/a/

   rm -rf /home/samadal/*

 

 

12. 원래 /home/samadal/a/를 삭제해야하는데 사용자 계정 디렉터리를 삭제해버려서

     그로 인해 사용자 계정 로그인이 안되는 상황 발생했다.

     따라서 로그인이 가능하도록 사용자 계정 디렉터리를 만들었다.

1) 방법

   $ sudo mkdir /home/USER
   $ cd /home/USER
   $ sudo cp -r /etc/skel/. .
   $ sudo chown -R USER.USERGROUP .

 

2) 방법에 대한 해석
   $ : 유저 의미
   # : 루트 의미
   sudo : admin 권한 있는 유저를 일컫는다, 실무에서는 root에서 작업하는 것을 권장하지 않기 때문에 sudo를 사용

 

3) 사용자 계정 디렉터리 생성시 실제로 사용한 명령어

   mkdir /home/samadal
   cd /home/samadal
   cp -r /etc/skel/. .
   chown -R samadal:samadal ./

[cp -r옵션] 원본이 파일이면 파일 복사되고 디렉터리라면 디렉터리 전체 복사

 

[/etc/skel] 유저에 필요한 환경 파일

 

[chown] 폴더 권한 설정

 

 

13. 새롭게 다시 만든 사용자 계정 디렉터리를 실습과 동일한 환경으로 만들었다.
   rm -rf /home/samadal/*

 

 

14. *을 이용하여 삭제했지만 숨겨진 파일은 지워지지 않았다.

   만약, 숨겨진 파일도 함께 지우고 싶다면 .*을 이용하여 삭제하면 되나 아래의 명령어는 실행해서는 안된다!

   (숨겨진 파일까지 모두 삭제하면 samadal 로그인이 안됨!)

   rm -rf /home/samadal/.*

 

 

15. skel 디렉터리는 사용자를 생성할 때 그 사용자의 뼈대를 의미
   (사용자를 생성하게 되면 skel 안에 들어있는 모든 파일들이 자동적으로 사용자 계정 디렉터리에 복사)

   .bash_logout  .bash_profile  .bashrc  .mozilla

 

 

16. samadal 디렉터리에 있는 사용자의 뼈대를 삭제해보고 cp를 이용하여 skel 디렉터리 복사해보자!

   cp -r etc/skel/.* /home/samadal/

   [skel 디렉터리 뿐만 아니라 etc 디렉터리의 모든 것이 복사된 것을 확인할 수 있다]

   Why? .으로 시작하는 모든 것은 ..도 해당되기 때문에 etc 디렉터리에 들어있던 모든 파일들과 디렉터리들도 해당

   [만약 꼭 필요한 .bash_logout .bash_profile .bashrc .mozilla만 복사하고 싶다면]

   cp -r /etc/skel/.b* /etc/skel/.m* /home/samadal/

 

15 ~ 16의 학습 내용은 사용자 계정 디렉터리 삭제로 인한 12의 학습 내용과 거의 일치!
디렉터리를 잘못 삭제하여 공부했으나 뒤이은 진도에서 강사님이 알려주셨다.

 

 

17. touch

 : 빈 문서 파일을 생성하는 명령어

   touch "생성하고 싶은 파일의 경로와 이름"

 

 

18. touch 예제
1) 절대경로

   touch /home/samadal/testFile

2) 상대경로
   cd /home/samadal/
   touch ./testFile2

 

 

19. rm -rf /* : 절대 사용해서는 안되는 명령어!
   [이 명령어가 뭔가요?]

   최상위 디렉터리 아래에 있는 모든 것을 삭제한다.


   [참고] Ctrl + C 누르면 중간에 끊긴다!

   [왜 쓰면 안되나요?]

   지금까지 리눅스에서 쓰고 있던 명령어는 실행 파일로 리눅스 안에 구성되어 있다.
   근데 이 실행 파일들이 전부 삭제된다면 명령어를 인식을 못한다.

   또한 왼쪽 상단에 있는 프로그램의 목록도 사라졌고

   로그아웃 후 로그인도 안되는 앞으로 리눅스를 쓸 수 없는 상황이 오니

   절대로 실수로 사용하지 않도록 조심하자!(실제로 실수하는 경우가 많다고 함)