Linux나 Windows나 GUI(Graphic User Interface) 가 있고 CLI(Command Line Interface)가 있다. 일반적으로 여러분들이 가장 많이 접하는 것이 GUI 즉, 그래픽 환경이고 관리자가 접하게 되며, Linux를 공부하며 접하게 될 것이 CLI 즉, 명령어 기반의 환경이다. 이번 포스팅에서 소개할 기본명령어들은 기본적으로 CLI 사용되는 명령어들이다.
리눅스를 공부하면서 접하게 될 명령어라는 것은 Prompt상에서 사용되는 것들이다. 영화에서 많이 보던 검은 화면에 초록글씨가 적혀지는 것들을 본 것이 있을 것이다. 그것이 Prompt상에서 명령어들을 입력함으로써 나오는 화면들이다.
pwd - 현재 나(관리자)가 작업중인 디렉토리의 절대경로를 보여준다.
cd - 이동하고자하는 디렉토리로 이동한다.
위의 그림을 보면** pwd라는 명령어를 입력하니 /root라는 디렉토리에서 현재 작업하고 있다고 표시를 해준다.** 그리고나서 /home이라는 디렉토리로 이동을 하고 싶어 cd라는 명령어를 입력하여 이동한 것을 볼 수 있다.
여기서 중요한 것이 있는데, 리눅스에 입문하면서 가장 중요하게 들여야할 습관이 작업하기 전에 확인, 작업하고 나서 확인 즉, 확인하는 습관을 들여야한다.
귀찮을 수 있지만 이 습관을 잘 들여놔야 나중가서도 더 빠르게 작업을 진행할 수 있다.
1. -a : 경로안의 모든 파일과 디렉토리를 출력해준다. (all)
2. -l : 지정한 디렉토리의 내용을 자세하게 출력해준다. (long)
3. -d : 지정한 디렉토리의 정보를 출력해준다.
4. -n : 파일 및 디렉토리 정보 출력시 소유자(UID)와 소유그룹(GID)에 대해 출력해준다.
5. -F : 파일 형식을 알리는 문자를 각 파일 뒤에 출력해준다.
6. -R : 하위 경로와 그 안에 있는 모든 파일들도 같이 나열해준다.
현재 home이라는 디렉토리 안에 a라는 디렉토리가 생성되어있는 상태이고,
a라는 디렉토리 안에 b라는 디렉토리와 developer, poketmongo, test라는 파일이 생성되어 있는 상태이다.
-F 옵션과 -R 옵션에 대해서 설명하자면 -F옵션을 명령어에 적용해서 출력했을 때, 디렉토리의 뒤에는 ’/‘표시가 붙게 된다. 그래서 b는 디렉토리이기 때문에 ’/‘가 뒤에 붙은 것이다.
그리고 -R옵션은 하위경로와 그 안에 있는 모든 파일도 출력을 해주는데 즉, /home/a/안에 있는 것과 그 하위 경로인 b라는 디렉토리안의 내용도 출력을 해주고 있다.
현재 b디렉토리 안에는 아무것도 없기 때문에 출력이 되지 않은 것이다.
cp - 파일과 디렉토리를 복사한다.(copy)
mv - 파일이나 디렉토리를 이동할 때 쓰고 파일의 이름을 변경할 수 있다.(move)
-r : 디렉토리를 복사할 경우에 하위 디렉토리와 그 안에 있는 파일까지 모두 복사한다.
/home/a/디렉토리 안의 poketmongo라는 파일을 /home/a/b/디렉토리로 복사한다.
/home/a/디렉토리 안의 test라는 파일을 /home/a/b/디렉토리로 이동한다.
두개의 명령어를 실행했고 그 결과 poketmongo라는 파일이 복사가 되고, /home/a/에 있던 test라는 파일이 /home/a/b/디렉토리로 이동된 것을 볼 수 있다.
mkdir - 디렉토리를 생성한다.(make directory)
rmdir - 디렉토리를 삭제한다.(remove directory)
단, 빈 디렉토리만 삭제한다. 삭제하고자 하는 디렉토리의 하위에 디렉토리가 존재할 때는 삭제할 수가 없다.
(ex : /home/a/b/c/d/라는 디렉토리를 생성하고 싶을 때 c라는 디렉토리가 없기 때문에 d라는 디렉토리는 생성될 수 없지만 -p옵션을 사용하면 c와 d를 동시에 만들 수 있다.)
1. /home/a/b/c/라는 디렉토리를 만든다.
2. /ittest/a/b/c/라는 디렉토리를 한 번에 만든다.(한 줄의 명령어로)
3. /ittest/a/b/c/디렉토리를 삭제한다.(c만 삭제)
4. 삭제 후, /ittest/a/b/의 상위 디렉토리까지 모두 삭제한다.
mkdir 명령어에서 옵션 없이 /ittest/a/b/c/를 만들려다보니 에러가 뜨는 것을 볼 수 있다.
1. -f : 원래 rm을 사용하면 삭제를 할지 다시 한 번 사용자에게 물어보고 삭제를 진행하는데 이 옵션을 쓰면 이 확인 작업을 거치지 않는다.
2. -r : rm을 쓰면 기본적으로 디렉토리는 지울 수가 없다. 하지만 이 옵션을 쓰게 되면 디렉토리와 그를 포함한 하위경로까지 모두 삭제한다.
- rm을 옵션없이 썼더니 디렉토리라는 이유로 삭제가 안된다.
- 그래서 rmdir로 상위 디렉토리 전부를 삭제하려 했으나 b안에 파일이 들어있어 삭제가 안된다.
- rm -rf를 사용하여 b디렉토리를 삭제하였다.
- 확인해보니 a디렉토리 안에도 파일이 존재한다.
- 다시 rm -rf를 사용하여 a디렉토리를 삭제하였다.