- NEW초롱이의 하루
- kisa
- 길은 가면, 뒤에 있다
- C언어 예술가
- Zer0 day - Zer0 day
- Information Security
- Secure-EDU
- 앙큼한유채's 일상 Story
- Library of Ezbeat (잠정 폐쇄)
- The Factory
- 안드
- 모후모후의 커뮤니티
- 공학도의 잡다한 시선
- 안드2
- IT속에 코코아
- IP주소검색(whois)
- IP주소검색(좌표포함)
- 소프트웨어 경력 관리
- 해저 케이블 지도
- MAC주소검색
- IANA
- 포트번호검색
- 자신의IP확인
- 웹페이퍼캡처
- 나의패스워드보안등급
- 웹 취약점 분석
- IT용어정리
- GitHub
- 라이브러리 모음
- 웹마당넷
- 시스템콜참고
- BCD 변환
- 보안뉴스
- 코딩도장(C, Python)
- 백준알고리즘
- 코딩테스트 연습
- 웹 사이트 테스트
- 스크립트꾸미기
- ctf대회목록
- 전자신문
- hash 크랙
- CVE
- 도메인등록
- N클라우드
- BugBountyList
- 칼리공식사이트
- CR4FTING BOX
- 아스키코드 변환
- 웹 사이트 통계 및 평가
- PDF변환
- AWS 및 클라우드 정보
- 가상화 및 서버관련
- 티오리
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- centos docker
- Shell script
- GPIO
- Linux
- 라즈베리파이
- 쉘 스크립트
- 그라파나
- 클라우드
- nginx
- RaspberryPi
- 쉘 스크립트 if문
- 메소드
- synology
- API
- Tkinter
- 안드로이드
- System
- Android
- Java
- 쉘 스크립트 기초
- LEVIATHAN
- Python
- 프로젝트
- 네트워크
- GUI
- ACL
- 리눅스
- docker
- JSP
- 자바
- Today
- Total
IT창고
리눅스를 사용하기 위한 기본 명령어2 본문
리눅스를 사용하기 위한 기본 명령어1에 이어서 부족한 부분을 보충 하겠습니다.
리눅스에는 경로에 대해 말할때 절대경로와 상대경로가 있습니다. 절대경로는 /부터 시작해서 차례대로 가는 경로이고 상대경로는 현재경로를 기준으로 가는 경로입니다. 그리고 리눅스를 종료하는 명령어로 shutdown -h now명령어도 알고 있어야 합니다.
기본 명령어를 알아보기전에 리눅스의 파일구성을 알아보는데 리눅스의 파일은 '파일명+inode+데이터블록'으로 구성되어 있습니다. inode는 파일에 대한 정보를 가진 특별한 구조체인데 외부적으로 번호가 표시되어있고 내부적으로는 파일의 종류와 크기, 소유자, 허가권과 파일변경시간 등 파일의 상세정보와 데이터블록의 주소가 저장되어 있습니다. 데이터블록은 파일이 실제 하드디스크상에 데이터블록이라는 단위로 저장되어 있습니다.
파일에서 inode번호를 알아보는데 ls -i라고 입력하시면 현재 디렉토리내에 파일들의 inode번호가 나옵니다. 파일의 모든 정보는 inode에 저장되는것을 알고 있어야 합니다.
그리고 알아두면 좋은게 하나 더 있는데 파일 디스크립터는 커널이 리눅스파일(프로세스)을 관리하는 방식 입니다.
ex) cat gsk.txt -> 입력(Shell) ->키보드 출력(Shell) ->모니터
touch: 파일이 없을 경우 빈파일 생성 및 기존파일의 시간정보 변경 합니다.
옵션: -t ex) touch -t 201701210715 [file]
date: 시스템 시간 확인 및 수정 합니다.
cal: 달력확인 cal[year]이면 12개월 전부 보여줍니다.
file: 파일의 형식 확인 합니다.
which: 그 파일의 경로 확인 합니다.
cat: 파일의 연결과 파일내용을 화면에 연속적으로 출력합니다.
nl: 파일에 행 번호를 붙여 출력합니다.
more: cat과 비슷한 기능으로 cat은 내용이 많으면 전부 볼수없고 넘어가지만 more은 스페이스바를 눌러 출력화면을 넘기고 q를 눌러 종료합니다.
head: 파일의 내용중 첫부분 부터 10줄만 화면에 출력합니다.
tail: head와 반대로 마지막 내용부터 위로 10줄만 화면에 출력합니다.
sort: 파일내의 내용을 알파펫 순서대로 정리합니다.
옵션: -n 숫자를 기준으로정렬 -r 역순으로정렬 -u 중복행제거 -o 출력결과를 파일로 저장
wc: 라인, 문자, 단어 수 순서대로 출력합니다.
cut: 문서내의 글을 잘라내기
옵션: -c 잘라낼 글자위치를 지정 -d 필드와 필드를 구분하는 문자를 지정
ex) cut -c 1 test , cut -d ":" 1 test
tty: 현재 사용중인 터미널의 이름을 출력합니다.
ex) /dev/pts/0 이것은 ssh연결된 창에서 터미널을 확인하면 pts가 뜨고 0번을 보여줍니다 실제 서버창에서는 tty가 나옵니다.
grep: 파일 내용중에 정규식패턴에 일치하는 문자열을 찾아 화면에 출력합니다.
옵션: -i 대소문자를 구별하지않습니다. -n 행번호를 함께보여줍니다. -r 하위디렉토리에 위치한 파일도 검색합니다.
grep과 비슷한 기능을 가진 명령어중 egrep과 fgrep이 있는데 egrep은 확장된 정규식을 사용하고 fgrep은 정규식을 사용하지 않고 패턴을 모두 일반 문자열로 처리하여 명령어를 실행합니다 그렇기에 실행결과가 빠른 장점이 있습니다.
watch: 주기적으로 지정된 명령을 실행하고 그결과를 출력합니다.
옵션: -n [n]초 주기로 명령결과 출력합니다. -d 변경된 부분에 음영처리를 해줍니다.
ln: 링크파일생성 합니다.
옵션: -s 심볼릭링크파일생성 ex) ln -s /bin/ /BIN
옵션-s를 사용하지 않고 링크파일을 만들면 하드링크로 만들어집니다.
링크와inode관계로 하드링크로 만들면 완전히 데이터도 같은 파일이며 심볼릭링크파일로 만들면 경로데이터만 존재하고 inode번호도 다릅니다. 대표적으로 윈도우의 바로가기 같은 역활입니다.
파이프(pipe): 표준 입출력이 아닌 프로세스 간에 실행되는 입출력을 다음 프로세스에게 전달하는 방식입니다.
[명령어] | [명령어]
ex)
# ls -l | grep "^d" | wc -l
# ls -l /bin | grep "^-" | wc -l
이런 응용 가능합니다.
디렉토리 개수 출력하기
ex) ls -l | grep "^d" | wc -l
/etc/services 파일에 tcp라는 문자열이 들어간 라인 중 가장 마지막 라인을 확인하는 명령어
-> # cat /etc/services | grep "tcp" | tail -1
리다이렉션: 표준 입력과 출력의 방향을 제 지정 하는 방법입니다.
출력 리다이렉션
#[명령어] 1> [파일] //표준출력을 나타내는 fd "1"은 생략이 가능합니다.
ex) date 1> tdate
cat > cat_test
money .. <enter입력> //cat명령어를 이용하여 파일 내용을 입력하여 새로운 파일을 생성할 수 있습니다.
ctrl + <- 글자지우기
ctrl + d 글자저장
기존에 같은 이름의 파일이 있다면 경고없이 덮어쓰고 없다면 새로운파일을 만들어줍니다.
추가 리다이렉션: 덮어쓰지않고 아래에 추가를 해주는 방식입니다.
#[명령어] >> [파일]
오류 리다이렉션
#[명령어] 2> [파일]
#ls error_test //오류메세지발생합니다.
#ls error_test 1> err1 //해당 명령어의 표준 출력을 err1에 출력합니다.
#ls error_test 2> err2 //해당 명령어의 표준 오류를 err2에 출력합니다.
입력 리다이렉션: 해당 명령어가 처리되기 위한 파일을 입력 받는데 평소에 사용하는 명령어와 별 차이가 없습니다.
#[명령어] < [파일]
오류메세지를 출력하지 않기
/dev/null - 리눅스 특수 장치 파일로 해당 파일 항상 0값을 가지고 있습니다.
해당 파일로 리다이렉션된 내용은 모두 사라집니다.(윈도우의 휴지통역활)
ex) find / -size +50M 2> /dev/null 이런 용도로 활용
- 의도적으로 오류메세지를 화면에 출력되지 않게 사용할 수 있습니다.
참고**
Bash쉘에 파일 덮어쓰기 방지하는 기능 설정
#set -o noclobber //덮어쓰기 방지 기능 활성화
#set +o noclobber // 비활성화
'서버운영 > Linux' 카테고리의 다른 글
Xshell 기본 설정하기 (0) | 2017.08.21 |
---|---|
리눅스 SSH배너 설정하기 (0) | 2017.08.20 |
리눅스 vi편집기 사용 (vim포함) (0) | 2017.08.19 |
리눅스를 사용하기 위한 기본 명령어1 (0) | 2017.08.16 |
리눅스 실습환경 구현하기 (0) | 2017.08.11 |