리 눅 스 셸 스 크 립 트 공략 노트 의 예비 지식

5843 단어
리 눅 스 셸 스 크 립 트 공략 노트 의 예비 지식
[문제 기]: 2014 년 총결산 에서 쓴 것 처럼 2014 년 에 많은 책 을 읽 었 지만 정리 하지 않 아 소화 흡수 가 잘 되 지 않 았 습 니 다.특히 셸 스 크 립 트 에 대해 서 는 실천 과 축적 이 잘 되 지 않 아 재 복 서 를 만 나 효율 이 매우 낮다.그래서 2015 년 설날 에 3 일 을 쉬 고 분발 하여 스 크 립 트 를 한 번 두 드 리 고 의 필 기 를 정리 했다.2015 이 를 기준 으로 다른 기술 서 와 평소에 문제 가 있 었 던 지식 을 반추 하여 소화 하고 흡수 해 야 한다.
BASH 기초 편
1. type 명령 은 내장 또는 외부 명령 을 구분 합 니 다.
2. 두 가지 스 크 립 트 가 변수 에 이름 을 붙 이 는 방법:
var1=`uname -r`
var2=$(uname -r)
3.$? 리 턴 오류 코드 기록 하기;
= 0 은 성공 을 나타 낸다.
= 0 이 아 닌 것 은 실 패 를 의미한다.0 이 아 닌 종료 상태
4. 절단 기능
eg: last | cut - d '- f 7//- d 는 분할 문 자 를 나타 낸다. -f. 몇 번 째 단락 을 취하 기; 
eg: export | cut - c 1 - 20//- c 문자 단위 로 고정 문자 구간 을 추출 합 니 다.
5.sort,uniq
eg: last | cut -d ' ' -f 1 | sort | uniq -c  //-c 통계 횟수
6.wc
wc -l    //행 수 를 집계 하 다
wc -w  //글자 수 통계 (단어 수)
wc -m  //문자 수 통계 (알파벳 개수)
//eg1:
[root@localhost program_test]# cat banana.txt 
banana
apple1  apple2
ORANGE
root@localhost program_test]# cat banana.txt | wc
      3       4      29
//eg2:
[root@localhostprogram test]\# cat 바나나 txt
바나나
사과
귤.
[root@localhostprogram test]\# cat 바나나. txt | wc
      3       4      30
7. cat hello.c | tr -s "  ""+" //tr 교체
cat hello.c | tr -d "" //tr 삭제
8.join 
//eg:
[root@localhost program_test]# cat right.txt
1 yang man
2 guo man
3 zhang woman
[root@localhost program_test]# cat left.txt
yang 100 95 74
zhang 100 100 100
[root@localhost program_test]# join -t ""-1 2 right.txt -2 1 left.txt
join: file 1 is not in sorted order
yang 1 man 100 95 74
zhang 3 woman 100 100 100
정규 표현 식 기초
1. grep 용법
[root@localhost program_test]# grep -n '^[a-z]' left.txt    //자모 로 시작 하 다
1:yang 100 95 74
2:zhang 100 100 100
4:piao nen hui
5:si mi da 500 2590
[root@localhost program_test]# grep -n '^[^a-z]' left.txt  //알파벳 으로 시작 하지 않 음
3:300 400 500
2、grep -n '^$' left.txt      //공백 줄 -줄 번호
3.. * 0 개 이상 의 임의의 문자
4, 3 ~ 5 개의 0 꼬치 검색
[root@localhost program_test]# grep -n '.0\{3,5\}' left.txt 
6:2000
7:30000
8:400000
9:500000
10:6000000
11:70000000
12:800000000
13:9000000000
5. Sed 파이프 명령, 기능: 교체, 삭제, 추가, 특정 줄 선택.
1) 특정 줄 선택
[root@localhost program_test]# nl left.txt | sed -n '5,7p'
     4  100
     5  2000
     6  30000
[root@localhost program_test]# nl left.txt
     1  yang 100 95 74
     2  zhang 100 100 100
     3  300 400 500
      
     4  100
     5  2000
     6  30000
     7  400000
