linux 파일 삭제


안녕하세요.
고코더 입니다.


리눅스에서 파일을 삭제하는 방법을 알아봅니다. 이전 시간에서는 폴더 삭제 위주로 배워봤는데요. 이번 시간은 파일 위주로 알아봅니다.



 1. rm [파일명] : 개별 파일 삭제


하나의 파일을 삭제하는 기본 방법입니다.

rm 1.txt



 2. rm *.[확장자] : 같은 확장자 파일을 모두 삭제


똑같은 확장자의 파일을 삭제하는 방법을 알아봅니다. 

rm *.txt



 3. rm * : 모든 파일 삭제


해당 폴더안에 있는 모든 파일을 삭제 합니다.
rm *




 4. rm -ri [파일명] :  파일을 삭제할때 확인하기


파일을 삭제할때 확인을 물어보고 하나씩 봐가면서 삭제할 수 있습니다. 파일 삭제는 매우 위험한 작업이기에 이 방법을 추천합니다.

rm -ri *



마무리


파일 삭제는 매우 위험한 작업입니다.



댓글을 달아 주세요


linux 압축의 차이


안녕하세요.
고코더 입니다.


리눅스에서 압축 파일을 다루다 보면 두 가지 형식을 자주 보게 됩니다.
바로 확장자 기준으로 tar와 tar.gz 입니다. 윈도우에서 보던 zip, 7z, rar 처럼 압축 포맷중에 하나 입니다.
그런데 이 둘은 명확한 차이가 있습니다.



 1. tar 방식


리눅스 환경에서 자주 사용하는 방식입니다. 압축파일이라고는 하지만 용량을 압축하지는 않습니다. 덕분에 매우 빠르게 압축이 진행되고 CPU 사용률도 높지가 않습니다. 그래서 tar를 사용하면 순식간에 압축 파일이 생성됩니다. 

- 압축이라기 보다는 파일을 하나로 합쳐지는 방식
- cpu사용이 적다
- 용량을 줄이지 않는다



 2. gzip(tar.gz) 방식


리눅스에서 용량을 줄여서 압축할때 사용하는 방식입니다. tar를 다시 압축한다는 의미로 해석합니다. 

- 용량을 압축한다.  
- tar를 압축한다.




마무리


파일을 하나로 묵는다 = tar
파일을 압축 한다 = gz




댓글을 달아 주세요


YUM, RPM 차이를 알아보자


안녕하세요.
고코더 입니다.


리눅스에서 프로그램을 설치하는 대표적인 두 가지 방법이 존재합니다. 바로 오늘 RPM 그리고 YUM으로 나뉩니다. 
패키지 인스톨 프로그램이면서 인스톨 프로그램이라 생각하면 쉽습니다. 이 둘은 명확한 차이가 있어 개념을 정리해보려고 합니다.


 1. RPM (Redhat Package Manager)


이 방법은 리눅스 초기부터 사용해온 설치 방식입니다. 윈도우에서 인스톨 프로그램일 설치하듯 하는 방식이고 확장자는 rpm 입니다. 패키지라고 불리는 이 방식은 필요요소를 전부 다운로드 해야 하는 불편함이 있습니다. 

- 패키지 인스톨 프로그램
- 인터넷 없이 RPM으로만 설치 가능
- 의존하는 패키지를 모두 직접 설치 해야 한다



 2. YUM (Yellodog Updater Modified)


이 방식은 의존성 문제를 해결한 방식입니다. 인터넷을 통하여 필요 파일을 저장소에 다운로드 한 후에 설치하는 방법입니다. yum은 외부 서버랑 통신이 가능해야 합니다. 패키지를 구성한 요소를 전부 갖추어서 설치 가능합니다. 즉 인터넷마 있으면 쉽게 설치가 가능한 최신 방법 입니다.

- 이 방식도 패키지 인스톨 프로그램이다.
- 인터넷으로 다운로드 한다. 서버 통신 허용이 필요
- 패키지 구성을 자동으로 다운로드 하여 설치 가능하다.




마무리


