Section1. 사용자 생성 및 계정 관리
01. 리눅스 명령어 개요
[1] which
which 명령어
: 명령어의 경로를 확인하는 명령어
: 명령어 위치를 찾아주거나 alias를 보여주는 명령어
: $PATH가 설정되어 있는 경로에서만 해당 명령어의 경로를 찾음
[2] alias
alias [별명 = '명령어']
: 자주 사용하는 명령어를 특정 문자로 입력해 두고 명령어 대신 해당 문자를 사용함
[3] unalias
unalias [옵션] [단축명령어(별명)]
: alias 기능을 해제하는 명령어
* 옵션
- -a : 설정된 모든 alias 해제
[4] 환경변수 PATH
: PATH는 실행 파일들의 디렉터리 위치를 저장해 놓은 환경 변수
echo $PATH
: 지정된 PATH값 확인 (환경변수 경로를 출력)
export 변수명 = $ 변수명 : 변수값
: 기본의 PATH에 새로운 경로를 추가하는 방법으로 기존 경로와 새 경로를 콜론(:)으로 구분함
: 환경변수를 설정하는 것이 아닌 경로를 설정
: export는 설정하고 하는 변수를 환경 변수로 등록할 때 사용하며, 자식 프로세스에 변수를 전달하는 쉘 빌트인 명령임. 부모 프로세스에 영향을 주는 source의 반대 개념 명령어
02. 리눅스 도움말
[1] man
man [섹션] [옵션] 명령어
: 리눅스에서 사용하는 명령어들의 매뉴얼을 제공
* 옵션
- -a : 찾고자 하는 명령어의 검색된 매뉴얼 페이지를 모두 출력
- -h : 사용법 출력
- -f : whatis 명령어와 동일, 키워드와 동일한 man 페이지만 출력
- -k : apropos 명령어와 동일, 키워드가 포함된 man 페이지 출력
- -w : 찾고자 하는 문자의 매뉴얼 페이지가 있는 위치 출력
* 섹션 (관련 매뉴얼이 들어있는 영역)
- 1 : 일반 명령어 관련 매뉴얼
- 2 : 시스템 호출 관련 매뉴얼
- 3 : C 표준 라이브러리 함수 관련 매뉴얼
- 4 : 장치 드라이버 또는 특수 파일에 대한 정보
- 5 : 특정 파일들에 대한 저보
- 6 : 게임과 화면보호기에 대한 정보
- 7 : 리눅스 파일 표준, 프로토콜, 시그널 목록 정보
- 8 : 시스템 관리 명령어와 데몬 정보
- 9 : 커널 관리 정보
[2] info
info 명령어
: 리눅스 명령어의 상요 방법, 옵션을 나타냄
: GNU 프로젝트에 의해 배포된 온라인 매뉴얼
: 하이퍼텍스트 형식으로 관련 정보를 제공
: man 명령어에 비해 제공되는 명령어가 한정적
[3] whatis
whatis 명령어
: 명령어에 대한 기능을 간략이 출력
: 키워드가 완전히 일치해야 기능 확인 가능
[4] manpath
manpath [명령어]
: man 페이지의 위치 경로를 검색해 표시
[5] whereis
whereis [옵션] 명령어
: 찾고자 하는 명령어의 실행 파일 절대 경로와 소스코드, 설정 파일 및 매뉴얼 페이지를 찾아 출력
* 옵션
- -b : 바이너리 파일만 찾음
- -m : 지정된 매뉴얼 섹션에서만 찾음
- -M : 매뉴얼 페이지의 위치를 제한
- -u : 특정 파일을 제외
[6] appropos
appropos 문자열
: man 페이지 설명에서 지정한 키워드를 포함하고 있는 명령어
: whatis DB에서 문자열에 포함된 것을 검색하므로, whatis DB가 존재해야 사용 가능
* | grep [조건] : 조건을 사용하여 더 자세한 명령어 조회가 가능
03. 사용자 생성 명령어
[1] useradd
useradd [옵션] 계정명
: 계정을 생성하는 명령어로 adduser와 동일한 기능
: 생성된 계정 정보는 파일 /etc/passwd, /etc shadow, /etc/group에 저장
* 옵션
- -s. : 사용자의 로그인 기본 셸 지정
- -d : 게정의 홈 디렉터리 지정
- -f : 패스워드가 만기된 후 게정이 말소될 때까지의 기간 지정
- -e : 사용자 계정 유효기간을 지정, 임시 계정을 만들 때 이용
- -c : 파일 /etc/passwd에 새로운 사용자 설명 추가
- -G : 계정이 속한 그룹 외 다른 그룹에 계정 추가
[2] passwd
passwd [옵션] 계정명
: 생성된 계정자의 패스워드를 입력 및 변경
: /etc/shadow 파일 안에 기록
* 옵션
- -S : 계정 상태 표시
- -d : 계정 패스워드 삭제
- -l : 계정을 lock 상태로 변경
- -u : 계정의 lock 상태를 해제
[3] su
su [옵션] [사용자] [셸변수]
: 현재 사용자 계정에서 로그아웃하지 않고 다른 사용자 계정으로 로그인해 권한을 획득하는 명령어
* 옵션
- -, -l, --login : 지정한 사용자 환경변수를 적용해 로그인
- -s : 지정된 셀로 로그인
- -c : 셸을 실행하지 않고 명령어 수행
* 셸(Shell)
: 텍스트 기반에서 사용자가 원하는 작업을 실행하고 그 명령을 운영체제를 통해 수행하고 다시 사용자에게 결과를 출력해서 보여주는 것
: 운영체제를 둘러싸고 있으면서 입력 받는 명령어
04. 사용자 관련 파일
[1] 파일 /etc/default/useradd
: 명령어 useradd로 사용자 계정을 추가할 때 사용되는 정보를 읽어오는 파일
* 옵션
- GROUP : 새로 생성되는 계정이 기본적으로 소속될 그룹의 GID를 지정
- HOME : 새로 생성되는 계정의 홈 디렉터리 위치를 지정
- INACTIVE : 새로 생성되는 계정의 패스워드 사용 기간이 만료된 후 계정이 사용 불가능해지는 날을 지정하며, 0이면 바로 사용 불가능 -1이면 기능을 사용하지 않음
- EXPIRE : 새로 생성되는 계정의 패스워드 만료일을 지정(YYYY-MM-DD)
- SHELL : 새로 생성되는 계정의 기본 셸을 지정
- SKEL : 새로 생성되는 계정 사용자의 홈 디렉터리로 복사될 초기 환경설정 파일들이 저장된 디렉터리를 지정
- CREATE_MAIL_SPOOL : 새로 생성되는 게정의 메일 파일 저장 여부를 지정
: 파일 /etc/default/useradd은 vi편집기 또는 "useradd -D"로 변경
* 옵션
- -g : 그룹 변경
- -b : 홈 디렉터리 변경
- -f : INACTIVE 변경
- -e : 계정 종료일 변경
- -s : 셸 변경
- -D : 파일 내용 변경
[2] 파일 /etc/passwd
: 계정자의 정보를 가지고 있는 파일로 리눅스 로그인 시 사용
: 여러 개의 필드로 구성되어 있으며, 콜론(:)으로 각 필드를 구분
* 파일 내용
(1)username : (2)password : (3)uid : (4)gid : (5)comment : (6)homedirectory : (7)shell
- username : 사용자 이름
- password : 암호화된 비밀번호로 pwconv가 활성화 되어 있는 경우는 x로 표시되며 실제 패스워드는 /etc/shadow 파일에 나타나며, pwunconv가 활성화되어 있는 경우 /etc/passwd 필드에 패스워드가 나타남
- uid : 사용자의 UID로, 사용자를 관리하기 위해 사용자에게 부여한 번호
- gid : 사용자의GID로, 사용자가 속한 그룹에 부여한 번호
- comment : 설명문
- homedirectory : 사용자의 홈 디렉터리
- shell : 실행할 프로그램
[3] 파일 /etc/shadow
: 계정자의 패스워드 정보가 암호화되어 있는 파일로 암호화 패스워드 및 계정의 유효 기간 등을 기록하고 있는 파일
* 파일 내용
(1)username : (2)password : (3)lastchange : (4)mindays : (5)maxdays : (6)warndays : (7)inactive : (8)expire : (9)flag
- username : 사용자명
- password : 암호화된 비밀번호로 역으로 풀 수 없음
- lastchange : 최근 비밀번호 변경일
- mindays : 비밀번호 변경 후 재설정을 위한 대기일 수
- maxdays : 비밀번호 유효기간
- warndays : 비밀번호 변경 경고 시간
- inactive : 비밀번호 유예기간
- expire : 비밀번호 만료와 상관없이 계정을 사용할 수 없게 되는 일
- flag : 나중에 사용하기 위해 예약으로 세팅되어 있고 현재는 사용되지 않으며 0으로 지정
[4] 파일 /etc/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 : 홈 디렉터리 생성 여부
05. 사용자 계정 관리
[1] usermod
: 디렉터리 /home에 위치한 사용자들의 정보를 변경하는 명령어
usermod [옵션] 계정명
* 옵션
- -u uid : 새로운 UID 지정하며, -o 옵션과 같이 사용 시 강제 설정 가능
- -g : 새로운 GID 지정 또는 변경
- -G : 새로운 보조그룹 지정
- -d 홈 디렉터리 : 새로운 홈 디렉터리를 지정하며, -m 옵션과 같이 사용 시 새로 생성 가능
- -s 셸 : 새로운 셸 지정
- -c 주석 : 새로운 주석 지정
- -l ID : 로그인 ID를 바꾸는 옵션으로 새로운 게정명으로 변경
[2] userdel
: 기존 계정 정보를 삭제하는 명령어
: 옵션 없이 사용할 경우 /etc/passwd, /tec/shadow, /etc/group에서 해당 계정 정보 삭제
userdel [옵션] 계정명
* 옵션
- -r : 계정명의 /var/spootl/mail의 메일 파일과 홈 디렉터리의 내용 모두를 삭제
[3] change
change [옵션] [계정명]
: 패스워드의 만료 정보를 변경하는 리눅스 명령어
* 옵션
- -l : 사용자 계정 정보 출력
- -m : 설정 암호 최소 사용 일자
- -M : 설정 암호 사용 가능 일자
- -E : 암호 만기일 지정
- -W : 만기 전 변경 요구 경고 날짜 지정
06. 그룹관리
[1] 파일 /etc/group
(1)groupname : (2)password : (3)gid : (4)members
- groupname : 그룹명
- password : 그룹 비밀번호(x로 되어 있음)
- gid : 그룹 번호
- members : 그룹 멤버 리스트로 여러 멤버가 존재할 경우 콤마(,)로 구분
: 사용자 그룹에 대해 정의되어 있는 파일
: 모든 계정은 한 개 이상의 그룹에 포함
[2] 파일 /etc/gshadow
: 그룹의 암호를 MD5로 하여 저장하며 그룹의 소유주, 구성원 설정이 가능
: 그룹명 : 그룹 암호(!는 부여되지 않음을 의미) : 그룹의 소유주 : 그룹 구성원
[3] groupadd
groupadd [옵션] 그룹명
: 새로운 그룹을 생성
* 옵션
- -g gid : 그룹에 gid 지정
- -r : 시스템 그룹 생성 시 사용하며, 500번 이하 값 지정
[4] groupdel
groupdel 그룹명
: 기존의 그룹을 삭제
: 그룹에 소속된 계정이 있을 경우 삭제 불가
[5] groupmod
groupmod [옵션] 그룹명
: 그룹의 설정을 변경
* 옵션
- -g gid : gid를 변경하며, -o 옵션과 함께 사용 시 중복 설정 가능
- -n 그룹명 : 새로운 그룹명을 변경할 때 사용하며, 변경할 그룹명 기존 그룹명 순서로 작성
07. 사용자 조회 명령어
[1] users
users [옵션]
: 시스템에 로그인한 사용자 정보를 출력
* 옵션
- --version : users 명령어 버전 정보 출력
** who와 w 명령어 사용시 어떤 정보를 얻고자 하는지 확인 후 적절한 것 사용
[2] who
who [옵션]
: 현재 시스템에 접속해 있는 사용자들을 조회
: 사용자 계정명, 터미널 정보, 접속 시간, 접속한 서버 정보 등 확인 가능
: 관리자 root와 일반 사용자 모두 사용 가능
: 명령어 'who am i', 'whoami'는 자신의 정보를 조회
* 옵션
- -b : 마지막 시스템 부팅 시간 출력
- -q : 로그인한 사용자와 사용자 수를 모두 출력
- -r : 현재 시스템의 실행 레벨을 확인 가능
[3] w
: 현재 접속 중인 사용자들의 정보를 나타냄
: 확인 가능 정보는 서버의 현재 시간 정보, 서버 부팅 후 시스템 작동 시간, 서버 접속자의 총 수, 접속자별 서버 평균 부하율, 접속자별 서버 접속 계정명, TTY명, 로그인 시간 정보 등임
: JCPU - TTY필드의 장치명에서 사용되는 모든 프로세스의 CPU 사용 시간
: PCPU - WHAT 필드에 나타나는 프로세스명에서 사용하는 CPU 총 사용 시간
[4] id
id [옵션] [계정명]
: 사용자 계정의 uid, gid, group을 확인
* 옵션
- -g : 사용자의 GID만 표시
- -G : 사용자가 포함되어 있는 모든 그룹 정보 표시
- -u : 사용자의 UID만 표시
[5] groups
groups [계정명]
: 사용자 계정이 속한 그룹 목록을 확인
Section2. 디렉터리 및 파일
01. 디렉터리 관리 명령어
[1] pwd
: 현재 작업 중인 디렉터리의 위치를 나타냄
[2] cd
cd [상대경로 | 절대경로] [설정경로]
: 디렉터리를 이동할 때 사용
: 절대 경로는 시작 위치와 상관없이 경로에 모든 디렉터리를 표시하며, 절대 경로의 시작 위치는 /(루트)에서 시작
: 상대 경로는 현재 작업 중인 디렉터리를 기준으로 표시하는 경로
* 설정 경로
- ~ : 현재 사용자의 홈 디렉터리로 이동
- . (점 하나) : 현재 디렉터리
- .. (점 둘) : 현재에서 한 단계 상위 디렉터리로 이동
- / : 루트 디렉터리로 이동
[2] mkdir
mkdir [옵션] 디렉터리 명
: 새로운 디렉터리를 생성할 때 사용
* 옵션
- -m : 디렉터리를 생성할 때 권한을 설정 (디폴트는 755)
- -p : 상위 경로 생성
- -v : 디렉터리 생성 후 생성된 디렉터리의 메시지 출력
[4] rmdir
rmdir 디렉터리명
: 디렉터리만 삭제하는 명령어
: 디렉터리 내 파일이 존재하는 경우 삭제되지 않음
02. 파일 관련 명령어
[1] ls
ls [옵션] [경로명]
: 현재 위치한 디렉터리의 파일 목록들을 출력
* 옵션
- -a : 히든 파일을 포함한 모든 파일과 디렉터리 표시
- -l : 퍼미션, 크기, 사이즈 등의 자세한 정보 표시
- -d : 지정된 디렉터리의 정보 출력
- -r : 알파벳 역순으로 정보 출력
- -R : 하위 경로와 그 안에 있는 파일 표시
- -i : 각 파일의 인덱스 값 출력
- -F : 파일의 특성에 따라 끝에 특수문자를 덧붙여 출력
- -z : 각 파일이나 블록에 할당된 크기를 출력
- -Z : 각 파일의 SELinux 보안 컨텍스트를 출력
[2] cp
cp [옵션] 원본 대상 [복사할 파일명 or 디렉터리 명]
: 파일 또는 디렉터리를 복사
* 옵션
- -b : 복사 대상 파일이 이미 존재할 경우를 대비해 백업 파일 생성
- -f : 복사 대상이 이미 존재하면 복사 대상 파일을 강제로 지우고 복사
- -i : 복사 대상이 이미 존재하면 사용자에게 덮어씌울 것인지 유무 확인
- -r : 디렉터리를 복사할 경우 하위 디렉터리와 파일을 모두 복사
[3] rm
rm [옵션] 파일명 | 디렉터리 명
: 파일 또는 디렉터리를 삭제하는 명령어
* 옵션
- -f : 질의 메시지 없이 강제로 파일이나 디렉터리 삭제
- -i : 삭제 시 사용자에게 질의
- -r : 삭제 디렉터리가 포함하고 있는 하위 디렉터리를 포함하여 모든 파일 삭제
[4] mv
mv [옵션] 원본 대상
: 파일 또는 디렉터리를 이동할 때 사용
: 파일명을 변경할 때 사용
* 옵션
- -b : 대상 파일이 이미 있어 지워지는 것을 대비해 백업 파일 생성
- -f : 대상 파일이 이미 있어도 사용장게 어덯게 처리할 지 묻지 않음
- -v : 파일이 옮겨지는 과정이 자세히 표시
[5] touch
touch [옵션] 파일명
: 파일 크기가 0바이트인 빈 파일 생성
: 서버의 현재 시간으로 파일의 최근 사용한 시간과 최근 수정 시간 등 타임 스탬프를 변경
- 접근시간 : 애플리케이션이나 서비스가 시스템 호출을 사용해 파일을 읽을 때 마다 접근 시간 갱신
- 수정시간 : 파일 내용이 변경될 때 파일 수정 시간 갱신
- 변경시간 : 파일 내용을 수정했을 때 기록되는 시간으로 변경 불가능함
* 옵션
- -a : 접근시간을 변경
- -m : 수정시간을 변경
- -c : 시스템 현재 시간으로 파일 시간 정보 수정
- -t 시간정보 : 특정 파일의 시간 정보 변경
- -r 파일1 파일2 : 파일1의 시간 정보를 파일2에 동일하게 적용
[6] file
file [옵션] 파일명
: 파일의 종류 및 파일 속성값을 나타냄
* 옵션
- -b : 파일명은 출력하지 않고 파일 유형만 표시
- -f : 파일 목록에서 지정한 파일들에 대해서만 명령을 실행
- -z : 압축된 파일의 내용 출력
- -i : MIME 타입 문자로 출력
[7] find
find [경로] [옵션] [정규표현식] [파일명]
: 현재 디렉터리에서부터 하위 디렉터리까지 주어진 조건의 파일을 찾아 해당 경로를 표시
* 옵션
- -name : 이름을 기준으로 파일 검색
- -user : user의 파일이나 디렉터리 검색
- -perm : 지정된 권한의 파일 검색
- -type : 파일 유형에 따라 파일 검색
- -atime n : n일 이전에 접근한 파일 검색
- -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 [옵션] [파일]
: 파일의 내용을 출력
* 옵션
- -n : 각 문장 앞에 번호 표시, 비어있는 행 포함
- -b : 각 문장 앞에 번호 표시, 비어있는 행 제외
- -s : 연속되는 2개 이상의 빈 행을 한 행으로 출력
- -A : 텍스트 파일에 졵재하는 개행 문자나 탭 문자 등을 확인
[2] head
head [옵션] 파일명
: 파일의 앞부분을 저장한 만큼 출력
* 옵션
- -c : 출력을 원하는 용량 지정, 지정된 숫자 바이트만큼의 문자 출력
- -숫자 or -n 숫자 : 출력을 원하는 줄 수 지정, 옵션이나 숫자를 지정하지 않으면 기본적으로 10개씩 출력
[2] tail
tail [옵션] 파일명
: 파일의 마지막 행을 기준으로 지정한 행까지의 파일 내용 일부를 출력
* 옵션
- -c : 출력을 원하는 용량 지정
- -숫자 or -n 숫자 : 출력을 원하는 줄 수 지정, 옵션이나 숫자를 지정하지 않으면 기본적으로 10개씩 출력
- -f : 지정된 파일에 새롭게 추가되는 파일 내용을 실시간으로 출력
- -v : 파일을 출력할 때 파일명을 표시
- -q : 파일을 출력할 때 파일명을 표시하지 않음
[4] more
more [옵션] 파일명
: 파일을 확인하는 명령어로 파일을 화면 단위로 끊어서 출력
: 위에서 아래 방향으로만 출력되며, 지나간 내용을 다시 볼 수 없음
: 명령어 실행 상태에서 키 입력으로 다양한 작업 수행 가능
* 키 입력
- space Bar : 다음 페이지로 전환
- Enter : 한 줄씩 출력
- Ctrl + D : 빈 페이지 출력
- Ctrl + B : 이전 페이지 출력
- Q : 종료
- /패턴 : 지정한 패턴의 문자열 검색
* 옵션
- -숫자 : 한 페이지에 표시되는 라인 수
[5] less
: 텍스트 파일을 한 번에 한 화면씩 나타내는 명령어
: 기능적으로 more을 확장한 것으로 커서를 파일의 상하좌우로 이동 가능함
[6] grep
grep [옵션] 문자열 파일명
: 파일에서 특정한 패턴(문자열) 또는 정규 표현식으로 나타낸 단어를 찾는 명령어
* 옵션
- -r : 디렉터리 내의 모든 디렉터리와 파일들을 검색하도록 지정
- -E : 패턴을 정규 표현식으로 확정
- -i : 대문자, 소문자 차이 무시
- -v : 검색할 문자열이 포함되지 않은 줄만 출력
- -n : 라인 수 출력 (해당 단어가 포함된 행 번호가 출력됨을 의미)
- -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 [옵션] 파일명
: 파일의 라인 수, 단어 수, 알파벳 수를 알려주는 명령어
: 옵션을 통해 원하는 것만 선택하여 출력 가능
* 옵션
- -l : 전체 라인 수 출력
- -w : 전체 단어 수 출력
- -c : 전체 문자(알파벳) 수 출력
[8] sort
sort [옵션] 정렬할 파일명
: 명령어 결과나 문서 내용을 정렬하는 명령어
* 옵션
- -b : 앞 공백 무시
- -o : 저장할 파일 명시
- -r : 역순으로 표시
- -f : 대소문자 구분X
- -t : 필드 구분자 지정
- -u : 중복 행 제거
- -m : 정렬 파일 병합
- -n : 숫자만 비교
[9] cut
cut [옵션] 파일명
: 파일에서 특정 필드를 추출
* 옵션
- -c : 잘라낼 곳의 글자 위치를 지정, 콤마나 하이픈을 사용하여 범위 지정
- -f : 잘라낼 필드 지정
- -d : 필드를 구분하는 문자 지정, 디폴트는 탭
- -s : 대소문자 구분하지 않음
[10] split
split [옵션] 파일명
: 하나의 파일을 여러 개의 작은 파일로 분리
: 파일의 내용을 라인 수로 분할할 수 있고, 용량 단위로 분할할 수 있음
* 옵션
- -b : 파일을 byte 단위로 분할
- -l : 파일을 주어진 라인 수 단위로 분할
[11] stty
: 키보드를 이용하여 사용하는 유용한 키를 설정하는 명령행 편집 기능 명령어
[12] set
: 환경변수를 설정하거나 설정된 정보를 확인하는 명령어
04. 파일 비교 명령어
[1] diff
diff [옵션] 파일명1 파일명2 또는 diff [옵션] 디렉터리1 디렉터리2
: 두 개일 파일을 행 단위로 비교하여 다른 부분을 출력하는 명령어
: 두 개의 파일명을 매개변수로 사용하여 화면에 차이점 나열
* 옵션
- -b : 연속된 공백 무시
- -i : 대소문자를 구분하지 않음
- -s : 두 파일이 같은지 확인
- -r : 두 디렉터리 차이점 출력
[2] cmp
cmp [옵션] 파일명1 파일명2
: 두 개의 파일을 바이트 단위로 비교하여 출력하는 명령어
* 옵션
- -b : 두 파일 간의 다른 바이트를 출력
- -ㅣ : 두 파일 간의 다른 문자 위치와 문자를 출력
- -s : 아무 것도 출력하지 않고 실행 결과 코드만 반환
[3] comm
comm [옵션] 파일1 파일2
: 두 개의 파일을 줄 단위로 비교하여 출력
* 옵션
- -1 : '파일1'에만 있는 내용을 제외하고 내용 출력
- -2 : '파일2'에만 있는 내용을 제외하고 내용 출력
- -3 : '파일1'과 '파일2'에 공통으로 존재하는 내용을 제외하고 출력
05. 리다이렉션과 정규 표현식
[1] 리다이렉션
: 표준 입력과 표준 출력의 방향을 재지정
: 표준 입력/출력/에러가 화면이 아닌 파일로 대체
* 리다이렉션 연산자
- > : 명령을 화면에 출력하는 것이 아니라 프린터나 파일에 출력하도록 전송, 파일이 존재하지 않으면 새로운 파일을 만들고 같은 파일이 존재하면 덮어씀
- >> : 파일이 있는 경우 지정된 파일에 결과를 추가하며, 파일이 존재하지 않으면 지정된 이름으로 파일 생성
- < : 키보드가 아닌 지정된 파일에서 입력 내용을 읽어옴
- >& : 명령의 출력을 다른 명령의 입력으로 보냄
- <& : 명령의 입력을 읽고 다른 명령의 출력으로 보냄
[2] 파이프(Pipe)
: 둘 이상의 명령을 함께 묶어 출력 결과를 다른 프로그램의 입력으로 전환하는 기능
: 현재 명령의 표준 출력을 다음 명령의 표준 입력으로 사용
: 명령어와 명령어의 연결은 '|' 기호 사용
: 명령어1의 출력 결과는 명령어2의 입력으로 처리되며 명령어2의 처리 결과는 명령어3의 입력이 됨
[3] 정규 표현식
- ^ : 라인의 첫 글자
- $ : 라인의 끝 글자
- . : 한 글자
- * : * 기호 바로 이전의 글자나 정규표현식이 0히 이상 반복
- [] : 대체 글자 목록을 []에 나열, "-"로 문자 범위 지정
- [^] : 대체 못할 글자 목록을 [^]에 나열, "-"로 문자 범위 지정
- + : + 기호 바로 이전 글자나 정규 표현식이 1회 이상 반복
- ? : ? 기호 바로 이전 글자나 정규 표현식이 없거나 1회만 존재
- () : 부분 정규 표현식의 시작과 끝을 표시
- | : |로 구분된 단어들 중 최소 하나 존재
- {m,n} : {} 기호 바로 이전 글자나 정규 표현식이 m개 이상n개 이하 반복
Section3. 기타 명령어
01. 네트워크 관련 명령어
[1] ping
ping [옵션] [도메인명 혹은 IP주소]
: 외부 호스트에 신호를 보내며 신호를 받은 호스트를 응답을 주면서 서로 네트워크가 연결되어 있음을 확인
* 옵션
- -c [요청수] : ping을 보낼 횟수 (생략될 경우 무제한 실행)
- -i [초] : 신호를 보내는 시간 간격 (생략될 경우 1초 단위로 실행)
- -s [패킷 크기] : 전송하는 패킷 크기를 byte 단위로 설정
[2] traceroute
traceroute [도메인명 혹은 IP주소]
: 목적지 호스트까지의 경로를 표시하고 그 구간의 정보를 기록
: 패킷 전송 지역을 측정하거나, 호스트로 향하는 경로 상의 장애 위치 파악 가능
[3] nslookup
nslookup [옵션] [호스트명]
: 도메인명으로 IP주소를 조회하거나 IP주소로 도메인명을 조회
* 옵션
- -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 서버 이용 시 따로 지정 가능
* 옵션
- -d : 디버깅 보드로 출력
- -l zone : zone 아래 모든 시스템 출력
- -r : 반복 처리 X
- -t type : type을 지정해 정보를 얻음
[6] hostname
hostname [옵션] [파일명]
: 시스템 이름을 확인하거나 변경할 때 사용
* 옵션
- -a : 별칭 출력
- -d : 도메인명 출력
- -F : 지정한 파일에서 호스트명 설정
- -v : 호스트 설정이나 호스트명을 자세히 출력
02. 시스템 종료 명령어
[1] shutdown
shutdown [옵션] 시간 [경고메시지]
: 시스템을 종료하거나 재부팅
: root 사용자만 권한을 가짐
: 수행중인 프로세스들을 종료하며, sync를 수행해 저장되지 않은 데이터를 디스크에 저장하고 모든 파일 시스템을 mount 시킨 후 시스템 종료
* 옵션
- -r : 종료 후 재부팅
- -h : 시스템 종료
- -c : 진행 중인 shutdown 명령 취소
- -k : 경고 메시지만 출력하고, shutdown 하지 않음
- -f : 재부팅 시 fsck 명령을 생략하고 부팅을 빠르게 진행
- -n : init를 호출하지 않고 shutdown
- -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 [옵션]
: 시스템을 재부팅
* 옵션
- -f : 시스템 강제 재부팅
[3] halt
halt [옵션]
: 시스템을 종료
* 옵션
- -f : 시스템 강제 종료
03. 기타 명령어
[1] cal(calender)
cal [옵션] [[month] year]
: 시스템에 설정된 달력 출력
: 옵션 없이 실행 시 현재 시스템 날짜로 기록된 달 출력
* 옵션
- -i : 1월 1일부터 날짜수를 계산해 출력
- -y : -y : 올해의 달력을 출력
[2] date
date [옵션] [MMDDhhmm [CC][YY][.ss]] 또는 date [옵션] [+FORMAT]
: 시스템의 날짜와 시간을 표시하거나 변경
* 옵션
- -s : 시간 설정 순서는 'hh:mm:ss'
- -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를 통해 들어오는 메시지 수신 여부를 확인하고 제어
'학습 기록 > 리눅스 마스터 2급' 카테고리의 다른 글
[파일 시스템 관련 명령어] 디스크 쿼터(Disk Quota) (0) | 2023.08.13 |
---|---|
[파일 시스템 관련 명령어] SetUID, SetGID, Sticky bit (0) | 2023.08.12 |
[파일 시스템 관련 명령어] 권한 및 그룹 설정 (0) | 2023.08.12 |