리 눅 스 명령 해석 기 - shell
셸 은 C 언어 로 작 성 된 프로그램 으로 사용자 와 운영 체제 커 널 간 의 통신 의 다리 입 니 다. 셸 은 명령 해석 프로그램 이자 기능 이 강 한 해석 형 프로 그래 밍 언어 입 니 다.현재 일반적인 리 눅 스 시스템 의 헤 어 버 전 은 bash 를 기본 셸 로 한다.
셸 은 명령 해석 프로그램 일 때 주로 사용자 가 입력 한 명령 을 받 고 실행 한 후에 이 명령 이 셸 내 장 된 명령 인지 먼저 검 측 합 니 다. 만약 그렇다면 셸 내부 의 해석 기 를 통 해 명령 을 시스템 호출 으로 해석 한 다음 에 커 널 에 전달 합 니 다.셸 내 장 된 명령 이 아니라면 셸 은 사용자 가 제공 하 는 경로 나 시스템 환경 변수의 설정 정보 에 따라 하 드 디스크 에서 해당 하 는 명령 을 찾 은 다음 메모리 로 불 러 오고 마지막 으로 시스템 호출 으로 해석 하여 커 널 에 제출 합 니 다.
셸 은 강력 한 해석 형 프로 그래 밍 언어 로 서 다양한 옵션 과 변 수 를 정의 합 니 다. 변수, 함수, 표현 식, 순환 등 고급 프로그램 언어의 모든 프로그램 구 조 를 지원 합 니 다. 셸 을 이용 하여 셸 스 크 립 트 프로그램 을 작성 할 수 있 습 니 다. Windows 의 일괄 처리 파일 과 유사 하지만 셸 의 기능 은 보완 되 고 더욱 강 합 니 다.
사용자 가 시스템 에 로그 인 한 후에 문자 인터페이스 에 로그 인 하면 셸 명령 프롬프트 가 나타 납 니 다. \ # 로그 인 한 사용 자 는 슈퍼 사용자 이 고 $로그 인 한 사용 자 는 일반 사용자 임 을 표시 합 니 다.
일반 사용자 로그 인 셸 프롬프트 파라미터 설명
# guanglei, , /home/user directory
[guanglei@tony ~]$ pwd
/home/guanglei
루트 사용자 로그 인 시스템 후 셸 프롬프트 파라미터 설명
# root /root
#root @ tony ~
[root@tony ~]# pwd
/root
2 셸 명령 의 문법 분석
Linux 의 각종 셸 의 주요 차 이 는 명령 행 의 문법 에 있다.일부 일반 명령 에 대해 서 는 셸 버 전의 문법 이 기본적으로 같 습 니 다. 셸 스 크 립 트 를 만 들 거나 셸 의 고급 기능 을 사용 할 때 만 각 버 전의 셸 간 의 차이 가 표 시 됩 니 다.
셸 문법 분석 은 셸 이 명령 에 대한 스 캔 처리 과정 을 말한다. 즉, 명령 이나 사용자 가 입력 한 내용 을 처리 할 각 부분의 조작 으로 분해 하 는 것 이다. 리 눅 스 시스템 에서 셸 문법 분석 은 많은 내용 을 포함한다. 예 를 들 어 재 설정, 파일 확장자 와 채널 등 이다.
1 셸 명령 의 형식
command [options] [arguments] 에서 command 는 명령 이름 을 표시 합 니 다. 옵션 은 하나 이상 의 알파벳 코드 를 포함 하여 명령 의 실행 방식 을 바 꾸 는 데 사 용 됩 니 다.일반적으로 옵션 앞 에 '-' 기호 '가 있 는데 매개 변수 와 구별 된다.
[root@CentOS7X64 ~]# ls -al #
많은 명령 이 인 자 를 받 아들 일 수 있 습 니 다. 인 자 는 옵션 뒤에 있 는 하나 이상 의 문자열 입 니 다. 이 문자열 들 은 파일 이나 디 렉 터 리 와 같은 명령 의 작업 대상 을 지정 합 니 다.
[root@CentOS7X64 ~]# ls -al /etc/ # /etc
특수 한 상황 에서 일부 명령 은 인 자 를 가지 고 있 지 않 을 수 있 습 니 다. 예 를 들 어 ls 명령 과 같은 명령 은 인 자 를 가지 고 있어 야 합 니 다. 매개 변수 가 부족 할 때 셸 은 오류 알림 을 줍 니 다. 예 를 들 어 뮤 직 비디오 는 적어도 두 개의 인자 가 필요 합 니 다.
[root@CentOS7X64 ~]# touch tony.txt # tony
[root@CentOS7X64 ~]# mv tony.txt tony_new.txt # ( )
2 셸 의 어댑터
어댑터 는 주로 사용자 가 파일 이나 디 렉 터 리 에 대한 설명 을 편리 하 게 하기 위해 서 입 니 다. 예 를 들 어 사용자 가 'sh' 로 끝 나 는 파일 만 필요 할 때 어댑터 를 사용 하면 편리 하 게 이 루어 집 니 다.각 버 전의 셸 에는 마스크 가 있 습 니 다. 이 마스크 들 은 모두 특수 문자 입 니 다. 사용 자 는 명령 행 의 매개 변수 에서 이 문 자 를 사용 하여 파일 이름 이나 경로 이름 을 일치 시 킬 수 있 습 니 다.셸 은 명령 행 에서 지정 한 일치 규칙 에 맞 는 모든 파일 이름 이나 경로 파 라미 터 를 명령 의 매개 변수 로 하고 이 명령 을 실행 합 니 다.bash 에서 자주 사용 하 는 마스크 는 또 "*", "?", "[] "* 는 하나 이상 의 문자 와 일치 합 니 다.
[root@CentOS7X64 ~]# ls *.txt # .txt
[root@CentOS7X64 ~]# ls -al /etc/*/*.conf # /etc .conf
?단일 문자
[root@CentOS7X64 ~]# touch tom.txt #
[root@CentOS7X64 ~]# ls to?.txt # to , , .txt
tom.txt
[] 괄호 안에 포 함 된 모든 문자 와 일치 함 을 표시 합 니 다.
[root@CentOS7X64 ~]# ls /dev/sda[12345] # /dev sda , 1、2、3、4、 5
/dev/sda1 /dev/sda2 /dev/sda3
괄호 가운데 '1 - 5' 구간 범 위 를 제시 하 였 습 니 다.
[root@CentOS7X64 ~]# ls /dev/sda[1-5] #
3 셸 의 재 설정
Linux 시스템 은 세 가지 입 출력, 즉 표준 입 출력, 표준 출력 과 표준 오류 출력 이 있 습 니 다.사용자 의 셸 은 키 보드 를 기본 표준 입력 으로 설정 하고 기본 표준 출력 과 표준 오 류 를 화면 으로 출력 합 니 다.사용자 가 키보드 에서 명령 을 출력 한 다음 실행 결과 와 오류 정 보 를 화면 으로 출력 하 는 것 이다.
리 셋 이란 시스템 의 기본 표준 입 출력 을 사용 하지 않 고 다시 지정 하 는 것 입 니 다. 따라서 리 셋 은 입력 리 셋 과 출력 리 셋, 오류 출력 리 셋 으로 나 뉜 다.방향 을 바 꾸 려 면 방향 을 바 꾸 는 조작 자 를 알 아야 합 니 다. 셸 은 방향 을 바 꾸 는 조작 자 에 따라 방향 을 바 꾸 는 조작 을 결정 합 니 다.
입력 재 설정: 입력 재 설정 은 명령 의 입력 원 을 바 꾸 는 데 사 용 됩 니 다. 입력 재 설정 을 이용 하면 키보드 에서 입력 하 는 것 이 아니 라 파일 의 내용 을 명령 으로 입력 할 수 있 습 니 다.
입력 방향 을 바 꾸 는 조작 자 는 "<" 와 "<" 가 있 습 니 다. "<" 는 데 이 터 를 기록 하고 이전 데 이 터 를 제거 합 니 다. "<" 는 데 이 터 를 기록 하 는 것 을 표시 하 며 이전 데 이 터 를 삭제 하지 않 습 니 다.
[root@CentOS7X64 ~]# cat > tony.txt <<EOF # tony.txt
> this is append content
> EOF
[root@CentOS7X64 ~]# cat tony.txt #
this is append content
출력 재 설정: 출력 재 설정 은 명령 의 결 과 를 화면 에 출력 하 는 것 이 아니 라 지정 한 파일 에 출력 합 니 다.
echo "I am studing linux" >tony_new.txt #
[root@CentOS7X64 ~]# cat tony_new.txt #
I am studing linux
[root@CentOS7X64 ~]# ps -ef >ps.txt # ps.txt ,
오류 출력 재 설정 은 "2 >" 와 "2 > >" 를 사용 하여 오류 출력 을 실현 할 수 있 습 니 다.
[root@CentOS7X64 ~]# tar zxvf test.rar.gz 2> error.txt # error.txt
[root@CentOS7X64 ~]# cat error.txt #
tar (child): test.rar.gz: Cannot open: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now
4 셸 의 파이프
파 이 프 는 많은 명령 을 연결 할 수 있 습 니 다. 그 역할 은 하나의 명령 의 출력 을 다음 명령 의 입력 으로 하고 중간 파일 을 거치 지 않 는 것 입 니 다.
[root@CentOS7X64 ~]# ls -al /etc/* |more # /etc
아래 QR 코드 를 스 캔 하 시 는 것 을 환영 합 니 다. 위 챗 공중 서비스 번호 - 기술 이 끝 이 없 음 을 주목 하고 IT 기술 건 화 를 공유 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.