AWK


- 유닉스에서 처음 개발된 일반 스크립트 언어이다.

- awk는 짧은 프로그램을 구현하기 위해 개발되었다.

- 복잡한 프로그램을 작성하지 않고 파일에 대한 패턴 처리를 쉽게 할 수 있다.

- 필드를 자유자재로 조작하여 데이터 양식의 문서나 자료를 처리하여 다른형태의 문서 또는 결과물로 출력하는데 쓰인다.

- 논리연산, 특수문자, 조건, 반복문 가능


awk [-f prog-file] [-F c] ['pattern {action}'] [filename]  _


1) -f prog-file : awk의 실행 action을 가진 프로그램 파일 지정

2) -F c : 필드 구별자 

3) pattern {action} : awk program의 커맨드는 싱글 쿼트('') 혹은 더블쿼트("")로 둘려 쌓여있으며, action을 중괄호로 둘러싸여있다.

4) _ : awk 프로그램에 입력될 입력 파일 지정



AWK의 내부 변수




ex) awk '{print NF}' test.txt 


ex) awk '/Hello/ {print "%s %10.3f\n", $1, NF}' Hello.txt




ex) jstat -gc [PID] 1000 | awk '{ print "used Memory=", ($3 + $4 + $6 + $8)/1024, "\t\tHeapMemory=",($1 + $2 + $5 + $7)/1024 }'


- awk를 활용한 java 프로그램의 메모리 확인





SED


- Stream Editor의 약자, 비대화모드의 라인 단위 편집기

- Streaming 편집기

- 입력문자 또는 파일에 대해 특별한 기능을 사용하여 변환

- sed는 큰 파일을 처리할 때 주로 사용

- 주어진 주소 범위에 대해 입력의 어떤 라인을 조작할 것인지 결정




sed [-n] [-e script] [-f script_file] [filename]


ex) sed -n '/The/h' Hello.txt


1) [-n] : -n 옵션이 없다면 모든 입력의 출력

2) [-e script] : -e 옵션은 그다음에 나오는 스크립트를 sed 명령어로 해석. 옵션이 없다면 기본으로 지정됨.

3) [-f script_file] : -f 명령어를 통해 명령어를 파일에 저장해놓고 사용가능


   -> sed -n -f scr.sed Hello.txt










'System > Linux,Unix' 카테고리의 다른 글

VI 편집기 명령어 정리  (0) 2018.08.07
명령어 정리  (0) 2018.08.07
Unix의 구조 ( Kernel, Shell)  (0) 2018.08.03
Unix와 Linux의 차이  (0) 2018.08.03
FreeMemory에 대한 이해  (0) 2018.07.17

1.커서 이동





2.입력


1)  i : 현재 커서에서 입력

2) a: 현재 커서 오른쪽에 입력

3) o: 현재 라인의 다음 라인을 공백으로 만듬

4) I: 현재라인의 첫문자 앞에 입력

5) A: 현재 라인의 마지막 뒤에 입력




3. 삭제 


1) x: 다음 글자 삭제

2) X: 앞 글자 삭제

3) dd: 현재 라인 삭제



4. 명령 취소


1) u  : 바로 전에 실행한 명령어 취소

2) U : 현재라인에서 실행한 명령어 전체 취소

3) .  : 앞서 실행했던 명령어 재실행



4. 복사


1) yy : 현재 라인 복사

2) p : 커서 위치 오른쪽 혹은 아래에 붙여넣기




5. 화면이동


1) H: 현재 화면 맨위로 이동

2) L: 현재 화면 맨 아래로 이동

3) M: 현재 화면 중간으로 이동



6. 라인 수 나타내기


: se nu



7. 검색


1) :/pattern : 패턴검색 

:s/pattern1/pattern2 : 패턴1을 패턴2로 검색하고 치환


'System > Linux,Unix' 카테고리의 다른 글

AWK & SED  (0) 2018.08.07
명령어 정리  (0) 2018.08.07
Unix의 구조 ( Kernel, Shell)  (0) 2018.08.03
Unix와 Linux의 차이  (0) 2018.08.03
FreeMemory에 대한 이해  (0) 2018.07.17

1. 파일 정보 관련 명령어



  • umask


- 기본적으로 새로운 파일이 생성될 때 아스키 파일은 허가모드가 644 실행파일은 755로 설정됨.   시스템 내부에 umask 기본값이 022로 설정


  • chown 

