본문 바로가기

학습 기록/리눅스 마스터 2급

[리눅스] 리눅스 기본 명령어(사용사 생성 및 계정 관리, 디렉터리 및 파일, 기타 명령어)

Section1. 사용자 생성 및 계정 관리

01. 리눅스 명령어 개요

[1] which

which 명령어

: 명령어의 경로를 확인하는 명령어

: 명령어 위치를 찾아주거나 alias를 보여주는 명령어

: $PATH가 설정되어 있는 경로에서만 해당 명령어의 경로를 찾음

 

 

[2] alias

alias [별명 = '명령어']

: 자주 사용하는 명령어를 특정 문자로 입력해 두고 명령어 대신 해당 문자를 사용함

 

 

[3] unalias

unalias [옵션] [단축명령어(별명)]

: alias 기능을 해제하는 명령어

 

* 옵션

  1. -a : 설정된 모든 alias 해제

 

 

[4] 환경변수 PATH

: PATH는 실행 파일들의 디렉터리 위치를 저장해 놓은 환경 변수

 

echo $PATH

: 지정된 PATH값 확인 (환경변수 경로를 출력)

 

export 변수명 = $ 변수명 : 변수값

: 기본의 PATH에 새로운 경로를 추가하는 방법으로 기존 경로와 새 경로를 콜론(:)으로 구분함

: 환경변수를 설정하는 것이 아닌 경로를 설정

: export는 설정하고 하는 변수를 환경 변수로 등록할 때 사용하며, 자식 프로세스에 변수를 전달하는 쉘 빌트인 명령임. 부모 프로세스에 영향을 주는 source의 반대 개념 명령어

 

 

02. 리눅스 도움말

[1] man

man [섹션] [옵션] 명령어

: 리눅스에서 사용하는 명령어들의 매뉴얼을 제공

 

* 옵션

  1. -a : 찾고자 하는 명령어의 검색된 매뉴얼 페이지를 모두 출력
  2. -h : 사용법 출력
  3. -f : whatis 명령어와 동일, 키워드와 동일한 man 페이지만 출력
  4. -k : apropos 명령어와 동일, 키워드가 포함된 man 페이지 출력
  5. -w : 찾고자 하는 문자의 매뉴얼 페이지가 있는 위치 출력

* 섹션 (관련 매뉴얼이 들어있는 영역)

  1. 1 : 일반 명령어 관련 매뉴얼
  2. 2 : 시스템 호출 관련 매뉴얼
  3. 3 : C 표준 라이브러리 함수 관련 매뉴얼
  4. 4 : 장치 드라이버 또는 특수 파일에 대한 정보
  5. 5 : 특정 파일들에 대한 저보
  6. 6 : 게임과 화면보호기에 대한 정보
  7. 7 : 리눅스 파일 표준, 프로토콜, 시그널 목록 정보
  8. 8 : 시스템 관리 명령어와 데몬 정보
  9. 9 : 커널 관리 정보

 

[2] info

info 명령어

: 리눅스 명령어의 상요 방법, 옵션을 나타냄

: GNU 프로젝트에 의해 배포된 온라인 매뉴얼

: 하이퍼텍스트 형식으로 관련 정보를 제공

: man 명령어에 비해 제공되는 명령어가 한정적

 

 

[3] whatis

whatis 명령어

: 명령어에 대한 기능을 간략이 출력

: 키워드가 완전히 일치해야 기능 확인 가능

 

 

[4] manpath

manpath [명령어]

: man 페이지의 위치 경로를 검색해 표시

 

 

[5] whereis

whereis [옵션] 명령어

: 찾고자 하는 명령어의 실행 파일 절대 경로와 소스코드, 설정 파일 및 매뉴얼 페이지를 찾아 출력

 

* 옵션

  1. -b : 바이너리 파일만 찾음
  2. -m : 지정된 매뉴얼 섹션에서만 찾음
  3. -M : 매뉴얼 페이지의 위치를 제한
  4. -u : 특정 파일을 제외

 

[6] appropos

appropos 문자열

: man 페이지 설명에서 지정한 키워드를 포함하고 있는 명령어

: whatis DB에서 문자열에 포함된 것을 검색하므로, whatis DB가 존재해야 사용 가능

 

* | grep [조건] : 조건을 사용하여 더 자세한 명령어 조회가 가능

 

 

03. 사용자 생성 명령어

[1] useradd

useradd [옵션] 계정명

: 계정을 생성하는 명령어로 adduser와 동일한 기능

: 생성된 계정 정보는 파일 /etc/passwd, /etc shadow, /etc/group에 저장

 

