본문 바로가기

Linux

(25)
[linux] apt와 apt-get의 차이 리눅스를 쓰다보면 어떤 가이드에서는 apt install 명령어를 쓰라고 하고, 어떤 가이드에서는 apt-get install 을 쓰라고 한다. 매번 아무 생각없이 커맨드를 쓰다가 문득 둘의 차이가 궁금해졌는데, 해당 커맨드의 차이에 대해서는 나도 개발자다 블로그에 대해서 명쾌하게 설명이 되어있다. 정리하자면 일단 둘의 동작상의 차이는 없다. 차이가 있다면 기존 복잡한 옵션을 가진 apt-get에서 자주 사용하는 옵션을 뽑아내고 사용자 친화적인 인터페이스를 제공하는 하도록 만든 것이 apt다. 즉 기능상의 문제는 없고, 사용성을 좀 더 고려한 것이 apt다. 보통 패키지 설치할때는 크게 상관없이 쓰면 될 듯한데, 디테일한 설정을 해야할떄는 apt-get을 사용하면 될 것이다.
[Linux] grep시 바이너리 파일 문제 해결 (Binary file matches) 가끔 grep을 통해 파일 내용을 출력해서 보려고 하면 $ grep "Test" test.log Binary file test.log matches 라는 메시지와 함께 의도한 대로 명령을 수행하지 못하는 일이 발생한다. 이는 해당 파일이 대부분 문자열로 인코딩 된 파일이지만 특정 라인 때문에 data file로 인식될 수가 있고, 이 경우 grep은 이를 binary 파일로 간주하게 된다. 이를 위해 grep은 모든 파일을 text 파일로 인식해서 grep 명령어를 수행하도록 도와주는 옵션을 제공한다. -a, --text equivalent to --binary-files=text 위 처럼 a 옵션을 사용하면 binary 파일을 텍스트로 인식해서 내용을 검색할 수 있게 도와준다. $ grep -a "Te..
[Linux] 리눅스 grep에서 특정 문자열 검색 제외하기 grep으로 문자열 필터링 root@vultr:~# ps -ef | grep ps root 15994 15957 0 14:33 pts/0 00:00:00 ps -ef root 15995 15957 0 14:33 pts/0 00:00:00 grep --color=auto ps 만약 위와 같이 ps -ef로 프로세스 정보를 출력했는데, 출력 정보에서 ps가 들어간 정보만 보고 싶다면 grep으로 문자열을 필터링할 수 있다. 그런데 만약 여기서 특정 문자열이 들어간 결과를 제외하고 싶다면 어떻게 해야할까? 이럴때는 -v 옵션을 주면 된다. grep에 -v 옵션을 통해 검색 제외 root@vultr:~# ps -ef | grep ps | grep -v 'ps -ef' root 15995 15957 0 14:33..
[linux] 자식 프로세스 관계 트리 형태로 확인하는 명령어 pstree pstree pstree는 프로세스의 상관 관계를 트리 형태로 출력해추는 명령어다. 부모 자식 프로세스의 관계를 트리 형태로 출력해주므로 계층 관계를 한 눈에 파악할 수 있다. pstree 사용법 Usage: pstree [-acglpsStuZ] [ -h | -H PID ] [ -n | -N type ] [ -A | -G | -U ] [ PID | USER ] pstree -V Display a tree of processes. -a, --arguments show command line arguments -A, --ascii use ASCII line drawing characters -c, --compact don't compact identical subtrees -h, --highlight-all..
[bash] shell 스크립트에서 set +e와 set -e 명령어 기능 set -e 쉘 스크립트 명령어 중 하나의 명령어가 실패하면 다음 명령어를 수행하지 않고 스크립트를 종료한다. 예를들면 아래와 같다. 1 2 3 4 5 #!/bin/bash set -e rm -rf target mkdir target cs 위 코드에서 만약 rm -rf가 실패하면 mkdir를 수행하지 않는다. 주의할 점은 명령어 수행후 리턴코드가 0인지 아닌지를 검사하기 때문에, 반환 값이 없는 명령어 수행의 경우 오류로 판단하기도 한다. set +e 에러가 발생해도 다음명령어를 계속 수행한다. 1 2 3 4 5 #!/bin/bash set +e rm -rf target mkdir target cs rm -rf 가 실패해도 mkdir를 수행한다.