도움말 - man

명령어 사용법을 볼 수 있는 도움말 명령어이다.

man ls

위와 같이 인수로 알고 싶은 명령어를 전달하면 해당 명령어의 사용법을 알려준다. 당연히 영어로 되어있고, 단순 텍스트로 되어있어서 구분이 잘 되지 않아 이해하기 힘들다. 나는 봐도 이해가 안될 경우 더 자세하게 나와있거나 보기 익숙한 웹사이트 공식 문서를 참고했다. 또는 다른 개발자 분들이 올린 설명글을 본다. 하지만 이렇게 할 경우 원하는 것을 금방 찾지만 공부가 되지 않을 수 있다.

리눅스의 디렉토리

리눅스의 모든 데이터는 파일로 관리가 된다. 음성 혹은 애플리케이션 등 모든 데이터는 파일로 관리되고, 디렉토리는 그 파일을 모아두는 곳이 된다.

  • 그래서 리눅스를 설치하면 기본적으로 들어있는 디렉토리들과 그 안에 파일들이 있는데, 디렉토리 마다 용도가 다르고 숙지하고 있어야 한다.
  • 최 상위 폴더는 root 디렉토리가 된다.

절대 경로와 상대 경로

리눅스의 경로 표시는 다음과 같다.

경로 표기 의미
/디렉토리/파일 절대경로
./파일 상대경로
. 현재 디렉토리
.. 부모 디렉토리
~ 자신의 홈 디렉토리
~사용자명 특정 사용자 홈 디렉토리

명령어

ls

ls 명령어는 디렉토리 안에 있는 파일이나 디렉토리를 보여준다.

사진-1

사진-2

  • 보통은 ls -al 을 하여 사용하거나 축약어인 ll 를 사용한다.
옵션 설명
-a 일반 파일 외에 모든 파일을 표시한다.
-F 분류 기호를 표시한다.
-l 상세 정보를 표시한다.
-t 최근에 갱신된 순서되로 정렬
-R 서브디렉토리 안에 파일도 모두 표시
-h 파일 크기 단위를 표시
-p 디렉토리에 ‘/’를 표시해 준다.
-m ’,’ 으로 구분 시켜 준다.

F 옵션 기호

기호 설명
/ 디렉토리
@ 심볼릭 링크
* 실행 가능한 파일

mkdir

mkdir 명령어는 인수로 지정한 이름으로 디렉토리를 생성한다.

옵션 설명
-m 생성한 디렉토리의 권한을 설정하는 옵션이다. 값 설정은 chmod와 동일하다.
-p 디렉토리 경로가 존재 하지 않는 경우 중간에 있는 디렉토리도 포함해 생성하는 옵션이다.

cat

cat은 파일내용을 보여준다.

파일안에 있는 내용을 보여주고, 리눅스 명령어 중에서 많이 사용된다. cat과 grep의 조합으로 보고싶은 내용을 파일 안에 들어가지 않더라도 찾아 볼 수 있고, 라인 수를 표시해 어느 위치에 있는지 확인할 수 있다.

사진-3

옵션 설명
-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를 이용해서 파일명을 변경을 하기도 한다.

사진-4

a.txt 가 b.txt 로 파일명이 변경된 것을 볼 수 있다.

옵션 설명
-i 같은 이름의 파일이 있으면 덮어쓰기 여부를 확인
-f -i 옵션과는 반대로 사용자 확인 없이 모두 덮어쓰기
-v 이동 중에 원본 파일과 대상 파일 이름을 표시
-b 파일을 덮어쓰기할 때 파일명 끝에 ~가 붙은 백업 파일을 작성
-u 같은 이름의 파일이 있으면 원본 파일이 대상 파일보다 새로운 파일일 때만 이동

rm

rm 명령어로 파일을 삭제할 수 있다.

rm [파일명] rm 명령어 인수로 해당되는 파일의 경로를 넣어주면 삭제를 한다.

  • coke 파일을 삭제하려고 한다.

사진-5

  • rm coke 를 입력하면 파일이 삭제가 된다.

사진-6

  • pizz만 남은 것을 볼 수있다.
옵션 설명
-i 삭제 여부를 사용자에게 확인
-f -i 옵션과 반대로 확인 없이 모두 삭제

touch

touch 명령은 파일을 생성할 수도 있고, 파일의 타임스탬프를 수정할 수 있다.

touch 인자로 경로에 없는 파일명을 넣어주면 해당 이름으로 빈 파일을 새로 생성한다.

touch [파일명]

사진-7

  • rice 파일이 생성 된 것을 볼 수 있다.
  • 이번엔 pizz 파일의 수정날짜를 변경해보겠다.

사진-8

  • 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
소스 파일 디렉토리 검색 시스템 표준 경로