* 옵션

  1. -s. : 사용자의 로그인 기본 셸 지정
  2. -d : 게정의 홈 디렉터리 지정
  3. -f : 패스워드가 만기된 후 게정이 말소될 때까지의 기간 지정
  4. -e : 사용자 계정 유효기간을 지정, 임시 계정을 만들 때 이용
  5. -c : 파일 /etc/passwd에 새로운 사용자 설명 추가
  6. -G : 계정이 속한 그룹 외 다른 그룹에 계정 추가

 

[2] passwd

passwd [옵션] 계정명

: 생성된 계정자의 패스워드를 입력 및 변경

: /etc/shadow 파일 안에 기록

 

* 옵션

  1. -S : 계정 상태 표시
  2. -d : 계정 패스워드 삭제
  3. -l : 계정을 lock 상태로 변경
  4. -u : 계정의 lock 상태를 해제

 

[3] su

su [옵션] [사용자] [셸변수]

: 현재 사용자 계정에서 로그아웃하지 않고 다른 사용자 계정으로 로그인해 권한을 획득하는 명령어

 

* 옵션

  1. -, -l, --login : 지정한 사용자 환경변수를 적용해 로그인
  2. -s : 지정된 셀로 로그인
  3. -c : 셸을 실행하지 않고 명령어 수행

* 셸(Shell)

: 텍스트 기반에서 사용자가 원하는 작업을 실행하고 그 명령을 운영체제를 통해 수행하고 다시 사용자에게 결과를 출력해서 보여주는 것

: 운영체제를 둘러싸고 있으면서 입력 받는 명령어

 

 

04. 사용자 관련 파일

[1] 파일 /etc/default/useradd

: 명령어 useradd로 사용자 계정을 추가할 때 사용되는 정보를 읽어오는 파일

 

* 옵션

  1. GROUP : 새로 생성되는 계정이 기본적으로 소속될 그룹의 GID를 지정
  2. HOME : 새로 생성되는 계정의 홈 디렉터리 위치를 지정
  3. INACTIVE : 새로 생성되는 계정의 패스워드 사용 기간이 만료된 후 계정이 사용 불가능해지는 날을 지정하며, 0이면 바로 사용 불가능 -1이면 기능을 사용하지 않음
  4. EXPIRE : 새로 생성되는 계정의 패스워드 만료일을 지정(YYYY-MM-DD)
  5. SHELL : 새로 생성되는 계정의 기본 셸을 지정
  6. SKEL : 새로 생성되는 계정 사용자의 홈 디렉터리로 복사될 초기 환경설정 파일들이 저장된 디렉터리를 지정
  7. CREATE_MAIL_SPOOL : 새로 생성되는 게정의 메일 파일 저장 여부를 지정

: 파일 /etc/default/useradd은 vi편집기 또는 "useradd -D"로 변경

 

* 옵션

  1. -g : 그룹 변경
  2. -b : 홈 디렉터리 변경
  3. -f : INACTIVE 변경
  4. -e : 계정 종료일 변경
  5. -s : 셸 변경
  6. -D : 파일 내용 변경

 

[2] 파일 /etc/passwd

: 계정자의 정보를 가지고 있는 파일로 리눅스 로그인 시 사용

: 여러 개의 필드로 구성되어 있으며, 콜론(:)으로 각 필드를 구분

 

* 파일 내용

(1)username : (2)password : (3)uid : (4)gid : (5)comment : (6)homedirectory : (7)shell
  1. username : 사용자 이름
  2. password : 암호화된 비밀번호로 pwconv가 활성화 되어 있는 경우는 x로 표시되며 실제 패스워드는 /etc/shadow 파일에 나타나며, pwunconv가 활성화되어 있는 경우 /etc/passwd 필드에 패스워드가 나타남
  3. uid : 사용자의 UID로, 사용자를 관리하기 위해 사용자에게 부여한 번호
  4. gid : 사용자의GID로, 사용자가 속한 그룹에 부여한 번호
  5. comment : 설명문
  6. homedirectory : 사용자의 홈 디렉터리
  7. shell : 실행할 프로그램

 

[3] 파일 /etc/shadow

: 계정자의 패스워드 정보가 암호화되어 있는 파일로 암호화 패스워드 및 계정의 유효 기간 등을 기록하고 있는 파일

 

* 파일 내용

(1)username : (2)password : (3)lastchange : (4)mindays : (5)maxdays : (6)warndays : (7)inactive : (8)expire : (9)flag
  1. username : 사용자명
  2. password : 암호화된 비밀번호로 역으로 풀 수 없음
  3. lastchange : 최근 비밀번호 변경일
  4. mindays : 비밀번호 변경 후 재설정을 위한 대기일 수
  5. maxdays : 비밀번호 유효기간
  6. warndays : 비밀번호 변경 경고 시간
  7. inactive : 비밀번호 유예기간
  8. expire : 비밀번호 만료와 상관없이 계정을 사용할 수 없게 되는 일
  9. flag : 나중에 사용하기 위해 예약으로 세팅되어 있고 현재는 사용되지 않으며 0으로 지정

 

