파일(또는 입력문장)내 라인수, 단어수, 글자수, 바이트수를 출력해주는 명령어이다.

(word count의 약자)


1. 문장을 입력하여 카운트하기


wc


실행후 프롬프트에 원하는 문장을 입력한 후, Ctrl + D를 눌러 종료.



실행을 완료하면 3개의 정수값이 출력되는데 순서별로 [라인수], [단어수], [글자수]이다.


2. 파일 카운트하기

명령어 뒤에 파일명을 파라미터로 전달해준다.


wc hello.txt


[hello.txt]


[결과]


3. 라인수 카운트하기


wc -l hello.txt


4. 단어수 카운트하기


wc -m hello.txt


5. 바이트수 카운트하기


wc -c hello.txt


6. 파일내 특정 단어가 포함된 라인수 카운트하기

실무에서 가장 많이 쓰이는 방법이 아닐까 한다. 로그파일에서 특정 요청이 몇번 들어왔는지, 금일 발생한 Exception이 몇번이였는지 등에 활용할 수 있다. grep과 함께 파이프(|) 조합으로 사용한다.


cat hello.txt | grep hello | wc -l



실무에서 파일대상은 catalina.out, 아파치 accesslog, log4j 로그파일 등이 될 것이다.


'서버 > 리눅스 명령어' 카테고리의 다른 글

[리눅스] tar, zip  (0) 2015.12.08
[리눅스] ls  (0) 2015.11.06
[리눅스] du  (0) 2015.09.07
[리눅스] df  (0) 2015.09.07
[리눅스] ps  (0) 2015.09.04
Posted by SungHoon, Park
,

disk usage의 약자로 파일과 디렉토리의 사용량 정보를 제공해준다.

디렉토리 용량을 확인할 때 유용하다.

(신입때 디렉토리 용량을 어떻게 봐야될지 몰라서 난감했었던 기억이 갑자기.. ㅎ)


1. 현재 위치의 총용량 보기


du -s .


2. 현재 위치의 총용량을 human readable하게 보기


du -sh .


3. 현재 위치에 있는 디렉토리별로 총용량 보기


