고급 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""*"
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 에서 파일 이름 을 지우 고 경로 정보 만 출력 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
성공할 때까지 명령 실행최근에 유용한 간단한 BASH 패턴: Run command every time it fails until it doesn't fail. 예시 작은 배치로 수십만 개의 레코드를 내보내야 하는 장기 실행 작업이 있었습니...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.