[4] 파일 /etc/login.defs

: 사용자 계정 설정과 관련된 기본값을 정의한 파일

: 새로운 계정 생성 시 반드시 참조하는 파일

 

* 파일 구성 내용

  1. MAIL_DIR : 메일 디렉터리 지정
  2. PASS_MAX_DAYS : 패스워드 변경없이 사용할 수 있는 최대일자
  3. PASS_MIN_DAYS : 패스워드 설정 후 최소 사용기간
  4. PASS_MIN_LEN : 패스워드의 최소 바이트 수
  5. PASS_WARN_AGE : 패스워드 만료 경고일 지정
  6. UID_MIN : 생성할 수 있는 UID 시작번호
  7. UID_MAX : 생성할 수 있는 최대 UID 번호
  8. GID_MIN : 새로 생성되는 그룹의 GID 시작번호
  9. GID_MAX : 새로 생성되는 그룹에서 지정할 수 있는 최대 GID 번호
  10. CREATE_HOME : 홈 디렉터리 생성 여부

 

05. 사용자 계정 관리

[1] usermod

: 디렉터리 /home에 위치한 사용자들의 정보를 변경하는 명령어

usermod [옵션] 계정명

 

* 옵션 

  1. -u uid : 새로운 UID 지정하며, -o 옵션과 같이 사용 시 강제 설정 가능
  2. -g : 새로운 GID 지정 또는 변경
  3. -G : 새로운 보조그룹 지정
  4. -d 홈 디렉터리 : 새로운 홈 디렉터리를 지정하며, -m 옵션과 같이 사용 시 새로 생성 가능
  5. -s 셸 : 새로운 셸 지정
  6. -c 주석 : 새로운 주석 지정
  7. -l ID : 로그인 ID를 바꾸는 옵션으로 새로운 게정명으로 변경

 

 

[2] userdel

: 기존 계정 정보를 삭제하는 명령어

: 옵션 없이 사용할 경우 /etc/passwd, /tec/shadow, /etc/group에서 해당 계정 정보 삭제

userdel [옵션] 계정명

 

* 옵션

  1. -r : 계정명의 /var/spootl/mail의 메일 파일과 홈 디렉터리의 내용 모두를 삭제

 

 

[3] change

change [옵션] [계정명]

: 패스워드의 만료 정보를 변경하는 리눅스 명령어

 

* 옵션

  1. -l : 사용자 계정 정보 출력
  2. -m : 설정 암호 최소 사용 일자
  3. -M : 설정 암호 사용 가능 일자
  4. -E : 암호 만기일 지정
  5. -W : 만기 전 변경 요구 경고 날짜 지정

 

06. 그룹관리

 [1] 파일 /etc/group

(1)groupname : (2)password : (3)gid : (4)members
  1. groupname : 그룹명
  2. password : 그룹 비밀번호(x로 되어 있음)
  3. gid : 그룹 번호
  4. members : 그룹 멤버 리스트로 여러 멤버가 존재할 경우 콤마(,)로 구분

: 사용자 그룹에 대해 정의되어 있는 파일

: 모든 계정은 한 개 이상의 그룹에 포함

 

 

[2] 파일 /etc/gshadow

: 그룹의 암호를 MD5로 하여 저장하며 그룹의 소유주, 구성원 설정이 가능

: 그룹명 : 그룹 암호(!는 부여되지 않음을 의미) : 그룹의 소유주 : 그룹 구성원

 

 

[3] groupadd

groupadd [옵션] 그룹명

: 새로운 그룹을 생성

 

* 옵션

  1. -g gid : 그룹에 gid 지정
  2. -r : 시스템 그룹 생성 시 사용하며, 500번 이하 값 지정

 

[4] groupdel

groupdel 그룹명

: 기존의 그룹을 삭제

: 그룹에 소속된 계정이 있을 경우 삭제 불가

 

 

[5] groupmod

groupmod [옵션] 그룹명

: 그룹의 설정을 변경

 

* 옵션

  1. -g gid : gid를 변경하며, -o 옵션과 함께 사용 시 중복 설정 가능
  2. -n 그룹명 : 새로운 그룹명을 변경할 때 사용하며, 변경할 그룹명 기존 그룹명 순서로 작성

 

 

07. 사용자 조회 명령어

[1] users

users [옵션]

: 시스템에 로그인한 사용자 정보를 출력

 

* 옵션

  1. --version : users 명령어 버전 정보 출력

 

** who와 w 명령어 사용시 어떤 정보를 얻고자 하는지 확인 후 적절한 것 사용

[2] who

who [옵션]

: 현재 시스템에 접속해 있는 사용자들을 조회

: 사용자 계정명, 터미널 정보, 접속 시간, 접속한 서버 정보 등 확인 가능

