Operating System(OS)/리눅스 마스터 2급 이론 정리

리눅스마스터 2급 자격증 이론 내용 정리 / 02. 리눅스 기본 명령어 - 2. 디렉터리 및 파일 관련 명령어

9rrrr-m 2024. 8. 4. 14:39

 

더보기

올해안에 리눅스 마스터 2급 따기를 목표로 '세종사이버대학교 컴퓨터공학과·AI공학과' 유튜브 채널의 컴퓨터·AI공학과 리눅스마스터2급 자격증 특강 강의를 듣고 내용을 정리한 것입니다.

 

* 오타나 내용 오류시 댓글 남겨주시면 감사하겠습니다!

** 코드 블록에 명령어는 적혀있으나, 모든 실행 결과를 함께 적지는 않았습니다.

 

02. 리눅스 기본 명령어

    1. 사용자 생성 및 계정 관리
    2. 디렉터리 및 파일 관련 명령어

        (1) 기본 명령어

    3. 리다이렉션과 정규 표현식
    4. 기타 명령어


 

02. 리눅스 기본 명령어 - 2. 디렉터리 및 파일 관련 명령어

(1) 기본 명령어

▶ pwd  : 현재 작업 디렉터리명 표시

▶ cd  : 디렉터리 이동 (change directory)

  • cd  [경로명]
    ◦  경로명:  ~ (홈 디렉터리),  . (현재 디렉터리),  .. (상위 디렉터리),  / (루트 디렉터리)
[LinuxMaster]# pwd
/root
[LinuxMaster]# cd /var/www/
[LinuxMaster]# pwd
/var/www
[LinuxMaster]# cd ~
[LinuxMaster]# pwd
/root

▶ mkdir  : 디렉터리 만들기

  • mkdir  <옵션>  [디렉터리명]
    ◦  옵션:  -m (권한 설정, 기본 755),  -p (상위 디렉터리 생성),  -v (생성 디렉터리 메시지 표시)

▶ ls  : 디렉터리의 파일 목록(정보) 표시

  • ls  <옵션>  [디렉터리명]
    ◦  옵션:  -a (숨김 파일 포함),  -l (자세히 목록 보기),  -d (디렉터리 지정),  -r (역순으로 표시),  -R (하위 디렉터리 포함)

▶ cp  : 파일, 디렉터리 복사

  • cp  <옵션>  [소스]  [타깃]
    ◦  옵션:  -b (타깃 파일 존재 시 백업),  -f (타깃 파일 존재 시 강제로 삭제 및 복사),  -i (타깃 파일 존재 시 덮어쓰기 확인),  -r (하위 폴더 및 파일 포함)

▶ rm  : 파일, 디렉터리 삭제

  • rm  <-옵션>  [파일명 | 디렉터리명]
    ◦  옵션:  -f (확인없이 삭제),  -i (사용자에게 확인),  -r (하위 디렉터리 포함, 모든 파일 제거)

▶ touch  : 비어있는 파일 생성 혹은 파일의 시간(time stamp) 변경

  • touch  <-옵션>  [파일명]
    ◦  옵션:  -a (접근시간 변경),  -m (수정시간 변경),  -c (파일 시간을 현재 시간으로 변경),  -t (특정 파일의 시간 변경),  -r  파일A  파일B (파일A의 시간을 파일B와 동일하게 변경)

▶ file  : 파일의 종류와 속성값 표시

  • file  <-옵션>  [파일명]
    ◦  옵션:  -b (파일 형식만 표시),  -f (지정한 파일만 대상으로 실행),  -z (압축 파일 내용 표시),  -i (MIME으로 출력)
[LinuxMaster]# file hi.txt
hi.txt: ASCII text
[LinuxMaster]# file -i  hi.txt
hi.txt: text/plain; charset=us-ascii
[LinuxMaster]# file -b hi.txt
ASCII text

▶ find  : 지정된 조건에 따라 파일을 검색하는 명령어 (지정한 경로 및 하위 경로를 대상으로 검색)

  • find  <경로>  <-옵션>  <정규표현식>  [파일명]
    ◦  옵션:  -name (이름으로 검색),  -user (사용자의 파일/디렉터리 검색),  -perm (권한으로 검색),  -type (파일 유형으로 검색),  -atime  숫자 (숫자 일수 이전에 접근한 파일 검색),  -size (파일 크기를 지정하여 검색),  -exec (검색 파일을 대상으로 실행할 명령어)

▶ locate  : 파일의 위치 검색

  • locate  [파일명]

▶ cat  : 파일 내용을 출력

  • cat  <-옵션>  [파일명]
    ◦  옵션:  -n (행 번호 표시),  -b (행 번호 표시, 비어 있는 행 제외),  -s (2개 이상 빈 행을 하나로 표시),  -A (텍스트 파일의 개행 문자, 탭 문자 등 확인)

▶ head : 파일의 앞 부분만 출력

  • head  <-옵션>  [파일명]
    ◦  옵션:  -c (지정 숫자의 바이트 만큼 출력),  -n (지정 줄 수 만큼 출력, 기본 10줄)
