고급 bash 프로 그래 밍 가이드 (5)

6155 단어 bash
내부 명령 과 내장 명령
1. 내장 명령 은 Bash 공구 꾸러미 에 포 함 된 명령 을 말 합 니 다. 말 그대로 builtin 이 고 실행 효율 을 고려 한 문제 입 니 다.내부 명령 은 외부 명령 보다 더 빨리 실 행 됩 니 다. 일부 원인 은 외부 명령 이 보통 하나의 키 프로 세 스 를 fork 하여 실 행 됩 니 다. 다른 원인 은 특정한 내부 명령 이 셸 의 커 널 부분 에 직접 접근 할 수 있 기 때 문 입 니 다.
2. 주의해 야 할 것 은 내부 건설 명령 은 보통 하나의 시스템 명령 과 동명 이인 이지 만 Bash 내부 에서 이러한 명령 을 다시 실현 하지만 그들 은 대부분 상황 에서 같다 는 것 이다.
3. 키 워드 는 글 자 를 보존 하고 특별한 의 미 를 가 지 며 셸 문법 구 조 를 구축 하 는 것 이다.
4.
(1) echo - n "\v\v\v\v"\# result:\v\v\\v\\v - n 옵션 은 줄 을 바 꾸 지 않 습 니 다.
(2) echo - e "\v\v\v"\# result: 3 개의 수직 탭 문자 - e 옵션 전의
(3) echo $'\v\v\v'\# result: 3 개의 수직 탭 문자
(4)echo "\"dsfadf\"" #result: “dsfadf” 
(5) echo ` ls - l `\# "ls - l"명령 에 따 른 줄 바 꿈 자 를 삭제 합 니 다.
(6)echo "sdffs
fdsdaf "\# 줄 바 꾸 기
(7)varr="fdsa
safd"  echo $varr \# 줄 이 바 뀌 었 습 니 다. 빈 칸 으로 바 뀌 었 습 니 다.
5. printf 포맷 출력 가능
6.read
(1) - a 배열 변수 읽 기
(2) 인자 가 없 는 read 는 읽 은 내용 을 전용 변수 $REPLY 에 저장 합 니 다.
(3) read 에 입력 할 때\를 입력 하고 차 로 돌아 가면 새 줄 이 생 긴 다. -r 옵션 
(4) - s 출력 을 인쇄 하지 않 습 니 다. - nn 은 N 글자 만 받 습 니 다. - p 입력 하기 전에 인쇄 한 뒤의 프롬프트 를 읽 습 니 다.
read - s n1 - p "Hit a key"keypress, Enter 를 입력 하지 않 아 도 됩 니 다.
(5) 방향 키 의 인 코딩
(6) - t 지정 시간 내 입력
(7) 파일 재 설정 을 통 해 read 명령 을 사용 합 니 다.
7. set 명령
(1)set `uname -a`  #Using set with positional parameters
echo $1\# uname - a 결과 의 첫 번 째 문자열
  echo $2   
결과 의 두 번 째 문자열
(2)using set with the -- option explicitly assigns the contents of
a variable to the positional parameters.When no variable follow the
-- ,it unsets the positional parameters.
var="one two"
echo "$1"  #one
echo "$2"  #two
8.unset
the unset command deletes a shell variable ,effectively setting it to null.
Note that this command does not affect positional parameters
9.The export command makes availables to all child processes of the running script or shell.Unfortunately,there is no way to export variables back to the parent process,to
the process that called or invoked the script or shell.One import use of the export command is in startup files,to initialize and make accessible environmental variables to subsequent user processes.
10. jobs 명령
Lists the jobs running in the background,giving the job number.
 외부 필터, 프로그램, 명령
기본 명령
1. ls 명령 의 몇 가지 옵션
- R 재 귀적 옵션 은 모든 파일 을 디 렉 터 리 트 리 로 표시 합 니 다.
- S 는 파일 크기 에 따라 모든 파일 을 표시 합 니 다.
- t 수정 시간
- i 파일 을 보 여 주 는 inode
- F 파일 형식 디 렉 터 리 표시/종료, 파일 *
2.cat,tac
- n: 모든 줄 앞 에 줄 번호 삽입
- b: 같은 - n 이지 만 빈 줄 에 번 호 를 매기 지 않 습 니 다.
- s: 여러 빈 줄 을 빈 줄 로 압축 할 수 있 습 니 다.
tac, 파일 끝 부터 표시
3.rev
(1)bash$ cat file1.txt
This is line 1.
This is line 2.
 (2)bash$ tac file1.txt

 This is line 2. This is line 1.


  (3)bash$ rev file1.txt

 .1 enil si sihT .2 enil si sihT

