Cent OS 7 / Linux kernel / bash
환경변수 PATH
- echo $PATH
- --------------------
- PATH는 실행 파일들의 디렉터리 위치를 저장해 놓은 환경 변수이다.
- 명령어 입력자의 현재 작업 디렉터리와 상관없이 특정 명령어를 입력하면 PATH 변수에 저장되어 있는 경로에서 해당 명령어를 찾아 실행한다. 명령어 echo $PATH는 지정된 PATH 값을 확인할 수 있다.
명령어 printenv
- printenv [옵션] 명령어
- -0 or --null : 개행하지않고 출력, 아무값도 없다면 개행해서 출력
- -명령어 : 명령어(키값)에 해당하는 값만 출력
- --------------------
- 환경의 전체 또는 일부를 출력하는 명령어이다.
명령어 which
- which 명령어
- --------------------
- 명령어의 경로를 확인하는 명령어이다.
- 명령어의 위치를 찾아주거나 alias를 보여주는 명령어이다.
- 사용자가 현재 위치에서 명령을 시켰을 때 어떤 명령이 실행되는지를 알고 확인할 수 있다.
- $PATH가 설정되어 있는 경로에서만 해당 명령어의 경로를 찾는다.
pwd는 bin 디렉터리 안에 있는것으로 경로가 출력되었다.
jhlee의 경우 alias, PATH경로 위에 명령어가 없기 때문에 no jhlee in ... 이 출력되었다.
which grep의 경우에는 alias와 명령어의 위치가 모두 존재하여 출력되었고,
grep의 경우 alias로 --color=auto로 설정이 되어있어서 컬러가 입혀진것으로 보인다.
명령어 alias
- alias [별명='명령어']
- --------------------
- 명령어 'ls -al|more'를 문자 'm'으로 단축시킨다.
명령어 unalias
- unalias [옵션] [단축명령어]
- -a : 설정된 모든 alias 해제
- --------------------
- alias 기능을 해제한다.
명령어 export
- export 변수명=$변수명:변수값
- --------------------
- 기존의 PATH에 새로운 경로를 추가하는 방법에는 명령어 PATH나 홈 디렉터리의 .bash_profile에 PATH를 추가한다. 기존 경로와 새 경로는 콜론(:)으로 구분한다.
명령어 uname
- uname [옵션]
- -a : 프로세서의 종류, 운영체제의 이름을 제외하고 모두 출력
- -s : 커널의 이름을 출력
- -n : 네트워크의 호스트 이름을 출력
- -r : 커널의 릴리즈 정보를 출력
- -v : 커널의 버전을 출력
- -m : 시스템의 하드웨어 타입을 출력
- -p : 프로세서의 종류를 출력
- -o : 운영체제의 이름을 출력
- --------------------
- 시스템의 정보 확인
명령어 man
- man [섹션] [옵션] 명령어
- -a : 찾고자 하는 명령어의 검색된 매뉴얼 페이지를 모두 출력
- -h : 사용법을 출력
- -f : whatis 명령과 동일, 키워드와 동일한 man 페이지만 출력
- -k : apropos 명령과 동일, 키워드가 포함된 man 페이지 출력
- -w : 찾고자 하는 문자의 매뉴얼 페이지가 있는 위치를 출력
- --------------------
- 리눅스에서 사용하는 명령어들의 매뉴얼을 제공한다.
- 매뉴얼은 9개의 섹션(section)으로 구분되어 해당 섹션에서 해당 정보들을 확인할 수 있다.
- 1 : 일반 명령어 관련 매뉴얼이 들어있는 영역
- 2 : 시스템 호출 관련 매뉴얼이 들어있는 영역
- 3 : C 표준 라이브러리 함수 관련 매뉴얼이 들어있는 영역
- 4 : 장치 드라이버 또는 특수 파일에 대한 정보가 들어있는 영역
- 5 : 특정 파일들에 대한 정보가 들어있는 영역
- 6 : 게임과 화면보호기에 대한 정보가 들어있는 영역
- 7 : 리눅스 파일 표준, 프로토콜, 시그널 목록 정보가 들어있는 영역
- 8 : 시스템 관리 명령어와 데몬 정보가 들어있는 영역
- 9 : 커널 관리 정보가 들어있는 영역
- man -a uname : uname의 모든 man 페이지 섹션을 표시
- man 2 uname : uname의 섹션 2의 man 페이지를 표시
- man uname -P more : uname의 man 페이지를 more 명령을 사용하여 페이지 단위로 표시
- man -f uname : uname이 포함된 man 페이지 표시
- 매뉴얼은 9개의 섹션(section)으로 구분되어 해당 섹션에서 해당 정보들을 확인할 수 있다.
man 2 uname의 경우 섹션2 매뉴얼이 없다.
명령어 info
- info 명령어
- --------------------
- 리눅스 명령어의 사용 방법, 옵션 등을 나타낸다.
- 명령어 man에 비해 제공되는 명령어가 한정적이다.
위의 man 명령어와 비교해보면 매뉴얼보다는 정말 정보를 주로 표시한다.
명령어 whatis
- whatis 명령어
- --------------------
- 명렁어에 대한 기능을 간략하게 나타낸다.
- 자세한 사용법과 설명은 명령어 man이나 info로 확인해야한다.
- 완전히 키워드가 일치해야만 해당 명령어의 기능을 확인할 수 있다.
명령어 manpath
- manpath
- --------------------
- man 명령이 참조하는 매뉴얼 페이지의 경로를 표시합니다.
명령어 whereis
- whereis [옵션] 명령어
- -b : 바이너리 파일만 찾음
- -m : 지정된 매뉴얼 섹션에서만 찾음
- -M : 매뉴얼 페이지의 위치를 제한
- -u : 특정 파일을 제외
- --------------------
- 찾고자 하는 명령어의 실행 파일 절대 경로와 소스코드, 설정 파일 및 매뉴얼 페이지를 찾아 출력하는 명령이다.
명령어 apropos
- apropos 문자열
- --------------------
- 맨(man) 페이지 설명에서 지정한 키워드를 포함하고 있는 명령어이다.
- whatis 데이터베이스에서 문자열을 포함한 것을 검색한다.
- whatis 데이터베이스가 만들어져 있어야 이 명령을 쓸 수 있다.
명령어 useradd(adduser)
- useradd [옵션] 계정명
- -s : 사용자의 로그인 기본 셸을 지정
- -d : 계정의 홈 디렉터리를 지정
- -f : 패스워드가 만기된 후 계정이 영구히 말소될 때까지의 기간 지정
- -e : 사용자 계정의 유효기간을 설정, 일정 시간 동안 사용 가능한 임시 계정을 만들고자 할 때 사용
- -c : 파일 /etc/passwd에 새로운 사용자 설명을 추가
- -G : 계정이 속한 그룹 외에 다른 그룹에 계정 추가
- -D
- -g : 그룹변경
- -b : 홈 디렉터리 변경
- -f : INACTIVE 변경
- -e : 계정 종료일 변경
- -s : 셸 변경
- --------------------
- 계정을 생성하는 명령어로 명령어 adduser와 동일한 기능을 갖는다.
useradd -D 커맨드의 패스는 현재 /etc/default/useradd 파일 안의 값들과 일치한다.
/etc/default/useradd의 옵션과 설명
- GROUP : 새로 생성되는 계정이 기본적으로 소속될 그룹의 GID를 지정
- HOME : 새로 생성되는 계정의 홈 디렉터리 위치를 지정
- INACTIVE : 새로 생성되는 계정의 패스워드 사용 기간이 만료된 후 계정이 사용 불강해지는 날을 지정
- 0 : 바로 사용 불가능
- -1 : 기능을 사용하지 않음
- EXPIRE : 새로 생성되는 계정의 패스워드 만료일을 지정(YYYY-MM-DD)
- SHELL : 새로 생성되는 계정의 기본 셸을 지정
- SKEL : 새로 생성되는 계정 사용자의 홈 디렉터리로 복사될 초기 환경설정 파일들이 저장된 디렉터리를 지정
- CREATE_MAIL_SPOOL : 새로 생성되는 계정의 메일 파일 저장 여부를 지정
/etc/default/useradd은 vi 편집기 또는 useradd -D 로 변경할 수 있다.
만일 이상태로 계정을 생성하게되면 SHELL=/bin/sh 로 설정되어 있어서 sh 쉘로 생성이 된다. 만일 쉘을 변경하고 싶은 경우에는 chsh 명령어를 사용하여 쉘을 변경할 수 있다.
명령어 chsh
- chsh [옵션] 계정명
- -s : 로그인 쉘을 지정
- -l : /etc/shells에 나열된 쉘 목록을 출력하고 종료
- -u : --help 명령어와 동일
- -v : 버전정보를 출력하고 종료
- --------------------
- 로그인 쉘을 변경하는데 사용되는 명령어이다.
- chsh는 시스템에 있는 실행 파일의 전체 경로 이름을 허용합니다. 하지만 쉘이 /etc/shells 파일에 나열되지 않으면 경고가 표시됩니다. 반면에 루트가 아닌 이상 이 파일에 나열된 쉘만 허용하도록 구성할 수도 있습니다.
명령어 passwd
- passwd [옵션] 계정명
- -S : 계정 상태 표시(Status)
- PS : 정상
- NP : 패스워드가 없음
- NK : Lock 상태이거나 NP 상태
- -d : 계정 패스워드 삭제(delete)
- -l : 계정을 lock 상태로 변경(lock)
- -u : 계정의 lock 상태를 해제(unlock)
- --------------------
- 생성된 계정자의 패스워드를 입력 및 변경하는 명령어이다.
- 생성된 계정자의 패스워드는 /etc/shadow 파일 안에 기록된다.
명령어 su
- su [옵션] [사용자] [셸변수]
- -, -l, --login : 지정한 사용자의 환경변수를 적용하여 로그인
- -s : 지정된 셸로 로그인
- -c : 셸로 실행하지 않고 주어진 명령어 수행
- --------------------
- 명령어 su는 switch user의 줄임말이다.
- 현재의 사용자 계정에서 로그아웃 하지 않고 다른 사용자 계정으로 로그인하여 해당 사용자의 권환을 획득하는 명령어이다.
셸 환경변수를 가져오지 않고 관리자 root로 계정을 변경한다.
관리자 root의 셸 환경변수를 가져온다.
사용자 계정 변환 없이 root 권한으로 명령어를 수행한다.
예를들면 su -c 'cat /etc/shadow' - root도 가능하다.
아래는 jhlee계정에서 cat 명령어를 사용자 계정 변환없이 root 권한으로 않고 출력하였다.
명령어 usermod
- usermod [옵션] 계정명
- -u uid : 새로운 UID를 지정, -o 옵션과 같이 사용하면 강세 설정 가능
- -g : 새로운 GID 지정, 사용자 그룹을 지정 또는 변경
- -G : 새로운 보조그룹 지정, 기존 그룹에 포함되어 있는 상태에서 새로운 그룹에 추가 지정
- -d 홈 디렉터리 : 새로운 홈 디렉터리를 지정, -m 옵션과 같이 사용하면 새로 생성이 가능
- -s 셸 : 새로운 셸 지정
- -c 주석 : 새로운 주석 지정
- -I ID 로그인 ID를 바꾸는 옵션으로 새로운 계정명으로 변경
- --------------------
- 디렉터리 /home에 위치한 사용자들의 정보를 변경하는 명령어이다.
- 사용자의 홈 디렉터리 변경, 그룹 변경, 유효기간 등을 변경한다.
명령어 userdel
- userdel [옵션] 계정명
- -r : 계정명의 /var/spool/mail의 메일 파일과 홈 디렉터리의 내용 모두를 삭제
- --------------------
- 기존 계정 정보를 삭제하는 명령어이다.
- 옵션 없이 userdel을 사용하면 디렉터리 /etc/passwd, /etc/shadow, /etc/group에서 해당 계정의 정보가 삭제된다.
명령어 chage
- chage [옵션] [계정명]
- -l : 사용자 계정 정보를 출력
- -m : 설정 암호 최소 사용 일자
- -M : 설정 암호 사용 가능 일자
- -E : 암호 만기일 지정
- -W : 만기 전 변경 요구 경고 날짜 지정(지정된 날짜에 경고 메시지 출력)
- --------------------
- 패스워드의 만료 정보를 변경하는 리눅스 명령어이다.
명령어 userdel
- userdel [옵션] 계정명
- -r : 계정명의 /var/spool/mail의 메일 파일과 홈 디렉터리의 내용 모두를 삭제
- --------------------
- 기존 계정 정보를 삭제하는 명령어이다.
- 옵션 없이 userdel을 사용하면 디렉터리 /etc/passwd, /etc/shadow, /etc/group에서 해당 계정의 정보가 삭제된다.
명령어 groupadd
- groupadd [옵션] 그룹명
- -g gid : 그룹에 gid를 지정
- -r : 시스템 그룹 생성 시 사용. 500번 이하 값 지정(남아있는 가장 높은 범위로 할당)
- --------------------
- 새로운 그룹을 생성하는 명령어이다.
명령어 groupdel
- groupdel 그룹명
- --------------------
- 기존의 그룹을 삭제하는 명령어이다.
- 그룹 안에 소속되어 있는 계정명이 있을 경우 해당 그룹은 삭제되지 않는다.
명령어 groupmod
- groupmod [옵션] 그룹명
- -g gid : gid를 지정, 옵션 -o와 같이 사용해서 중복 설정을 해줌
- -n 그룹명 : 새로운 그룹명을 변경할 때 사용
- --------------------
- 그룹의 설정을 변경하는 명령어이다.
명령어 users
- users [옵션]
- --version : users 명령어 버전 정보 출력
- --------------------
- 시스템에 로그인한 사용자 정보를 출력하는 명령어이다.
명령어 who
- who [옵션]
- -b : 마지막 시스템 부팅 시간 출력
- -q : 로그인한 사용자와 사용자 수를 모두 출력
- -r : 현재 시스템의 실행 레벨을 확인 가능
- --------------------
- 현재 시스템에 접속해 있는 사용자들을 조회하는 명령어이다.
- 사용자 계정명, 터미널 정보, 접속 시간, 접속한 서버 정보 등을 확인할 수 있다.
- 관리자 root와 일반 사용자 모두 사용이 가능하다.
- 명령어 'who am i' 또는 'whoami'는 자신의 정보를 조회할 수 있다.
명령어 w
- w
- --------------------
- 현재 접속 중인 사용자들의 정보를 나타내는 명령어
- 확인 가능한 정보는 서버의 현재 시간 정보, 서버 부팅 후 시스템 작동 시간, 서버 접속자의 총 수, 접속자별 서버 평균 부하율, 접속자별 서버 접속 계정명, TTY명, 로그인 시간 정보등
- JCPU은 TTY 필드의 장치명에서 사용되는 모든 프로세스의 CPU 사용 시간
- PCPU은 WHAT 필드에 나타내는 프로세스명에서 사용하는 CPU 총 사용 시간
명령어 id
- id [옵션] [계정명]
- -g : 사용자의 GID만 표시
- -G : 사용자가 포함되어 있는 모든 그룹 정보 표시
- -u : 사용자의 UID만 표시
- --------------------
- 사용자 계정의 uid, gid, group을 확인하는 명령어
명령어 groups
- groups [계정명]
- --------------------
- 사용자 계정이 속한 그룹 목록을 확인하는 명령어
명령어 pwd
- pwd
- --------------------
- 현재 작업 중인 디렉터리의 위치를 나타내는 명령어
명령어 cd
- cd [상대경로|절대경로] [설정경로]
- ~ : 현재 사용자의 홈 디렉터리로 이동
- . : 현재 디렉터리
- .. : 현재에서 한 단계 상위 디렉터리로 이동
- / : 루트 디렉터리로 이동
- --------------------
- change directory의 약자로 디렉터리를 이동할 때 사용하는 명령어
- 절대 경로는 시작 위치와 상관없이 경로에 모든 디렉터리를 표시하며, 절대 경로의 시작은 /(루트)에서부터 시작
- 상대 경로는 현재 작업 중인 디렉터리를 기준으로 표시하는 경로
명령어 mkdir
- mkdir [옵션] 디렉터리명
- -m : 디렉터리를 생성할 때 권한을 설정(디폴트는 755)
- -p : 상위 경로 생성
- -v : 디렉터리 생성 후 생성된 디렉터리의 메시지 출력
- --------------------
- make directory의 약자로 새로운 디렉터리를 생성할 때 사용하는 명령어이다.
명령어 rmdir
- rmdir 디렉터리명
- --------------------
- remove directory의 약자로 디렉터리만 삭제하는 명령어로 디렉터리 안에 파일이 존재하는 경우 삭제되지 않는다.
명령어 ls
- ls [옵션] [경로명]
- -a : 히든파일을 포함한 모든 파일과 디렉터리 표시
- -l : 퍼미션 크기, 사이즈 등의 자세한 정보 표시
- -d : 지정된 디렉터리의 정보 출력
- -r : 알파벳 역순으로 정보 출력
- -R : 하위 경로와 그 안에 있는 파일 표시
- --------------------
- 현재 위치한 디렉터리의 파일 목록들을 나타내는 명령
명령어 cp
- cp [옵션] 원본 대상
- -b : 복사 대상 파일이 이미 존재할 경우를 대비하여 백업 파일을 만듦
- -f : 복사 대상이 이미 존재하면 복사 대상 파일을 강제로 지우고 복사
- -i : 복사 대상이 이미 존재하면 사용자에게 덮어씌울 것인지 유무 확인
- -r : 디렉터리르 복사할 경우 하위 디렉터리와 파일을 모두 복사
- --------------------
- 파일 또는 디렉터리를 복사하는 명령어
명령어 rm
- rm [옵션] [경로명]
- -f : 질의 메시지 없이 강제로 파일이나 디렉터리 삭제
- -i : 삭제 시 사용자에게 질의
- -r : 삭제 디렉터리가 포함하고 있는 하위 디렉터리를 포함하여 모든 파일 삭제
- --------------------
- 파일 또는 디렉터리를 삭제하는 명령어
명령어 mv
- mv [옵션] 원본 대상
- -b : 대상 파일이 이미 있어 지워지는 것을 대비해 백업 파일 생성
- -f : 대상 파일이 이미 있어도 사용자에게 어떻게 처리할지 묻지 않음
- -v : 파일이 옴ㄹ겨지는 과정을 자세히 표시
- --------------------
- 파일 또는 디렉터리를 이동하거나 파일명을 변경할 때 사용하는 명령어
명령어 touch
- touch [옵션] 파일명
- -b : 대상 파일이 이미 있어 지워지는 것을 대비해 백업 파일 생성
- -f : 대상 파일이 이미 있어도 사용자에게 어떻게 처리할지 묻지 않음
- -v : 파일이 옴ㄹ겨지는 과정을 자세히 표시
- --------------------
- 파일 크기가 0바이트인 빈 파일을 생성한다.
- 서버의 현재 시간으로 파일의 최근 사용한 시간과 최근 수정 시간 등 타임 스탬프를 변경한다.
- 타임 스탬프는 파일의 시간 정보를 나타내는 것으로 접근시간, 수정시간, 변경시간이 있다.
- 접근시간(access time)은 애플리케이션이나 서비스가 시스템 호출을 사용해 파일을 읽을 때마다 접근시간이 갱신된다.
- 수정시간(modify time)은 파일 내용이 변경될 때 파일 수정 시간이 갱신된다.
- 변경시간(change time)은 파일 내용을 수정했을 때 기록되는 시간으로 변경 불가능한 시간이다.
명령어 file
- file [옵션] 파일명
- -b : 파일명은 출력하지 않고 파일 유형만 표시
- -f : 파일 목록에서 지정한 파일들에 대해서만 명령을 실행
- -z : 압축된 파일의 내용 출력
- -i : MIME 타입 문자로 출력
- --------------------
- 파일의 종류 및 파일 속성값을 나타내는 명령어
명령어 find
- find [경로] [옵션] [정규표현식] [파일명]
- -name : 이름을 기준으로 파일 검색
- -user : user의 파일이나 디렉터리 검색
- -perm : 지정된 권한의 파일 검색
- -type : 파일 유형에 따라 파일 검색
- -atime n : n일 이전에 접근한 파일 검색
- -exec : 검색된 파일에 수행할 명령어를 지정
- --------------------
- 현재 디렉터리에서부터 하위 디렉터리까지 주어진 조건의 파일을 찾아 해당 경로를 표시
명령어 locate
- locate [파일명]
- --------------------
- 파일의 위치를 찾는 명령어
- 리눅스 배포판에 따라서 기본으로 제공되지 않을 수 있는 명령어, 제공되지 않는 경우 추가 패키지 설치시에 가능
명령어 cat
- cat [옵션] [파일]
- -n : 각 문장 앞에 번호 표시, 비어있는 행 포함
- -b : 각 문장 앞에 번호 표시, 비어있는 행 제외
- -s : 연속되는 2개 이상의 빈 행을 한 행으로 출력
- -A : 텍스트 파일에 존재하는 개행 문자나 탭 문자 등을 확인
- --------------------
- 파일의 내용을 출력하는 명령어
명령어 head
- head [옵션] 파일명
- -c : 출력을 원하는 용량 지정, 지정된 '숫자' 바이트만큼의 문자 출력
- -숫자 또는 -n 숫자 : 출력을 원하는 줄 수 지정, 옵션이나 숫자를 지정하지 않으면 기본적으로 10개씩 출력
- --------------------
- 파일의 앞부분을 지정한 만큼 출력하는 명령어이다.
명령어 tail
- tail [옵션] 파일명
- -c : 출력을 원하는 용량 지정
- -숫자 또는 -n 숫자 : 출력을 원하는 줄 수 지정, 옵션이나 숫자를 지정하지 않으면 기본적으로 10개씩 출력
- -f : 지정된 파일에 새롭게 추가되는 파일 내용을 실시간으로 출력
- -v : 파일을 출력할 때 파일명을 표시
- -q : 파일을 출력할 때 파일명을 표시하지 않음
- --------------------
- 파일의 마지막 행을 기준으로 지정한 행까지의 파일 내용 일부를 출력하는 명령어
명령어 more
- more [옵션] 파일명
- -숫자 : 한 페이지에 표시되는 라인 수
- --------------------
- 파일을 확인하는 명령어로 파일을 화면 단위로 끊어서 출력하는 명령어
- 위에서 아래 방향으로만 출력되기 때문에 지나간 내용을 다시 볼 수 없다.
- 명령어 실행 상태에서의 키 입력
- Space Bar : 다음 페이지로 정환
- Enter : 한줄씩 출력
- Ctrl + D : 반 페이지 출력
- Ctrl + B : 이전 페이지 출력
- Q : 종료
- /패턴 : 지정한 패턴의 문자열 검색
명령어 less
- less 파일명
- --------------------
- 텍스트 파일을 한 번에 한 화면씩 나타내는 명령어이다.
- 기능적으로 more를 확장한 것으로 커서를 파일의 상하좌우로 이동할 수 있다.
명령어 grep
- grep [옵션] 문자열 파일명
- -r : 디렉터리 내의 모든 디렉터리와 파일들을 검색하도록 지정
- -E : 패턴 정규 표현식으로 확장
- -i : 대문자, 소문자 차이 무시
- -v : 검색할 문자열이 포함되지 않은 줄만 출력
- -n : 라인 수 출력
- -l : 문자열이 포함된 파일명 출력
- --------------------
- 파일에서 특정한 패턴(문자열) 또는 정규 표현식으로 나타낸 단어를 찾는 명령어
- 명령어 grep을 이용하여 다양한 내용들을 검색할 수 있다.
- grep -r -n TEST_20 test.txt : 현 디렉터리 내의 모든 디렉터리와 파일들중 파일 이름이 test.txt인 파일에서 'TEST_20'이 들어간 문자열과 행 번호 검색
- grep -r -l TEST : 현 디렉터리 내의 모든 디렉터리와 파일들 중에서 TEST 라는 문자열이 들어간 파일 이름 검색
- head -n 10 test.txt | grep ^TEST : 파일의 앞부분부터 10번째 줄 까지의 출력중에서 TEST로 시작하는 행 검색
- grep -r 20$ test.txt : 현 디렉터리 내의 모든 디렉터리와 파일등 중 파일 이름이 test.txt인 파일에서 '20'으로 끝나는 문자열이 들어간 행 검색
명령어 wc
- wc [옵션] 파일명
- -l : 전체 라인 수 출력
- -w : 전체 단어 수 출력
- -c : 전체 문자(알파벳) 수 출력
- --------------------
- 파일 라인 수, 단어 수, 알파벳 수를 알려주는 명령어
명령어 sort
- sort [옵션] 정렬할 파일명
- -b : 앞 공백 무시
- -o : 저장할 파일 명시
- -r : 역순으로 표시
- -f : 대소문자 구분하지 않음
- -t : 필드 구분자 지정
- -u : 중복 행 제거
- -m : 정렬 파일 병합
- -n : 숫자만 비교
- --------------------
- 명령어 결과나 문서 내용을 정렬하는 명령어
명령어 cut
- cut [옵션] 파일명
- -c : 잘라낼 곳의 글자 위치를 지정, 콤마나 하이픈을 사용하여 범위 지정
- -f : 잘라낼 필드 지정
- -d : 필드를 구분하는 문자 지정, 딜폴트는 탭
- -s: 대소문자 구분하지 않음
- --------------------
- 파일에서 특정 필드를 추출해 낸다. 필드는 구분자로 구분할 수 있다.
명령어 split
- split [옵션] 파일명
- -b : 파일을 byte 단위로 분할
- -l : 파일을 주어진 라인 수 단위로 분할
- --------------------
- 하나의 파일을 여러 개의 작은 파일로 분리할 때 사용
- 파일의 내용을 라인 수로 분할할 수도 있고, 용량 단위로 분할할 수도 있다.
- 주로 디스켓에 파일을 나누어 복사하거나 백업할 때 CD-RW 용량 단위로 분할할 경우 유용
명령어 diff
- diff [옵션] 파일명1 파일명2 또는 diff [옵션] 디렉터리1 디렉터리2
- -b : 연속된 공백 무시
- -i : 대소문자를 구분하지 않음
- -s : 두 파일이 같은지 확인
- -r : 두 디렉터리의 차이점 출력
- --------------------
- 두 개의 파일을 행 단위로 비교하여 다른 부분을 출력하는 명령어
- 두 개의 파일을 매개변수로 사용하여 화면에 차이점을 나열
명령어 cmp
- cmp [옵션] 파일명1 파일명2
- -b : 두 파일 간의 다른 바이트를 출력
- -l : 두 파일 간의 다른 문자 위치와 문자를 출력
- -s : 아무 것도 출력하지 않고 실행 결과 코드만 반환
- --------------------
- 두 개의 파일을 행 단위로 비교하여 다른 부분을 출력하는 명령어
- 두 개의 파일을 매개변수로 사용하여 화면에 차이점을 나열
명령어 comm
- comm [옵션] 파일명1 파일명2
- -1 : '파일1'에만 있는 내용을 제외하고 내용 출력
- -2 : '파일2'에만 있는 내용을 제외하고 내용 출력
- -3 : '파일1'과 '파일2'에 공통으로 존재하는 내용을 제외하고 출력
- --------------------
- 두 개의 파일을 줄 단위로 비교하여 출력하는 명령어
- 정렬하지 않은 파일들의 경우에 'file 1 is not in sorted order' 등의 출력을 볼 수 있다. 보지않으려면 sort로 파일을 만들어서 비교하면 된다.
명령어 ping
- ping [옵션] [도메인명 혹은 IP주소]
- -c [요청수] : ping을 보낼 횟수로 생략될 경우 무제한으로 실행
- -i : 신호를 보내는 시간 간격으로 생략될 경우 1초 단위로 설정
- -s : 전송하는 패킷 크기를 바이트(byte) 단위로 설정
- --------------------
- 외부 호스트에 신호를 보내며 신호를 받은 호스트는 응답을 주면서 서로 네트워크가 연결되어 있음을 확인시켜 주는 명령어
명령어 nslookup
- nslookup [옵션] [호스트명]
- -type=레코드(-query=레코드) : 레코드 타입을 지정
- --------------------
- 도메인명으로 IP 주소를 조회하거나 또는 IP 주소로 도메인명을 조회하는 명령
레코드 | 설명 |
NS | 도메인의 네임서버 정보 |
MX | 도메인의 MX(Mail Exchange)서버 |
A | 호스트의 IP 주소 |
CNAME | 별칭으로 부여된 canonical name |
SOA | 도메인의 start-of-authority 정보 |
PTR | IP 주소에 대한 호스트 명 |
명령어 traceroute
- traceroute [도메인명 혹은 IP주소]
- -w : 타임아웃시간을 지정합니다.
- -m : 홉(hop)의 수를 지정합니다. 도달하려는 목적지까지의 홉수보다 작은 경우 도달할 수 없습니다.
- --------------------
- 목적지 호스트까지의 경로를 표시하고 그 구간의 정보를 기록하는 명령어
- 목적지 호스트까지의 패킷 전송 지역을 측정하거나 목적지 호스트로 향하는 경로상에 어떤 장애가 있는 경우 위치를 파악할 수 있음
명령어 dig
- dig [서버명] [호스트명] [질의타입]
- --------------------
- 명령어 nslookup과 유사한 기능을 가진 명령어로 호스트명에 대한 IP 주소 정보 또는 IP 주소에 대한 호스트명을 조회하는 명령어
질의타입 | 설명 |
a | 도메인 IP 정보 |
any | 지정된 도메인의 모든 정보 |
mx | 지정된 도메인의 메일 서버 정보 |
ns | 네임 서버 정보 |
soa | SOA 정보 |
구글 퍼블릭 DNS :IPv4 주소 8.8.8.8, 8.8.4.4
- 구글에서 무료로 제공하는 DNS 서비스로서, 웹 환경을 빠르고 보다 안전하게 하기 위한 노력의 일부이다.
- 구글에 따르면 2013년 기준으로 구글 퍼블릭 DNS는 하루 평균 1조 3천억건 이상의 요청을 처리할 수 있는, 세계에서 가장 큰 공용 DNS 서비스이다.
- 구글 퍼블릭 DNS는 다음과 같이 리커시브 네임 서버 주소를 공용으로 제공하며, 애니캐스트 라우팅을 통해 가장 가까운 운영 서버 위치로 매핑해준다.
참조: https://udpark.tistory.com/99
참조: 이기적 리눅스마스터
'📄Document > 🔥Linux' 카테고리의 다른 글
[Linux] 리다이렉션, 파이프, 정규표현식(정규식) (0) | 2021.12.21 |
---|---|
[Linux] LINUX 디렉터리 종류와 특징 (0) | 2021.11.20 |
[Linux] 리눅스, 유닉스, GNU, 리눅스배포판이란? (0) | 2021.11.20 |