1. 리눅스 명령어 개요
가. which
1) 명령어 경로 확인
2) 명령어 위치를 찾아주거나 alias를 보여주는 명령어
3) 사용자가 현재 위치에서 명령을 실행시켰을 때 어떤 명령이 실행되는지를 알고 확인할 수 있다.
4) $PATH가 설정되어 있는 경로에서만 해당 명령어의 경로를 찾는다.
· 형식 : which [명령어]
ex) httpd, pwd, m 위치 확인
1 2 3 4 5 6 7 8 | [kinew@localhost ~] $ which httpd /usr/sbin/httpd [kinew@localhost ~] $ which hm alias m='ls -al | more' /bin/ls /bin/more [kinew@localhost ~] $ which pwd /bin/pwd | cs |
나. alias
· 자주 사용하는 명령어를 특정 문자로 입력해 두고 명령어 대신 해당 문자를 사용할 수 있게 한다.
· 형식 : alias [별명]='[명령어]'
ex) 명령어 'ls -al | more'를 문자 'm'으로 단축
1 | [kinew@localhost ~] $ alias m='ls -al | more' | cs |
다. unalias
· alias 해제
· 형식 : unalias [옵션][단축명령어]
+) 옵션 -a : 설정된 모든 alias 해제
ex) 단축 명령여 'm' 해제
라. 환경변수 PATH
1) 실행 파일들의 디렉터리 위치 저장
2) 명령어 입력자의 현재 작업 디렉터리와 상관없이 특정 명령어를 입력하면 PATH 변수에 저장되어 있는 경로에서 해당 명령어를 찾아 실행한다.
+) echo $PATH : 지정된 PATH값 확인
ex) 계정자 kinew에 설정되어 있는 PATH 확인
1 2 | [kinew@localhost ~] $ echo $PATH /usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/kinew/.local/bin:/home/kinew/bin | cs |
3) 기존 PATH에 새로운 경보를 추가하는 방법에는 명령어 PATH나 홈 디렉터리의 .bash_profile에 PATH를 추가한다. 기존 경로와 새 경로는 콜론(:)으로 구분한다.
· 형식 : export [변수명]=$[변수명]:변수값
ex1) 기존 PATH에 디렉터리 /dev 추가
1 2 3 | [kinew@localhost ~] $ PATH $PATH:/dev [kinew@localhost ~] $ echo $PATH /usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/kinew/.local/bin:/home/kinew/bin:/dev | cs |
ex2) 파일 .bash_profile에 PATH 부분 확인
1 2 3 4 5 6 7 8 9 10 11 12 13 | [kinew@localhost ~] $ cat .bash_profile # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/.local/bin:$HOME/bin export PATH | cs |
2. 리눅스 도움말
가. man : 리눅스에서 사용하는 명령어들의 매뉴얼 제공
· 형식 : man [섹션][옵션][명령어]
섹션 |
설명 |
1 |
일반 명령어 관련 매뉴얼 |
2 |
시스템 호출 관련 매뉴얼 |
3 |
C 표준 라이블러리 함수 관련 매뉴얼 |
4 |
장치 드라이버 또는 특수 파일에 대한 정보 |
5 |
특정 파일들에 대한 정보 |
6 |
게임과 화면보호기에 대한 정보 |
7 |
리눅스 파일 표준, 프로토콜, 시그널 목록 정보 |
8 |
시스템 관리 명령어, 데몬 정보 |
9 |
커널 관리 정보 |
옵션 |
설명 |
-a |
찾고자 하는 명령어의 검색된 매뉴얼 페이지 모두 출력 |
-h |
사용법 출력 |
-f |
whatis 명령과 동일. 키워드와 동일한 man 페이지만 출력 |
-k |
apropos 명령과 동일. 키워드가 포함된 man 페이지 출력 |
-w |
찾고자 하는 문자의 매뉴얼 페이지가 있는 위치 출력 |
ex) 명령어 uname의 사용법 확인
man -a uname |
uname의 모든 man 페이지 섹션 표시 |
man 2 uname |
uname의 섹션 2의 man 페이지 표시 |
man uname -P more |
uname의 man 페이지를 more 명령을 사용하여 페이지 단위로 표시 |
man -f uname |
uname이 포함된 man 페이지 표시 |
나. info
1) 리눅스 명령어의 사용 방법, 옵션 등을 나타낸다.
2) man에 비해 제공되는 명령어 한정적
· 형식 : info [명령어]
다. whatis
1) 명령어에 대한 기능 간략하게 나타냄
2) 자세한 사용법, 설명은 man 또는 info로
3) 완전히 키워드가 일치해야만 해당 명령어의 기능을 확인할 수 있다.
4) whatis 데이터베이스에서 문자열만 검색한다.
· 형식 whatis [명령어]
ex) 명령어 ls 기능 확인
1 2 | [kinew@localhost ~] $ whatis ls ls (1) - list directory contents | cs |
라. manpath : man 페이지의 위치 경로
· 형식 : manpath [명령어]
ex) man 명령이 참조하는 매뉴얼 페이지의 경로를 표시
1 2 | [kinew@localhost ~] $ manpath /usr/local/share/man:/usr/share/man | cs |
마. whereis : 찾고자 하는 명령어의 실행 파일 절대 경로, 소스코드, 설정 파일 및 매뉴얼 페이지 출력
· 형식 : whereis [옵션] [명령어]
옵션 |
설명 |
-b |
바이너리 파일만 찾음 |
-m |
지정된 매뉴얼 섹션에서만 찾음 |
-M |
매뉴얼 페이지 위치 제한 |
-u |
특정 파일 제외 |
바. apropos
1) man 페이지 설명에서 지정한 키워드를 포함하고 있는 명령어
2) whatis 데이터베이스에서 문자열을 포함한 것을 검색
3) whatis 데이터베이스가 만들어져 있어야 함
· 형식 : apropos [문자열]
3. 사용자 생성 명령어
가. useradd
1) 계정 생성 명령어 (adduser와 동일)
2) 계정자의 홈 디렉터리는 '/home/계정명'이다.
3) 생성한 계정자 정보는 파일 /etc/passwd, /etc/shadow, /etc/group에 저장된다.
· 형식 : useradd [옵션] [계정명]
옵션 |
설명 |
-s |
사용자의 로그인 기본 셸 지정 |
-d |
계정자의 홈 디렉터리 지정 |
-f |
패스워드가 만기된 후 계정이 영구말소될 때까지 기간 지정 |
-e |
· 사용자 계정 유효기간 설정 · 일정 시간 동안 사용 가능한 임시 계정을 만들 때 사용 |
-c |
/etc/passwd에 새로운 사용자 설명 추가 |
-G |
계정자가 속한 그룹 외에 다른 그룹에 계정자 추가 |
ex) 계정 dammie 생성 + 계정자 dammie의 홈 디렉터리를 /DAMMIE로 지정
1 2 3 4 | [root@localhost ~] $ useradd -d /DAMMIE dammie [root@locallhost ~] $ su - dammie [dammie@localhost ~] $ pwd /DAMMIE | cs |
나. passwd
1) 생성된 계정자의 패스워드를 입력 및 변경
2) 패스워드는 /etc/shadow 파일 안에 기록됨
· 형식 : passwd [옵션] [계정명]
옵션 |
설명 |
-S |
· 계정 상태 표시 - PS : 정상 - NP : 패스워드 없음 - LK : Lock 상태이거나 NP 상태 |
-d |
계정 패스워드 삭제 |
-l |
계정 lock 상태로 변경 |
-u |
계정 lock 상태 해제 |
ex) 계정자 dammie 상태 확인. 확인 후 패스워드가 지정되어 있지 않으면 패스워드 지정.
1 2 3 4 5 6 7 8 9 | [root@localhost ~] $ passwd -S dammie dammie LK 2019-01-24 0 99999 7 -1 (Password Locked.) [root@localhost ~] $ passwd dammie Changing password fo r user dammie. New password: Retype New password: passwd: all authentication tokens updated successfully. [root@localhost ~] $ passwd -S dammie dammie PS 2019-01-24 0 99999 7 -1 (Password se t, SHA512 crypt.) | cs |
다. su (switch user, substitute user)
· 현재 사용자 게정에서 로그아웃하지 않고 다른 사용자 계정으로 로그인하여 해당 사용자의 권한을 획득하는 명령어
· 형식 : su [옵션] [사용자] [셸 변수]
옵션 | 설명 |
-, -l, --login | 지정한 사용자의 환경변수를 적용하여 로그인 |
-s | 지정된 셸로 로그인 |
-c | 셸을 실행하지 않고 주어진 명령어 수행 |
ex1) 셸 환경변수를 가져오지 않고 관리자 root로 계정 변경
1 2 3 4 | [kinew@localhost ~] $ su root Password: [root@localhost kinew] # pwd /home/kinew | cs |
ex2) 관리자 root의 셸 환경변수를 가져온다.
1 2 3 4 5 | [kinew@localhost ~] $ su - root Password: Last login: Thu Jan 24 15:49:40 KST 2019 on tty1 [root@localhost ~] # pwd /root | cs |
ex3) 사용자 게정 변환 없이 root 권한으로 명령어 'ls /'를 수행한다.
1 2 3 4 5 | [kinew@localhost ~] $ su -c 'ls /' - root Password: bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var | cs |
4. 사용자 관련 파일
가. /etc/default/useradd : useradd로 사용자 계정을 추가할 때 사용되는 정보를 읽어오는 파일
1 2 3 4 5 6 7 8 9 | [kinew@localhost ~] $ cat /etc/default/useradd # useradd default file GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel CREATE_MAIL_SPOOL=yes | cs |
옵션 |
설명 |
GROUP |
새로 생성되는 계정이 기본적으로 속할 그룹의 GID |
HOME |
새로 생성되는 계정의 홈 디렉터리 위치 |
INACTIVE=-1 |
· 새로 생성되는 계정의 패스워드 사용 기간이 만료 후 계정 비활성 일자 지정 · 0이면 바로 사용 불가능, -1이면 기능을 사용하지 않음 |
EXPIRE |
· 새로 생성되는 계정의 패스워드 만료일 · 형식 : YYYY-MM-DD |
SHELL |
새로 생성되는 계정의 기본 셸 |
SKEL |
새로 생성되는 계정의 홈 디렉터리로 복사될 초기 환경설정 파일 디렉터리 |
CREATE_MAIL_SPOOL |
새로 생성되는 계정의 메일 저장 파일 여부 |
· /etc/default/useradd는 편집기 또는 명령어 'useradd -D'로 변경한다.
ex) 관리자의 gid는 500, 홈 디렉터리는 /home/example, 셸은 /bin/sh로 변경한다.
1 2 3 4 5 6 7 8 9 | [root@localhost ~] # useradd -D -g 500 -b /home/example -s /bin/sh [root@localhost ~] # useradd -D GROUP=500 HOME=/home/example INACTIVE=-1 EXPIRE= SHELL=/bin/sh SKEL=/etc/skel CREATE_MAIL_SPOOL=yes | cs |
나. /etc/passwd : 사용자 정보 파일. 리눅스에 로그인할 때 사용.
· 형식 : [사용자 이름]:[암호화된 비밀번호]:[UID]:[GID]:[설명문]:[홈 디렉터리]:[로그인 셸]
다. /etc/shadow : 사용자의 패스워드 정보가 암호화되어 있는 파일.
· 형식 : [사용자 이름]:[암호화된 비밀번호]:[최근 비밀번호 변경일]:[비밀번호 재설정 대기일 수]:[비밀번호 유효기간]:[비밀번호 변경 경고 기간]:[비밀번호 유예기간]:[비밀번호 만료 이후 계정 사용 불가 기간]:[예약 세팅]
라. /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 |
홈 디렉터리 생성 여부 |
5. 사용자 계정 관리
가. usermod
· /home에 위치한 사용자 정보 변경 명령어
· 형식 : usermod [옵션] [계정명]
옵션 |
설명 |
-u [uid] |
· 새 UID 지정 · -o 옵션과 같이 사용하면 강제 설정 |
-g |
· 새 GID 지정 · 사용자 그룹 지정 또는 변경 |
-G |
· 새 보조그룹 지정 · 기존 그룹에 포함되어 있는 상태에서 새 그룹에 추가 지정 |
-d [홈 디렉터리] |
· 새 홈 디렉터리 지정 · -m 옵션과 같이 사용하면 새로 생성 가능 |
-s [셸] |
새 셸 지정 |
-c [주석] | 새 주석 지정 |
-I [id] | 로그인 ID 변경 (새 계정명으로 변경) |
나. userdel
· 기존 계정 정보 삭제 명령어
· 옵션 없이 userdel을 사용하면 디렉터리 /etc/passwd, /etc/shadow, /etc/group에서 해당 계정의 정보가 삭제된다.
· 형식 : userdel [옵션] [계정명]
옵션 |
설명 |
-r |
계정명의 /var/spool/mail의 메일 파일과 홈 디렉터리 내용 모두 삭제 |
옵션 |
설명 |
-l |
사용자 계정 정보 출력 |
-m |
설정 암호 최소일자 |
-M |
설정 암호 사용 가능 일자 |
-E |
암호 만기일 |
-W |
만기 전 변경 요구 경고 날짜 지정 (지정된 날짜에 경고 메시지 출력) |
6. 그룹관리
가. /etc/group
· 사용자 그룹 정의 파일
· 모든 계정은 한 개 이상의 그룹에 포함되어 있다. → /etc/group을 수정하여 계정의 그룹에 대한 변경할 수 있다.
· 형식 : [그룹명]:[패스워드]:[GID]:[그룹에 속한 멤버]
나. /etc/gshadow
· 그룹의 암호를 md5로 암호화하여 저장하며, 그룹의 소유주, 구성원 설정이 가능하다.
· 형식 : [그룹명]:[그룹 암호 (!=부여되지 않음)]:[그룹 소유주]:[그룹 구성원]
다. groupadd
· 새 그룹 생성 명령어
· 형식 : groupadd [옵션] [그룹명]
옵션 |
설명 |
-g [gid] |
그룹에 GID 지정 |
-r |
시스템 그룹 생성 시 사용, 500번 이하 값 지정(남아있는 가장 높은 범위로 할당) |
라. groupdel
· 그룹 삭제 명령어
· 그룹 안에 소속되어 있는 계정명이 있을 경우 삭제되지 않는다.
· 형식 : groupdel [그룹명]
마. groupmod
· 그룹 설정 변경 명령어
옵션 |
설명 |
-g [gid] |
· GID 변경 · 옵션 -o와 같이 사용해서 중복 설정 |
-n [그룹명] |
새로운 그룹명을 변경할 때 사용 |
7. 사용자 조회 명령어
가. users
· 시스템에 로그인한 사용자 정보 출력 명령어
· 형식 : users [옵션]
옵션 |
설명 |
--version |
users 명령어 버전 정보 출력 |
나. who
· 현재 시스템에 접속해 있는 사용자 조회 명령어
1) 관리자, 일반 사용자 모두 사용 가능
2) 명령어 'who am i' 또는 'whoami'로 자신의 정보를 조회할 수 있다.
· 형식 : who [옵션]
옵션 |
설명 |
-b |
마지막 시스템 부팅 시간 출력 |
-p |
로그인한 사용자, 사용자 수 모두 출력 |
-r |
현재 시스템 실행 레벨 확인 가능 |
다. w
· 현재 접속 중인 사용자들의 정보를 나타내는 명령어
1) 확인 가능한 정보
· 서버의 현재 시간 정보
· 서버 부팅 후 시스템 작동 시간
· 서버 접속자의 총 수
· 접속자별 평균 부하율
· 접속자별 서버 접속 ㄱ정명
· TTY명
· 로그인 시간 정보 등
+) JCPU : TTY 필드의 장치명에서 사용되는 모든 프로세스의 CPU 사용 시간
+) PCPU : 해당 프로세스 결과값에서 WHAT 필드에 나타나는 프로세스명에서 사용하는 CPU 총 시간
라. id
· 사용자 계정의 UID, GID, 그룹 확인 명령어
· 형식 : id [옵션] [계졍명]
옵션 |
설명 |
-g |
사용자의 GID만 표시 |
-G |
사용자가 포함되어 있는 모든 그룹 정보 표시 |
-u |
사용자의 UID만 표시 |
마. groups
· 사용자 계정이 속한 그룹 목록 확인 명령어
· 형식 : groups [계정명]
'System > Linux Master' 카테고리의 다른 글
[1. 리눅스 일반] 03 리눅스의 기본 명령어 (3) - 기타 명령어 (0) | 2019.01.26 |
---|---|
[1. 리눅스 일반] 03 리눅스의 기본 명령어 (2) - 디렉터리 및 파일 (0) | 2019.01.25 |
[1. 리눅스 일반] 02 리눅스의 설치 (3) - 부트 매니저 (0) | 2019.01.24 |
[1. 리눅스 일반] 02 리눅스의 설치 (2) - 파티션 (0) | 2019.01.23 |
[1. 리눅스 일반] 02 리눅스의 설치 (1) - 기본 설치 및 유형 (0) | 2019.01.23 |