- 파일 소유자를 바꿀 수 있다.

ex ) chown -R mysql:mysql [directory]



  • touch


- 파일의 날짜 및 시간을 현재 날짜로 설정

ex) touch filename


  • find 

- 찾고자 하는 파일에 대한 기본적인 자료를 가지고 임의의 파일 시스템에서 주어진 조건과 일치하는 파일을 찾는다.


ex)  find / -name *.c -type d -print



  • head

- 파일의 1줄부터 n번째 줄까지 보여줌

ex) head -4 /etc/passwd


  • tail

- 파일의 끝에서 n번째 줄까지 보여줌


    



2. 파일 내용 관련 명령어


  • cat 

- 파일 전체 내용 출력


  • more

- 파일 한화면 단위로 출력한다.

(스페이스키는 한 화면, 엔터는 한라인씩 내려감)


  • grep 

- 파일 내용 중 일치하는 문자를 찾는다.





3. 파일 비교 관련 명령어


  • cmp

- 파일 2개를 비교하여 틀린 위치를 찾는다,.

ex) cmp test.txt test1.txt





4. 파일 압축 관련 명령어 



리눅스(Linux)에서의 파일 압축 개념은 윈도우즈(Windows)에서의 파일 압축 개념에 비해 세분화 되어있다.

 

윈도우즈에서는 보통 압축을 한다하면, zip 등의 방식으로 선택된 파일이나 폴더들을 묶으면서 동시에 압축(compress)을 하는 것을 의미한다.

반면, 리눅스에서는 파일이나 폴더들을 묶는 것(archive)과 실제로 압축(compress)하는 기능이 나뉘어져있다.

 

리눅스에서 여러 파일을 한 파일로 묶은 것을 아카이브(archive)라 하며 확장자는 .tar 이다.

일반적으로 tar로 묶인 아카이브를 gunzip을 사용해서 .tar.gz 의 확장자를 가지는 압축 아카이브로 많이 사용한다.

  • pack 

- 파일을 압축시켜 .z 확장자를 붙인다.

pack test1


  • unpack

- .z 확장자의 파일을 압축해제 한다.

unpack test1.z


  • tar


- .tar 확장자로 압축/해제 한다.


- 옵션값

  • x : 묶음을 해제
  • c : 파일을 묶음
  • v : 묶음/해제 과정을 화면에 표시
  • z : gunzip을 사용
  • f : 파일 이름을 지정
  • p : 권한(permission)을 원본과 동일하게 유지


ex) tar -cvzf  test.tar.gz [directory]

ex) tar -xvzf test.tar.gz




  • tar
- 일반적으로 tar 명령어와 함께 쓰는 압축/해제 명령어


ex) gzip *
ex) gzip -d *.gz




'System > Linux,Unix' 카테고리의 다른 글

AWK & SED  (0) 2018.08.07
VI 편집기 명령어 정리  (0) 2018.08.07
Unix의 구조 ( Kernel, Shell)  (0) 2018.08.03
Unix와 Linux의 차이  (0) 2018.08.03
FreeMemory에 대한 이해  (0) 2018.07.17


구조




Kernel 


- 운영체제의 일부분으로 운영체제의 핵심을 이룬다.

- 커널은 컴퓨터 부팅 시 메모리에 적재되며 시스템이 꺼질 때 까지 실행한다. 

- 대부분 C로 작성 되었지만, 일부분 효율성을 고려하여 어셈블리언어로 작성되었다.

- System call 인터페이스를 통해 커널을 사용한다.



Kernel 의 기능


:시스템에 존재하는 시스템 자원 관리 


 1) 메모리 관리

 2) 프로세스 관리

 3) 파일관리

 4) 입출력관리

 5) 프로세스간 상호 통신





Shell





-  하나의 프로그램, 사용자가 처음 로그인 성공하면 커널이 최초로 사용자에게 할당해주는 프로그램이다.

-  쉘은 운영체제의 커널과 사용자 사이의 인터페이스 역할

-  사용자가 터미널에서 입력한 명령어는 쉘에 의해 타당성 여부를 검증 

-  간단히 정의하면, 명령어 번역기 프로그램이다.




Shell의 종류


-  쉘에는 Bourne shell, korn shell, cShell이 있다.