: 관리자 root와 일반 사용자 모두 사용 가능

: 명령어 'who am i', 'whoami'는 자신의 정보를 조회

 

* 옵션

  1. -b : 마지막 시스템 부팅 시간 출력 
  2. -q : 로그인한 사용자와 사용자 수를 모두 출력
  3. -r : 현재 시스템의 실행 레벨을 확인 가능

 

[3] w

: 현재 접속 중인 사용자들의 정보를 나타냄

: 확인 가능 정보는 서버의 현재 시간 정보, 서버 부팅 후 시스템 작동 시간, 서버 접속자의 총 수, 접속자별 서버 평균 부하율, 접속자별 서버 접속 계정명, TTY명, 로그인 시간 정보 등임

: JCPU - TTY필드의 장치명에서 사용되는 모든 프로세스의 CPU 사용 시간

: PCPU - WHAT 필드에 나타나는 프로세스명에서 사용하는 CPU 총 사용 시간

 

 

[4] id

id [옵션] [계정명]

: 사용자 계정의 uid, gid, group을 확인

 

* 옵션

  1. -g : 사용자의 GID만 표시
  2. -G : 사용자가 포함되어 있는 모든 그룹 정보 표시
  3. -u : 사용자의 UID만 표시

 

[5] groups

groups [계정명]

: 사용자 계정이 속한 그룹 목록을 확인

 

 


 

Section2. 디렉터리 및 파일

01. 디렉터리 관리 명령어

[1] pwd

: 현재 작업 중인 디렉터리의 위치를 나타냄

 

[2] cd

cd [상대경로 | 절대경로] [설정경로]

: 디렉터리를 이동할 때 사용

: 절대 경로는 시작 위치와 상관없이 경로에 모든 디렉터리를 표시하며, 절대 경로의 시작 위치는 /(루트)에서 시작

: 상대 경로는 현재 작업 중인 디렉터리를 기준으로 표시하는 경로

 

* 설정 경로

  1. ~ : 현재 사용자의 홈 디렉터리로 이동
  2. . (점 하나) : 현재 디렉터리
  3. .. (점 둘) : 현재에서 한 단계 상위 디렉터리로 이동
  4. / : 루트 디렉터리로 이동

 

[2] mkdir

mkdir [옵션] 디렉터리 명

: 새로운 디렉터리를 생성할 때 사용

 

* 옵션

  1. -m : 디렉터리를 생성할 때 권한을 설정 (디폴트는 755)
  2. -p : 상위 경로 생성
  3. -v : 디렉터리 생성 후 생성된 디렉터리의 메시지 출력

 

[4] rmdir

rmdir 디렉터리명

: 디렉터리만 삭제하는 명령어

: 디렉터리 내 파일이 존재하는 경우 삭제되지 않음

 

 

02. 파일 관련 명령어

[1] ls

ls [옵션] [경로명]

: 현재 위치한 디렉터리의 파일 목록들을 출력

 

* 옵션

  1. -a : 히든 파일을 포함한 모든 파일과 디렉터리 표시
  2. -l : 퍼미션, 크기, 사이즈 등의 자세한 정보 표시
  3. -d : 지정된 디렉터리의 정보 출력
  4. -r : 알파벳 역순으로 정보 출력
  5. -R : 하위 경로와 그 안에 있는 파일 표시
  6. -i : 각 파일의 인덱스 값 출력
  7. -F : 파일의 특성에 따라 끝에 특수문자를 덧붙여 출력
  8. -z : 각 파일이나 블록에 할당된 크기를 출력
  9. -Z : 각 파일의 SELinux 보안 컨텍스트를 출력

 

[2] cp

cp [옵션] 원본 대상 [복사할 파일명 or 디렉터리 명]

: 파일 또는 디렉터리를 복사

 

* 옵션

  1. -b : 복사 대상 파일이 이미 존재할 경우를 대비해 백업 파일 생성 
  2. -f : 복사 대상이 이미 존재하면 복사 대상 파일을 강제로 지우고 복사
  3. -i : 복사 대상이 이미 존재하면 사용자에게 덮어씌울 것인지 유무 확인
  4. -r : 디렉터리를 복사할 경우 하위 디렉터리와 파일을 모두 복사

 

[3] rm

rm [옵션] 파일명 | 디렉터리 명

: 파일 또는 디렉터리를 삭제하는 명령어

 

* 옵션

  1. -f : 질의 메시지 없이 강제로 파일이나 디렉터리 삭제
  2. -i : 삭제 시 사용자에게 질의
  3. -r : 삭제 디렉터리가 포함하고 있는 하위 디렉터리를 포함하여 모든 파일 삭제

 

[4] mv

mv [옵션] 원본 대상

: 파일 또는 디렉터리를 이동할 때 사용

: 파일명을 변경할 때 사용

 

