bash 스 크 립 트 기초

4438 단어
1. bash 특성의 명령 보완 과 경로 보완
명령 완성: Tab 버튼 두 드 리 기
셸 프로그램 은 사용자 가 명령 을 실행 하 라 는 요청 을 받 고 분석 이 완료 되면 맨 왼쪽 문자열 은 $PATH 스칼라 가 지정 한 경 로 를 분석 하 는 명령 으로 사 용 됩 니 다.
찾기 메커니즘:
1. 내부 명령 찾기 2. 외부 명령 찾기: $PATH 변수 에서 지정 한 경로 에서 각 디 렉 터 리 에 있 는 파일 이름 을 왼쪽 에서 오른쪽으로 하나씩 검색 합 니 다. 시작 하 는 문자열 이 유일한 표 지 를 할 수 있다 면 바로 보완 합 니 다.유일 하 게 표시 할 수 없습니다. Tab 버튼 을 한 번 두 드 리 면 목록 을 제시 할 수 있 습 니 다.3. 오류: 명령 이 인식 되 지 않 으 면 응답 이 없습니다.
경로 완성:
주어진 시작 경로 의 상위 디 렉 터 리 에서 상위 디 렉 터 리 에 있 는 모든 파일 과 일치 하 는 첫 번 째 문자열 을 사용 합 니 다.
2. bash 특성의 명령 행 전개
명령 행 이 지정 한 특수 기 호 를 해당 문자열 로 자동 으로 전환 하 는 메커니즘 예: “~”: 자동 으로 집 디 렉 터 리 로 전환 “~ username”: 지정 한 사용자 의 집 디 렉 터 리 로 전환 “{}”: 쉼표 로 분 단 된 경로 목록 을 불 러 올 수 있 고 여러 개의 독립 된 경로 로 펼 칠 수 있 습 니 다.
#        
mkdir /tmp/{x,y,z} = mkdir /tmp/x /tmp/y /tmp/z
mkdir /tmp/{x/y,m/{m,n}} = mkdir /tmp/x/y /tmp/m/m /tmp/m/n
mkdir /tmp/{x,y}/z = mkdir /tmp/x/z /tmp/y/z

3. bash 의 특성: 명령 이 실 행 된 상태 결과
명령 의 정상 적 인 출력 결과, 명령 의 반환 값 명령 이 실 행 된 상태 결과 라 고 합 니 다: 성공, 실패 bash 는 특수 변수 로 가장 가 까 운 명령 실행 상태 결 과 를 저장 합 니 다: "$?"
echo $?  #         

표 시 된 결과 0 는 명령 이 성공 적 으로 실행 되 었 음 을 나타 내 고 1-255 성공 적 인 명령 이 없 는 출력 결 과 는 인용 을 통 해 저장 되 거나 직접 호출 되 었 음 을 나타 낸다. 예 를 들 어:
mkdir -v `echo $?`