-  Bourne Shell과 Korn Shell의 프롬프트는 $ 이며, cShell은 %이다.


- 흔히 말하는 bash는 Bourne Again Shell의 축약어이다.





메타 문자


쉘에는 메타 문자라는 것이 존재하는데 어떤 문자들을 특수하게 처리하게 해주며 명령의 편의를 돕는다.





>

 표준출력을 파일에 기록하는 출력 

 >>

 표준출력을 파일 끝에 덧붙이는 출력

 <

 파일로부터 표준 입력을 읽는 입력

 <<EOF

 EOF문자를 만나면 표준 입력이 끝남

 *

 0개 이상의 문자와 일치하는 파일 치환

 ?

 1개의 문자와 일치하는 파일 치환

 | 

 어떤 프로세스의 출력을 다른 프로세스의 입력으로 보내는 파이프 기호

 ; 

 명령어 종결

 ||

 이전명령 실패하면 뒤의 명령 실행

 && 이전 명령 성공해야만 뒤의 명령 실행
 & 백그라운드 실행
 # 주석
 $ 변수의 값
 \ 뒤에 나오는 메타문자를 일반문자로 해석




'System > Linux,Unix' 카테고리의 다른 글

VI 편집기 명령어 정리  (0) 2018.08.07
명령어 정리  (0) 2018.08.07
Unix와 Linux의 차이  (0) 2018.08.03
FreeMemory에 대한 이해  (0) 2018.07.17
vi/vim 에서 문자 일괄 변경  (1) 2018.07.17


Difference


Linux 컴퓨터 하드웨어와 소프트웨어게임개발태블렛PCS 등에서 사용하는 오픈소스이며 무료OS이다.

Unix 인터넷서버워크스테이션 그리고 Solaris, Intel, HP PC에서 주로 사용하는 OS이다







비교표(Comparison chart)

 

Linux(리눅스)

Unix(유닉스)

설명

리눅스는 오픈소스이며 무료OS이다.

유닉스는 대학회사큰  기업에서 주로 선호하는 OS이다.

비용

리눅스는 무료이다따라서 잡지나 책을 동해서도 배포될 수 있다.

유료버전의 리눅스도 있지만 대부분 윈도우보다는 저렴하다.

유닉스는 판매 회사별로 가격이 다르다.

사용자

모든사람집에서 사용하는 사람에서부터 개발자 그리고 컴퓨터 열혈팬 같은 사람들 모두.

유닉스 운영체제는 주로 메인프레임서버 그리고  모든사람을 위해 설계된 OSX를 제외한 워크스테이션을 위해 개발되었다유닉스 환경과 클라이언트-서버 프로그램 모델은 인터넷의 개발의 필수 요소이다.

제조사

리눅스 커널은 커뮤니티에 의해 개발되었다리누스 토발즈(Linus Benedict Torvalds리눅스개발자)가 이를 감독하고 있다.

 

Solaris (Oracle), AIX (IBM) 그리고 HP-UX (Hewlett Packard) 3개의 큰 제조사이다. Apple OSX도 있다.

 

가격

무료그러나 유료로 지원되는 것이 있다.

몇몇은 개발용도로 무료이다(Solaris)그러나 유료로 지원되는 것이 있다.

사용량

리눅스는 모바일폰태블랫 컴퓨터 그리고 비디오게임콘솔에서부터 메인프레임이나 슈퍼컴퓨터까지 다양한 컴퓨터 하드웨어에 설치가 가능하다.

유닉스는 인터넷서버워크스테이션과 PC들에 사용된다다수의 금융인프라 그리고 많은 24x365 고 가용솔루션의 뼈대를 이루는 인프라에 사용된다. (백본).

프로세서

다양한 종류가 있다.

x86/x64, Sparc, Power, Itanium, PA-RISC, PowerPC 

개발과 배포

리눅스는 오픈소스로 개발되었다.

리눅스 코드의 공유와 공동작업과 각 포럼 등의 특성을 통해 개발되었다그리고 다양한 판매사에 의해 배포된다.

유닉스 시스템은 다양한 제조사로 나누어진다. (대부분 AT&T 그리고 다양한 상업적 판매사와 비영리 단체에 의해 개발됨)

아키텍처

원래 인텔의 x86 하드웨어를 위해 개발되었으며, ARM을 포함한 24개 이상의 CPU 타입들도 지원가능하다.

 