* 옵션

  1. -b : 대상 파일이 이미 있어 지워지는 것을 대비해 백업 파일 생성
  2. -f : 대상 파일이 이미 있어도 사용장게 어덯게 처리할 지 묻지 않음
  3. -v : 파일이 옮겨지는 과정이 자세히 표시

 

[5] touch

touch [옵션] 파일명

: 파일 크기가 0바이트인 빈 파일 생성

: 서버의 현재 시간으로 파일의 최근 사용한 시간과 최근 수정 시간 등 타임 스탬프를 변경

  • 접근시간 : 애플리케이션이나 서비스가 시스템 호출을 사용해 파일을 읽을 때 마다 접근 시간 갱신
  • 수정시간 : 파일 내용이 변경될 때 파일 수정 시간 갱신
  • 변경시간 : 파일 내용을 수정했을 때 기록되는 시간으로 변경 불가능

* 옵션

  1. -a : 접근시간을 변경
  2. -m : 수정시간을 변경
  3. -c : 시스템 현재 시간으로 파일 시간 정보 수정
  4. -t 시간정보 : 특정 파일의 시간 정보 변경
  5. -r 파일1 파일2 : 파일1의 시간 정보를 파일2에 동일하게 적용

 

[6] file

file [옵션] 파일명

: 파일의 종류 및 파일 속성값을 나타냄

 

* 옵션

  1. -b : 파일명은 출력하지 않고 파일 유형만 표시
  2. -f : 파일 목록에서 지정한 파일들에 대해서만 명령을 실행
  3. -z : 압축된 파일의 내용 출력
  4. -i : MIME 타입 문자로 출력

 

[7] find

find [경로] [옵션] [정규표현식] [파일명]

: 현재 디렉터리에서부터 하위 디렉터리까지 주어진 조건의 파일을 찾아 해당 경로를 표시

 

* 옵션

  1. -name : 이름을 기준으로 파일 검색
  2. -user : user의 파일이나 디렉터리 검색
  3. -perm : 지정된 권한의 파일 검색
  4. -type : 파일 유형에 따라 파일 검색
  5. -atime n : n일 이전에 접근한 파일 검색
  6. -exec : 검색된 파일에 수행할 명령어 저장

* 옵션 예시

  • find /etc -name "*.conf" : /etc에 확장자 conf 파일 검색
  • find ~ -perm 644 : 허가권이 644인 파일 검색
  • find /bin -size +10K -size -100K : + 를 붙이는 경우 크기가 10kbyte 이상인 것을 찾고 -100kbyte 이하를 찾으며, 부호가 없는 경우 지정된 크기의 파일을 검색
  • find ~ -size 0K -exec -l {} |; : 사용자 홈 디렉터리 하위에서 파일 크기가 0인 파일 목록을 상세히 출력
  • find /home -name "*.swp" -exec rm {} |; : /home 홈 디렉터리 하위에 확장자 swp 파일 삭제

 

[8] locate

locate [파일명]

: 파일의 위치를 찾는 명령어

 

 

03. 텍스트 파일 관련 명령어

[1] cat

cat [옵션] [파일]

: 파일의 내용을 출력

 

* 옵션

  1. -n : 각 문장 앞에 번호 표시, 비어있는 행 포함
  2. -b : 각 문장 앞에 번호 표시, 비어있는 행 제외
  3. -s : 연속되는 2개 이상의 빈 행을 한 행으로 출력
  4. -A : 텍스트 파일에 졵재하는 개행 문자나 탭 문자 등을 확인

 

[2] head

head [옵션] 파일명

: 파일의 앞부분을 저장한 만큼 출력

 

* 옵션

  1. -c : 출력을 원하는 용량 지정, 지정된 숫자 바이트만큼의 문자 출력
  2. -숫자 or -n 숫자 : 출력을 원하는 줄 수 지정, 옵션이나 숫자를 지정하지 않으면 기본적으로 10개씩 출력

 

[2] tail

tail [옵션] 파일명

: 파일의 마지막 행을 기준으로 지정한 행까지의 파일 내용 일부를 출력

 

* 옵션

  1. -c : 출력을 원하는 용량 지정
  2. -숫자 or -n 숫자 : 출력을 원하는 줄 수 지정, 옵션이나 숫자를 지정하지 않으면 기본적으로 10개씩 출력
  3. -f : 지정된 파일에 새롭게 추가되는 파일 내용을 실시간으로 출력
  4. -v : 파일을 출력할 때 파일명을 표시
  5. -q : 파일을 출력할 때 파일명을 표시하지 않음

 

[4] more

more [옵션] 파일명

: 파일을 확인하는 명령어로 파일을 화면 단위로 끊어서 출력

: 위에서 아래 방향으로만 출력되며, 지나간 내용을 다시 볼 수 없음

: 명령어 실행 상태에서 키 입력으로 다양한 작업 수행 가능

 