4. mv 명령 이름 바 꾸 기 기능 구현
5.rm
- f: 파일 을 읽 기만 하 더 라 도 강제로 삭제 합 니 다.
"-"로 시작 하 는 파일 을 삭제 할 때 rm./filename or rm -- filename
6. ln [- s] oldfile newfile newfile 은 oldfile 의 링크 입 니 다.
- s 옵션 소프트 링크
하 드 링크: 원래 파일 의 inode 와 마찬가지 로 모든 파일 의 내용 을 변경 하면 다른 파일 에 반 영 됩 니 다.그러나.
파일 을 삭제 하거나 이름 을 바 꾸 면 다른 파일 에 영향 을 주지 않 습 니 다.
소프트 링크: 서로 다른 inode 이지 만 소프트 링크 는 서로 다른 파일 시스템 의 파일 에 연결 할 수도 있 고 디 렉 터 리 에 연결 할 수도 있 습 니 다.
복잡 한 명령
1. find 명령 
(1)find ~/-name '*.txt'
(2) find ~/- mtime 1\# 마지막 날 수 정 된 파일 을 보 여 줍 니 다.
(3)find ~/-name 'core*' -exec rm {}\;\# 코어 로 시작 하 는 모든 파일 삭제
일치 하 는 파일 마다 exec 뒤의 명령 을 실행 합 니 다. 주의해 야 할 것 은\\입 니 다.끝나다
";"는 셸 이 find 명령 에 전 달 된 문자 가 다른 문자 라 도
문자exec 뒤의 명령 에 {} 이 있 으 면 find 명령 은 모든 일치 하 는 파일 을 사용 합 니 다.
경로 이름 바 꾸 기 {}
2. head 와 tail 명령
head/tail - n Number filename\# 파일 filename 의 앞/뒤 Number 줄 내용 표시
- c N\# 파일 의 앞 뒤 N 자 보이 기
tail - f log. txt\# 파일 을 표시 한 후 10 줄 의 파일 은 새로 추 가 된 파일 내용 을 자동 으로 표시 합 니 다. 특히
로 그 를 감시 할 때 새로 추 가 된 로그 정 보 를 화면 에 계속 표시 할 수 있 습 니 다.
3. expr 명령
(1) expr 3 + 5\# 8 로 돌아 가 빈 칸 주의
(2) expr 3\\* 5\# * 전의 필요
(3) y = ` expr $y + 1 ` 은 let y = y + 1, y = $($y + 1) 와 같다.
(4) b = ` expr $a\> $b `\# 테스트, >, <, > =, < = 전의 가 필요 합 니 다.
4 텍스트 처리 명령
1.sort inputfile|uniq -c|sort -nr
줄 별로 파일 inpuutfile 을 정렬 하고 중복 되 는 줄 을 제거 하 며 모든 줄 이 inpuutfile 에 나타 난 것 을 통계 합 니 다.
횟수, 숫자의 역순 에 따라 정렬 합 니 다.
2. expand 는 모든 tab 를 빈 칸 으로 변환 합 니 다. unexpand 는 반대 입 니 다.
3.wc
wc -w 단어 수 를 집계 하 다.
wc -l 행 수 를 집계 하 다.
wc -c 바이트 수 를 통계 하 다.
wc -m 문자 수 를 통계 하 다.
wc -L 파일 의 가장 긴 줄 의 길 이 를 보 여 줍 니 다.
4. tr 문자 변환 필터
따옴표 나 중 괄호 를 사용 해 야 합 리 적 입 니 다.인용 은 셸 이 tr 명령 에 나타 난 특수 문 자 를 재해 석 하 는 것 을 막 을 수 있 습 니 다.중 괄호 는 셸 에 의 해 확장 되 는 것 을 방지 할 수 있다.
tr "A-Z""*"더 일반적인 방법 tr - Z '[*]' < filename
5 파일 및 압축 파일 명령
1. tar 명령
(1) tar - cf 1. tar *. jpg\# 현재 디 렉 터 리 에 있 는 모든. jpg 파일 을 1. tar 로 포장 합 니 다.
(2) tar - zf 1. tar\# 1. tar 를 현재 디 렉 터 리 로 풀 어 줍 니 다.
(3) tar - czf 1. tar *. jpg\# 포장 및 gzip 으로 압축, z 가 j 로 바 뀌 었 을 때 bzip 2 로 압축
(4) tar - xzf 1. tar\# (3) 의 역 과정
(5) 기타 몇 가지 유용 한 옵션
tar - tf 1. tar\# 1. tar 의 파일 이 나 옵 니 다.
tar - uf 1. tar logo. jpg\# 1. tar 의 logo. jpg 파일 업데이트
tar - rf 1. tar *. gif\# 모든 파일 을 1. tar 에 추가 합 니 다.
2. file 추가 유형 확인
3. which command 에서 command 의 전체 경 로 를 확인 합 니 다.
4. whereis command 는 전체 경 로 를 제시 하 는 것 외 에 이 명령 man 페이지 의 전체 경 로 를 제시 합 니 다.
5. whatis 는 시스템 명령 과 중요 한 프로필 에 대한 설명 을 보 여 줍 니 다.man 명령 결과 에 해당 하 는 NAME
항목 의 내용
6.vdir=ls -l
7. locate filename 에서 filename 의 경 로 를 조회 합 니 다.
8. readlink 심 볼 릭 링크 가 가리 키 는 파일 표시
9. diff 파일 비교 도구
-- side - by - side 옵션, 좌우 분할 형식 출력, - c - u 옵션
patch
cmp 명령 은 위치 만 다 르 고 세부 사항 은 표시 되 지 않 습 니 다.
10. basename 경로 정 보 를 제거 하고 파일 이름 만 출력 합 니 다.
dirname 에서 파일 이름 을 지우 고 경로 정보 만 출력 합 니 다.

좋은 웹페이지 즐겨찾기