BASH 셸 상용 명령

8324 단어 명령 하 다.bash
1. 명령 별명 (alias)
만약 에 이 디 렉 터 리 아래 의 모든 파일 (숨겨 진 파일 포함) 과 모든 파일 속성 을 알 아야 한다 면 저 는 ls - al 과 같은 명령 열 을 내 려 야 합 니 다. 더 빠 른 대체 방식 이 있 습 니까?명령 별명 사용!즉, lm 는 ls - al 과 같은 기능 입 니 다. 명령 열 에 alias 를 입력 하면 현재 명령 별명 이 어떤 것 인지 알 수 있 습 니 다!직접 명령 을 내 려 별명 을 설정 할 수도 있다.
alias lm='ls -al'

변수 설정 규칙
  • 변수 와 변수 내용 은 등호 '=' 로 연결된다.
  • 등호 양쪽 에 스페이스 바 를 직접 연결 할 수 없습니다.
  • 변수 이름 은 영문 자모 와 숫자 일 수 있 지만 숫자 는 시작 문자 일 수 없습니다.
  • 빈 칸 문자 가 있 으 면 두 개의 따옴표 인 '' '또는 작은 따옴표 인' '을 사용 하여 변수 내용 을 결합 시 킬 수 있 으 나 특히 주의해 야 한다. 두 따옴표 안의 특수 문 자 는 변수 특성 을 유지 할 수 있 지만 작은 따옴표 안의 특수 문 자 는 일반 문자 에 불과 하 다.
  • 필요 할 때 특수 기호 (예 를 들 어 Enter, $,\, 스페이스 바, 등) 를 일반 기호 로 바 꾸 려 면 문자 '\' 를 건 너 뛰 어야 합 니 다.
  • 일련의 명령 에 있어 서 다른 명령 에 의 해 제 공 된 정 보 를 이용 하여 quote "command"를 사용 할 수 있다.
  • 만약 에 이 변수 가 변수 내용 을 늘 리 는 것 이 라면 더 블 따옴표 와 $변수 이름 으로 '$PATH':/home '과 같은 내용 을 계속 누적 해 야 합 니 다.
  • 이 변 수 를 다른 서브루틴 에서 실행 하려 면 export 로 변 수 를 동작 시 켜 야 합 니 다. 예 를 들 어 "export PATH";
  • 보통 대문자 문 자 는 시스템 설정 변수 이 고 스스로 변 수 를 설정 하면 소문 자 문 자 를 사용 하여 판단 하기에 편리 하 다 (순 전 히 사용자 의 관심 과 기호 에 따른다).
  • 변 수 를 취소 하 는 방법 은 "unset 변수 이름"입 니 다.
  • 3. 변수의 유효 범위
    변 수의 설정 은 현재 이 셸 환경 에 만 존재 합 니 다. 다음 이나 하위 프로그램 (하위 셸) 에 서 는 존재 하지 않 습 니 다. 변 수 를 다음 프로그램 에서 도 계속 사용 할 수 있 도록 하려 면 아마도 export 를 사용 하 는 것 입 니 다. 또한 셸 의 부모, 서브루틴 을 제외 하고 스 크 립 트 (scripts) 에 있 습 니 다.의 작성 중, 어떤 소프트웨어 는 2 개 이상 의 scripts 를 완전한 세트 로 사용 하기 때 문 입 니 다! 즉, 두 개의 프로그램 이 있다 면, 하 나 는 scripts 1. sh 와 scripts 2. sh 이 고, scripts 2. sh 는 scripts 1. sh 의 변 수 를 참조 합 니 다. 이 럴 때, scripts 1. sh 에 설 정 된 변 수 는 "export 로 설정 하 십시오".그렇지 않 으 면 변 수 는 두 개의 scripts 사이 에서 서로 인용 할 수 없습니다. 이 scripts 가 실 행 된 후에 방금 scripts 에서 설정 한 변 수 는 '실효 되 었 습 니 다!' 입 니 다.
    4. read 명령
    사용자 가 입력 한 변 수 를 직접 읽 습 니 다.
    [test @test test]# read name 
    testing <==                  
    [test @test test]# echo $name 
    testing <==               

    array 명령
    [test @test test]# a[  ]=   
    [test @test test]# echo ${a[  ]}  
    [test @test test]# a[1]=4 
    [test @test test]# a[2]=8 
    [test @test test]# echo ${a[1]} ${a[2]} 
    4 8

    6. eval 명령
    기능 설명: 매개 변수의 내용 을 다시 연산 합 니 다.
    문법: eval [매개 변수]
    추가 설명: eval 은 일련의 인 자 를 읽 은 다음 매개 변수 자체 의 특성 에 따라 실행 할 수 있 습 니 다.
    매개 변수: 매개 변 수 는 수량 을 제한 하지 않 고 서로 분점 으로 나 뉜 다. 1. eval 명령 은 먼저 명령 행 을 스 캔 하여 모든 바 꾸 고 명령 을 실행 합 니 다. 이 명령 은 한 번 스 캔 으로 는 기능 을 수행 할 수 없 는 변수 에 사 용 됩 니 다. 이 명령 은 변 수 를 두 번 스 캔 합 니 다. 두 번 스 캔 해 야 하 는 변 수 는 복잡 한 변 수 를 나타 내 는 데 도 사 용 됩 니 다. 2. eval 은 간단 한 변 수 를 보 여 주 는 데 도 사 용 됩 니 다. 꼭 복잡 한 변 수 는 아 닙 니 다. NAME = ZONEeval echo$NAME 는 echo $NAME 3 과 같 습 니 다. test. txt 내용 을 두 번 스 캔 합 니 다: hello shell World! my file = "cat test. txt"(1) echo $my file\# result: cat test. txt (2) eval echo $my file\# result: hello shell World! (2) 에서 첫 번 째 스 캔 으로 변 수 를 바 꾸 었 음 을 알 수 있 습 니 다. 두 번 째 스 캔 은 이 문자열 에 포 함 된 명령 4 를 실 행 했 습 니 다. 마지막 매개 변수 echo 를 얻 었 습 니 다. "Last argument is $(eval echo\$$#)"echo "Last argument is $(eval echo $#)"
    7. 유 니 버 설 문자 와 특수 문자
    bash 에 서 는 만 용 문자 가 자주 사용 되 기 때문에 특수 기 호 를 조합 하여 명령 을 더욱 잘 활용 합 니 다 (예 를 들 어 가장 자주 언급 하 는 정규 표현 법 Regulare Express)! 아래 에 자주 사용 하 는 만 용 문자 와 특수 기 호 를 보 여 줍 니 다.
    기호.
    내용.
    *
    유 니 버 설 문자, 하나 이상 의 문자 (또는 숫자) 를 의미 합 니 다.
    ?
    유 니 버 설 문자
    #
    주석, 이것 은 script 에서 가장 자주 사용 되 며 설명 으로 간주 합 니 다!
    \
    점프 기호, "특수 문자 또는 유 니 버 설 문자"를 일반 문자 로 복원 합 니 다.
    |
    두 개의 파이프라인 명령 을 구분 하 는 정의;
    ;
    연속 적 인 명령 의 정의 (주의! 파이프라인 명령 과 다 름)
    ~
    사용자 의 집 목록
    $
    즉, 변수 이전에 추가 해 야 할 변수 대체 값 이다.
    &
    명령 을 배경 으로 작업 하 다.
    !
    논리 연산 의미 의 "비"not 의 뜻!
    /
    경로 구분 기호
    >, >>
    수출 방향 은 각각 '대체' 와 '누적' 이다.
    '
    작은 따옴표, 변수 교체 기능 이 없습니다.
    "
    변수 교체 기능 이 있 습 니 다!
    ` `
    두 개의 ""중간 에 먼저 실행 할 수 있 는 명령 입 니 다!
    (   )
    중간 에 하위 셸 의 시작 과 끝 입 니 다.
    [  ]
    중간 에 문자 로 된 조합
    {   }
    중간 에 명령 블록 을 위 한 조합!
    조합 버튼
    실행 결과
    Ctrl + C
    현재 명령 종료
    Ctrl + D
    끝 (EOF) 을 입력 하 십시오. 예 를 들 어 메 일이 끝 날 때;
    Ctrl + M
    바로 엔 터 입 니 다!
    Ctrl + S
    화면 출력 일시 정지
    Ctrl + Q
    화면 출력 복구
    Ctrl + U
    알림 문자 에서 전체 명령 을 삭제 합 니 다.
    Ctrl + Z
    "일시 정지"현재 명령
    8. 연속 명령 의 사용 방식
    여기 서 몇 가지 중요 한 정 보 를 더 제시 해 야 합 니 다. 우 리 는 방금 위 에서 말 했 듯 이 두 가지 명령 이 연이어 쓰 여 있 습 니 다. 이렇게 쓸 수 있 습 니 다. command 1, command 2 는 분 호 를 이용 하여 ';' 라 고 쓸 수 있 습 니 다.이 분 호 는 command 1 의 실행 결과 가 어떻든 command 2 가 실 행 됩 니 다. 그러면 제 가 두 개의 관련 명령 이 라면 첫 번 째 command 1 은 실행 결과 가 잘못 되면 두 번 째 는 실행 되 지 않 습 니 다. 이렇게 해도 되 겠 습 니까? 물론 입 니 다. 다음 두 개의 연 결 된 쿵쿵: command 1 & command 2 command 1 | | command 2 를 사용 하 십시오.우리 의 이전 변수 내용 중, 그것 을 기억 하 십 니까? 무엇 을 대표 하 십 니까? 그렇습니다. 바로 이전 에 실 행 된 명령 내용 에 오류 가 있 는 지, 오류 가 있 으 면 1 로, 오류 가 없 으 면 0 으로, 당신 은 echo $를 통 해 알 수 있 습 니 다. 그러면 & & 는 command 1 실행 결과 가 0 으로 전 달 될 때, 오류 메시지 가 없 는 것 을 대표 합 니 다.이 경우 command 2 가 실 행 됩 니 다. | | 은 반대로 command 1 에 오류 메시지 가 있 을 때 command 2 가 실 행 됩 니 다!
    9. 명령 중 가이드
    a > b 는 현재 내용 a 를 b 로 다시 안내 하 는 것 을 표시 합 니 다.
    이 > 기 호 를 제외 하고 bash 명령 을 실행 하 는 과정 에서 주로 세 가지 출력 이 들 어 오 는 상황 이 있 습 니 다. 그것 이 바로 표준 입력, 코드 0, 또는 stdin 입 니 다. 사용 하 는 방식 은 < 표준 출력: 코드 1, 또는 stdout 입 니 다. 사용 하 는 방식 은 1 > 오류 출력: 코드 2, 또는 stderr, 사용 하 는 방식 은 2 > 입 니 다.
    1 >: 정확 한 데 이 터 를 지정 한 곳 으로 출력 하 는 것 입 니 다. 2 >: 잘못된 데 이 터 를 지정 한 곳 으로 출력 하 는 것 입 니 다.
    정확 한 데이터 와 잘못된 데 이 터 를 각각 다른 곳 으로 출력 해 야 한다 면 다음 과 같이 지정 할 수 있 습 니 다.
    [test @test test]# find / -name testing 1> list_right 2> /dev/null

    파일 에 쓸 필요 가 있다 면
    [test @test test]# find / -name testing 1> list 2> list  <==    
    
    [test @test tset]# find / -name testing 1> list 2>&1    <==    

    이 점 을 각별히 유의 하 세 요! 같은 파일 을 동시에 쓰 려 면 2 > & 1 을 사용 해 야 합 니 다!
    10. 파이프 명령 (pipe)
     bash 명령 이 실 행 될 때 출력 된 데이터 가 나타 납 니 다. 그러면 이 데 이 터 는 몇 가지 절 차 를 거 쳐 야 우리 가 원 하 는 형식 을 얻 을 수 있 습 니 다. 어떻게 설정 해 야 합 니까? 이것 은 파이프라인 명령 의 문제 (pipe) 와 관련 되 어 있 습 니 다. 파이프라인 명령 은 "|"라 는 정의 기 호 를 사용 합 니 다!
    이 파이프라인 명령 "|"은 앞의 명령 을 통 해 전 달 된 정확 한 정보, 즉 standard output (stdOUT) 의 정보 만 처리 할 수 있 으 며, stdandard error 에 대해 서 는 직접 처리 할 능력 이 없습니다.
    모든 라인 의 부분 은 '명령' 입 니 다. 다음 명령 의 입력 은 바로 앞의 명령 의 출력 에서 나 온 것 입 니 다. 다음은 기본 적 인 라인 명령 명령 에 대한 소 개 를 하 겠 습 니 다.
    cut 문법:
    [root @test /root ]# cut -d "    " [-cf] fields
        :
    -d  :            ,   『   』
    -c  :     『     』
    -f  :          ?
      :
    [root @test /root]# 
    cat /etc/passwd | cut -d ":" -f 1 
      passwd       ,       : 
           ,        !        !
    [root @test /root]# last | cut -d " " -f1  
           ,        ! 
    [root @test /root]# last | cut -c1-20 
      last      ,     1-20       !

    sort 문법:
    [root @test /root ]# sort [-t    ] [(+  )(-  )] [-nru] 
        : 
    -t    :            ,    tab 
    +start -end:   start       end    
    -n         :  『   』  (            ) 
    -r         :     
    -u         :       ,     ! 
      : 
    [root @test /root]# cat /etc/passwd | sort 
               ! 
    [root @test /root]# cat /etc/passwd | sort -t: +2n 
          ,     ID    (  :    ,     ID , 
            0   )
    [root @test /root]# cat /etc/passwd | sort -t: +2nr 
         !

    wc 문법:
    [root @test /root ]# wc [-lmw] 
        : 
    -l   :    
    -m   :     
    -w   :   

    문법:
    [root @test /root ]# uniq 
        : 
      : 
    [root @test /root]# last | cut -d" " -f1 | sort | uniq

    tr 문법:
    [root @test /root ]# tr [-ds] SET1 
        : 
    -d  :   SET1       
    -s  :        ! 
      : 
    [root @test /root]# last | tr '[a-z]' '[A-Z]'         <==        
    [root @test /root]# cat /etc/passwd | tr -d :       <==  ! :       /etc/passwd     ! 
    [root @test /root]# cat /home/test/dostxt | tr -d '\r' > dostxt-noM   <==  DOS         ^M      !

    split 문법:
    [root @test /root ]# split [-bl]               
        : 
    -b  :    size    
    -l  :      
      : 
    [root @test /root]# split -l 5 /etc/passwd test   <==    testaa, testab, testac... 
         

    파이프라인 명령 은 bash 의 연속 적 인 처리 프로그램 에서 상당히 중요 합 니 다! 또한 log file 의 분석 에서 도 상당히 중요 한 일환 이 므 로 특히 유의 하 시기 바 랍 니 다!

    좋은 웹페이지 즐겨찾기