* 키 입력

  1. space Bar : 다음 페이지로 전환
  2. Enter : 한 줄씩 출력
  3. Ctrl + D : 빈 페이지 출력
  4. Ctrl + B : 이전 페이지 출력
  5. Q : 종료
  6. /패턴 : 지정한 패턴의 문자열 검색

 

* 옵션

  1. -숫자 : 한 페이지에 표시되는 라인 수

 

[5] less

: 텍스트 파일을 한 번에 한 화면씩 나타내는 명령어

: 기능적으로 more을 확장한 것으로 커서를 파일의 상하좌우로 이동 가능함

 

 

[6] grep

grep [옵션] 문자열 파일명

: 파일에서 특정한 패턴(문자열) 또는 정규 표현식으로 나타낸 단어를 찾는 명령어

 

* 옵션

  1. -r : 디렉터리 내의 모든 디렉터리와 파일들을 검색하도록 지정
  2. -E : 패턴을 정규 표현식으로 확정
  3. -i : 대문자, 소문자 차이 무시
  4. -v : 검색할 문자열이 포함되지 않은 줄만 출력
  5. -n : 라인 수 출력 (해당 단어가 포함된 행 번호가 출력됨을 의미)
  6. -l : 문자열이 포함된 파일명 출력

* 사용 예시

  • grep -n 'rm' config : 파일 config에서 'rm'이 들어간 문자열과 행 번호 검색
  • grep -l 'rm' * : 현재 디렉터리에서 'rm'이라는 문자열이 들어간 파일 이름 검색
  • grep '^a' config : 파일 config에서 'a'로 시작하는 행을 검색
  • grep 'apple$' config : 파일 config에서 'apple'로 끝나는 행을 검색
  • grep 'appl*' config : 파일 config에서 'appl'로 시작하는 모든 단어를 검색 혹은 'appl'을 포함한 행 검색
  • grep 'apple' c* : c로 시작하는 모든 파일에서 'apple'을 포함하는 모든 행 검색
  • grep '^[ab]' config : 파일 config에서 'a'나 'b'로 시작되는 모든 행 검색

 

[7] wc

wc [옵션] 파일명

: 파일의 라인 수, 단어 수, 알파벳 수를 알려주는 명령어

: 옵션을 통해 원하는 것만 선택하여 출력 가능

 

* 옵션

  1. -l : 전체 라인 수 출력
  2. -w : 전체 단어 수 출력
  3. -c : 전체 문자(알파벳) 수 출력

 

[8] sort

sort [옵션] 정렬할 파일명

: 명령어 결과나 문서 내용을 정렬하는 명령어

 

* 옵션

  1. -b : 앞 공백 무시
  2. -o : 저장할 파일 명시
  3. -r : 역순으로 표시
  4. -f : 대소문자 구분X
  5. -t : 필드 구분자 지정
  6. -u : 중복 행 제거
  7. -m : 정렬 파일 병합
  8. -n : 숫자만 비교

 

[9] cut

cut [옵션] 파일명

: 파일에서 특정 필드를 추출

 

* 옵션

  1. -c : 잘라낼 곳의 글자 위치를 지정, 콤마나 하이픈을 사용하여 범위 지정
  2. -f : 잘라낼 필드 지정
  3. -d : 필드를 구분하는 문자 지정, 디폴트는 탭
  4. -s : 대소문자 구분하지 않음

 

[10] split

split [옵션] 파일명

: 하나의 파일을 여러 개의 작은 파일로 분리

: 파일의 내용을 라인 수로 분할할 수 있고, 용량 단위로 분할할 수 있음

 

* 옵션

  1. -b : 파일을 byte 단위로 분할 
  2. -l : 파일을 주어진 라인 수 단위로 분할

 

[11] stty

: 키보드를 이용하여 사용하는 유용한 키를 설정하는 명령행 편집 기능 명령어

 

[12] set

: 환경변수를 설정하거나 설정된 정보를 확인하는 명령어

 

 

04. 파일 비교 명령어

[1] diff

diff [옵션] 파일명1 파일명2 또는 diff [옵션] 디렉터리1 디렉터리2

: 두 개일 파일을 행 단위로 비교하여 다른 부분을 출력하는 명령어

: 두 개의 파일명을 매개변수로 사용하여 화면에 차이점 나열

 

* 옵션

  1. -b : 연속된 공백 무시 
  2. -i : 대소문자를 구분하지 않음
  3. -s : 두 파일이 같은지 확인
  4. -r : 두 디렉터리 차이점 출력

 

[2] cmp

cmp [옵션] 파일명1 파일명2

: 두 개의 파일을 바이트 단위로 비교하여 출력하는 명령어

 