현업에서는 yum 방식이 효율적이죠. 




댓글을 달아 주세요


emacs 편집기 단축키 


안녕하세요.
고코더 입니다.


emacs에서 사용 가능한 단축키를 모아보았습니다. 참고 해보세요.


커서이동
Ctrl f, b, n, p 
 화살표와 동일
Ctrl v, Alt v 
 PgUp, PgDn
Ctrl a, Ctrl e 
 Home, End
Alt f, b 
 단어단위로 앞뒤이동
Alt a, e 
 문단 앞, 뒤로 이동
Alt <, > 
 파일의 처음, 끝으로 이동
Alt r 
 커서를 페이지의 처음,끝,가운데로 이동
Ctrl l 
 커서가 포함된 줄을 화면 처음, 끝, 가운데로 이동
Alt g - Alt g 
 원하는 줄로 이동
삽입
Ctrl o 
 빈줄 삽입, 커서 제자리
Ctrl j 
 빈줄 삽입, 커서 아래로
Ctrl x - i 
 파일 삽입
Ctrl y 
 kill한 내용 삽입
삭제
Ctrl d 
 커서에있는 글자삭제
BackSpace 
 커서 앞에있는 글자삭제
Alt d 
 커서에 있는 단어삭제
Alt BackSpace 
 커서 앞에있는 단어삭제
Ctrl k 
 커서부터 줄끝까지 삭제
Ctrl w 
 선택영역 kill
영역
Ctrl Space 
 영역선택시작, 종료
Ctrl x - Ctrl x 
 선택영역 시작지점 변경
Ctrl x - h 
 전체선택
Alt w 
 복사와 비슷
Ctrl w 
 잘라내기와 비슷
Ctrl y 
 붙여넣기와 비슷
검색
Ctrl s 
 아래로검색
Ctrl r 
 위로검색
Ctrl % 
 치환
Alt u 
 단어 대문자로 변경
Alt l 
 단어 소문자로 변경
Alt c 
 단어중 맨 앞글자만 대문자로변경
Ctrl x - Ctrl t 
 윗줄과 내용을 바꿈
Alt t 
 앞단어와 내용을 바꿈
Ctrl t 
 커서가 줄선두에 있을때 윗줄로 글자보냄
 
 
Dired 모드 
 디렉토리 모드
f 
 파일 열기, 없으면 생성
v 
 파일 열기, 읽기전용
D 
 파일 삭제
g 
 디렉토리 목록갱신
R 
 파일 이름 변경
C 
 파일 복사
Alt x - make-directory - Enter 
 디렉토리 생성
+ 
 디렉토리 생성
Ctrl x - d 
 dired 모드 진입
Alt x - dired - Enter 
 dired 모드 진입
인코딩
Ctrl x - Enter - r 
 인코딩 보는방식 변경
Ctrl x - Enter - f 
 인코딩 저장방식 변경
 
 팁:미니버퍼에서 tab 누르면 목록 나옴
 
 euc-kr, cp949, utf-8, utf-16-le 등..
Ctrl \ 
 한글, 영어 변경
leftShift Space 
 한글, 영어 입력방식 변경
F9 
 한글이나 자음등을 한자, 특수문자등으로 변환
파일
Ctrl x - Ctrl f 
 파일열기, 없을시 새로생성
Ctrl x - Ctrl s 
 파일 저장
Ctrl x - Ctrl w 
 다른이름으로 저장
Ctrl x - k 
 버퍼 닫기
Ctrl x - b 
 버퍼 이동, 화살표 위아래키로 목록열람가능
Ctrl x - Ctrl b 
 새 프레임을 열고 버퍼 목록 표시
프레임
Ctrl x - 2 
 상하로 프레임분리
Ctrl x - 3 
 좌우로 프레임분리
Ctrl x - 1 
 현제프레임만 남기도 나머지 없애기
Ctrl x - 0 
 현제프레임을 없애고 하나로 합치기
Ctrl x - ^ 
 현제프레임 수직크기 키우기, 보통 Ctrl - u 와 함께씀
