리눅스 쉘 연구는 1 노트

1,이 파일을 사용할 수 쉘의 수를 얻을 수는 / etc / 쉘 확인, 일반적으로 몇 가지를 보면 :

  • / 빈 / SH (대체되었습니다 / 빈 / bash는)
  • / 빈 / bash는 (리눅스는 기본 쉘입니다)
  • / 빈 / ksh를합니다 (AT & T 벨 연구소에 의해 콘 셸. 개발하고, 떠들썩한 파티와 호환)
  • / 빈 / tcsh의 (C 쉘 통합은 더 많은 기능을 제공합니다)
  • / 빈 / CSH (대체되었습니다 / 빈 / tcsh의)
  • / 빈 / zsh을 (KSH은 쉘의 강력한 기반으로 개발)

기본값은 리눅스의 bash를 사용하는 것입니다.

왜 우리의 법률 시스템 쉘이이 문서의 / etc / 쉘에 쓸?

일부 서비스는 작동 중에 시스템 때문에, 사용자는 쉘을 확인하기 위해 사용할 수있을 것이며, 이러한 쿼리는 등 / 쉘 파일 /의 쉘을 통해서이다.

착륙 할 때, 시스템은 쉘이 작업을 할당합니다. 쉘은 / etc / passwd 파일에이 기록을 달성 도착했다.

2, 성공적으로 시스템을 로그 오프 할 때 ~ / .bash_history 파일 기록이 전에 한 번 방문하기 전에 실행하기 전에 명령을하지만 착륙 동작을 명령하는이 때 메모리에 캐시, 명령이 메모리에 기록됩니다 그들을 .bash_history 파일.

삼,

  • 명령 완료 명령 문자열의 첫 번째 단어 뒤에 접속 [탭];
  • 명령 스트링에 이어 두 번째 단어에 연결된 경우 [탭]를위한 "파일 작성"!

4 명령 별명 구성 기능 (별명)

명령 줄 별명은 무엇 현재 명령 별칭을 알 수 있습니다.

직접 주문 별칭을 구성 할 수 있습니다 :

별명 LM =의 '1! -al'

5, 전체 문자열뿐만 아니라, bash는 또한 사용자의 쿼리를 돕기 위해 와일드 카드의 숫자를 지원하고 순서가 주어졌다.

X 파일의 시작 부분에 번호가, 당신은 사용할 수 있습니다에서 예를 들어,가 / usr / bin이 알고 싶어 "LS -l는 / usr / 빈 / X *"

6, 어떻게 외부 명령에서 명령을 알고 또는 내장 bash는 그들 (다른 비 bash는 명령을 제공 참조)?

입력 할 수 있습니다 관찰하려면이 명령을 사용하여, 유형은 같은 명령과 유사한 목적을 위해 사용할 수 있습니다 : 명령을 받기

7 명령 줄 피드 입력 명령은 \ [Enter]를 너무 깁니다 계속할 수 있습니다.

ls 명령이 발행 될 때,도 8에서, 시스템의 순서는 PATH 변수의 내용이 기록 된 명령을 검색하도록되는 경로이다. 검색의 경로가 PATH를 완료하면 변수 LS는이 명령이 화면에 오류 메시지가 찾을 수 없습니다 "명령"을 표시합니다 찾을 수 없습니다.

(9), 다른 사용자 정의 변수를 구별하기 위해, 환경 변수는 일반적으로 대문자로 표현된다.

도 10은 액세스 변수 echo 명령을 사용할 수있다. 변수 액세스, 전면는 추가해야합니다 $

(11)은 "등호 (=)"로 구성하거나 변수를 수정할 수 있습니다 자신의 변수 내용과 연결

 