PA-RISC 그리고 Itanium 기계에 사용가능하다. Solaris x86/x64기본시스템에도 사용가능하다. OSX PowerPC(10.0-10.5)/x86(10.4)/x64(10.5-10.8)에 가능

GUI

 

리눅스는 기본적으로 KDE Gnome의 두 가지 GUI를 제공한다그 외에 LXDE, Xfce, Unity, Mate, twm 등도 있음.

초기에 유닉스는 커맨드기반의 OS였다그러나 후에 GUI가 생성되어 공통 데스크톱 환경으로 불렸다대부분 배포는 현재 Gnome을 탑재하고 있다.

 

파일 시스템 지원

 

Ext2, Ext3, Ext4, Jfs, ReiserFS, Xfs, Btrfs, FAT, FAT32, NTFS

 

jfs, gpfs, hfs, hfs+, ufs, xfs, zfs format

 

텍스트모드 인터페이스

 

BASH (Bourne Again SHell)는 리눅스의 기본 쉘이다. BASH는 다수의 명령어를 지원한다.

 

원래는 Bourne Shell이다현재는 BASH, Korn & C를 포함한 다른 많은많은 쉘들과 호환된다.

보안

 

리눅스는 지금까지 약 60-100개의 바이러스 명단이 있다이 중 요즘은 아무도 활발하게 퍼지고 있지 않다.

 

유닉스의 바이러스는 지금까지 85-120정도가 보고되었다..

 

위협 탐지와 해결

 

리눅스의 경우 위협탐지와 해결이 매우 빠르다리눅스가 주로 커뮤니티 기반이기 때문이다그리고 리눅스 사용자가 위협을 커뮤니티에 올리면세계의 다른 지역의 개발자들이 해결을 위한 작업을 시작한다.

 

유닉스의 본래 독점적인 성격으로 인해사용자는 적절한 버그수정 패치를 얻기 위해선 한동안 기다려야 했다그러나 이것은 일반적이진 않다.

첫 시작

1992년 MINIX(유닉스와 비슷한 시스템)에 의해 영감을 받은 리누스 토발즈가. GUI, Drivers 등의 많은 특성들을 추가한 후에,지금의 리눅스가 된OS의 프레임워크를 개발하였다 리눅스 커널은 19919 17일 출시되었다.

1969, Bell연구소의 AT&T직원들과 데니스리치에 의해 개발되었다유닉스는 C언어로 작성되었으며 휴대용제품시분할 환경의 다중작업과 다중사용자 시스템을 위해 설계되었다.

예시

Ubuntu, Fedora, Red Hat, Debian, Archlinux, Android 

OS X, Solaris, 모든 리눅스










=> 유닉스를 개인 컴퓨터에서 사용하도록 한 것이 리눅스









'System > Linux,Unix' 카테고리의 다른 글

VI 편집기 명령어 정리  (0) 2018.08.07
명령어 정리  (0) 2018.08.07
Unix의 구조 ( Kernel, Shell)  (0) 2018.08.03
FreeMemory에 대한 이해  (0) 2018.07.17
vi/vim 에서 문자 일괄 변경  (1) 2018.07.17

https://www.kdata.or.kr/info/info_04_view.html?field=&keyword=&type=techreport&page=17&dbnum=183855&mode=detail&type=techreport

'System > Linux,Unix' 카테고리의 다른 글

VI 편집기 명령어 정리  (0) 2018.08.07
명령어 정리  (0) 2018.08.07
Unix의 구조 ( Kernel, Shell)  (0) 2018.08.03
Unix와 Linux의 차이  (0) 2018.08.03
vi/vim 에서 문자 일괄 변경  (1) 2018.07.17

문서 전체에서 변경


:%s/변경시킬문자/변경될문자/g


ex) :%s/10/100/g





문서 1번째줄부터 10번째줄까지에서 변경


:1,10s/변경시킬문자/변경될문자/g


ex) :2,25s/10/100/g



'System > Linux,Unix' 카테고리의 다른 글

VI 편집기 명령어 정리  (0) 2018.08.07
명령어 정리  (0) 2018.08.07
Unix의 구조 ( Kernel, Shell)  (0) 2018.08.03
Unix와 Linux의 차이  (0) 2018.08.03
FreeMemory에 대한 이해  (0) 2018.07.17

+ Recent posts