shell_기초1

33205 단어 셸 스 크 립 트
정규 표현 식
특수 문자 의미
.       (    )
*     012  
	(wang)*        012  
+       
	x{n}     n ,
    x{n,}     n 
    x{n,m}   n m 
    x{,m}    m 
?  01 (     )
^    ,    
$     

\< , \b  ..           (  )
\> , \b  ..     ([^,]   ...
[:alpha:]     
[:alnum:]        
                 
a|b xy :a b ,xy
(a|b)xy: axy bxy

일치 규칙 조합
(expr1) (expr2) \1(          ) \2(          )

vim 
	:%s /xyz/&er/g 
  vim  xyz     xyzer
 
vim        
    : 
 vi                (       )。      ,                 ,     **         **       ,        、           。  

    : 
            、  、      ,            ,       【i, I, o, O, a, A, r, R】                 。            【INSERT  REPLACE】   ,         。           ,       【Esc】        。  

       :: / ? 】        ,               。      ,       、  、  、    、  vi、                  !


ifconfig 의 용법
ifconfig ens33 |grep -o
-o :         re      
egrep=grep -E                

  ip     ?
192.168.30.100
255.255.255.0
192.168.30.123123    
[0-9]                      0-9 
[1-9][0-9]                 10-99
1[0-9][0-9]                100-199
2[0-4][0-9]                200-249
25[0-5]                    250-255


>ifconfig ens33|grep -o"(\)"

  [0-9]|[1-9][0-9]     [1-9]?[0-9]


스 크 립 트 를 실행 하 는 몇 가지 방법
1.        (              chmod +x xx.sh)
./xx.sh
2.bash   cat xx.sh|bash
3.     	PATH                
   :
	echo $PATH
	mv xx.sh /root/bin
    xx.sh
            PYTH      ,        hash     
    >hash(  )
      mv /root/bin/hello.sh /usr/local/bin
    hello.sh        
    hash -d hello.sh(     )
    hello.sh       hash     
cmd : command     

  :Hash
	Hash,     “  ”
           "  " ,          (      , pre-image),      ,          ,        。           ,   ,                ,                ,                 。

                                 。


vim 프로필 자동 설정 스 크 립 트 파일 헤더
  • case: 사실, 구체 적 인 상황
  • indent: 공백
  • #! /bin/bash
    set nu
    set ignorecase#(     )
    set cursorline#(       )
    set autoindent#(       )
    autocmd BufnewFile *.sh exec ":call SetTitle()"
    func SetTitle()
    	if &filetype=="sh"
        call setline(1,"#!/bin/bash")
        call setline(2,"#***************")
        call setline(3,"Author : xzw")
        call setline(4,"#Date: "  .strftime("%y-%m-%d"))
        call setline(5,"#***************")
        endif
    endfunc
    
      :
    	1.&
        &                     
         ,       ,    Shell    ,          ,           ,    ,           ,             '&'      。     ctrl + c     
    	ctrl + c :linux     
        ctrl + z :linux      
        
        2.
    

    스 크 립 트 디 버 깅
    1.    
    hostnam   :        
    2.    
    syntax error :          
    
        
    bash -n file.sh            
    bash -x file.sh           
      :
    	echo $HOSTNAME
    	   +       ,
    	echo `hostname`
    	++         (  )
    	
    

    변량
         $   $
    #             ,
    echo               $
    
             
    PATH
    HOME
    UID
    PWD
    PS1
    

    1. 변수 할당
    name="Mage"  
           
    name="wang",           wang,      Mage,        ,      ,       
    

    2. 명령 할당
    name=`hostname`
    

    3. 변수 에 여러 줄 의 내용 저장
    name=`cat /etc/fstab`
    echo "$name"
                     
    

    4. 변수 참조 변수
    name1="wang"
    name2=name1
    
    name1="li"
    
    #>echo $name1
    >li
    
    #>echo $name2
    >wang
    
    name1                 ,name2      
    

    셸 언어의 특징
    shell          ,            
      :
    i=100
             
    

    강 유형 언어
    변 수 를 정의 하려 면 형식 을 지정 해 야 합 니 다.
    Java c c#
    약 한 유형 언어
    지정 한 데이터 형식 이 필요 없습니다.
    python php bash
    bash 는 부동 소수점 을 지원 하지 않 고 소수 만 지원 합 니 다.
    명명 규칙
    StudentName :       
    studentFirstName :      (            )
    
    
    

    국부 변수
    echo $$         
    echo $PPID          
    pstree -p :     
    
    bash       
    exit     
    
                  ,      
    

    전역 변수
    export name="haha"
      
    declare -x name='haha'
    
         ,       ,        ,            
    
    HOSTNAME           
    SHLVL          shell     
    PATH           
    				1.2.        (    )   ,    PATH           
            		3.            ,        PATH (hash  )
               
    SHELL
    USER                 
    UID                id
    HOME                  
    PWD                    
    LANG                   
    MALL           
    HISTSIZE
    
    ls /bin/ /dev/ /etc/
    ls          
    $_                         
    ># echo $_ 
    ># /etc
    
    

    변수 삭제
    unset +    
    

    변수 보기
    export         
    env               
    set           (  、    )
    declare -x 
    
    

    연습 하 다.
    1. 스 크 립 트 / root / bin / systeminfo. sh 를 작성 하여 현재 호스트 시스템 정 보 를 표시 합 니 다. 호스트 이름, Ipv4 주소, 운영 체제 버 전, 커 널 버 전, CPU 모델, 메모리 크기, 하 드 디스크 크기 를 포함 합 니 다.
        :           hostname
    Ipv4   :        ifconfig ens33 | grep ""
          :       cat /etc/centos-release
                      cat /etc/redhead
            
                    uname -r
    CPU              lscpu
                    cat /proc/meminfo
                    lsblk
                    df -h
    
    

    tr - ( c d s)
    tr - translate or delete characters            
    
    1.       
    	tr -s "[a-z]"
        tr -s " "        
        tr -s "[
    ]"
    2. tr "[a-z]" "[A-Z]" 3. tr -d "[0-9][:]"

    awk 텍스트 처리 도구
    -F             
    $0          
    $n         n 
    NF              
    $NF           
    
    {},      ;    
    

    cut -(d f)
    -d        ,   tab
    -f          
    
    ># echo "/home/lxy/hhhhh-a.bbb.cc.d" |awk -F/ '{print $NF}'| cut -d'.' -f2 
    ># bbb
    
    cut -d"" -f2
    

    2. 스 크 립 트 / root / bin / backup. sh 를 작성 하면 매일 / etc / 디 렉 터 리 를 / root / rtcYY - mm - dd 에 백업 할 수 있 습 니 다.
    cp
    -a                 
             、             ,     copy; 
    
    -r
        copy, source      ,                  ; 
    
    -f 
                    ,              ; 
    
    -v
               
    
    
    

    echo - e (색상)
          
    
    >#  echo -e "\e[1;31m abed \e[0m"
    
           abcd       。
    \e[1      ,        ,
    ;          
    \e[0m         ,
    31m          。
    
    echo            :
       30m=  ,31m=  ,32m=  ,33m=  ,34m=  ,35m=  ,	36m=  ,37m=

    umask
                     
    root    umask 00220002
    drwxr-xr-x 
    755
    
         ,
      ,            777;
      ,                         , 666666-022      ,   
      :777-022=755666-022=644
    777     umask                
    
        
    umask 026
    
    1.umask        umask ,      umask       。
    2.       umask ,    /etc/profile      /etc/bashrc  
    3.      umask    027,            “umask 027”。
    
    ---------------------------------------------------------------------------------
    -rw-rw-r–           。
    
          104    。
     :r  ,w  ,x   。
       ( 1 )-     ,d     ;
       ( 2-43    )( 5-73    )( 8-103    )           ;
    
     :
       3 84,2,1
    r 42^2 
    w 22^1 
    x 12^0   
    ---------------------------------------------------------------------------------
    
    

    () 소괄호 의 역할
    (umask 026;mkdir xzw_test_2)
    1.        ,           ,      ,             ,     。
    2.>>>x=1;echo "pid=$$";(echo "subpid=$$";x=2;echo "subx2=$x");echo x=$x
    
    >pid=2887
    >subpid=2887
    >ubx2=2
    >x=1
    
      :
    	     shell     ,        ()         id  
    

    man bash
    bash     
    
      ()/\(list\)
    

    좋은 웹페이지 즐겨찾기