(12),

  • 등호 "="연결하는 가변 및 변수의 내용을 다음과 같이 "MyName로 = VBird"
  • : 양측에 균등 직접 이런 에러 공백 접속 될 수 없다  "MyName로 VBird ="또는 "= MyName로 VBird 영"
  • 변수 이름 문자와 숫자 만 만 : 문자의 시작은 숫자, 다음과 같은 오류가 될 수 없다  "2myname = VBird"
  • 변수 컨텐츠 공백 문자는 큰 따옴표 ""를 사용할 수있는 경우 "또는 작은 따옴표 '' '함께 변수 내용을하지만, 가능한 이스케이프 문자"\ "와 같은 특수 기호 ([Enter]를, $, \, 공백 문자,' 등) 일반 문자된다;
      • 다음과 같은 큰 따옴표 등 $ 등의 특수 문자, 원래 특성을 유지할 수 있습니다 :
        "VAR는 ="LANG "는"다음 "에코 $ var에"가능 "랭 en_US입니다"$ LANG입니다
      • : 작은 따옴표 특수 문자는 일반적으로 단지 문자 (일반 텍스트)은 다음과 같습니다
        은 "에코 $ var에"가능 "VAR를 = '랭 $ LANG이다'" "LANG $ LANG입니다"
  • 명령의 사슬은 다른 명령에 의해 정보를 제공해야합니다, 당신은 할 수 있습니다 작은 따옴표 '``명령'또는 '$ (명령)를 사용합니다. " 예를 들어, 당신은 구성의 핵심 버전 싶어
    "에코 $ 버전"가능 "2.6.18-128.el5"다음 "버전 = $ (UNAME -r을)"와
  • 변수가 변수 증폭 내용, 사용 가능한 "변수 이름 $"$ {변수} 또는 내용을 축적 인 경우 다음과 같이
    "PATH ="$ PATH에 "/ 홈 / 빈 "
  • 변수가 다른 서브 루틴을 실행해야하는 경우, 당신은 변수가 될 수있는 환경 변수를 내 보내야합니다 :
    "수출 PATH를"
  • 일반적으로 대문자 시스템 기본 변수 설정 변수 자체 소문자는 결정 (비 필수) 용이하게하기 위해 사용될 수있다;
  • 이러한 구성으로 취소 "해제 변수 이름"MyName로 : 메소드를 취소 해제 변수를 사용하는 "해제 MyName로"