결 과 는 해당 숫자 를 파일 이름 으로 하 는 빈 폴 더 를 만 드 는 것 입 니 다.
"”( ) >"''"( ): >""""( ): >""(반 따옴표) 사용: 명령 참조
4. bash 특성의 glob 어댑터
glob: 파일 이름 마스크, 여러 파일 을 빠르게 참조 할 수 있 습 니 다. 파일 이름 만 가리 키 며 경로, 파일 이름 일치 도 검 사 는 포함 되 지 않 습 니 다.
메타 문자: 메타 문자 기반 일치 모드 (pattern) 를 작성 할 수 있 습 니 다.
"*"(미터 문자): 임의의 길이 와 일치 하 는 임의의 문자
예: p *: p 로 시작 하 는 임의의 문자열, 파일 이름.
  • p * a: 중간 에 p 가 있 고 끝 은 a 의
  • "?"(물음표): 임의의 단일 문자 와 일치 합 니 다.
    예: p? a: 세 글 자 를 대표 합 니 다. 그 중 중간 에 임의의 문자 p? 두 글자 p??, 세 글자 입 니 다.
    "[]"(중 괄호): 지정 한 집합 에 있 는 임의의 단일 문자 와 일치 합 니 다.
    예: [a - z], [A - Z]: 이때 대소 문자 [0 - 9]: [a - z0 - 9]: 자모 와 숫자 [[: upper:], [A - Z]: 모든 대문자, 대문자 [[: lower:]] 만 표시 하고 소문 자 [[: digit:] [[: alpha:]] [[: alnum:] [[: space:]] [[: punct:]] [^]: 지 정 된 집합 밖의 임의의 문자 와 일치 합 니 다. 예 를 들 어 [^ [: alpha:]]
    5. bash 특성의 변수
    프로그램 = 명령 + 데이터 데이터: 파일, 변수 변수: 메모리 공간, 이름 이 있 으 면 변수 할당: NAME = VALUE =: 할당 기호 로 VALUE 를 NAME 가 가리 키 는 메모리 공간 에 저장 합 니 다.
    변수 이름: 알파벳, 숫자, 밑줄 만 사용 할 수 있 고 숫자 로 시작 할 수 없습니다. 변수 참조: ${NAME}, $NAME 변수 교체: 변수 참조 기호 가 나타 난 위 치 를 가리 키 는 메모리 공간 에 있 는 데이터 로 바 꿉 니 다.
    bash 변수 종류:
    1. 로 컬 변수: 역할 영역 은 현재 셸 프로 세 스 입 니 다. 하위 프로 세 스 를 포함 하지 않 습 니 다. 2. 환경 변수: 사용 영역 은 현재 셸 프로 세 스 와 하위 프로 세 스 입 니 다. 3. 부분 변수: 역할 영역: 유효 범위, 참조 할 수 있 는 범위, 4. 위치 변수 5. 특수 변수
    6. bash 특성의 IO 재 정립
    1. 출력 리 셋: 리 셋 프로그램 이 정상적으로 실 행 된 결과
    COMMAND >  /PATH/TO/SOMEFILE  
         :            ;
    COMMAND >> /PATH/TO/SOMEFILE
         :               ;

    셸 의 기능 스위치: set - C: 출력 을 덮어 쓰 는 것 을 금지 합 니 다. 이 때 는 "> |"에서 대상 파일 set + C 까지 사용 할 수 있 습 니 다. 위 기능 을 닫 습 니 다.
    2. 오류 재 설정: 잘못된 실행 결 과 를 재 설정 합 니 다.
    COMMAND 2>  /PATH/TO/SOMEFILE
             ;
    COMMAND 2>> /PATH/TO/SOMEFILE
             ;  

    3. 표준 출력 과 오류 출력 흐름 통합
    1.&>,&>> 2.command >/path/to/somefile 2>&1 3.command >>/path/to/somefile 2>&1
    4. 특수 장치
    1. 특수 출력 대상:/dev/null, 쓰레기통 2. 특수 출력 파일:/dev/zero
    5. 재 설정 입력
    COMMAND < /PATH/FROM/SOMEFILE  

    7. bash 특성의 파이프
    COMMAND1 | COMMAND2 | COMMAND3 | ...

    연습: 1./etc/passwd 파일 의 마지막 세 줄 정보 중 모든 소문 자 를 대문자 로 바 꾸 고 출력 합 니 다.
    cat /etc/passwd | tr 'a-z' 'A-Z'

    2./etc/fstab 의 여섯 번 째 줄 꺼 내기
    head -n 6 /etc/fstab | tail 1

    3./etc 디 렉 터 리 아래 p 로 시작 하 는 모든 파일 이나 디 렉 터 리 를 꺼 내 서 앞의 5 개 만 표시 합 니 다.
    ls -a /etc/p* | head 5

    특수 명령: 1. tee 명령: tee [OPTION]... [FILE]... - a: 덮어 쓰 지 않 고 추가 출력 사용
    COMMAND | tee /PATH/TO/SOMEFILE

    예:
    ls -al /tmp | tee -a /tmp/bashrc
      /tmp    ,         /tmp/bashrc   

    2. tr 명령: tr [option] set 1 [set 2] 은 출력 된 데이터 의 문 자 를 대위 변환 을 실현 합 니 다. 즉, 데이터 에 존재 하 는 문자 집중 문 자 를 모두 문자 몇 쌍 의 미 문자 로 변환 합 니 다.
    1.tr set1 set2 < /path/from/somefile  #    
    2.tr -d set1 < /path/to/somefile      #  

    좋은 웹페이지 즐겨찾기