[LinuxMaster]# head -n 3 /etc/httpd/conf/httpd.conf
#
#
#
[LinuxMaster]# head -3 /etc/httpd/conf/httpd.conf
#
#
#

▶ tail : 파일의 마지막 부분만 출력

  • tail  <-옵션>  [파일명]
    ◦  옵션:  -c (지정 숫자의 바이트 만큼 출력),  -n (지정 줄 수 만큼 출력, 기본 10줄),  -f (새롭게 추가되는 내용을 실시간 출력),  -v (파일명 표시),  -q (파일명 표시하지 않음)
[LinuxMaster]# tail -3 /etc/httpd/conf/httpd.conf
#
#
#

▶ more : 화면 단위로 파일의 내용을 출력

  • more  <-옵션>  [파일명]
    ◦  옵션:  -숫자 (페이지 당 표시할 줄 수)
    ◦  보기 작업: 다음 페이지 (space), 다음 줄 (Enter), ½ 페이지 (Ctrl + D), 이전 페이지 (Ctrl + B), 종료 (Q), 문자열 패턴 검색 (/패턴)
[LinuxMaster]# more -4 /etc/httpd/conf/httpd.conf
#
#
#
#
--More--(1%)

▶ less  : 텍스트 파일을 한 화면씩 표시

  • 특징: more와 다르게 커서를 이동할 수 있음

▶ wc  : 파일의 라인 수, 단어 수, 알파벳 수 표시

  • wc  <-옵션>  [파일명]
    ◦  옵션:  -l (라인 수 표시),  -w (단어 수 표시),  -c (알파벳 수 표시)
[LinuxMaster]# cat hi.txt
hihi
[LinuxMaster]# wc -w hi.txt
1 hi.txt

▶ grep  : 특정한 문자열 패턴, 정규식을 이용하여 단어를 검색

  • grep  <-옵션>  [문자열]  [파일명]
    ◦  옵션:  -r (모든 디렉터리 파일),  -E (정규표현식),  -i (대소문자 무시),  -v (검색 대상이 포함되지 않은 라인만 표시),  -n (라인 수 표시),  -l (문자열이 포함된 파일명 표시)
    ◦  예)  grep  '^[AB]'  sample.txt  (A 혹은 B로 시작하는 모든 라인)
              grep  'fine$'  sample.txt  (fine으로 끝나는 모든 라인)
[LinuxMaster]# grep chris /etc/passwd
chris:x:1001:1001::/CHRIS:/bin/bash
[LinuxMaster]# cat /etc/passwd | grep chris
chris:x:1001:1001::/CHRIS:/bin/bash

▶ sort  : 정렬하여 표시하는 명령어

  • sort  <-옵션>  [파일명]
    ◦  옵션:  -b (앞 공백 무시),  -o (저장 파일명),  -r (역순),  -f (대소문자 구분하지 않음),  -t (필드 구분자 지정),  -u (중복 행 제거),  -m (정렬 파일을 병합),  -n (숫자만 비교)
[LinuxMaster]# sort -b -u /etc/httpd/conf/httpd.conf | grep '^[a-z | A-Z]'

▶ cut  : 구분자를 이용하여 특정 필드를 추출하는 명령어

  • cut  <-옵션>  [파일명]
    ◦  옵션:  -b (바이트 수를 기준),  -c (문자열, 콤마와 하이픈으로 범위 지정),  -f (필드를 기준),  -d (구분 문자, 기본 값은 탭),  -z (라인의 구분자로 개행이 아닌 NULL을 이용)
[LinuxMaster]# cut -c 1-5 /etc/httpd/conf/httpd.conf | grep '^[a-z | A-Z]'

▶ split  : 여러개의 파일로 분리하여 저장

  • split  <-옵션>  [파일명]
    ◦  옵션:  -b (byte 단위로 분할),  -l (라인 수 단위로 분할)
[LinuxMaster]# split -l 30 /etc/httpd/conf/httpd.conf
[LinuxMaster]# ls
xaa  xab  xac  xad  xae  ...

▶ diff  : 파일을 라인 단위로 비교하여 표시

  • diff  <-옵션>  [파일A | 디렉터리A]  [파일B | 디렉터리B]
    ◦  옵션:  -b (연속 공백 무시),  -i (대소문자 구분 없음),  -S (동일한 파일인지 확인),  -r (디렉터리 차이점 출력)

▶ cmp  : 파일을 바이트(문자) 단위로 비교하여 표시

  • cmp  <-옵션>  [파일A]  [파일B]
    ◦  옵션:  -b (다른 바이트 출력),  -l (다른 문자 위치, 문자 출력),  -S (비교 결과만 표시)

▶ comm  : 파일을 라인 단위로 비교하여 표시

  • comm  <-옵션>  [파일A]  [파일B]
    ◦  옵션:  -1 (파일A에만 있는 내용 제외),  -2 (파일B에만 있는 내용 제외),  -3 (공통으로 존재하는 내용 제외)
728x90