Ctrl x - {, } 
 현제프레임 좌우크기 조절
Ctrl + 
 프레임들 크기 일정하게
Ctrl x - o 
 프레임간 이동
기타
Ctrl g 
 명령취소
Ctrl / 
 실행취소
Ctrl x - u 
 실행취소
Ctrl u - 숫자 
 반복작업
Alt ! 
 간단한 쉘명령
Alt - shell - Enter 
 쉘 불러오기
Alt x - hexl-mode - Enter 
 헥사모드
Ctrl x - Enter - r - cp437 
 nfo 파일볼때

마무리


외우지 말고 한번만 읽고 찾으면서 해보세요.
시험 준비하는 분은 외우셔야 겠네요.



댓글을 달아 주세요


nano 에디터를 실행하는 방법


안녕하세요.
고코더 입니다.


nano 편집기는 기본적으로 설치된 vi 편집기 보다 사용하기 수월한 에디터 입니다. 간단한 작업시에 매우 편리합니다. 사용법을 익히기 힘든 vi 보다 유리한 점이 많습니다. 


 1. nano [파일] : 파일 편집 하기


가장 기본적인 파일을 편집하는 명령어 입니다. 
nano test.txt




 2. nano -B [파일] : save 이후에 파일 편집하기


기존 파일을 백업 합니다. 중요한 파일이다면 해당 옵션을 사용하세요.
nano -B memo.txt




 3. nano -m [파일] : 마우스를 사용해 편집할 수 있게 한다. 커서 이동을 마우스로 가능


마우스가 있다면 이 옵션을 쓴다면 마우스로 커서 이동이 가능합니다. 매우 편리합니다.
nano -m test.txt




 4. nano +3 [파일] : 원하는 라인부터 편집


파일을 편집시에 원하는 라인부터 커서를 이동 시킵니다. 특정 라인만 편집하게 강제한다면 이렇게 명령어를 전달 해줘도 좋습니다.
nano +3 test.txt




마무리


nano가 제일 편리한거 같습니다.


댓글을 달아 주세요


리눅스에서 사용하는 대표적인 텍스트 편집기 에디터


안녕하세요.
고코더 입니다.


리눅스에서는 다양한 편집기를 제공합니다. 윈도우에서도 메모장부터 워드까지 다양한 텍스트 편집기가 존재하는거처럼 리눅스도 마찮가지 입니다.
오늘은 이 편집기의 종류에 대해 알아보려고 합니다.



 1.  vi (Vi Improved)


리눅스를 대표하는 편집기 입니다. 현업에서도 대부분 이 프로그램을 사용합니다. 
빌 조이가 캘리포니아 대학교 버클리에서 개발했습니다. vi편집기와 호환 후에 독자적으로 다양한 기능을 추가해 만들어진 편집기 입니다. ex모드에서 히스토리 기능, 정규 표현식 기능, 문법 강조 기능, 다중 되돌리기 기능, 유니코드를 비롯한 다국어 지원을 사용할 수 있습니다. 리눅스 배포판에서 탑재되어서 가장 많이 사용하지만 커맨드 명령어가 주입니다.

vi




 2.  pico


워싱턴대학에서 개발한 유닉스용 편집기입니다. 기존 편집기와 달리 윈도우의 메모장처럼 쉽게 사용할 수 있는 특징이 있습니다. 입력모드와 명령모드가 따로 존재하지 않고 바로 텍스트를 입력할 수 있습니다. 삭제키인 delete 키와 backspace를 사용할 수 있는 편의가 있습니다.

pico




 3.  emacs



Editor Macros는 리처드 스톨만이 매크로 기능이 텍스트 편집기로 개발하였습니다.  'emacs LISP'라 하는 LISP에 기반을 두는 환경 설정 언어를 가지고 처음부터 다시 만든 버전입니다. emacs는 편집기와 LISP 개발 환경이 통합되어 있어서 LISP를 아는 프로그래머에게는 인기 있는 에디터입니다. 하지만 초보자가 사용하기에는 매우 어렵습니다.




마무리


