이상을 꿈꾸는 몽상가.. 프로그래밍을 좋아함..


유용한 Linux 명령어

유용하게 사용하는 Linux 명령어를 기록해봅니다.


문자열 바꾸기

$ grep -rl "before text" * | xargs sed -i 's/before text/after text/g'

일괄적으로 변경되니 조심해서 사용하세요.

n 일 전에 변경된 파일 검색

$ find {directory_path} -mtime -1 -ls

// sample
$ find . -mtime -1 -ls
195710    4 drwxrwxrwx   1 dveamer     dveamer         4096  2월  3 16:17 .
 31734    4 drwxrwxrwx   1 dveamer     dveamer         4096  2월  3 13:56 ./BackEnd
272650   16 -rwxrwxrwx   1 dveamer     dveamer        12892  2월  3 10:48 ./BackEnd/2016-12-08-InstallNginxTomcat.md
294301    8 -rwxrwxrwx   1 dveamer     dveamer         7605  2월  3 13:56 ./BackEnd/2018-02-03-CompilingInstallationOnLinux.md
294300   12 -rwxrwxrwx   1 dveamer     dveamer         8637  2월  3 13:56 ./BackEnd/2018-02-03-InstallApache.md
185721    4 drwxrwxrwx   1 dveamer     dveamer         4096  2월  3 16:37 ./Linux
272215    8 -rwxrwxrwx   1 dveamer     dveamer         5270  2월  3 16:31 ./Linux/2016-01-12-ProcessStatus.md
272434    4 -rwxrwxrwx   1 dveamer     dveamer         2155  2월  3 16:37 ./Linux/2018-02-03-UsefulLinuxCommand.md
190478    4 drwxrwxrwx   1 dveamer     dveamer         4096  2월  3 13:57 ./Programming
294299    8 -rwxrwxrwx   1 dveamer     dveamer         5108  2월  3 13:56 ./Programming/2015-01-01-TelegramCli.md
195724    4 drwxrwxrwx   1 dveamer     dveamer         4096  2월  3 16:24 ./Ubuntu

-mtime 옵션의 파라미터 값으로 숫자를 넣게 되는데 1일전의 경우 -1을 입력하면 됩니다.
find 에 -ls 옵션을 빼면 찾은 파일들의 파일명만 출력됩니다.

최근 접속 계정 이력

$ last
dveamer  pts/6        :0               Sat Feb  3 16:33   still logged in   
dveamer  pts/1        :0               Sat Feb  3 07:39   still logged in   
dveamer  :0           :0               Sat Feb  3 07:38   still logged in   
reboot   system boot  4.4.0-111-generi Sat Feb  3 07:38 - 16:37  (08:59) 

alias

$ alias
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias ls='ls --color=auto'

현재 설정된 alias 리스트가 출력됩니다.

유용한 alias 샘플

alias tl='cd ${TOMCAT_LOG_PATH}'
alias tlog='tail -f ${TOMCAT_LOG_PATH}/tomcat.out.${date '+%Y-%m-%d')'

로그파일 외에도 소스파일, 설정파일, 실행파일 들이 위치한 path도 cd alias를 걸어두면 편리합니다.

alias 설정방법

/.bash_profile에 입력 후 source 명령어로 재등록해주면 됩니다.

$ vim ~/.bash_profile

$ source ~/.bash_profile

process, port 상태 확인

$ netstat -nap | grep {port_number}
//OR
$ netstat -nap | grep {proccss_name}
// OR
$ netstat -nap | grep {pid}

//sample
$ netstat -nap | grep firefox
tcp        0      0 192.168.0.4:45620       52.40.210.31:443        ESTABLISHED 8348/firefox    
tcp        0      0 192.168.0.4:37094       162.247.242.21:443      ESTABLISHED 8348/firefox    
tcp        0      0 192.168.0.4:37320       74.125.204.189:443      ESTABLISHED 8348/firefox    
tcp        0      0 192.168.0.4:39454       104.244.42.65:443       ESTABLISHED 8348/firefox    
tcp        0      0 192.168.0.4:33400       104.74.233.222:443      ESTABLISHED 8348/firefox    
tcp        0      0 192.168.0.4:33016       104.74.233.222:443      ESTABLISHED 8348/firefox 

netstat 옵션에 -p 를 넣게 되면 PID와 프로세스 이름이 함께 출력 출력됩니다.

로그파일에서 특정범위 추출하기

Error 관련 로그를 공유하려고 할때 번거로운 경우가 많습니다.
예를들어, vim으로 로그파일을 열었는데 에러건 관련 INFO, ERROR 로그들이 내용이 많아서
한 화면에 안잡히면 마우스로 한번에 드래그가 되지 않아서 복사가 쉽지 않습니다.

vim에서 클립보드로 직접 복사하는 방법이 있긴한데
vim 버전, 플러그인 문제로 vim을 새로 설치해야하는 경우가 있습니다.

vim에서 라인수를 파악하고
sed로 해당 라인을 추출하는 방법을 알아봅니다.

vim 에서 :set number 명령어를 이용해서 추출하려는 로그의 라인수를 확인하세요.
예를들어 뽑아내고 싶은 메시지가 12303 라인부터 12402 라인까지라면 sed를 아래와 같이 사용하시면 됩니다.

$ sed -n '12303,12402p' raw.log > extracted.log

디렉토리 용량 확인

현재 디렉토리의 총 용량 확인

$ du -sh

현재 디렉토리의 구성파일들의 용량 확인

$ du -h --max-depth=1

Donations ❤

제가 작성한 글이 작게라도 도움이 되었기를 바랍니다.
관심 가져주시는 분이 있는 것을 느끼고 힘내기 위해 기부 버튼을 만들어봤습니다.
혹시 가능하시다면 $1 라도 기부 부탁드립니다 ^^





Associated Posts

관련된 주제를 살펴볼 수 있도록 동일한 Tag를 가진 글들을 모아뒀습니다. 제목을 눌러주세요.

  • Process Status 사용법


      ps -eo user,pid,ppid,rss,vsz,size,pmem,pcpu,time,comm
    
      Result>
      USER   PID   PPID  RSS     VSZ      SIZE    %MEM  %CPU  TIME      CMD
      user1  2699  2615  431076  1421496  991748  7.1   0.9   00:07:44  /opt/google/chrome/
      user1  2584  2016  242248  1266588  596076  4.0   0.9   00:08:06  /opt/google/chrome/
      user1  1750  2615  172932  925232   562376  2.8   0.4   00:00:15  /opt/google/chrome/c
      user1  2841  2016  163652  735372   281308  2.7   0.0   00:00:13  /usr/bin/python3 /us
      user2  1099     1  147772  956008   899016  2.4   0.0   00:00:48  /usr/sbin/mysqld
    

    프로세스별로 메모리, CPU 등의 상태를 파악하는데 유용합니다.

    프로세스별 메모리 값을 합쳐서 전체 메모리 사용량을 구할 수 있습니다.
    하지만 Shared Memory를 사용하는 프로세스들이 존재한다면 중복이 발생하므로 실제 값보다 크게 계산 됩니다.



Disqus Social Community

SNS계정으로 댓글을 달아도 SNS에 글이 남지 않습니다.
이메일 주소 입력으로 글을 남길 수 있으며, 답변이 달리면 이메일로 알림을 받을 수 있습니다.

i