linuxfromscratch:shellcommand

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
linuxfromscratch:shellcommand [2024/04/05 11:22] baecylinuxfromscratch:shellcommand [2024/04/29 15:28] (현재) – [wget] baecy
줄 3: 줄 3:
 <code lang=bash> <code lang=bash>
 alias dirfind="find -mindepth 1 -maxdepth 1 -type d | sed 's@^./@@'" alias dirfind="find -mindepth 1 -maxdepth 1 -type d | sed 's@^./@@'"
- 
 dirfind | wc -l    ## 디렉토리 갯수 확인 dirfind | wc -l    ## 디렉토리 갯수 확인
 rm -rf $(dirfind)  ## 설치 완료된 소스 디렉토리 삭제 rm -rf $(dirfind)  ## 설치 완료된 소스 디렉토리 삭제
-</code>+## 설치 완료된 패키지 디렉토리만 삭제할거면 다음과 같이 
 +alias SearchAndDestroy='find -mindepth 1 -maxdepth 1 -type d -exec rm -rf {} \;'</code> \\
  
 ==== 2. SBU 측정 ==== ==== 2. SBU 측정 ====
줄 12: 줄 12:
 ## 현재 디렉토리+생성시간을 추가해서 로그파일 작성 ## 현재 디렉토리+생성시간을 추가해서 로그파일 작성
 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'  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 +time { ./configure .... && make && make install; } | lfslog </code>\\
-</code>+
  
  
줄 34: 줄 33:
             --disable-servers             --disable-servers
  
-## Same Command+## Same Command 
  
 ./configure --prefix=/usr --bindir=/usr/bin --localstatedir=/var \ ./configure --prefix=/usr --bindir=/usr/bin --localstatedir=/var \
-            --disable-{logger,whois,r{cp,exec,login,sh},servers}</code>+            --disable-{logger,whois,r{cp,exec,login,sh},servers}</code>\\ 
 + 
 +==== tar를 이용한 복사 ==== 
 +<code lang=bash> 
 +tar -cf - . | tar -xvf - -C /target_directory</code>\\ 
 + 
 +==== find example ==== 
 +<code lang=bash> 
 +## 크기가 50M 이상이면서 .deb, .vmdk 확장자가 아닌 파일  
 +## Operator AND = -and,-a, OR= -or = -o, NOT = ! 
 +find /media/d/ -type f -size +50M -and ! -name "*deb" -and ! -name "*vmdk"</code>\\ 
 + 
 +==== grep example ==== 
 +<code lang=bash> 
 +## 일반적인 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");</code>\\ 
 + 
 +<code lang=c> 
 +grep -rl '#!.*python' | xargs sed -i '1s/python$/python3/' 
 + 
 +// 하위 디렉토리의 모든 파일에서 1행이 #!로 시작해서 python을 끝나는 파일을 찾아서 python을 python3로 변경 
 +#!/usr/bin/env python     # 원본 
 +#!/usr/bin/env python3    # 변경 </code>\\ 
 + 
 +==== Gawk ==== 
 +<code lang=bash> 
 +df -ht ext4 
 +Filesystem      Size  Used Avail Use% Mounted on 
 +/dev/root        40G   11G   27G  29% / 
 +/dev/sde1       173M   95M   65M  60% /boot 
 +/dev/sde2        19G  1.5G   16G   9% /mnt/debian 
 +/dev/sda1       1.8T  9.7G  1.7T   1% /mnt/1st-bay 
 +/dev/sdb1       1.8T  1.1G  1.7T   1% /mnt/2nd-bay 
 +/dev/sdc1       1.8T   28K  1.7T   1% /mnt/3rd-bay 
 +/dev/sdd1       1.8T   32K  1.7T   1% /mnt/4th-bay</code>\\ 
 + 
 +<code lang=bash> 
 +# 읽어들인 NR 레코드(여기서는 Filesystem과 Size) 갯수가 2 이하일때는 awk에서 바로 출력하고  
 +# 이후에는 출력결과를 sort를 거쳐서 출력 
 +df -ht ext4 | awk 'NR<2{print $0;next}{print $0| "sort"}' 
 +Filesystem      Size  Used Avail Use% Mounted on 
 +/dev/root        40G   11G   27G  29% / 
 +/dev/sda1       1.8T  9.7G  1.7T   1% /mnt/1st-bay 
 +/dev/sdb1       1.8T  1.1G  1.7T   1% /mnt/2nd-bay 
 +/dev/sdc1       1.8T   28K  1.7T   1% /mnt/3rd-bay 
 +/dev/sdd1       1.8T   32K  1.7T   1% /mnt/4th-bay 
 +/dev/sde1       173M   95M   65M  60% /boot 
 +/dev/sde2        19G  1.5G   16G   9% /mnt/debian</code>\\ 
 + 
 +참고  
 +<code lang=bash> 
 +# 1q로 한줄만 sed에서 처리하고 종료 나머지는 sort가 처리 
 +df -ht ext4 | { sed -u 1q; sort; } 
 + 
 +Filesystem      Size  Used Avail Use% Mounted on 
 +/dev/root        40G   11G   27G  29% / 
 +/dev/sda1       1.8T  9.7G  1.7T   1% /mnt/1st-bay 
 +/dev/sdb1       1.8T  1.1G  1.7T   1% /mnt/2nd-bay 
 +/dev/sdc1       1.8T   28K  1.7T   1% /mnt/3rd-bay 
 +/dev/sdd1       1.8T   32K  1.7T   1% /mnt/4th-bay 
 +/dev/sde1       173M   95M   65M  60% /boot 
 +/dev/sde2        19G  1.5G   16G   9% /mnt/debian</code>\\ 
 + 
 +==== wget ==== 
 +<code lang=bash> 
 +# -r / --recursive : 디렉토리 대상 
 +# -np / --no-parent : 상위 제외 
 +# -R / --reject : 해당 파일 제외 
 +# -P / --directory-prefix=PREFIX : PREFIX/.. 에 파일 저장 
 +wget -r -np -R "index.html*" -P <DIR> lfs/ https://ftp.osuosl.org/pub/lfs/lfs-packages/12.1/</code>\\ 
 + 
 +==== Firmware Blob Kernel config ==== 
 +<code lang=bash> 
 +echo CONFIG_EXTRA_FIRMWARE='" '$({ cd /lib/firmware; echo amd-ucode/*; echo amdgpu/re*; echo rtl_nic/*; echo regulatory*; })'"' >> .config 
 +make oldconfig 
 +</code>
  • linuxfromscratch/shellcommand.1712316147.txt.gz
  • 마지막으로 수정됨: 2024/04/05 11:22
  • 저자 baecy