목록네트워크 & 리눅스/리눅스 (12)
바닥코딩
이번 포스트에서는 파일 처리를 위한 명령어에 대해 다루어 보겠습니다. file 파일의 타입을 확인합니다. 텍스트파일, 실행파일, 아카이브 파일인지 등의 파일 타입을 확인합니다. 옵션 -z 파일이 압출되어 있는 경우 압축되기 전의 파일 타입을 확인 head 파일의 앞부분을 화면에 출력합니다. 옵션 -n[라인번호] 지정한 라인번호까지 출력 예제 $ cat sample.txt one two three # 2번 라인까지 출력 $ head -n 2 sample.txt one two less, more 텍스트파일을 열람합니다. 텍스트파일을 화면 단위로 열람합니다. 명령어를 실행하고 화면을 이동하는 명령어는 vi 명령어와 동일합니다. 옵션 -N 라인번호를 표시합니다 sha1sum 파일의 무결성을 검증 할 때 파일의 ..
이번 포스트에서는 문자열 처리를 위한 명령어에 대해 다루어 보겠습니다. awk 입력을 주어진 분리자(field seperator)로 분리하여 명령을 처리합니다. 옵션 F 문자열을 분리할 기준이 되는 구분자 입력 v 파라미터 전달 내장함수 sub 지정한 문자열 치환 gsub 문자열 일괄 치환 index 주어진 문자열과 일치하는 문자의 인덱스를 반환 length 문자열의 길이를 반환 substr 시작위치에서 주어진 길이 만큼의 문자열 반환 split 문자열을 분리하여 배열로 반환 print 문자열 출력 printf 지정한 포맷에 따라 함수 출력 system 명령 실행 cat 파일을 읽어 내용을 표시합니다. 옵션 -n 행번호를 표시합니다. -b 공백을 제외하고, 행번호를 표시합니다. cut 구분자로 구분하여 ..
이번 포스트에서는 파일 시스템 관리를 위한 명령어에 대해 다루어 보겠습니다. cd 지정한 디렉토리로 이동합니다. 옵션 . 현재 위치로 이동 .. 부모 디렉토리 이동 ~ 홈 디렉토리 이동 - 이전 디렉토리 이동 cp 파일 및 디렉토리극 복사합니다. 옵션 -f 같은 이름의 파일이 있으면 확인하지 않고 덮어쓰기 -i 같은 이름의 파일이 있으면 확인하고 덮어쓰기 -R 디렉토리 하위 파일 모두 복사 dd 블록 단위로 데이터를 복사하거나 변환 옵션 if 입력 파일을 지정 of 출력 파일을 지정 bs 블록 크기를 지정 count 복사할 블록의 수를 지정 seek 출력 파일의 시작 위치를 지정 skip 입력 파일의 시작 위치를 지정 status 진행 상황을 출력할지 여부를 지정 df 파일시스템의 디스크 사용량을 표시 ..
ps 프로세스 정보를 화면에 표시합니다. 옵션 -e 현재 실행중인 모든 프로세스를 표시한다. -f 유저명, 시작시간을 표시한다. -u 유저명으로 검색한다. -o 사용자가 설정한 포맷으로 출력한다. -p [pid] 지정한 프로세스 정보만 표시한다. -e f 프로세스의 관계를 트리형식으로 표시한다 su su는 substitute user의 약어입니다. root 계정이나 다른 계정으로 변경할 때 사용합니다. 일반적으로 접속 계정을 다른 계정으로 변경할 경우 password 입력이 필요합니다. sudo sudo는 substitute user do의 약어로 변경된 계정으로 명령어만 실행하는 명령어입니다. 리눅스 머신에 명령어를 설치할 때 많이 사용됩니다. ulimit ulimit 명령은 사용자가 실행하는 프로세스..
관리명령어 이번 포스트에서는 리눅스 관리 명령어에 대해 알아 보겠습니다. 관리 명령어는 서버 내 프로세스, 메모리, 파일시스템, 관리를 위한 명령어 입니다. 시스템 관리 명령어 crontab 정기적으로 지정한 시간에 실행하고 싶은 명령어를 실행시키는 명령어 입니다. 윈도우의 스케줄러와 동일한 기능이라고 생각 할 수 있으며 스크립트 등록 또한 가능합니다 옵션 -l 등록된 명령어 리스트 확인 -e 등록된 명령어를 수정 크론탭 주기 설정 크론텝을 등록할 경우 실행하고자 하는 주기와 명령을 입력합니다. 주기는 분 시 일 월 요일 형태로입력합니다. 분 0 ~ 59 시 0 ~ 23 일 1 ~ 31 월 1 ~ 12 요일 0 ~ 7(0, 7이 일요일) ex) 매일 매 시각 50분에 sample.sh 를 실행한다고 했을..
파일시스템 파일시스템이란 사전적 의미로 살펴보자면 '운영체제가 파일,디렉토리를 효율적/구조적으로 관리하기 위한 트리구조 시스템을 총칭' 입니다. 즉 컴퓨터에서 OS를 통해 파일이나 자료를 쉽게 접근 하며,여러 사용자가 접속하는 환경에서도 저장장치 내 데이터를 쉽게 찾고 관리할 수 있도록 미리 정해진 약속으로 볼 수 있습니다. 리눅스 또한 이러한 파일시스템으로 이루어져 있습니다. 물론, 리눅스 배포 버전에 따라 일부 차이가 있기는 하지만 대부분 유사한 구조를 가지고 있어, 리눅스를 사용하는 사용자 관점에서는 해당 파일시스템의 구조를 먼저 인지하고 있다면, 직접 모든 파일을 조회하지 않아도 대략적인 디렉토리의 위치와 기능에 대해 빠르게 환경 설정&분석 이 가능할 수 있습니다. 리눅스의 파일 시스템 구조 먼저..
일반적으로 프로세스는 실행중인 프로그램을 의미 합니다. 그리고 실행 중인 프로그램을 관리하는 것은 운영체제(OS) 의 중요한 역할입니다. 이번 포스트 에서는 리눅스에서 프로세스가 어떻게 관리되고 작동 되는지 간단하게 알아 보겠습니다. 리눅스 프로세스 동작 구조 먼저 개발자가 프로그램을 개발하면 해당 프로그램은 코드로 구성되어 있습니다. 리눅스 에서는 명령어를 통해 이 코드를 실행하게 됐을 때 프로세스를 생성해 실행 중인 프로그램을 관리 합니다. 이러하 프로세스를 여러개 그룹화 하여 관리 하는 것도 가능 한데 이것을 job 이라고 지칭합니다. 리눅스에서는 프로세스에 고유 아이디인 PID 를 부여합니다. 서버관리자는 PID를 통해 프로세스의 동작상태와 실행/종료 와 관련된 기능을 제공받기 떄문에 더욱 편리한..
SSH(Secure Shell) 은 원격 호스트에 접속하기 위해 사용되는 보안 프로토콜 입니다. 유닉스 기반의 서버를 사용하는 경우 서버 PC에 터미널에서 직접 작업을 하는 경우도 존재하지만, 개발자의 입장에서는 인프라쪽 담당자가 아닌 경우 서버에서 직접 작업하기 보다는 개발환경에서 원격 접속을 통해 작업을 하는 경우가 더 일반적입니다 기존의 유닉스 시스템 셸에 원격 접속을 하는 경우에는 Telnet을 보편적으로 사용 하였습니다 그렇지만 Telnet은 암호화가 이루어 지지 않아 보안적으로 위험성이 높습니다. 이 점을 보완하기 위해 암호화 기능을 추가하여 SSH 라는 프로토콜이 세상에 나오게 되었고, 유닉스 기반의 서버에 원격접속을 할때 가장 보편적으로 사용되는 프로토콜이 되었습니다. SSH 키 SSH의 ..