shell(1)
로 컬 변수: 부분 변수 라 고도 부 르 며 현재 셸 프로 세 스 에 만 유효 합 니 다.
환경 변수: 현재 셸 및 하위 셸, 하위 셸...
특수 변수: $? 이전 명령 이 실 행 된 상 태 는 0 이 실 행 된 것 을 나타 낸다.실패 한 코드 가 많 습 니 다.
zhangsan@huanghao-Virtual-Machine:/$ cm kk
“cm” 。 'cm', 'config-manager'
zhangsan@huanghao-Virtual-Machine:/$ echo $?
127
zhangsan@huanghao-Virtual-Machine:/$ echo $?
0
변수 할당:
zhangsan@huanghao-Virtual-Machine:/$ age=23
zhangsan@huanghao-Virtual-Machine:/$ echo $age
23
변수의 값 을 다른 변수 에 부여 합 니 다:
zhangsan@huanghao-Virtual-Machine:/$ age=23
zhangsan@huanghao-Virtual-Machine:/$ age1=$age
zhangsan@huanghao-Virtual-Machine:/$ echo $age1
23
현재 문제 가 있 습 니 다. 위의 코드 를 실행 한 후 age 와 age 1 의 값 은 각각 얼마 입 니까?age 1 의 값 은 age 의 변화 에 따라 변 하지 않 습 니까?다음은 age 에 값 을 새로 부여 합 니 다. 보 세 요.
zhangsan@huanghao-Virtual-Machine:/$ age=24
zhangsan@huanghao-Virtual-Machine:/$ echo $age
24
zhangsan@huanghao-Virtual-Machine:/$ echo $age1
23
다음 코드 를 보 세 요. age 의 값 이 존재 할 때 age 의 값 을 변수 에 부여 합 니 다. 존재 하지 않 는 것 은 뒤의 값 을 변수 에 부여 하 는 것 입 니 다.
zhangsan@huanghao-Virtual-Machine:/$ result=${age-40}
zhangsan@huanghao-Virtual-Machine:/$ echo $result
24
zhangsan@huanghao-Virtual-Machine:/$ result=${age2-40}
zhangsan@huanghao-Virtual-Machine:/$ echo $result
40
age 값 이 존재 할 때 값 을 부여 하고 존재 하지 않 을 때 오류 정 보 를 되 돌려 줍 니 다:
zhangsan@huanghao-Virtual-Machine:/$ result=${age?'error'}
zhangsan@huanghao-Virtual-Machine:/$ echo $result
24
zhangsan@huanghao-Virtual-Machine:/$ result=${age2?'error'}
bash: age2: error
위의 코드 가 무슨 소 용이 있 는 지 생각해 보 세 요.시험 해 보다
zhangsan@huanghao-Virtual-Machine:/$ result=${age3?'age3 does not exist'}
bash: age3: age3 does not exist
출력:
echo $age
echo "hello"
#
echo -n 'hello'
#
echo -e 'hello\tworld'
echo -e "hello
world"
작은 따옴표: 강 한 인용, 따옴표 에 있 는 문자열 은 무엇이든 그대로 있 습 니 다.
두 따옴표: 약 한 인용, 따옴표 의 변 수 를 변수의 값 으로 바 꿉 니 다.
반 따옴표: 키보드 위 ~ 아래 문자, 명령 교체
zhangsan@huanghao-Virtual-Machine:/$ age=23
zhangsan@huanghao-Virtual-Machine:/$ echo 'i am $age'
i am $age
zhangsan@huanghao-Virtual-Machine:/$ echo "i am $age"
i am 23
zhangsan@huanghao-Virtual-Machine:/$ echo "today is `date +%F`"
today is 2016-01-25
변수의 인용
${varname}
괄호
zhangsan@huanghao-Virtual-Machine:/$ age=23
zhangsan@huanghao-Virtual-Machine:/$ echo $age
23
zhangsan@huanghao-Virtual-Machine:/$ animal=pig
zhangsan@huanghao-Virtual-Machine:/$ echo "There are some ${animal}s"
There are some pigs
zhangsan@huanghao-Virtual-Machine:/$ echo "There are some $animals"
There are some
왜 맨 뒤에 출력 표시 변수 가 값 이 없 습 니까?동물 을 변수 로 인식 하기 때문이다.
변수의 취소:
zhangsan@huanghao-Virtual-Machine:/$ age=23
zhangsan@huanghao-Virtual-Machine:/$ echo $age
23
zhangsan@huanghao-Virtual-Machine:/$ unset age
zhangsan@huanghao-Virtual-Machine:/$ echo $age
읽 기 전용 변수: 취소 할 수 없습니다. 수정 할 수 없습니다.
zhangsan@huanghao-Virtual-Machine:/$ readonly animal=pig
bash: animal:
zhangsan@huanghao-Virtual-Machine:/$ unset animal
bash: unset: animal: : variable
환경 변수의 설명:
zhangsan@huanghao-Virtual-Machine:/$ export AGE
성명 할 때 값 을 부여 할 수도 있 습 니 다.
zhangsan@huanghao-Virtual-Machine:/$ export AGE
환경 변수 이름
다음은 몇 가지 명령 을 소개 합 니 다.
# (3 )
env
printenv
export
환경 변수 경로 추가
export PATH=/usr/local/apache/bin:$PATH
명령 바 꾸 기:
zhangsan@huanghao-Virtual-Machine:/$ echo "Today is `date +%F`"
Today is 2016-01-25
zhangsan@huanghao-Virtual-Machine:/$ echo `date +%F-%H:%M:%S`
2016-01-25-16:47:22
생 성 시퀀스
zhangsan@huanghao-Virtual-Machine:/$ seq 3
1
2
3
zhangsan@huanghao-Virtual-Machine:/$ seq 3 6
3
4
5
6
zhangsan@huanghao-Virtual-Machine:/$ seq 1 3 10
1
4
7
10
export 에서 생 성 된 환경 변 수 는 셸 이 시스템 을 다시 시작 하거나 다시 시작 한 후에 잃 어 버 립 니 다. 그러면 환경 변 수 를 설정 파일 로 저장 할 수 있 습 니 다.
#
/etc/profile, /etc/profile.d/* , /etc/bashrc
#
~/.bash_profile ~/.bashrc
파일 로드 순서 설정
#
/etc/profile /etc/profile.d/* /bash_profile , ~/.bashrc /etc/bashrc
#
~/.bashrc /etc/bashrc /etc/profied/*
# ,
파일 분류 설정
profile 클래스: 환경 변 수 를 설정 하고 명령 이나 스 크 립 트 를 실행 합 니 다. (사용자 가 로그 인 하기 전이 나 bash 가 시작 되 기 전)
bashrc 클래스: 로 컬 변 수 를 설정 하고 명령 별명 을 설정 합 니 다.
프로필 수정 이 완료 되면 다음 명령 을 사용 해 야 합 니 다. 예 를 들 어:
souce ~/.bash_profile
명령 별명:
alias vi=vim
alias cdnet='cd /etc/sysconfig/network-scripts/'
unalias vi #
입력 재 설정:
command < file
출력 방향 변경
command > file
1 은 표준 출력 2 는 오류 출력
command 2>file
정확 함 과 오 류 는 모두 방향 을 바꾼다.
command > file 2>&1 #모두 file 로 출력
command > file 2 > file2 #다른 파일 로 출력
command &>file 병합 출력 흐름
파이프:
command | command2 #첫 번 째 명령 의 출력 을 두 번 째 명령 의 입력 으로 삼다
command | command2 | command3 | … | commandN
주의해 야 할 것 은 파이프 가 정확 한 실행 결과 만 전달 하고 오류 가 발생 하면 종료 된다 는 것 이다.
zhangsan@huanghao-Virtual-Machine:/$ echo "abc" | tr "a-z" "A-Z"
ABC
zhangsan@huanghao-Virtual-Machine:/$ echo 'AbCd' | tr 'ABCD' 'abcd'
abcd
명령 기록
cut – d '- f2 문자열 을 빈 칸 으로 자 르 고 두 번 째 문자열 을 출력 합 니 다.
cut –d: –f2 자르다
uniq 중 복 된 줄 이동
가끔 이런 상황 이 발생 한다.
zhangsan@huanghao-Virtual-Machine:/$ ls /var/log |file
Usage: file [-bchikLlNnprsvz0] [--apple] [--mime-encoding] [--mime-type]
[-e testname] [-F separator] [-f namefile] [-m magicfiles] file ...
file -C [-m magicfiles]
file [--help]
file 뒤에 파일 을 따라 가 야 하기 때문에 없 으 면 안 됩 니 다. 이 경우 우 리 는 - 대체 할 수 있 습 니 다.
zhangsan@huanghao-Virtual-Machine:/$ ls /var/log |file -
/dev/stdin: ASCII text
file 파일 형식 보기
명령 을 하나 더 기록 하 다 tee
command | tee /tmp/tee.out |command2 # command tee.out command2
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.