* 옵션

  1. -b : 두 파일 간의 다른 바이트를 출력
  2. -ㅣ : 두 파일 간의 다른 문자 위치와 문자를 출력
  3. -s : 아무 것도 출력하지 않고 실행 결과 코드만 반환

 

[3] comm

comm [옵션] 파일1 파일2

: 두 개의 파일을 줄 단위로 비교하여 출력

 

* 옵션

  1. -1 : '파일1'에만 있는 내용을 제외하고 내용 출력
  2. -2 : '파일2'에만 있는 내용을 제외하고 내용 출력
  3. -3 : '파일1'과 '파일2'에 공통으로 존재하는 내용을 제외하고 출력

 

05. 리다이렉션과 정규 표현식

[1] 리다이렉션

: 표준 입력과 표준 출력의 방향을 재지정

: 표준 입력/출력/에러가 화면이 아닌 파일로 대체

 

* 리다이렉션 연산자

  1. > : 명령을 화면에 출력하는 것이 아니라 프린터나 파일에 출력하도록 전송, 파일이 존재하지 않으면 새로운 파일을 만들고 같은 파일이 존재하면 덮어씀
  2. >> : 파일이 있는 경우 지정된 파일에 결과를 추가하며, 파일이 존재하지 않으면 지정된 이름으로 파일 생성
  3. < : 키보드가 아닌 지정된 파일에서 입력 내용을 읽어옴
  4. >& : 명령의 출력을 다른 명령의 입력으로 보냄
  5. <& : 명령의 입력을 읽고 다른 명령의 출력으로 보냄

 

[2] 파이프(Pipe)

: 둘 이상의 명령을 함께 묶어 출력 결과를 다른 프로그램의 입력으로 전환하는 기능

: 현재 명령의 표준 출력을 다음 명령의 표준 입력으로 사용

: 명령어와 명령어의 연결은 '|' 기호 사용

: 명령어1의 출력 결과는 명령어2의 입력으로 처리되며 명령어2의 처리 결과는 명령어3의 입력이 됨

 

 

[3] 정규 표현식

  • ^ : 라인의 첫 글자
  • $ : 라인의 끝 글자
  • . : 한 글자
  • * : * 기호 바로 이전의 글자나 정규표현식이 0히 이상 반복
  • [] : 대체 글자 목록을 []에 나열, "-"로 문자 범위 지정
  • [^] : 대체 못할 글자 목록을 [^]에 나열, "-"로 문자 범위 지정
  • + : + 기호 바로 이전 글자나 정규 표현식이 1회 이상 반복
  • ? : ? 기호 바로 이전 글자나 정규 표현식이 없거나 1회만 존재
  • () : 부분 정규 표현식의 시작과 끝을 표시
  • | : |로 구분된 단어들 중 최소 하나 존재
  • {m,n} : {} 기호 바로 이전 글자나 정규 표현식이 m개 이상n개 이하 반복

 


 

 

Section3. 기타 명령어

01. 네트워크 관련 명령어

[1] ping

ping [옵션] [도메인명 혹은 IP주소]

: 외부 호스트에 신호를 보내며 신호를 받은 호스트를 응답을 주면서 서로 네트워크가 연결되어 있음을 확인

 

* 옵션

  1. -c [요청수] : ping을 보낼 횟수 (생략될 경우 무제한 실행)
  2. -i [초] : 신호를 보내는 시간 간격 (생략될 경우 1초 단위로 실행)
  3. -s [패킷 크기] : 전송하는 패킷 크기를 byte 단위로 설정

 

[2] traceroute

traceroute [도메인명 혹은 IP주소]

: 목적지 호스트까지의 경로를 표시하고 그 구간의 정보를 기록

: 패킷 전송 지역을 측정하거나, 호스트로 향하는 경로 상의 장애 위치 파악 가능

 

[3] nslookup

nslookup [옵션] [호스트명]

: 도메인명으로 IP주소를 조회하거나 IP주소로 도메인명을 조회

 

* 옵션

  1. -type=레코드 : 레코드 타입 지정

* 레코드 타입

  • NS : 도메인의 네임서버 정보
  • MX : 도메인의 MX(Mail Exchange) 서버
  • A : 호스트의 IP주소
  • CNAME : 별칭으로 부여된 canonical name
  • SOA : 도메인의 start-of-authority 정보
  • PRT : IP주소에 대한 호스트명

 

[3] dig

dig [서버명] [호스트명] [질의타입]

: 호스트명에 대한 IP 주소 정보 혹은 IP 주소에 대한 호스트명을 조회

: 명령어 nslookup과 유사한 기능

: 서버명은 확인하고자 하는 네임 서버를 지정하는 것이며 이를 지정하지 않을 경우 '/etc/resolv'에 등록된 네임 서버를 이용해 루트 서버 조회

 

* 질의 타입

  • a : 도메인 IP 주소
  • any : 지정된 도메인의 모든 정보
  • mx : 지정된 도메인의 메일 서버 정보
  • ns : 네임 서버 정보
  • soa : SOA 정보

 

