linuxfromscratch:shellcommand

문서의 이전 판입니다!


alias dirfind="find -mindepth 1 -maxdepth 1 -type d | sed 's@^./@@'"

dirfind | wc -l    ## 디렉토리 갯수 확인
rm -rf $(dirfind)  ## 설치 완료된 소스 디렉토리 삭제

## 현재 디렉토리+생성시간을 추가해서 로그파일 작성
alias lfslog='tee ~/lfs-log/$(case $(basename $(pwd)) in build) echo $(basename $(dirname $(pwd))); ;; *) echo $(basename $(pwd)); ;; esac).$(date "+%Y%m%d_%H%M%S").log' 
time { ./configure .... && make && make install; } | lfslog

<a href=""></a>                                           ## 현재 창 또는 탭에서 링크 열기
<a target="_blank" rel="noopener noreferrer" href=""></a> ## 새로운 창 또는 탭에서 링크 열기

./configure --prefix=/usr        \
            --bindir=/usr/bin    \
            --localstatedir=/var \
            --disable-logger     \
            --disable-whois      \
            --disable-rcp        \
            --disable-rexec      \
            --disable-rlogin     \
            --disable-rsh        \
            --disable-servers

## Same Command 

./configure --prefix=/usr --bindir=/usr/bin --localstatedir=/var \
            --disable-{logger,whois,r{cp,exec,login,sh},servers}

tar -cf - . | tar -xvf - -C /target_directory

## 크기가 50M 이상이면서 .deb, .vmdk 확장자가 아닌 파일 
## Operator AND = -and,-a, OR= -or = -o, NOT = !
find /media/d/ -type f -size +50M -and ! -name "*deb" -and ! -name "*vmdk"

## 일반적인 grep 으로 다음과 같은 결과가 나왔다.
$ grep 'printf' fileio.c   
                printf("FILE open Error\n");
                printf("chi = %c\n", chi);
                printf("cho = %c\n", cho);
                printf("FILE open Error\n");
                printf("chi = %c\n", chi);
                printf("cho = %c\n", cho);

## -n 옵션을 통해 line 을 볼수 있다.
$ grep -n 'printf' fileio.c 
11:             printf("FILE open Error\n");
18:             printf("chi = %c\n", chi);
19:             printf("cho = %c\n", cho);
25:             printf("FILE open Error\n");
31:             printf("chi = %c\n", chi);
32:             printf("cho = %c\n", cho);

## -v 옵션을 통해 'chi' 문자열이 들어간걸 제외하고 print 했다.
$ grep -n 'printf' fileio.c | grep -v 'chi'
11:             printf("FILE open Error\n");
19:             printf("cho = %c\n", cho);
25:             printf("FILE open Error\n");
32:             printf("cho = %c\n", cho);

## grep 을 두번 사용해서 보고싶은것만 print 했다.
$ grep -n 'printf' fileio.c | grep -v 'chi' | grep -v 'cho'
11:             printf("FILE open Error\n");
25:             printf("FILE open Error\n");

## -Ev 옵션을 통해 여러번 grep 하는것을 파이프(|)로 작성할 수 있다.
$ grep -n 'printf' fileio.c | grep -Ev 'chi|cho'           
11:             printf("FILE open Error\n");
25:             printf("FILE open Error\n");

grep -rl '#!.*python' | xargs sed -i '1s/python$/python3/'

# 하위 디렉토리의 모든 파일에서 1행이 #!로 시작해서 python을 끝나는 파일을 찾아서 python을 python3로 변경
#!/usr/bin/env python     # 원본
#!/usr/bin/env python3    # 변경

  • linuxfromscratch/shellcommand.1712558320.txt.gz
  • 마지막으로 수정됨: 2024/04/08 06:38
  • 저자 baecy