vi가 제일 쓰기 어려운데 이거만 쓰게 되네요


댓글을 달아 주세요


프로세스 cpu 사용률 실시간 체크


안녕하세요.
고코더 입니다.


리눅스에서 사용중인 실시간 cpu 사용률을 확인 하는 명령어를 배워봅니다. 잘못 사용된 프로세스가 운영체제를 망가지지 않도록 모니터링 해보세요.


 1. top 명령


현재 리눅스에서 사용중인 프로세스 cpu 사용률을 알아보는 방법이 있습니다. 해당 명령어를 사용하면 cpu 현황을 체크 할 수 있습니다.
top




 2항목 설명


PID : 프로세스 ID 
USER : 프로세스를 실행시킨 사용자 ID
PRI : 프로세스의 우선순위 
NI : NICE 값 마이너스 일수록 우선순위가 높다
VIRT : SWAP+RES 가상 메모리 사용량
RES : Resident Size 현재 페이지가 크기
SHR사용된 메모리를 나눈 메모리의 총합
S : S(sleeping), R(running), W(swapped out process), Z(zombies) 상태 값
%CPU :  CPU의 사용률
%MEM : 메모리의 사용률
COMMAND : 실행된 명령어


 3실행 후 정렬


SHIFT + P : CPU사용량 순서대로 정렬
SHFT + M : 메모리 사용량 순서대로 정렬
SHFT + T : 실행시간 순서대로 정렬


마무리


cpu 잘 사용합시다.


댓글을 달아 주세요


백그라운드로 진행 중인 작업 상태, 보고되지 않은 상태를 표시


안녕하세요.
고코더 입니다.


이전에 백그라운드 실행 방식을 알아보았습니다. 해당 방식을 사용하면 출력화면이 표시되지 않지만 백그라운드 프로세스로 실행되고 있는 명령어를 확인하는 방법이 있습니다.


 1.  jobs [옵션] : 명령어


해당 명령어를 사용하면 실행중인 백그라운드가 목록이 나타납니다.
jobs



옵션 -l을 붙이면 좀 더 자세한 내역이 나타납니다. 고유 job id가 나타납니다.
jobs -l


프로세스 ID를 출력 한다.
jobs -p




 2.  세션의 상태값


Running - 작업이 종료하지 않고 계속 진행 중
Done - 작업이 완료되어 0을 반환하고 종료 함
Stopped - 작업이 일시 중단
Done(code) - 작업이 정상적 완료 코드를 반환
Stopped(SIGTSTP) - SIGTSTP 신호가 작업을 일시 중단
Stopped(SIGSTOP) - SIGSTOP 신호가 작업을 일시 중단
Stopped(SIGTTIN) - SIGTTIN 신호가 작업을 일시 중단
Stopped(SIGTTOU) - SIGTTOU 신호가 작업을 일시 중단



마무리


모르고 실행중인 프로세스를 조심하세요.


댓글을 달아 주세요



foreground , background란?


안녕하세요.
고코더 입니다.



 1. 포그라운드 작업


사용자가 명령어를 입력하면 터미널에서 작업을 입력한 명령을 해석하여 실행합니다. 그리고 결과를 화면에 출력합니다. 그러면 출력된 결과 화면을 보고 다시 명령을 입력하는 대화식 작업을 수행합니다. 입력한 명령어 실행이 결과가 나올 때 까지 기다리는 방식이 바로 포그라운드 방식 입니다.  포그라운드 프로세스라고 말하며 작업 제어 측면에서는 포그라운드 작업이라고 말합니다. 
포그라운드 작업은 다른 명령을 입력할 수 없고 기다려서 입력해야 한다. 일반적 명령을 실행 입니다.

아래 명령어를 입력하면 sleep이 풀릴때까지 다음 명령을 실행 할 수 없습니다.
sleep 99999999




 2. 백그라운드 작업


