linux 셸 프로 그래 밍 의 변수01
5567 단어 Linux shell
셸 버 전이 많다.sh, csh 등 이 있 습 니 다.vim / etc / shells 를 사용 할 수 있 습 니 다. 현재 Liux 에 사용 할 수 있 는 셸 이 얼마나 있 는 지 보 세 요.Liux 기본 값 은 / bin / bash 입 니 다.우리 가 로그 인 할 때 시스템 은 우리 에 게 셸 을 주 고 일 을 하 게 할 것 이다.이 셸 은 / etc / passwd 파일 에 기 록 됩 니 다.cat / etc / passwd 를 사용 할 수 있 습 니 다.시스템 이 준 셸 이 어떤 신성 한 지 보 세 요.
type cd 와 같은 bash 내 장 된 명령 을 tpye 를 통 해 볼 수 있 습 니 다.bash 환경 에서 명령 문자열 이 너무 길 면 우 리 는 \ 를 사용 하여 리 턴 키 를 바 꾸 고 두 줄 로 출력 할 수 있 습 니 다.만약 에 우리 가 모든 파일 과 속성 을 알 아야 한다 면 ls - al 을 실행 할 때마다 약간 번 거 로 울 것 입 니 다. 이때 우 리 는 별명 을 사용 할 수 있 습 니 다. 예 를 들 어 alias lm = 'ls - al' 입 니 다.너 도 vim. bashhistory, 이전에 했 던 동작 을 조회 하면 이번 에는 캐 시 됩 니 다.
변 수 는 모든 언어의 '왕관' 이다.예 를 들 어 y = ax + b.y 는 변수 이 고 x + b 는 변수의 내용 입 니 다.계 정 을 관리 할 때 텐 센트 는 변 수 를 만 듭 니 다.당신 이 QQ 를 신청 할 때, 이때 의 x 는 당신 을 찾 습 니 다."echo $변수 이름" 으로 변수의 내용 을 표시 할 수 있 습 니 다.변 수 를 설정 할 때 작은 따옴표 나 작은 따옴표 로 제어 할 수 있 습 니 다. 작은 따옴표 와 작은 따옴표 가 쌍 을 이 루어 야 합 니 다.작은 따옴표 라면 그 안의 특수 문 자 는 일반 문자 에 불과 합 니 다.작은 따옴표 라면 $와 같은 특수 문자 로 원래 의 특성 을 유지 할 수 있 습 니 다.예 를 들 어 var = "lang is $LANG", echo $var, lang is en US 를 얻 을 수 있 습 니 다. 이 변수 가 내용 을 추가 하려 면 PATH = "$PATH": / home / bin / think 을 사용 할 수 있 습 니 다. 이 변 수 를 다른 서브루틴 에서 실행 하려 면 export 를 사용 하여 변 수 를 환경 변수 로 만들어 야 합 니 다: export PATH. 일반적인 대문자 로 시스템 기본 변수 이 고 사용자 변 수 는 소문 자로 사용 할 수 있 습 니 다. "unset 변 수 를 사용 할 수 있 습 니 다."변수의 설정 을 취소 합 니 다."
연습 문제: 변수 name = think 을 정의 했다 고 가정 하면 name 이라는 변수의 내용 으로 my name 디 스 플레이 think is my English name 이라는 내용 을 정의 하려 면 어떻게 설정 해 야 합 니까?
[root@localhost ~]# name=think
[root@localhost ~]# echo $name
think
[root@localhost ~]# myname="$name is my English name"
[root@localhost ~]# echo $myname
think is my English name
연습 문제: 자주 가 는 작업 디 렉 터 리 이름 이 '/ u01 / app / oracle / product / 10.2.0 / db 1 / sqlplus / admin /' 이 라면 어떻게 간소화 해 야 합 니까?
work="/u01/app/oracle/product/10.2.0/db_1/sqlplus/admin/"
cd $work
, .bash_profile , cd $work 。
명령 을 실행 하 는 과정 에서 작은 따옴표 (`) 내의 명령 은 먼저 실 행 될 것 이 며, 실 행 된 결 과 는 외부 입력 정보 로 사 용 될 것 입 니 다. 예 를 들 어 cd / lib / modules / 'uname - r' / kernel 은 현재 커 널 이 있 는 모듈 디 렉 터 리 에 들 어 갑 니 다. 작은 따옴표 가 잘못 되 기 쉬 우 므 로, 보통 $(uname - r) 를 등가 로 대체 합 니 다.
환경 변 수 는 메 인 폴 더 의 변환, 프롬프트 표시, 파일 찾기 경로 등 여러 기능 을 수행 할 수 있 습 니 다. Oacle 사용자 의 모든 환경 변수 와 내용 을 env 로 볼 수 있 습 니 다.
[oracle@localhost ~]$ env
HOSTNAME=localhost.localdomain
SHELL=/bin/bash
TERM=xterm
HISTSIZE=1000
NLS_LANG=american_america.AL32UTF8
USER=oracle
CLASS_PATH=/u01/app/oracle/product/10.2.0/db_1/JRE:/u01/app/oracle/product/10.2.0/db_1/jlib:/u01/app/oracle/product/10.2.0/db_1/rdbms/jlib:/u01/app/oracle/product/10.2.0/db_1/network/jlib
LD_LIBRARY_PATH=/u01/app/oracle/product/10.2.0/db_1/lib:/usr/lib:/usr/X11R6/lib:/u01/app/oracle/product/10.2.0/db_1/jdk/jre/lib/i386:/u01/app/oracle/product/10.2.0/db_1/jdk/jre/lib/i386/server:/u01/app/oracle/product/10.2.0/db_1/rdbms/lib
LS_COLORS=no=00:fi=00:di=00;34:ln=00;36:pi=40;33:so=00;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=00;32:*.cmd=00;32:*.exe=00;32:*.com=00;32:*.btm=00;32:*.bat=00;32:*.sh=00;32:*.csh=00;32:*.tar=00;31:*.tgz=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.zip=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.bz=00;31:*.tz=00;31:*.rpm=00;31:*.cpio=00;31:*.jpg=00;35:*.gif=00;35:*.bmp=00;35:*.xbm=00;35:*.xpm=00;35:*.png=00;35:*.tif=00;35:
ORACLE_SID=orcl
ORACLE_BASE=/u01/app/oracle
TNS_ADMIN=/u01/app/oracle/product/10.2.0/db_1/network/admin
MAIL=/var/spool/mail/oracle
PATH=/u01/app/oracle/product/10.2.0/db_1/bin:/u01/app/oracle/product/10.2.0/db_1/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/oracle/bin
INPUTRC=/etc/inputrc
PWD=/home/oracle
EDITOR=vi
LANG=en_US
ORACLE_TERM=xterm
SQLPATH=/u01/app/oracle/product/10.2.0/db_1/sqlplus/admin
SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass
SHLVL=1
HOME=/home/oracle
LOGNAME=oracle
CVS_RSH=ssh
LESSOPEN=|/usr/bin/lesspipe.sh %s
DISPLAY=:0.0
ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
G_BROKEN_FILENAMES=1
_=/bin/env
그렇다면 위의 이 변 수 는 어떤 기능 이 있 습 니까? 다음은 몇 개 를 골 라 분석 해 보 겠 습 니 다.
HOME: 사용 자 를 대표 하 는 메 인 폴 더 입 니 다. cd 는 이 변 수 를 사용 합 니 다.
SHELL: 현재 이 환경 에서 사용 하고 있 는 셸 이 어떤 프로그램 인지 알려 주세요. Liux 는 기본적으로 / bin / bash 를 사용 합 니 다.
HISTSIZE: 우리 가 실 행 했 던 명령 은 시스템 에 의 해 기억 되 고 기 록 된 항목 수 는 이 값 으로 설 정 됩 니 다.
PATH: 실행 가능 한 파일 의 경 로 를 찾 습 니 다. 디 렉 터 리 와 디 렉 터 리 사이 에 콜론 으로 구분 되 고 디 렉 터 리 의 순서 도 파일 의 찾기 순서 입 니 다.
LANG: 어족 데이터 입 니 다. 시스템 이 지원 하 는 어족 이 어떤 것 인지 locale - a 로 확인 할 수 있 습 니 다. 하지만 LANG 만 설정 하면 다른 어족 변 수 는 그 에 의 해 대 체 됩 니 다. 시스템 의 기본 어족 은 cat / etc / sysconfig / i18n 으로 볼 수 있 습 니 다. 어쨌든 어 지 러 운 문제 가 발생 하면 LANG 를 설정 하 십시오.
세 개의 변 수 를 다시 보 겠 습 니 다.
PS1: 변수 PS1 을 통 해 우 리 는 자신 이 좋아 하 는 bash 환경의 프롬프트 를 맞 출 수 있 습 니 다.http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=2124620이 링크 는 컬러 tty 로 설정 할 수 있 습 니 다.
$: 현재 셸 의 프로 세 스 번호 입 니 다. echo $$
?: 이전 명령 의 반전 값 을 표시 합 니 다. 일반적으로 명령 이 성공 적 으로 실행 되면 0 을 되 돌려 줍 니 다. 실패 하면 0 이 아 닌 무 작위 수 를 되 돌려 줍 니 다.
환경 변수 (전역 변수 에 해당) 와 사용자 정의 변수 (사용자 정의 변수 에 해당)하위 프로 세 스 는 부모 프로 세 스 의 환경 변 수 를 계승 할 뿐 부모 프로 세 스 의 사용자 정의 변 수 를 계승 하지 않 습 니 다. 사용자 정의 변 수 를 환경 변수 로 바 꾸 면 이 변 수 는 하위 프로 세 스 에 계속 존재 할 수 있 습 니 다. 이 작업 은 export 에서 이 루어 집 니 다. export 변 수 는 환경 변수 가 됩 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
linux 셸 프로 그래 밍 의 변수01type cd 와 같은 bash 내 장 된 명령 을 tpye 를 통 해 볼 수 있 습 니 다.bash 환경 에서 명령 문자열 이 너무 길 면 우 리 는 \ 를 사용 하여 리 턴 키 를 바 꾸 고 두 줄 로 출력 할 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.