차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
| linuxfromscratch [2025/12/16 00:55] – baecy | linuxfromscratch [2025/12/21 18:46] (현재) – [PS1 설정] baecy | ||
|---|---|---|---|
| 줄 1: | 줄 1: | ||
| ===== 토막 상식 ===== | ===== 토막 상식 ===== | ||
| + | |||
| + | ==== 설치된 Perl Module 목록 확인 ==== | ||
| + | === Perl과 기본 시스템 도구만 이용 === | ||
| + | < | ||
| + | #!/bin/sh | ||
| + | |||
| + | # Begin ~/ | ||
| + | |||
| + | # List of installed Perl Modules | ||
| + | |||
| + | # grep " | ||
| + | # /" | ||
| + | # !seen[$NF]++ - awk 내부 배열을 사용해서 중복 제거 | ||
| + | # print $NF - 마지만 단어(모듈명) | ||
| + | # sort --ignore-case (-f) | 대소문자 구분없이 정렬 | ||
| + | |||
| + | pattern=" | ||
| + | |||
| + | perldoc perllocal | awk '/" | ||
| + | |||
| + | # End ~/ | ||
| + | </ | ||
| + | < | ||
| + | pml.sh " | ||
| + | Capture:: | ||
| + | Class::Tiny | ||
| + | Test::Deep | ||
| + | Test:: | ||
| + | Test::Fatal | ||
| + | Test::Needs | ||
| + | Test:: | ||
| + | Try:: | ||
| + | |||
| + | 이런 방식으로 다중 검색도 가능함. | ||
| + | |||
| + | === ExtUtils:: | ||
| + | < | ||
| + | #!/bin/sh | ||
| + | |||
| + | # Begin ~/ | ||
| + | |||
| + | # List of installed Perl Modules | ||
| + | |||
| + | # 검색어가 없으면 사용법 출력 | ||
| + | if [ -z " | ||
| + | echo " | ||
| + | echo " | ||
| + | exit 1 | ||
| + | fi | ||
| + | |||
| + | QUERY=$1 | ||
| + | |||
| + | echo "---- Searching installed Perl modules for: $QUERY ----" | ||
| + | |||
| + | # ExtUtils:: | ||
| + | # grep -i를 사용하여 대소문자 구분 없이 검색 | ||
| + | |||
| + | perl -MExtUtils:: | ||
| + | my $inst = ExtUtils:: | ||
| + | foreach my $mod ($inst-> | ||
| + | my $ver = $inst-> | ||
| + | print "$mod | Version: $ver\n"; | ||
| + | } | ||
| + | ' | grep --color=auto -E -i " | ||
| + | |||
| + | # 일치하는 결과가 없으면 | ||
| + | |||
| + | if [ ${PIPESTATUS[1]} -ne 0 ]; then | ||
| + | echo " | ||
| + | fi | ||
| + | |||
| + | # End ~/ | ||
| + | < | ||
| + | pml.sh text | ||
| + | ---- Searching installed Perl modules for: text ---- | ||
| + | Text:: | ||
| + | Text::Diff | Version: 1.45 | ||
| + | Text::Glob | Version: 0.11</ | ||
| + | |||
| + | 버전을 출력해주는 장점이 있음. \\ | ||
| + | 특정 모듈 설치전에는 사용하기 힘들다는 단점이 있음. | ||
| + | ==== 설치된 Python3 Module 목록 확인 ==== | ||
| + | |||
| + | < | ||
| + | pip3 list | ||
| + | </ | ||
| + | |||
| + | ==== Qemu Screen Dump ==== | ||
| + | |||
| + | - < | ||
| + | - screendump __filename.ppm__ \\ 다음과 같이 **-f** 옵션으로 저장 포맷 지정 가능 \\ screendump screenshot.png -f png \\ 포맷 지정 저장 방식에서 세그폴트 발생하면 ppm으로 저장후 변환 | ||
| + | - < | ||
| + | |||
| ==== xwindow screen saver & dpms 시간 설정 ==== | ==== xwindow screen saver & dpms 시간 설정 ==== | ||
| - | <code bash> | + | <codeprism |
| xset s 600 600 | xset s 600 600 | ||
| xset dpms 600 600 600 | xset dpms 600 600 600 | ||
| - | </code> | + | </codeprism> |
| 순서대로 \\ | 순서대로 \\ | ||
| 화면보호기 작동시간, | 화면보호기 작동시간, | ||
| 줄 99: | 줄 192: | ||
| <code bash> | <code bash> | ||
| - | function | + | function |
| - | local FindWord=*${1}* | + | local FindWord=*${1}* |
| - | local FindDir=$2 | + | local FindDir=$2 |
| - | + | if [ -z $FindDir ] ; then | |
| - | if [ -z $FindDir ] ; then | + | FindDir=/ |
| - | FindDir=/ | + | fi |
| - | fi | + | find $FindDir -name $FindWord 2> /dev/null | sort | grep -E --color=always |
| - | + | echo "Found file $(ansi --green ${1}) in directory | |
| - | find $FindDir -name $FindWord 2> /dev/null | sort | grep $1 | + | } |
| - | + | export -f file-finder | |
| - | echo "I searched for $(ansi --green ${1}) you wanted | + | |
| - | } | + | |
| - | + | ||
| - | export -f double-check | + | |
| </ | </ | ||
| 줄 144: | 줄 233: | ||
| ---- | ---- | ||
| ==== PS1 설정 ==== | ==== PS1 설정 ==== | ||
| + | 일반사용자 | ||
| + | < | ||
| + | 루트사용자 | ||
| + | < | ||
| - | === 최초 === | ||
| - | ++++ 많이 지저분하고 번거로움 | + | === 2차 개선 === |
| - | < | + | ++++ 별거아닌데 쓸데없이 길어짐| |
| - | touch $LFS/ | + | <code bash> |
| - | ~/.bashrc\\ | + | PS1_ROOT=' |
| - | <code lang=bash> | + | PS1_USER=' |
| - | if [ -f / | + | PS1_HEAD=' |
| - | PS1=' | + | if [ "$(awk ' |
| + | if [ $(id -u) -eq 0 ] ; then | ||
| + | PS1="< | ||
| + | else | ||
| + | PS1="< | ||
| + | fi | ||
| else | else | ||
| - | PS1='\[$(tput setaf 75)\]\[$(tput setaf 229)\]\u\[$(tput setaf 199)\]@\[$(tput setaf 215)\]\h \[$(tput setaf 75)\]\w \[$(tput sgr0)\]\$\n' | + | if [ $(id -u) -eq 0 ] ; then |
| - | fi</ | + | PS1="${PS1_HEAD}${PS1_ROOT}" |
| + | else | ||
| + | PS1="${PS1_HEAD}${PS1_USER}" | ||
| + | fi | ||
| + | fi | ||
| + | </ | ||
| ++++ | ++++ | ||
| - | |||
| === 1차 개선 === | === 1차 개선 === | ||
| 줄 176: | 줄 277: | ||
| </ | </ | ||
| ++++ | ++++ | ||
| + | === 최초 === | ||
| - | === 2차 개선 === | + | ++++ 많이 지저분하고 번거로움 | |
| - | + | <code lang=bash cmd=true user=root> | |
| - | < | + | touch $LFS/ |
| - | PS1_ROOT=' | + | ~/.bashrc\\ |
| - | PS1_USER=' | + | <code lang=bash> |
| - | PS1_HEAD=' | + | if [ -f / |
| - | if [ "$(awk ' | + | PS1=' |
| - | if [ $(id -u) -eq 0 ] ; then | + | |
| - | PS1="< | + | |
| - | else | + | |
| - | PS1="< | + | |
| - | fi | + | |
| else | else | ||
| - | if [ $(id -u) -eq 0 ] ; then | + | PS1='\[$(tput setaf 75)\]\[$(tput setaf 229)\]\u\[$(tput setaf 199)\]@\[$(tput setaf 215)\]\h \[$(tput setaf 75)\]\w \[$(tput sgr0)\]\$\n' |
| - | PS1="${PS1_HEAD}${PS1_ROOT}" | + | fi</ |
| - | else | + | ++++ |
| - | PS1="${PS1_HEAD}${PS1_USER}" | + | |
| - | fi | + | |
| - | fi | + | |
| - | </ | + | |
| ---- | ---- | ||
| ==== Debian 설치 후 추가적인 사항 ==== | ==== Debian 설치 후 추가적인 사항 ==== | ||
| 줄 397: | 줄 489: | ||
| ==== $LFS/ | ==== $LFS/ | ||
| + | 가장 간단한 방법 | ||
| + | <code lang=bash> | ||
| + | ls -d */ | ||
| + | </ | ||
| <code lang=bash> | <code lang=bash> | ||