백그라운드 기능은 프로세스가 실행되는 동안 다른 프로세스가 실행 가능합니다. 하나의 쉘에서 여러 개의 프로세스를 동시에 실행할 수 있는 방식입니다.
백그라운드 방식으로 명령어를 실행하면 곧바로 다음 명령어를 실행 가능합니다. 필요한 여러 작업 동시에 진행하면서 포그라운드 작업을 계속 진행할 수 있습니다. 백그라운드 작업은 해당 명령어 처리가 오래 걸릴걸 대비해 백그라운드를 이용하면 여러 작업을 동시에 수행할 수 있다. 실행 방법은 & 기호를 추가하면 됩니다.

아래 명령어를 입력하면 곧 바로 다음 명령어를 실행 가능합니다.
sleep 99999999&



마무리


백그라운드를 잘 사용하면 작업이 편리 합니다.



댓글을 달아 주세요


signal을 알아보는 조회 명령어


안녕하세요.
고코더 입니다.

 1. 이벤트가 발생하였시 신호를 보내서 알려주는 걸 시그널입니다. 이 시그널에 대한 목록을 확인해보는 명령어를 알아봅니다.  쉘을 통해 목록을 확인해보세요. 
kill -l


 2. 해당 시그널에 SIG를 뺀 부제를 알아보는 명령어입니다.
kill -l 1
kill -l 2



 3. 시그널에 대한 설명을 다룬 표입니다. 해당 사항을 확인해보세요.
이름
설명
기본 처리
SIGHUP
(HUP)
HangUP의 약어로 로그아웃과 같이 터미널에서 접속이 끊겼을 때 보내지는 시그널입니다.
데몬 관련 환경 설정 파일을 변경시키고 변화된 내용을 적용하기 위해 재시작할 때 이 시그널이 사용됩니다.
종료
SIGINT
(INT)
키보드로부터 오는 인터럽트 시그널로 실행을 중지.
[CTRL]+[c] 입력 시에 보내지는 시그널입니다.
종료
SIGQUIT
(QUIT)
키보드로부터 오는 실행 중지 시그널.
[CTRL] + [\] 입력 시에 보내지는 시그널입니다.
기본적으로 프로세스를 종료시킨 뒤 코어를 덤프하는 역할을 합니다.
코어 덤프
SIGILL
(ILL)
illegal instruction의 약자입니다. 잘못된 명령을 사용했을 때 발생합니다.
코어 덤프
SIGTRAP
(TRAP)
trace(추적), breakpoint(중지점)에서 TRAP 발생할 때
코어 덤프
SIGABRT (ABRT)
abort의 약자로 비정상종료 함수에 의해 발생합니다.
(즉 abort 시스템 호출을 하였을 때 발생)
코어 덤프
SIGBUS
메모리 접근 에러시 발생하는 시그널입니다.
코어 덤프
SIGKILL (KILL)
KILL! 무조건 종료, 즉 프로세스를 강제로 종료시키는 시그널!
종료
SIGSEGV
invalid memory reference
종료 +
코어덤프
SIGTERM (TERM)
Terminate의 약자로 가능한 정상 종료시키는 시그널로 kill 명령의 기본 시그널입니다.
종료
SIGCHLD
(child)
자식 프로세스가 stop 되거나 종료되었을 때 부모에게 전달되는 신호입니다. (멀티 프로세스 코딩에서 자세한 사용법은 배울 거..)
무시
SIGCONT (CONT)
Continue의 약자로 STOP 시그널에 의해 정지된 프로세스를 다시 실행시킬 때 사용됩니다.
재시작
SIGSTOP (STOP)
터미널에서 입력된 정지 시그널입니다. SIGCONT로 재실행시킬 수 있습니다.
중지
SIGTSTP (TSTP)
실행 정지 후 다시 실행을 계속하기 위해 대기시키는 시그널입니다.
[CTRL] + [z]를 입력했을 때 보내지는 시그널입니다.
SIGCONT로 역시 다시 실행시킬 수 있습니다.
중지
SIGIO
비동기 입출력이 발생했을 경우 ! (I/O now possible!)
종료



마무리


외울 필요는 없고 키보드 단축키로 실행 가능한 시그널만 외워두세요. 시험에 나옵니다.


댓글을 달아 주세요