(13) 명령의 스트링에서,`먼저 실행되고, 그 결과가 외부 입력 정보에서의 주행로 사용될의 명령

14은 ENV 내보내기 모든 환경 변수 쉘 환경에서 볼 수있다.

15, 설정된 환경 변수 외에, 모든 디스플레이의 다른 변수를 비난 할 것이다.

"?"(16), 변수 스탠드 반환 값의 실행에 명령을 입력합니다.

우리는 실행의 코드를 반환합니다 몇 가지 명령을 실행합니다. 성공적으로 실행이 명령, 그것은 0의 값을 반환하는 경우 프로세스 실행 오류가 발생하면 일반적으로, 그것은 "에러 코드"를 반환합니다

. (17), 수출 : 사용자 정의 변수는 환경 변수로 설정합니다. 때문에서브 루틴은 부모 프로그램의 환경 변수를 상속 할 수 있습니다, 서브 루틴은 사용자 정의 변수 부모 프로그램을 상속하지 않습니다.

어떻게 사용자 정의 환경 변수 변수로 바뀝니다? 당신은 선언을 사용할 수 있습니다.

18, 변수의 유효 범위 : 우리는 설명의 상단에 명령을 수출, 그것은이 개념이라고합니다. 거기에 다른 프로그램과는 관계 부모 프로그램을 서브 프로그램 실행중인 프로그램 경우 "변수"참조 및 수출 관련 될 수 있습니다. 변수가 수출 후, 우리는 "환경 변수"그를 호출 할 수 있습니다! 환경 변수는 이불 프로그램을 참조 할 수 있지만, 다른 사용자 정의 변수 내용이 서브 프로그램에 존재하지 않습니다.

도 19은 키보드 입력으로부터의 변수를 판독하는 판독 명령을 사용

[-pt] 변수 읽기
 옵션 및 매개 변수 : 
-p : 다시 프롬프트 문자를 취할 수 있습니다! 
-t : 당신은 기다려야 "(초)을 철회 할 수 있습니다! "더 재미있는 - 사용자는 기다릴 필요가 없습니다!

20, 즉 선언하거나 동일한 기능을 조판 " 변수의 타입을 선언." 당신이 후자의 선언을 사용하고 매개 변수를 사용하지 않은 경우, 다음 배쉬는이 설정을 사용하여 단지와 같은처럼 불러 모두의 모든 변수 이름과 내용의 주도권을 쥐고 것입니다!

[-aixr 가변 선언
 옵션 파라미터 : 
-a : 가변 따서 가변 배열 (어레이) 타입으로 정의되는 
변수의 변수 이름 다음의 정수 번호 (정수)를 정의하는 입력 -i 
-x : 사용하고 후자 변수 환경 변수 될 같이 수출; 
-r : 읽기 전용 변수 타입 설정 될 것이다 가변 콘텐츠는 변경 될 수 없으며, 해제 할 예 1 : 결과를 가변 합계를 + 300 + 50 100 합산 될 수 있도록 
[ WWW @ ~ 루트] #의 SUM = 100 + 300 + 50  [루트 WWW의 @는 ~] #은 $ SUM에게 에코  + 300 + 50 (100) <== 이봐! 어떻게하지 나 합계를 계산하는 데 도움이? 이 때문에 변수 텍스트의 유형은 아 속성! [루트 WWW의 @는 ~] #이 -i SUM = 100 + 300 + 50 선언 [루트 WWW에 @를 ~] #은 $ SUM 에코 (450)


21 일

  • "문자열"에 가변형 기본값은 다음 변수 타입, 1 + 2 대신에 "문자열"로 지정하는 경우이므로 "계산식." 발생하는 상황의 첫 번째 실행의 그래서 결과;
  • 컴퓨팅 환경은 단지 기본 정수 형태까지 도달 배시 값, 세 번째 결과는 0이고;

가 아닌 문자열 유형 변수를 필요로하는 경우 22, 작업의 변수를 선언 할 것이다

23 일

합은 환경 변수가된다 
[가 WWW 루트 @ ~] #의 DECLARE -x 합
사용자 정의 변수는 합계가 아닌 환경 변수를하자! 
[가 WWW ~ @ 루트] #이 있는 X-SUM을 선언 +   <== 것 - + 것은 "취소"될 수있는 행동

24, 배열 (배열) 가변형

예 : 한 [1] ~ VAR [3] 변수 위에 배치 VAR. 
[루트 @의 WWW ~] # 개의 VAR [. 1] = "작은 분" 
[루트 @의 WWW ~] # 개의 VAR [2] = "큰 분" 
[루트 @의 WWW ~] # 개의 VAR [. 3] = "멋진 분"  [루트 ~ @www] #은 "$ {var에 [. 1]}, $ {VAR [2]}, $ {var에 [. 3]}"에코  작은 분, 큰 분, 니스 분

25, 변수의 내용을 삭제 : #을 ## 전면에서 삭제하기 시작, %%%과 뒤에서 삭제하기 시작

  • # :은 "짧은"한 그와 줄의 텍스트를 교체;
  • ## :은 "긴"하나의 그것과 라인의 텍스트를 대체;

26 일

$ {변수 / 기존 문자열 / 새 문자열}

$ {String 변수 // 이전 / 새 문자열}

"오래된 문자열"에 맞춰 변수 내용이 "최초 된 문자열을 새 문자열로 대체 될 것입니다."

"오래된 문자열"다음에 맞춰 변수 콘텐츠는 "이전 문자열의 모든 새 문자열로 대체 될 것입니다."경우

 

 

 

(27)는, 어떤 점에서, 우리는 종종 변수가 일반적인 구성을 제공하는 존재하지 않는 경우 변수가 다음, 기존 구성을 사용할 수있는 경우, 변수가 있는지 "결정"할 필요가있다. 

new_var = $ {내용} -old_var

28 일 

변수 구성 STR은 구성되어 있지 않습니다 STR은 빈 문자열입니다 STR 비어 있지 않은 문자열로 구성
VAR = $ {STR-EXPR} 했다 EXPR = =이었다 VAR = $ str을
VAR = $ {str을 -expr} 했다 EXPR = 했다 EXPR = VAR = $ str을
VAR = $ {STR + EXPR} =이었다 했다 EXPR = 했다 EXPR =
VAR = $ {STR + EXPR} =이었다 =이었다 했다 EXPR =
VAR = $ {str을 = EXPR} STR = EXPR
VAR = EXPR
str을 변경
VAR =
str을 변경
VAR = $ str을
VAR = $ {str을 = EXPR} STR = EXPR
VAR = EXPR
STR = EXPR
VAR = EXPR
str을 변경
VAR = $ str을
VAR = $ {str을? EXPR} 열려진 expr과 출력 =이었다 VAR = $ str을
VAR = $ {str을? EXPR} 열려진 expr과 출력 열려진 expr과 출력 VAR = $ str을

마이너스 기호 테스트는 기존 변수의 내용에 영향을 미치지 않습니다. 당신은 또한 그것으로 기존의 변수 내용을 바꾸려면, 다음 (=)를 등호를 사용!

명령의 일련 번호에 대한 응답으로 실행 (29), 역사도 역사 명령,! 수는!에서 명령을 실행합니다.

추천

출처www.cnblogs.com/zczhangcui/p/10999048.html