2) 특정 줄 삭제
nl left.txt | sed '2,5d'
3) 특정 줄 추가
nl left.txt | sed '5a profyang'
4) 특정 문자 삭제
[root@localhost program_test]# ifconfig eth0 | grep 'inet addr'
          inet addr:192.168.119.128  Bcast:192.168.119.255  Mask:255.255.255.0
[root@localhost program_test]# ifconfig eth0 | grep 'inet addr' | sed 's/^.*addr://g'
192.168.119.128  Bcast:192.168.119.255  Mask:255.255.255.0
5) sed - i//파일 내용 을 직접 수정 하고 파일 을 전역 적 으로 수정 합 니 다. 포 함 된 항목 은 모두 수정 합 니 다!
[root@localhost program_test]# sed -i 's/300/yang300zhang/g' left.txt 
6. awk 행위 1 차 처리 단위
eg:
cat/etc/passwd | awk 'BEGIN {FS=":"} $3 > 20  {print $1 "\t\t\t"$3}'
3. Shell 스 크 립 트 기초
1、test //파일 및 관련 속성 검사
2. $\#: 다음 에 받 는 매개 변수 '개수'
     $@:모든 독립 된 변 수 를 대표 합 니 다.
[root@localhost program_test]# nl parm.sh
     1  #!/bin/bash       
     2  echo "The script name is : $0"      
     3  echo "Total parm is : $#"       
     4  echo "Whole parm are: $@"      
     5  echo "first parm is : $1"
     6  echo "second parm is : $2"
     7  echo "third parm is : $3"
[root@localhost program_test]# ./parm.sh parm1 parm2 parm3
The script name is : ./parm.sh
Total parm is : 3
Whole parm are: parm1 parm2 parm3
first parm is : parm1
second parm is : parm2
third parm is : parm3
3. if 문장의 문법 형식
if [조건 식 1]; then
elif [조건 식 2]; then
else
fi
4. case 문장의 문법 규칙
case $변수 이름 
in
"first value")
program1
;;
"second value")
program2
;;
*)
exit 1
;;
esac
5. 셸 스 크 립 트 의 실행 은 위 에서 아래로, 왼쪽 에서 오른쪽으로 이 므 로 셸 스 크 립 트 의 function 설정 은 프로그램의 맨 앞 에 두 어야 합 니 다.
6. while 문장의 문법 규칙
while [ condition ]
do
prog1
done
until [ condition ]
do 
prog2
done
eg:
[root@localhost program_test]# cat sum.sh
#!/bin/bash

i=0;
sum=0;

while [ "$i" -ne  "100" ]
do
sum=$(($sum+$i))
i=$(($i+1))
done

echo "1+2+3+99 = $sum"

7. for 문장의 문법 규칙 1
eg:
[root@localhost program_test]# cat sum_for.sh
#!/bin/bash

i=0;
sum=0;

for((i=0; i<100; i=i+1))
do
sum=$(($sum+$i))
done

echo "1+2+3+99 = $sum"

for 문장의 문법 규칙 2
[root@localhost program_test]# cat users_recurse.sh
users=$(cat/etc/passwd | cut -d ":"-f1)
for user in $users
do
   id $user;
done
8. until 문장의 문법 규칙
[root@localhost program_test]# cat until.sh
#!/bin/bash
x=0
until [ $x -eq 9 ]; do
let x=x+1
echo $x
done

9. sh - x 셸 스 크 립 트 디 버 깅 을 진행 합 니 다.
저자: 명 이 천하
전재 출처, 원문 주소:http://blog.csdn.net/laoyang360/article/details/42365303
만약 에 본 고가 당신 에 게 도움 이 된다 고 느낀다 면 '꼭대기' 를 클릭 하여 지지 해 주 십시오. 당신 의 지 지 는 제 가 창작 을 견지 하 는 가장 큰 동력 입 니 다. 감사합니다!

좋은 웹페이지 즐겨찾기