도움말 - man
명령어 사용법을 볼 수 있는 도움말 명령어이다.
man ls
위와 같이 인수로 알고 싶은 명령어를 전달하면 해당 명령어의 사용법을 알려준다. 당연히 영어로 되어있고, 단순 텍스트로 되어있어서 구분이 잘 되지 않아 이해하기 힘들다. 나는 봐도 이해가 안될 경우 더 자세하게 나와있거나 보기 익숙한 웹사이트 공식 문서를 참고했다. 또는 다른 개발자 분들이 올린 설명글을 본다. 하지만 이렇게 할 경우 원하는 것을 금방 찾지만 공부가 되지 않을 수 있다.
리눅스의 디렉토리
리눅스의 모든 데이터는 파일로 관리가 된다. 음성 혹은 애플리케이션 등 모든 데이터는 파일로 관리되고, 디렉토리는 그 파일을 모아두는 곳이 된다.
- 그래서 리눅스를 설치하면 기본적으로 들어있는 디렉토리들과 그 안에 파일들이 있는데, 디렉토리 마다 용도가 다르고 숙지하고 있어야 한다.
- 최 상위 폴더는 root 디렉토리가 된다.
절대 경로와 상대 경로
리눅스의 경로 표시는 다음과 같다.
경로 표기 | 의미 |
---|---|
/디렉토리/파일 | 절대경로 |
./파일 | 상대경로 |
. | 현재 디렉토리 |
.. | 부모 디렉토리 |
~ | 자신의 홈 디렉토리 |
~사용자명 | 특정 사용자 홈 디렉토리 |
명령어
ls
ls 명령어는 디렉토리 안에 있는 파일이나 디렉토리를 보여준다.
- 보통은 ls -al 을 하여 사용하거나 축약어인
ll
를 사용한다.
옵션 | 설명 |
---|---|
-a | 일반 파일 외에 모든 파일을 표시한다. |
-F | 분류 기호를 표시한다. |
-l | 상세 정보를 표시한다. |
-t | 최근에 갱신된 순서되로 정렬 |
-R | 서브디렉토리 안에 파일도 모두 표시 |
-h | 파일 크기 단위를 표시 |
-p | 디렉토리에 ‘/’를 표시해 준다. |
-m | ’,’ 으로 구분 시켜 준다. |
F 옵션 기호
기호 | 설명 |
---|---|
/ | 디렉토리 |
@ | 심볼릭 링크 |
* | 실행 가능한 파일 |
mkdir
mkdir 명령어는 인수로 지정한 이름으로 디렉토리를 생성한다.
옵션 | 설명 |
---|---|
-m | 생성한 디렉토리의 권한을 설정하는 옵션이다. 값 설정은 chmod와 동일하다. |
-p | 디렉토리 경로가 존재 하지 않는 경우 중간에 있는 디렉토리도 포함해 생성하는 옵션이다. |
cat
cat은 파일내용을 보여준다.
파일안에 있는 내용을 보여주고, 리눅스 명령어 중에서 많이 사용된다. cat과 grep의 조합으로 보고싶은 내용을 파일 안에 들어가지 않더라도 찾아 볼 수 있고, 라인 수를 표시해 어느 위치에 있는지 확인할 수 있다.
옵션 | 설명 |
---|---|
-n | 줄 번호 표시 |
-b | 줄 번호를 표시 하지만, 빈 줄은 체크 안함. |
-p | 모든 제어 문자 표시 |
cp
cp는 파일을 복사할때 사용한다.
cp a b
a 파일을 b라는 파일이름으로 복사한다.
인수가 3개 이상 들어올 경우에는 마지막 인수가 파일을 저장할 디렉토리가 된다.
cp a b d
d 디렉토리에 a 와 b를 복사하여 저장한다.
-i 옵션은 파일을 정말로 실행할 것인지 확인하는 메시지가 나타난다. 이름이나 다른 잘 못 파일을 넣었다면 취소할 수 있다.
디렉토리를 복사하고 싶다면 -r 옵션을 사용하면 된다. 디렉토리를 복사하면 안에 있는 모두를 같이 복사한다.
옵션 | 설명 |
---|---|
-i | 같은 이름의 파일이 있으면 덮어쓰기 여부를 확인 |
-f | -i 옵션과는 반대로 사용자 확인 없이 모두 덮어쓰기 |
-r | 디렉토리째 복사 |
-d | 심볼릭 링크와 하드 링크를 그대로 링크하여 복사 |
-p | 날짜. 플래그 같은 파일 정보를 가능한 한 그대로 복사 |
-v | 복사 중에 복사 원본 파일과 복사 대상 파일 이름을 표시 |
-a | 복사 원본 파일 구성과 속성을 가능한 한 그대로 유지해서 복사 |
-u | 같은 이름의 파일이 있으면 복사 원본 파일이 복사 대상 파일보다 새로운 파일일 때만 복사 |
mv
mv는 파일을 이동할때 사용한다. cp 명령어와 많이 유사하다고 한다.
cp와 똑같이 인수로 지정한 파일을 지정한 경로내로 옮긴다.
mv a temp/
a를 tmp/ 디렉토리 안으로 옮긴다.
mv도 똑같이 -i 옵션이 있고, 인수가 3개 이상이면 마지막 인수로 지정된 디렉토리에 앞에 파일들을 이동한다. mv를 이용해서 파일명을 변경을 하기도 한다.
a.txt 가 b.txt 로 파일명이 변경된 것을 볼 수 있다.
옵션 | 설명 |
---|---|
-i | 같은 이름의 파일이 있으면 덮어쓰기 여부를 확인 |
-f | -i 옵션과는 반대로 사용자 확인 없이 모두 덮어쓰기 |
-v | 이동 중에 원본 파일과 대상 파일 이름을 표시 |
-b | 파일을 덮어쓰기할 때 파일명 끝에 ~가 붙은 백업 파일을 작성 |
-u | 같은 이름의 파일이 있으면 원본 파일이 대상 파일보다 새로운 파일일 때만 이동 |
rm
rm 명령어로 파일을 삭제할 수 있다.
rm [파일명]
rm 명령어 인수로 해당되는 파일의 경로를 넣어주면 삭제를 한다.
- coke 파일을 삭제하려고 한다.
- rm coke 를 입력하면 파일이 삭제가 된다.
- pizz만 남은 것을 볼 수있다.
옵션 | 설명 |
---|---|
-i | 삭제 여부를 사용자에게 확인 |
-f | -i 옵션과 반대로 확인 없이 모두 삭제 |
touch
touch 명령은 파일을 생성할 수도 있고, 파일의 타임스탬프를 수정할 수 있다.
touch 인자로 경로에 없는 파일명을 넣어주면 해당 이름으로 빈 파일을 새로 생성한다.
touch [파일명]
- rice 파일이 생성 된 것을 볼 수 있다.
- 이번엔 pizz 파일의 수정날짜를 변경해보겠다.
- pizz 파일의 수정날짜가
8 7 -> 4 1
로변경 된 것 을 볼 수 있다. - 시간은
년월일시간분.[초]
이다. - 202307061210 -> 2023년 07월 06일 12시 10분
옵션 | 설명 |
---|---|
-c | 인수로 지정한 파일이 존재하지 않아도 생성하지 않는다. |
-r | 최종 갱신일을 file 날짜에 맞춘다. |
-t | 최종 갱신일을 지정한 시간으로 변경한다. |
-h | 심볼릭 링크의 타임스탬프를 수정할 수 있다 |
rmdir
rmdir 명령어는 디렉토리를 삭제할 수 있다. rm 또한 특정 옵션을 주어서 디렉토리를 삭제할 수 있다.
rmdir의 특징은 비어있지 않은 디렉토리는 삭제 하지 않는다. 디렉토리 안에 파일 또는 하위 디렉토리까지 삭제하려면 rm 명령어에 -r 옵션을 주어 삭제 가능하다. -f 옵션까지 붙으면 rm -i로 치환 했더라도 묻지 않고 삭제하게 된다.
rmdir [디렉토리명]
rm -rf [디렉토리명]
옵션 | 설명 |
---|---|
-p | 인수로 지정한 디렉토리 경로가 존재하면 그 중간 디렉토리도 포함해서 디렉터리를 삭제한다. |
which, whereis
명령어를 입력하면 해당 프로그램이 실행된다. 실행하는 프로그램의 위치를 알고 싶을 때 사용한다.
which [명령어이름]
- 프로그램이 어디에서 실행되는지 경로를 보여준다.
whereis crontab
- 프로그램 관련 파일이 어디에 있는지 경로를 알려준다.
- 프로그램이 존재하는 경로, 프로그램 도움말이 존재하는 경로, 프로그램 소스 파일 디렉토리가 존재하는 경로를 조사한다.
- 명시적으로 지정하지 않을 경우에는 다음과 같이 검색한다.
검색 | 설명 |
---|---|
프로그램 검색 | 시스템 표준 경로와 환경 변수 PATH |
도움말 검색 | 환경 변수 MANPATH |
소스 파일 디렉토리 검색 | 시스템 표준 경로 |