리눅스 마스터 2급 대비 정리(3) (리눅스의 기본 명령어 - 사용자 생성 및 계정 관리, 디렉터리 및 파일, 기타 명령어)
2023년08월15일 41분읽었습니다.
리눅스 마스터 2급 시험 대비를 위해 관련 책을 바탕으로 내용들을 정리하는 포스트입니다. 이번 포스트는 리눅스의 기본 명령어를 이해하는 파트로 사용자 생성 및 계정 관리, 디렉터리 및 파일, 기타 명령어에 대해 알아보겠습니다.
개요
이번 포스트는 사용자 생성 및 계정 관리, 디렉터리 및 파일, 기타 명령어에 대해 알아보겠습니다.
참고한 책은 2023 이기적 리눅스 마스터 2급 기본서 - 권소라 저, 영진닷컴입니다. 실습한 리눅스 버전은 CentOS 7이고, ISO 명은 CentOS-7-x86_64-Minimal-2009.iso입니다.
목차
- 사용자 생성 및 계정 관리
- 디렉터리 및 파일
- 기타 명령어
사용자 생성 및 계정 관리
리눅스 명령어 개요
명령어 | 형식 | 설명 | |
---|
which | which 명령어 | 명령어의 경로를 확인할 때 사용하는 명령어, $PATH가 설정되어 있는 경로에서만 해당 명령어의 경로를 찾음 | |
alias | alias [별명=’명령어’] | 자주 사용하는 명령어를 특정 문자로 입력해 두고 명령어 대신 해당 문자를 사용할 수 있게 하는 명령어 | |
unalias | unalias [옵션(-a) | 단축명령어] | alias 기능 해제 |
PATH | export 변수명=$변수명:변수값 | 기존 PATH에 새로운 경로 추가, PATH는 실행 파일들의 디렉터리 위치를 저장해 놓은 환경 변수 | |
리눅스 도움말
명령어 | 형식 | 설명 |
---|
man | man [섹션] [옵션] 명령어 | 리눅스에서 사용하는 명령어들의 메뉴얼을 제공 |
info | info 명령어 | 리눅스 명령어의 사용 방법, 옵션등을 나타냄, man에 비해 제공되는 명령어가 한정적임 |
whatis | whatis 명령어 | 명령어에 대한 기능을 간략하게 나타냄 |
manpath | manpath [명령어] | man 페이지의 위치 경로를 검색해 표시해 주는 명령어 |
whereis | whereis [옵션] 명령어 | 찾고자 하는 명령어의 실행 파일 절대 경로와 소스코드, 설정 파일 및 메뉴얼 페이지를 찾아 출력하는 명령어 |
apropos | apropos 문자열 | man 페이지 설명에서 지정한 키워드를 포함하고 있는 명령어로 whatis DB에서 문자열을 포함한 것을 검색하고, 해당 DB가 만들어져 있어야 이 명령을 쓸 수 있음 |
man 명령어 옵션
옵션 | 설명 |
---|
-a | 찾고자 하는 명령어의 검색된 메뉴얼 페이지를 모두 출력 |
-h | 사용법을 출력 |
-f | whatis 명령어와 동일한 역할을 함, 키워드와 동일한 man 페이지만 출력 |
-k | apropos 명령과 동일, 키워드가 포함된 man 페이지 출력 |
-w | 찾고자 하는 문자의 메뉴얼 페이지가 있는 위치 출력 |
1 | 일반 명령어 관련 메뉴얼이 들어있는 영역 |
2 | 시스템 호출 관련 메뉴얼이 들어있는 영역 |
3 | C 표준 라이브러리 함수 관련 메뉴얼이 들어있는 영역 |
4 | 장치 드라이버 또는 특수 파일에 대한 정보가 들어있는 영역 |
5 | 특정 파일들에 대한 정보가 들어있는 영역 |
6 | 게임과 화면보호기에 대한 정보가 들어있는 영역 |
7 | 리눅스 파일 표준, 프로토콜, 시그널 목록 정보가 들어있는 영역 |
8 | 시스템 관리 명령어와 데몬 정보가 들어있는 영역 |
9 | 커널 관리 정보가 들어있는 영역 |
whereis 명령어 옵션
옵션 | 설명 |
---|
-b | 바이너리 파일만 찾음 |
-m | 지정된 메뉴얼 섹션에서만 찾음 |
-M | 메뉴얼 페이지의 위치를 제한 |
-u | 특정 파일을 제외 |
사용자 생성 명령어
명령어 | 형식 | 설명 |
---|
useradd | useradd [옵션] 계정명 | 계정을 생성하는 명령어로 adduser와 동일한 기능을 가짐 |
passwd | passwd [옵션] 계정명 | 생성된 계정자의 패스워드를 입력 및 변경하는 명령어 |
su | su [옵션][사용자][셸변수] | switch user의 줄임말로 현재 사용자 계정에서 로그아웃하지 않고 다른 사용자 계정으로 로그인해 해당 사용자의 권한을 획득하는 명령어 |
useradd 명령어 옵션
옵션 | 설명 |
---|
-s | 사용자의 로그인 기본 셸을 지정 |
-d | 계정의 홈 디렉터리를 지정 |
-f | 패스워드가 만기된 후 계정이 영구히 말소될 때까지의 기간 지정 |
-e | 사용자 계정의 유효기간을 설정, 일정 시간 동안 사용 가능한 임시 계정을 만들고자 할 때 사용 |
-c | 파일 /etc/passwd에 새로운 사용자 설명을 추가 |
-G | 계정이 속한 그룹 외의 다른 그룹에 계정 추가 |
passwd 명령어 옵션
옵션 | 설명 |
---|
-S | 계정 상태 표시(PS: 정상, NP: 패스워드 없음, LK: Lock 상태이거나 NP 상태) |
-d | 계정 패스워드 삭제 |
-l | 계정을 lock 상태로 변경 |
-u | 계정의 lock 상태를 해제 |
su 명령어 옵션
옵션 | 설명 |
---|
-, -l, –login | 지정한 사용자의 환경변수를 적용하여 로그인 |
-s | 지정된 셸로 로그인 |
-c | 셸을 실행하지 않고 주어진 명령어 수행 |
사용자 관련 파일
파일명 | 설명 |
---|
/etc/default/useradd | useradd 명령어로 사용자 계정을 추가할 때 사용되는 정보를 읽어오는 파일 |
/etc/passwd | 계정자의 정보를 가지고 있는 파일로 리눅스에 로그인할 때 사용됨 |
/etc/shadow | 계정자의 패스워드 정보가 암호화되어 있는 파일로 암호화 패스워드 및 계정의 유효 기간등을 기록하고 있는 파일 |
/etc/login.defs | 사용자 계정 설정과 관련된 기본값을 정의한 파일, 새로운 계정을 생성할 때 반드시 참조하는 파일 |
useradd 파일 옵션
옵션 | 설명 |
---|
GROUP | 새로 생성되는 계정이 기본적으로 소속될 그룹의 GID를 저장 |
HOME | 새로 생성되는 계정의 홈 디렉터리 위치 저장 |
INACTIVE | 새로 생성되는 계정의 패스워드 사용 기간이 만료된 후 계정이 사용 불가능해지는 날을 지정, 0이면 바로 사용불가능, -1이면 기능을 사용하지 않음 |
EXPIRE | 새로 생성되는 계정의 패스워드 만료일을 지정, 지정방식은 YYYY-MM-DD |
SHELL | 새로 생성되는 계정의 기본 셸을 지정 |
SKEL | 새로 생성되는 계정 사용자의 홈 디렉터리로 복사될 초기 환경설정 파일들이 저장된 디렉터리를 지정 |
CREATE_MAIL_SPOOL | 새로 생성되는 계정의 메일 파일 저장 여부를 지정 |
-g | 그룹 변경 |
-b | 홈 디렉터리 변경 |
-f | INACTIVE 변경 |
-e | 계정 종료일 변경 |
-s | 셸 변경 |
passwd 파일 옵션\n \n ex) username(ㄱ) : password(ㄴ) : uid(ㄷ) : gid(ㄹ) : commen(ㅁ) : homedirectory(ㅂ) : shell(ㅅ)
옵션 | 설명 |
---|
ㄱ | 사용자 이름 |
ㄴ | 암호화된 비밀번호가 저장, pwconv가 활성화 되어 있는 경우 x로 표시되며 실제 패스워드는 /etc/shadow에 나타남, pwunconv가 활성화되어 있는 경우 /etc/passwd 해당 필드에 패스워드가 나타남 |
ㄷ | 사용자의 UID |
ㄹ | 사용자의 GID |
ㅁ | 설명문(보안상 최근에는 사용하지 않음) |
ㅂ | 사용자의 홈 디렉터리 |
ㅅ | 실행할 프로그램(일반적으로는 사용자의 로그인 셸이 저장) |
shadow 파일 옵션\n \n ex) username(ㄱ) : password(ㄴ) : lastchange(ㄷ) : mindays(ㄹ) : maxdays(ㅁ) : warndays(ㅂ) : inactive(ㅅ) : expire(ㅇ) : flag(ㅈ)
옵션 | 설명 |
---|
ㄱ | 사용자명 |
ㄴ | 암호화된 비밀번호 |
ㄷ | 최근 비밀번호 변경일(1970년 1월 1일 기준 날짜 수) |
ㄹ | 비밀번호 변경 후, 재설정을 위한 대기일 수 |
ㅁ | 비밀번호 유효기간 |
ㅂ | 비밀번호 변경 경고 시간 |
ㅅ | 비밀번호 유예기간(사용 기간 만료 후 실제 계정이 사용 불가능하기까지 기간) |
ㅇ | 비밀번호 만료와 상관없이 계정을 사용할 수 없게 되는 날짜(1970년 1월 1일 기준 날짜 수) |
ㅈ | 나중에 사용하기 위해 예약으로 세팅되어 있고 현재는 사용되지 않으며, 0으로 지정 |
login_defs 파일 옵션
옵션 | 설명 |
---|
MAIL_DIR | 메일 디렉터리 지정 |
PASS_MAX_DAYS | 패스워드 변경 없이 사용할 수 있는 최대일자 |
PASS_MIN_DAYS | 패스워드 설정 후 최소 사용기간 |
PASS_MIN_LEN | 패스워드의 최소 바이트 수 |
PASS_WARN_AGE | 패스워드 만료 경고일 지정 |
UID_MIN | 생성할 수 있는 UID 시작번호 |
UID_MAX | 생성할 수 있는 최대 UID 번호 |
GID_MIN | 새로 생성되는 그룹의 GID 시작번호 |
GID_MAX | 새로 생성되는 그룹에서 지정할 수 있는 최대 GID 번호 |
CREATE_HOME | 홈 디렉터리를 생성할 것인가의 여부 |
사용자 계정 관리
명령어 | 형식 | 설명 |
---|
usermod | usermod [옵션] 계정명 | 디렉터리 /home에 위치한 사용자들의 정보를 변경하는 명령어 |
userdel | userdel [옵션] 계정명 | 기존 계정 정보를 삭제하는 명령어, -r은 계정명의 /var/spool/mail의 메일 파일과 홈 디렉터리의 내용을 모두 삭제 |
chage | chage [옵션] [계정명] | 패스워드 만료 정보를 변경하는 리눅스 명령어 |
usermod 명령어 옵션
옵션 | 설명 |
---|
-u uid | 새로운 UID를 저장, -o 옵션과 같이 사용하면 강제 설정이 가능 |
-g | 새로운 GID 지정, 사용자 그룹을 지정 또는 변경 |
-G | 새로운 보초그룹 지정, 기존 그룹에 포함되어 있는 상태에서 새로운 그룹에 추가 지정 |
-d 홈 디렉터리 | 새로운 홈 디렉터리를 지정, -m 옵션과 같이 사용하면 새로 생성이 가능 |
-s 셸 | 새로운 셸 지정 |
-c 주석 | 새로운 주석 지정 |
-l ID | 로그인 ID를 바꾸는 옵션으로 새로운 계정명으로 변경 |
change 명령어 옵션
옵션 | 설명 |
---|
-l | 사용자 계정 정보를 출력 |
-m | 설정 암호 최소 사용 일자 |
-M | 설정 암호 사용 가능 일자 |
-E | 암호 만기일 지정 |
-W | 만기 전 변경 요구 경고 날짜 지정 |
그룹 관리
명령어 | 형식 | 설명 |
---|
/etc/group | | 사용자 그룹에 대해 정의되어 있는 파일, 모든 계정은 1개 이상의 그룹에 포함되어 있음 |
/etc/gshadow | | 그룹의 암호를 MD5로 하여 저장하며 그룹의 소유주, 구성원 설정이 가능 |
groupadd | groupadd [옵션] 그룹명 | 새로운 그룹을 생성하는 명령어 |
groupdel | groupdel 그룹명 | 기존의 그룹을 삭제하는 명령으로 그룹 안에 소속되어있는 계정명이 있을 경우 해당 그룹은 삭제되지 않음 |
groupmod | groupdmod [옵션] 그룹명 | 그룹의 설정을 변경하는 명령어 |
group 파일 옵션\n \n ex) groupname(ㄱ) : password(ㄴ) : gid(ㄷ) : members(ㄹ)
옵션 | 설명 |
---|
ㄱ | 그룹명 |
ㄴ | 그룹 비밀번호(x로 되어있음) |
ㄷ | 그룹 번호 GID |
ㄹ | 그룹 맴버 리스트 |
gshadow 파일 옵션\n \n ex) youngin(ㄱ) : !(ㄴ) : (ㄷ): (ㄹ)
옵션 | 설명 |
---|
ㄱ | 그룹명 |
ㄴ | 그룹 암호(! = 부여되지 않음) |
ㄷ | 그룹의 소유주 |
ㄹ | 그룹 구성원(콤마로 구분) |
groupadd 명령어 옵션
옵션 | 설명 |
---|
-g gid | 그룹에 gid 지정 |
-r | 시스템 그룹 생성 시 사용, 500번 이하 값 지정(남아있는 가장 높은 범위로 할당) |
groupmod 명령어 옵션
옵션 | 설명 |
---|
-g gid | gid 변경(-o와 같이 사용해서 중복 설정을 해줌) |
-n 그룹명 | 새로운 그룹명을 변경할 때 사용 |
사용자 조회 명령어
명령어 | 형식 | 설명 |
---|
users | users [옵션] | 시스템에 로그인한 사용자 정보를 출력, –version은 users 명령어 버전 정보를 출력함 |
who | who [옵션] | 현재 시스템에 접속해 있는 사용자들을 조회하는 명령어, users보다 다양한 정보를 확인할 수 있음 |
w | w | 현재 접속 중인 사용자들의 정보를 상당히 자세한 정보들과 함께 확인할 수 있음 |
id | id [옵션] [계정명] | 사용자 계정의 uid, gid, group을 확인하는 명령어 |
groups | groups [계정명] | 사용자 계정이 속한 그룹 목록을 확인하는 명령어 |
who 명령어 옵션
옵션 | 설명 |
---|
-b | 마지막 시스템 부팅 시간 출력 |
-q | 로그인한 사용자와 사용자 수를 모두 출력 |
-r | 현재 시스템의 실행 레벨을 확인 가능 |
id 명령어 옵션
옵션 | 설명 |
---|
-g | 사용자의 GID만 표시 |
-G | 사용자가 포함되어 있는 모든 그룹 정보 표시 |
-u | 사용자의 UID만 표시 |
디렉터리 및 파일
디렉터리 관리 명령어
명령어 | 형식 | 설명 | |
---|
pwd | pwd | 현재 작업 중인 디렉터리의 위치를 나타내는 명령어 | |
cd | cd [상대경로 | 절대경로] [설정경로] | change directory의 약자로 디렉터리를 이동할 때 사용하는 명령어임 |
mkdir | mkdir [옵션] 디렉터리명 | make directory의 약자로 새로운 디렉터리를 생성할 때 사용하는 명령어 | |
rmdir | rmdir 디렉터리명 | remove directory로 디렉터리만 삭제하는 명령어, 안에 파일이 존재할 경우 삭제되지 않음 | |
cd 명령어 옵션
옵션 | 설명 |
---|
~ | 현재 사용자의 홈 디렉터리로 이동 |
. | 현재 디렉터리 |
.. | 현재에서 한 단계 상위 디렉터리로 이동 |
/ | 루트 디렉터리로 이동 |
mkdir 명령어 옵션
옵션 | 설명 |
---|
-m | 디렉터리를 생성할 때 권한을 설정(디폴트는 755) |
-p | 상위 경로 생성 |
-v | 디렉터리 생성 후 생성된 디렉터리의 메시지 출력 |
파일 관련 명령어
명령어 | 형식 | 설명 | |
---|
ls | ls [옵션] [경로명] | 현재 위치한 디렉터리의 파일 목록들을 나타내는 명령어 | |
cp | cp [옵션] 원본 대상 | 파일 또는 디렉터리 복사 | |
rm | rm [옵션] 파일명 | 디렉터리명 | 파일 또는 디렉터리 삭제 |
mv | mv [옵션] 원본대상 | 파일 또는 디렉터리를 이동하거나 파일명을 변경할 때 사용하는 명령어 | |
touch | touch [옵션] 파일명 | 파일의 최근 사용 시간과 최근 수정 시간 등 타임 스탬프를 변경, 하지만 대체로 파일 크기가 0바이트인 빈 파일을 생성하는데 자주 쓰임 | |
file | file [옵션] 파일명 | 파일의 종류 및 파일 속성값을 나타내는 명령어 | |
find | find [경로] [옵션] [정규포현식] [파일명] | 현재 디렉터리에서부터 하위 디렉터리까지 주어진 조건의 파일을 찾아 해당 경로를 표시 | |
locate | locate [파일명] | 파일의 위치를 찾는 명령어 | |
ls 명령어 옵션
옵션 | 설명 |
---|
-s | 히든파일을 포함한 모든 파일과 디렉터리 표시 |
-l | 퍼미션 크기, 사이즈 등의 자세한 정보 표시 |
-d | 지정된 디렉터리의 정보 출력 |
-r | 알파벳 역순으로 정보 출력 |
-R | 하위 경로와 그 안에 있는 파일 표시 |
cp 명령어 옵션
옵션 | 설명 |
---|
-b | 복사 대상 파일이 이미 존재할 경우를 대비해 백업 파일을 만듦 |
-t | 복사 대상이 이미 존재하면 복사 대상 파일을 강제로 지우고 복사 |
-i | 복사 대상이 이미 존재하면 사용자에게 덮어씌울 것인지 유무 확인 |
-r | 디렉터리를 복사할 경우 하위 디렉터리와 파일을 모두 복사 |
rm 명령어 옵션
옵션 | 설명 |
---|
-t | 질의 메시지 없이 강제로 파일이나 디렉터리 삭제 |
-i | 삭제 시 사용자에게 질의 |
-r | 삭제 디렉터리가 포함하고 있는 하위 디렉터리를 포함해 모든 파일 삭제 |
mv 명령어 옵션
옵션 | 설명 |
---|
-b | 대상 파일이 이미 있어 지워지는 것을 대비해 백업 파일 생성 |
-t | 대상 파일이 이미 있어도 사용자에게 어떻게 처리할지 묻지 않음 |
-v | 파일이 옮겨지는 과정이 자세히 표시 |
touch 명령어 옵션
옵션 | 설명 |
---|
-a | 접근시간(access time)을 변경 |
-m | 수정시간(modify time)을 변경 |
-c | 시스템 현재 시간으로 파일 시간 정보 수정 |
-t 시간정보 | 특정 파일의 시간 정보 변경 |
-r 파일1 파일2 | 파일1의 시간 정보를 파일2에 동일하게 적용 |
file 명령어 옵션
옵션 | 설명 |
---|
-b | 파일명은 출력하지 않고 파일 유형만 표시 |
-t | 파일 목록에서 지정한 파일들에 대해서만 명령을 실행 |
-z | 압축된 파일의 내용 출력 |
-l | MME 타입 문자로 출력 |
find 명령어 옵션
옵션 | 설명 |
---|
-name | 이름으로 찾기 |
-user | user의 파일이나 디렉터리 검색 |
-perm | 지정된 권한의 파일 검색 |
-type | 파일 유형에 따라 파일 검색 |
-atime n | n일 이전에 접근한 파일 검색 |
-exec | 검색된 파일에 수행할 명령어를 지정 |
텍스트 파일 관련 명령어
명령어 | 형식 | 설명 |
---|
cat | cat [옵션] [파일] | 파일의 내용을 출력하는 명령어 |
head | head [옵션] 파일명 | 파일의 앞부분을 지정한 만큼 출력 |
tail | tail [옵션] 파일명 | 파일의 마지막 행을 기준으로 지정한 행까지의 파일 내용 일부를 출력 |
more | more [옵션] 파일명 | 파일을 확인하는 명령어로 파일을 화면 단위로 끊어서 출력하는 명령어, -숫자는 한 페이지에 표시되는 라인 수 |
less | | 텍스트 파일을 한 번에 한 화면씩 나타내는 명령어 |
grep | grep [옵션] 문자열 파일명 | 파일에서 특정한 패턴 또는 정규 표현식으로 나타낸 단어를 찾는 명령어 |
wc | wc [옵션] 파일명 | 파일의 라인 수, 단어 수, 알파벳 수를 알려주는 명령어 |
sort | sort [옵션] 정렬할 파일명 | 명령어 결과나 문서 내용을 정렬하는 명령어 |
cut | cut [옵션] 파일명 | 파일에서 특정 필드를 추출해 냄, 필드는 구분자로 구분 가능 |
split | split [옵션] 파일명 | 하나의 파일을 여러 개의 작은 파일로 분리할 때 사용 |
cat 명령어 옵션
옵션 | 설명 |
---|
-n | 각 문장 앞에 번호 표시, 비어있는 행 포함 |
-b | 각 문장 앞에 번호 표시, 비어있는 행 제외 |
-s | 연속되는 2개 이상의 빈 행을 한 행으로 출력 |
-A | 텍스트 파일에 존재하는 개행 문자나 탭 문자 등을 확인 |
head 명령어 옵션
옵션 | 설명 |
---|
-c | 출력을 지원하는 용량 지정, 해당 바이트만큼의 문자 출력 |
-숫자 또는 -n 숫자 | 출력을 원하는 줄 수 지정, Defaults는 10개 |
tail 명령어 옵션
옵션 | 설명 |
---|
-c | head의 옵션과 같음 |
-숫자 또는 -n 숫자 | head의 옵션과 같음 |
-t | 지정된 파일에 새롭게 추가되는 파일 내용을 실시간으로 출력 |
-v | 파일을 출력할 때 파일명을 표시 |
-q | 파일을 출력할 때 파일명을 표시하지 않음 |
more 단축키 옵션
단축키 | 설명 |
---|
Space Bar | 다음 페이지로 전환 |
Enter | 한 줄씩 출력 |
Ctrl + P | 반 페이지 출력 |
Ctrl + B | 이전 페이지 출력 |
Q | 종료 |
/패턴 | 지정한 패턴의 문자열 검색 |
grep 명령어 옵션
옵션 | 설명 |
---|
-r | 디렉터리 내의 모든 디렉터리와 파일들을 검색하도록 지정 |
-E | 패턴을 정규 포현식으로 확장 |
-l | 대문자, 소문자 차이 무시 |
-v | 검색할 문자열이 포함되지 않은 줄만 출력 |
-n | 라인 수 출력 |
-l | 문자열이 포함된 파일명 출력 |
wc 명령어 옵션
옵션 | 설명 |
---|
-l | 전체 라인 수 출력 |
-w | 전체 단어 수 출력 |
-c | 전체 문자 수 출력 |
결과 앞 | 라인 수 |
결과 중간 | 단어 수 |
결과 마지막 | 알파벳 수 |
sort 명령어 옵션
옵션 | 설명 |
---|
-b | 앞 공백 무시 |
-o | 저장할 파일 명시 |
-r | 역순으로 표시 |
-f | 대소문자 구분하지 않음 |
-t | 필드 구분자 지정 |
-u | 중복 행 제거 |
-m | 정렬 파일 병합 |
-n | 숫자만 비교 |
cut 명령어 옵션
옵션 | 설명 |
---|
-c | 잘라낼 곳의 글자 위치를 지정, 콤마나 하이픈을 사용해 범위 지정 |
-f | 잘라낼 필드 지정 |
-d | 필드를 구분하는 문자 지정, 디폴트는 탭 |
-s | 대소문자 구분하지 않음 |
split 명령어 옵션
옵션 | 설명 |
---|
-b | 파일을 byte 단위로 분할 |
-t | 파일을 주어진 라인 수 단위로 분할 |
파일 비교 명령어
명령어 | 형식 | 설명 |
---|
diff | diff [옵션] 파일명1 파일명2 또는 diff [옵션] 디렉터리1 디렉터리2 | 두 개의 파일을 행 단위로 비교해 다른 부분을 출력하는 명령어 |
cmp | cmp [옵션] 파일명1 파일명2 | 두 개의 파일을 바이트(문자) 단위로 비교해 출력하는 명령어 |
comm | comm [옵션] 파일1 파일2 | 두 개의 파일을 줄 단위로 비교하여 출력하는 명령어 |
diff 명령어 옵션
옵션 | 설명 |
---|
-b | 연속된 공백 무시 |
-l | 대소문자를 구분하지 않음 |
-s | 두 파일이 같은지 확인 |
-r | 두 디렉터리의 차이점 출력 |
cmp 명령어 옵션
옵션 | 설명 |
---|
-b | 두 파일 간의 다른 바이트를 출력 |
-l | 두 파일 간의 다른 문자 위치와 문자 출력 |
-s | 아무 것도 출력하지 않고 실행 결과 코드만 반환 |
comm 명령어 옵션
옵션 | 설명 |
---|
-f | 파일1에만 있는 내용을 제외하고 내용 출력 |
-2 | 파일2에만 있는 내용을 제외하고 내용 출력 |
-3 | 파일1과 파일 2에 공통으로 존재하는 내용을 제외하고 출력 |
리다이렉션과 정규 표현식
- 리다이렉션
- 표준 입력과 표준 출력의 방향을 재지정하는 것
>
: 명령을 화면에 출력하는 것이 아닌 프린터나 파일에 출력하도록 전송, 파일이 존재하지 않으면 새로운 파일을 만들고 같은 파일이 존재하면 덮어씀>>
: 파일이 있는 경우 지정된 파일에 결과를 추가, 파일이 존재하지 않으면 지정된 이름으로 파일 생성<
: 기보드가 아닌 지정된 파일에서 입력 내용을 읽어옴>&
: 명령의 출력을 다른 명령의 입력으로 보냄<&
: 명령의 입력을 읽고 다른 명령의 출력으로 보냄
- 파이프
둘이상의 명령을 함께 묶어 출력 결과를 다른 프로그램의 입력으로 전환하는 기능 연결은 | 기능을 사용함 |
- 정규 표현식은 아래와 같습니다.
기호 | 의미 | 사용 예 | 설명 |
---|
^ | 라인의 첫 글자 | ^a | a로 시작하는 문자 |
$ | 라인의 끝 글자 | a$ | a자로 끝나는 문자 |
. | 한 글자 | a…b | a와 b 사이에 3개의 문자가 들어있는 단어 |
* | * 기호의 바로 이전의 글자나 정규 표현식이 0회 이상 반복 | abc* | c가 0번 이상 반복 |
[] | 대체 글자 목록을 []에 나열, ~로 문자의 범위 지정 | [abc]d | ad, bd, cd를 뜻함 |
[^] | 대체 못할 글자 목록을 [^]에 나열, ~로 문자의 범위 지정 | [^abc]d | ad, bd, cd는 포함하지 않고, ed, fd 등을 포함 |
+ | + 기호 바로 이전 글자나 정규 포현식이 1회 이상 반복 | abc+ | c가 1회 이상 반복 |
? | ? 기호 바로 이전 글자나 정규 표현식이 없거나 1회만 존재 | abc? | c가 없거나 한 번만 존재 |
() | 부분 정규 표현식의 시작과 끝을 표시 | a(bc)* | bc가 0회 이상 반복 |
| | | 로 구분된 단어들 중 최소 하나 존재 | a(b| c) | b또는 c가 최소 하나 존재 |
{m,n} | {} 기호 바로 이전 글자나 정규 표현식이 m개 이상 n개 이하 반복 | a{1,3}b | ‘ab’ ,’aab’, ‘aaab’를 포함하지만, ‘b’나 ‘aaaab’는 포함하지 않음 |
기타 명령어
네트워크 관련 명령어
명령어 | 형식 | 설명 | |
---|
ping | ping [옵션] [도메인명 | IP주소] | 외부 호스트에 신호를 보내고 받아 서로 네트워크가 연결되어 있음을 확인하는 명령어 |
traceroute | traceroute [도메인명 | IP주소] | 목적지 호스트까지의 경로를 표시하고 그 구간의 정보를 기록하는 명령어 |
nslookup | nslookup [옵션] [호스트명] | 도메인명으로 IP 주소를 조회하거나 또는 IP 주소로 도메인 명을 조회하는 명령어 | |
dig | dig [서버명] [호스트명] [질의타입] | 명령어 nslookup과 유사한 기능을 가진 명령어로 호스트명에 대한 IP 주소 정보 또는 IP 주소에 대한 호스트명을 조회하는 명령어 | |
host | host [옵션] [도메인 | IP주소] [DNS서버] | 호스트명을 알고 있는데 Ip 주소를 모르거나 그 반대일 때 사용, 호스트명을 이용하면 IP 주소뿐 아니라 하위 호스트명도 조회 가능 |
hostname | hostname [옵션] [파일명] | 시스템 이름을 확인하거나 변경할 때 사용하는 명령어 | |
ping 명령어 옵션
옵션 | 설명 |
---|
-c [요청 수] | ping을 보낼 횟수로 생략될 경우 무제한 실행 |
-i [초] | 신호를 보내는 시간 간격으로 생략될 경우 1초 단위로 설정 |
-s [패킷 크기] | 전송하는 패킷의 크기를 바이트 단위로 결정 |
DNS의 레코드 타입
레코드 타입 | 설명 |
---|
NS | 도메인의 네임서버 정보 |
MX | 도메인의 MX(Mail Exchange) 서버 |
A | 호스트의 IP 주소 |
CNAME | 별칭으로 부여된 canonical name |
SOA | 도메인의 start-of-autoority 정보 |
PRT | IP 주소에 대한 호스트명 |
dig 질의타입
질의타입 | 설명 |
---|
a | 도메인 IP 정보 |
any | 지정된 도메인의 모든 정보 |
mx | 지정된 도메인의 메일 서버 정보 |
ns | 네임 서버 정보 |
soa | SOA 정보 |
host 단축키 옵션
단축키 | 설명 |
---|
-d | 디버깅 모드로 출력 |
-l zone | zone 아래 모든 시스템을 출력 |
-r | 반복 처리 안 함 |
-t type | type을 지정해 정보를 얻음 |
hostname 명령어 옵션
옵션 | 설명 |
---|
-a | 별칭 출력 |
-d | 도메인명 출력 |
-F | 지정한 파일에서 호스트명을 설정 |
-v | 호스트 설정이나 호스트명을 자세히 출력 |
시스템 종료 명령어
명령어 | 형식 | 설명 |
---|
shutdown | shutdown [옵션] 시간 [경고메시지] | 시스템을 종료하거나 재부팅하는 명령어 |
init | init 0: 종료, init 6: 재부팅 | shutdown 명령어와 동일한 기능 |
reboot | reboot [옵션] | 시스템 재부팅 명령어 -t 시스템 장제 종료 |
halt | halt [옵션] | 시스템 종료 명령어 -t 시스템 장제 종료 |
shutdown 명령어 옵션
옵션 | 설명 |
---|
-r | 종료 후 재부팅 |
-h | 시스템 종료 |
-c | 진행 중인 shutdown 명령 취소 |
-k | 경고 메시지만 출력하고 shutdown을 하지 않음 |
-f | 재부팅 시 fsck 명령ㅇ을 생략하고 부팅을 빠르게 진행 |
-n | init을 호출하지 않고 shutdown |
-t sec | 지정 시간에 시스템 재시동 |
기타 명령어
명령어 | 형식 | 설명 |
---|
cal | cal [옵션] [[month]year] | 시스템에 설정된 달력을 출력하는 명령어, -j 1월 1일부터 날짜 수를 계산해 출력, -y 올해의 달력을 출력 |
date | date [옵션] [MMDDhhmm[CC][YY][.ss]] 또는 date [옵션] [+FORMAT] | 시스템 날짜와 시간을 표시하거나 변경함, -s는 시간 설정(순서는 hhmmss), -y는 올해의 달력을 출력 |
clear | | 터미널 내용을 지우는 명령어 |
tty | | 현재 사용하고 있는 단말기 장치의 경로명과 파일명을 나타냄, 보통 텔넷 등에서 동일한 계정으로 여러 개 로그인한 경우 확인 시 유용함 |
time | time run | 프로그램이 수행되는 데 걸리는 시간을 측정해 출력, real, user, sys를 보여주는데, real은 총 수행시간, user는 CPU가 사용자 영역에서 보낸 시간, sys는 시스템 호출 실행에 걸린 시간 |
wall | wall <메시지 내용="">메시지> | 모든 로그인된 사용자들에게 터미널을 통해 메시지를 전달하는 명령어 |
write | write 계정명 [ttyname] | 해당 사용자에게 메시지를 전달 |
mesg | mesg [y/n] | write를 사용해 들어오는 메시지 수신 여부를 확인하고 제어 |
참고 자료
- 2023 이기적 리눅스 마스터 2급 기본서 - 권소라 저, 영진닷컴