du -sh ./*


4. 특정 디렉토리의 총용량 보기


du -sh /home/sunghoon/logs


'서버 > 리눅스 명령어' 카테고리의 다른 글

[리눅스] ls  (0) 2015.11.06
[리눅스] wc  (0) 2015.09.09
[리눅스] df  (0) 2015.09.07
[리눅스] ps  (0) 2015.09.04
[리눅스] ifconfig  (0) 2015.03.01
Posted by SungHoon, Park
,

df 명령어는 파일시스템의 사용가능한 디스크 공간량 정보를 제공해준다. (disk free의 약자)

해당 명령어를 통해 파일시스템의 전체용량, 사용한 용량, 사용가능한 용량, 마운트 정보 등을 볼 수 있다.


1. human readable하게 보기

사람이 읽기 쉽도록 메가단위, 기가단위로 적절하게 읽기 좋게 보여준다.


df -f


2. KB(킬로바이트) 형태로 보기


df -k


3. MB(메가바이트) 형태로 보기


df -m


4. 총합계 보기

df --total


디스크가 꽉 찰 경우에는 WAS에서 행이 걸리거나 JSP 컴파일 오류 등 시스템 장애가 발생할 수 있으므로 잘 체크해보는 것이 좋다.

'서버 > 리눅스 명령어' 카테고리의 다른 글

[리눅스] wc  (0) 2015.09.09
[리눅스] du  (0) 2015.09.07
[리눅스] ps  (0) 2015.09.04
[리눅스] ifconfig  (0) 2015.03.01
[리눅스] split  (0) 2015.02.11
Posted by SungHoon, Park
,

ps 명령어는 프로세스 상태에 관한 정보를 보여주는 명령어다. (process status) 

운영하면서 굉장히 많이 사용되는 명령어에 속한다.

이 명령어의 옵션은 유닉스 방식과 BSD 방식이 있다. 유닉스 방식은 -가 붙는다는 것을 참고한다.

그리고 리눅스에서는 둘 다 혼합해서 사용도 가능하다.


1. 전체 프로세스 보기

ps -e

ps ax (BSD)


2. 전체 프로세스 풀포맷으로 보기

기본포맷 : PID, TTY , TIME, CMD

풀포맷(-ef) : UID, PID, PPID, C, STIME, TTY, TIME, CMD

풀포맷(aux) : USER, PID, %CPU, %MEM, VSZ, RSS, TTY, STAT, START, TIME, COMMAND


유닉스 방식과 BSD 방식은 포맷스펙이 조금 다르다.

-f 옵션은 full. u 옵션은 user-oriented. 그래서 출력해주는 컬럼이 다르다.


ps -ef

ps aux (BSD)


3. 특정 사용자 프로세스만 보기

여러 사용자의 정보를 볼 경우 ,(콤마)를 붙히는데 ,뒤에 공백을 넣으면 정상적으로 동작되지 않으므로 참고!


ps -f -u irteam,root


4. 특정 프로세스명으로 보기

와일드카드 표시나 like검색이 되지 않으므로 이름을 정확하게 적어야 한다.


ps -C java


위 명령어는 ps -e | grep java와 동일하다. (자바 웹개발하면서 제일 많이 쓰는 명령어가 아닐까함 ㅎ)

하지만 ps -e | grep java 명령어 조합은 like 검색처리가 가능하다.


상세정보까지 같이 볼려면 -f를 붙혀주면 된다.

ps -f -C java

ps -ef | grep java


5. 특정 PID로 보기

여러개의 PID를 볼 경우, 역시 ,(콤마)를 붙혀주면 된다.


ps -p 14381,14392


6. 컬럼 기준으로 정렬하기

컬럼명 앞에 -는 내림차순, +는 오름차순이다.


ps -ef --sort=-pcpu (CPU 내림차순 정렬)


ps -ef --sort=-user,+pid (사용자명 내림차순, PID 오름차순으로 정렬)


ps -f -u root --sort=-pcpu (사용자명이 root인 것중에서 CPU 내림차순 정렬)


7. 쓰레드 상세정보 보기


ps -eLf | grep java

ps aux -L | grep java (BSD 방식 포맷으로 보기)


특정 프로세스만 보고 싶다면 다음과 같이 조합할 수 있다.

 ps -Lf -p 12345



'서버 > 리눅스 명령어' 카테고리의 다른 글

[리눅스] du  (0) 2015.09.07
[리눅스] df  (0) 2015.09.07
[리눅스] ifconfig  (0) 2015.03.01
[리눅스] split  (0) 2015.02.11
[리눅스] netstat  (0) 2015.01.27
Posted by SungHoon, Park
,

윈도우 PC와 버추얼박스로 설치한 우분투와 폴더공유하는 방법에 대해 정리한다.


1. 일단 버추얼박스에서 [설정] 클릭


2. [공유폴더] 클릭


3. 우측 [폴더추가] 클릭



4. 머신의 고유대상 폴더를 선택


5. 폴더이름 변경

 - 적절한 이름으로 변경. 이 이름은 마운트할때 활용됨

 - 자동마운트, 항상 사용하기 체크





그런다음 VirtualBox 우분투를 실행한 다음 터미널을 하나 띄운다.


6. df 명령을 통해 마운트된 정보 확인

- /media/sf_vbox_share로 공유폴더가 마운트된 것을 확인됨.

- 버뜨.. 해당폴더로 이동하게 되면 Permission 문제때문에 접근이 되지 않는다.



7. vboxsf 그룹에 내 계정을 추가

sudo adduser xxxxxx vboxsf



8. 재부팅


9. 재부팅후 sf_vbox_share 폴더에 접근이 가능하며, 파일저장이 되는 것을 확인할 수 있다.



10. 윈도우 PC에서도 D:\vbox_share에 접근하면 VirtualBox 우분투에서 저장한 파일이 확인된다.




끝..

Posted by SungHoon, Park
,

우분투를 설치한 후

vim을 통해 편집모드로 들어갔을 때 방향키랑 백스페이스를 누르면 ABCD 알파벳 문자들이 찍혀 불편하다.

왜냐하면 우분투 설치시에는 vim-tiny 버전이 기본으로 설치되기 때문이다.


vim-tiny버전을 vim-full버전으로 바꾸면 방향키, 백스페이스 문제는 해결된다.


full 버전 설치

- sudo apt-get install vim


설치후, 터미널을 종료한 후 다시 접속하면 방향키, 백스페이스가 정상동작하는 것을 확인할 수 있다.




Posted by SungHoon, Park
,

설명

- ifconfig : interface config의 약자

- 네트워크 인터페이스를 설정한다.


옵션


사용예

1. ifconfig 실행

pi@raspberrypi ~ $ /sbin/ifconfig
eth0      Link encap:Ethernet  HWaddr b8:27:eb:60:02:e4  
          inet addr:192.168.x.xx  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2052 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2092 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1605343 (1.5 MiB)  TX bytes:293879 (286.9 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

pi@raspberrypi ~ $ 

- 기본적으로 네트워크 인터페이스가 2개 존재.

- lo : 로컬 루프백 장치. 동일 네트워크의 여러 네트워크 애플리케이션이 서로 소통하는 데 사용하는 가상 인터페이스다.

- eth0 : 0번 이더넷 장치를 의미하는 물리적 링크를 나타낸다.

'서버 > 리눅스 명령어' 카테고리의 다른 글

[리눅스] du  (0) 2015.09.07
[리눅스] df  (0) 2015.09.07
[리눅스] ps  (0) 2015.09.04
[리눅스] split  (0) 2015.02.11
[리눅스] netstat  (0) 2015.01.27
Posted by SungHoon, Park
,

설명

- 파일을 여러 조각으로 나눈다.


옵션

- b : SIZE 바이트만큼 출력파일을 나눈다.

- l : 라인수만큼 파일을 나눈다.

- d : 알파벳 대신 숫자로 파일명을 생성한다.


사용예

- 바이트로 나누기

$ split -b 100M web.log.2015-02-10

-rw-rw-r-- 1 root root 723M 2015-02-11 16:17 web.log.2015-02-10
-rw-rw-r-- 1 root root 100M 2015-02-11 17:26 xaa
-rw-rw-r-- 1 root root 100M 2015-02-11 17:26 xab
-rw-rw-r-- 1 root root 100M 2015-02-11 17:26 xac
-rw-rw-r-- 1 root root 100M 2015-02-11 17:26 xad
-rw-rw-r-- 1 root root 100M 2015-02-11 17:26 xae
-rw-rw-r-- 1 root root 100M 2015-02-11 17:26 xaf
-rw-rw-r-- 1 root root 100M 2015-02-11 17:26 xag
-rw-rw-r-- 1 root root  23M 2015-02-11 17:26 xah


- 50만 라인으로 나누기

$ split -l 500000 web.log.2015-02-10

-rw-rw-r-- 1 root root 723M 2015-02-11 16:17 web.log.2015-02-10
-rw-rw-r-- 1 root root 128M 2015-02-11 17:32 xaa
-rw-rw-r-- 1 root root 139M 2015-02-11 17:32 xab
-rw-rw-r-- 1 root root 142M 2015-02-11 17:32 xac
-rw-rw-r-- 1 root root 140M 2015-02-11 17:32 xad
-rw-rw-r-- 1 root root 141M 2015-02-11 17:32 xae
-rw-rw-r-- 1 root root  35M 2015-02-11 17:32 xaf


- mylog_숫자 파일명으로 나누기

$ split -l 500000 -d web.log.2015-02-10 mylog_

-rw-rw-r-- 1 root root 128M 2015-02-11 17:36 mylog_00
-rw-rw-r-- 1 root root 139M 2015-02-11 17:36 mylog_01
-rw-rw-r-- 1 root root 142M 2015-02-11 17:36 mylog_02
-rw-rw-r-- 1 root root 140M 2015-02-11 17:36 mylog_03
-rw-rw-r-- 1 root root 141M 2015-02-11 17:36 mylog_04
-rw-rw-r-- 1 root root  35M 2015-02-11 17:36 mylog_05
-rw-rw-r-- 1 root root 723M 2015-02-11 16:17 web.log.2015-02-10


'서버 > 리눅스 명령어' 카테고리의 다른 글

[리눅스] du  (0) 2015.09.07
[리눅스] df  (0) 2015.09.07
[리눅스] ps  (0) 2015.09.04
[리눅스] ifconfig  (0) 2015.03.01
[리눅스] netstat  (0) 2015.01.27
Posted by SungHoon, Park
,

netstat 명령어는 네트워크 정보(상태, 프로토콜 통계 등)를 제공해주는 명령어이다.

netstat 명령어는 대부분의 OS에서 지원된다.


다음은 netstat에 대한 옵션 정보이다.


 옵션

상세설명 

 -a

 모든 소켓정보를 출력 

 -c

 매초마다 결과를 출력 

 -l

 LISTEN 상태의 소켓정보를 출력 

 -t

 TCP 연결포트 출력 

 -u

 UDP 연결포트 출력 

 -n

 주소,포트형식 → 숫자형식 으로 출력

 -p

 소켓과 관련된 PID, 애플리케이션명을 출력 

 -g

 라우팅 테이블 정보 출력 


그리고 이것은 네트워크 상태에 관한 설명이다.


상태 

상세설명 

 LISTEN

 연결을 기다리고 있는 상태. 포트가 열려있음

 ESTABLISHED

 네트워크가 서로 연결되어 있는 상태. 포트가 사용중임

 TIME_WAIT

 연결은 종료되었으나, 다른 명령을 기다리고 있는 상태

 CLOSED

 완전히 연결 종료 

(일단 아는 것만 우선 나열.. 네트워크 공부를 좀 더 하고 추가할 예정 -_ㅠ;)



모든 네트워크 정보 보기

아무 옵션없이 netstat 명령어를 치면 된다.


netstat


라우팅 테이블 정보 보기


netstat -r (또는 --route)


열려있는 모든 네트워크 확인


netstat -na


LISTEN하고 있는 네트워크 확인


netstat -l

netstat -na | grep LISTEN 

(이렇게 할 경우 모든 결과를 가져오고 grep을 하기 때문에 -l 보다 처리시간도 길고 CPU 점유도 많다. 비추천함)


현재 아파치에 연결되어 있는 네트워크 확인


netstat -na | grep :80 | grep ESTABLISHED


현재 아파치 동접(동시접속수) 확인


netstat -na | grep :80 | grep ESTABLISHED | wc -l


네트워크 인터페이스가 어떤 멀티캐스트 그룹에 속해 있는지 확인하기


netstat -g (또는 --groups)


'서버 > 리눅스 명령어' 카테고리의 다른 글

[리눅스] du  (0) 2015.09.07
[리눅스] df  (0) 2015.09.07
[리눅스] ps  (0) 2015.09.04
[리눅스] ifconfig  (0) 2015.03.01
[리눅스] split  (0) 2015.02.11
Posted by SungHoon, Park
,