[5] host

host [옵션] [도메인 또는 IP 주소] [DNS 서버]

: 호스트명 혹은 IP 주소 중 하나만 아는 경우 사용

: 호스트명을 사용할 경우 IP 주소 뿐 아니라 하위 호스트명 조회 가능

: 호스트는 등록된 DNS 서버를 이용해 검색하나, 다른 DNS 서버 이용 시 따로 지정 가능

 

* 옵션

  1. -d : 디버깅 보드로 출력
  2. -l zone : zone 아래 모든 시스템 출력
  3. -r : 반복 처리 X
  4. -t type : type을 지정해 정보를 얻음

 

[6] hostname

hostname [옵션] [파일명]

: 시스템 이름을 확인하거나 변경할 때 사용

 

* 옵션

  1. -a : 별칭 출력
  2. -d : 도메인명 출력
  3. -F : 지정한 파일에서 호스트명 설정
  4. -v : 호스트 설정이나 호스트명을 자세히 출력

 

02. 시스템 종료 명령어

[1] shutdown

shutdown [옵션] 시간 [경고메시지]

: 시스템을 종료하거나 재부팅

: root 사용자만 권한을 가짐

: 수행중인 프로세스들을 종료하며, sync를 수행해 저장되지 않은 데이터를 디스크에 저장하고 모든 파일 시스템을 mount 시킨 후 시스템 종료

 

* 옵션

  1. -r : 종료 후 재부팅
  2. -h : 시스템 종료
  3. -c : 진행 중인 shutdown 명령 취소
  4. -k : 경고 메시지만 출력하고, shutdown 하지 않음
  5. -f : 재부팅 시 fsck 명령을 생략하고 부팅을 빠르게 진행
  6. -n : init를 호출하지 않고 shutdown
  7. -t sec : 지정 시간에 시스템 재시동

* 기타 예시

  • shutdown -h now : 즉시 종료
  • shutdown -h +5 : 5분 후 종료
  • shutdown -r now : 즉시 재부팅
  • shutdown -r 10:00 : 10시에 재부팅
  • shutdown -h 10:00 : 10시에 종료

 

[2] init

init 런레벨

: shutdown과 동일한 기능

 

* 런레벨

  • 레벨 0 : 지금 즉시 종료
  • 레벨1 : 단일 사용자 복구 모드로 재시작
  • 레벨2 : 다중 사용자 모드(NFS 사용 불가로 서버와 공유 안됨)
  • 레벨3 : 텍스트 모드로 재시작
  • 레벨4 : 사용 안함
  • 레벨5 : X윈도우 모드로 재시작
  • 레벨6 : 재가동 모드(재부팅)

 

[3] reboot

reboot [옵션]

: 시스템을 재부팅

 

* 옵션

  1. -f : 시스템 강제 재부팅

 

[3] halt

halt [옵션]

: 시스템을 종료

 

* 옵션

  1. -f : 시스템 강제 종료

 

03. 기타 명령어

[1] cal(calender)

cal [옵션] [[month] year]

: 시스템에 설정된 달력 출력

: 옵션 없이 실행 시 현재 시스템 날짜로 기록된 달 출력

 

* 옵션

  1. -i : 1월 1일부터 날짜수를 계산해 출력
  2. -y : -y : 올해의 달력을 출력

 

[2] date

date [옵션] [MMDDhhmm [CC][YY][.ss]]  또는 date [옵션] [+FORMAT]

: 시스템의 날짜와 시간을 표시하거나 변경

 

* 옵션

  1. -s : 시간 설정 순서는 'hh:mm:ss'
  2. -y : 올해의 달력을 출력

* rdate -s : 지정된 서버와 현재 시스템의 날자와 시간을 동기화

 

 

[3] clear

: 터미널의 내용을 지움

 

 

[4] cls

: 화면을 지움

 

[5] stty

: 프롬포트 설정을 변경

 

 

[6] tty

: 현재 사용하고 있는 단말기 장치의 경로명과 파일명 출력

: 동일한 계정으로 여러 개 로그인한 경우 확인 시 유용

 

 

[7] time

: 프로그램이 수행되는데 걸리는 시간을 측정해 출력

: 명령어 실행 시간 측정이 가능해 셸스크립트 작성 혹은 성능 체크에 유용

 

 

[8] hwclock

: 하드웨어 시간 정보 출력

 

 

[9] wall

wall <메시지 내용>

: 모든 로그인된 사용자들에게 터미널을 통해 메시지 전달

 

 

[10] write

write 계정명 [ttyname]

: 해당 사용자에게 메시지를 전달

 

 

[11] mesg

mesg [y/n]

: write를 통해 들어오는 메시지 수신 여부를 확인하고 제어