è¿æ¯å¼å§ä½¿ç¨ linux bash shell èæ¬çå¿«éåèå¤å¿åã
#!/bin/bash
VAR="world"
echo "Hello $VAR!" # => Hello world!
æ§è¡èæ¬
$ bash hello.sh
NAME="John"
echo ${NAME} # => John (åé)
echo $NAME # => John (åé)
echo "$NAME" # => John (åé)
echo '$NAME' # => $NAME (åç¬¦ä¸²åæ ·è¾åº)
echo "${NAME}!" # => John! (åé)
NAME = "John" # => Error (注æä¸è½æç©ºæ ¼)
# è¿æ¯ä¸ä¸ªå
è Bash 注éã
: '
è¿æ¯ä¸ä¸ª
éå¸¸æ´æ´ç
bash 注é
'
å¤è¡æ³¨éä½¿ç¨ :' æå¼å ' å
³é
| 表示 | æè¿° |
|---|---|
$1 ⦠$9 | åæ° 1 ... 9 |
$0 | èæ¬æ¬èº«çåç§° |
$1 | 第ä¸ä¸ªåæ° |
${10} | ä½ç½®åæ° 10 |
$# | åæ°æ°é |
$$ | shell çè¿ç¨ id |
$* | ææåæ° |
$@ | ææåæ°ï¼ä»ç¬¬ä¸ä¸ªå¼å§ |
$- | å½åé项 |
$_ | ä¸ä¸ä¸ªå½ä»¤çæåä¸ä¸ªåæ° |
è§ï¼ç¹æ®åæ°
get_name() {
echo "John"
}
echo "You are $(get_name)"
è§ï¼å½æ°
if [[ -z "$string" ]]; then
echo "String is empty"
elif [[ -n "$string" ]]; then
echo "String is not empty"
fi
è§ï¼æ¡ä»¶å¥
echo {A,B}.js
| 表示 | æè¿° |
|---|---|
{A,B} | ä¸ A B ç¸å |
{A,B}.js | ä¸ A.js B.js ç¸å |
{1..5} | ä¸ 1 2 3 4 5 ç¸å |
è§ï¼å¤§æ¬å·æ©å±
# => I'm in /å½å/ç/è·¯å¾
echo "I'm in $(PWD)"
# Same as:
echo "I'm in `pwd`"
è§ï¼å½ä»¤æ¿æ¢
| 代ç | æè¿° |
|---|---|
${FOO%suffix} | å é¤åç¼ |
${FOO#prefix} | å é¤åç¼ |
${FOO%%suffix} | 廿é¿åç¼ |
${FOO##prefix} | å é¤é¿åç¼ |
${FOO/from/to} | æ¿æ¢ç¬¬ä¸ä¸ªå¹é 项 |
${FOO//from/to} | å ¨é¨æ¿æ¢ |
${FOO/%from/to} | æ¿æ¢åç¼ |
${FOO/#from/to} | æ¿æ¢åç¼ |
| 表示 | æè¿° |
|---|---|
${FOO:0:3} | å串 (ä½ç½®ï¼é¿åº¦) |
${FOO:(-3):3} | ä»å³è¾¹å¼å§çå串 |
| 表示 | æè¿° |
|---|---|
${#FOO} | $FOO çé¿åº¦ |
| 表示 | æè¿° |
|---|---|
${FOO:-val} | $FOOï¼å¦ææªè®¾ç½®ï¼å为 val |
${FOO:=val} | 妿æªè®¾ç½®ï¼åå° $FOO 设置为 val |
${FOO:+val} | val å¦æè®¾ç½®äº$FOO |
${FOO:?message} | 妿 $FOO æªè®¾ç½®ï¼åæ¾ç¤ºæ¶æ¯å¹¶éåº |
echo ${food:-Cake} #=> $food or "Cake"
STR="/path/to/foo.cpp"
echo ${STR%.cpp} # /path/to/foo
echo ${STR%.cpp}.o # /path/to/foo.o
echo ${STR%/*} # /path/to
echo ${STR##*.} # cpp (extension)
echo ${STR##*/} # foo.cpp (basepath)
echo ${STR#*/} # path/to/foo.cpp
echo ${STR##*/} # foo.cpp
echo ${STR/foo/bar} # /path/to/bar.cpp
name="John"
echo ${name} # => John
echo ${name:0:2} # => Jo
echo ${name::2} # => Jo
echo ${name::-1} # => Joh
echo ${name:(-1)} # => n
echo ${name:(-2)} # => hn
echo ${name:(-2):2} # => hn
length=2
echo ${name:0:length} # => Jo
è§ï¼åæ°æ©å±
SRC="/path/to/foo.cpp"
BASEPATH=${SRC##*/}
echo $BASEPATH # => "foo.cpp"
DIRPATH=${SRC%$BASEPATH}
echo $DIRPATH # => "/path/to/"
STR="HELLO WORLD!"
echo ${STR,} # => hELLO WORLD!
echo ${STR,,} # => hello world!
STR="hello world!"
echo ${STR^} # => Hello world!
echo ${STR^^} # => HELLO WORLD!
ARR=(hello World)
echo "${ARR[@],}" # => hello world
echo "${ARR[@]^}" # => Hello World
Fruits=('Apple' 'Banana' 'Orange')
Fruits[0]="Apple"
Fruits[1]="Banana"
Fruits[2]="Orange"
ARRAY1=(foo{1..2}) # => foo1 foo2
ARRAY2=({A..D}) # => A B C D
# åå¹¶ => foo1 foo2 A B C D
ARRAY3=(${ARRAY1[@]} ${ARRAY2[@]})
# 声ææé
declare -a Numbers=(1 2 3)
Numbers+=(4 5) # éå => 1 2 3 4 5
| :- | - |
|---|---|
${Fruits[0]} | 第ä¸ä¸ªå ç´ |
${Fruits[-1]} | æåä¸ä¸ªå ç´ |
${Fruits[*]} | ææå ç´ |
${Fruits[@]} | ææå ç´ |
${#Fruits[@]} | æ»æ° |
${#Fruits} | 第ä¸èé¿åº¦ |
${#Fruits[3]} | 第n个é¿åº¦ |
${Fruits[@]:3:2} | èå´ |
${!Fruits[@]} | ææ Key |
Fruits=('Apple' 'Banana' 'Orange')
for e in "${Fruits[@]}"; do
echo $e
done
for i in "${!Fruits[@]}"; do
printf "%s\t%s\n" "$i" "${Fruits[$i]}"
done
Fruits=("${Fruits[@]}" "Watermelon") # æ·»å
Fruits+=('Watermelon') # 乿¯æ·»å
Fruits=( ${Fruits[@]/Ap*/} ) # éè¿æ£å表达å¼å¹é
å é¤
unset Fruits[2] # å é¤ä¸é¡¹
Fruits=("${Fruits[@]}") # å¤å¶
Fruits=("${Fruits[@]}" "${Veggies[@]}") # è¿æ¥
lines=(`cat "logfile"`) # 仿件ä¸è¯»å
function extract()
{
local -n myarray=$1
local idx=$2
echo "${myarray[$idx]}"
}
Fruits=('Apple' 'Banana' 'Orange')
extract Fruits 2 # => Orangle
declare -A sounds
sounds[dog]="bark"
sounds[cow]="moo"
sounds[bird]="tweet"
sounds[wolf]="howl"
echo ${sounds[dog]} # Dog's sound
echo ${sounds[@]} # All values
echo ${!sounds[@]} # All keys
echo ${#sounds[@]} # Number of elements
unset sounds[dog] # Delete dog
for val in "${sounds[@]}"; do
echo $val
done
for key in "${!sounds[@]}"; do
echo $key
done
| æ¡ä»¶ | æè¿° |
|---|---|
[[ NUM -eq NUM ]] | çäº |
[[ NUM -ne NUM ]] | ä¸çäº |
[[ NUM -lt NUM ]] | å°äº |
[[ NUM -le NUM ]] | å°äºçäº |
[[ NUM -gt NUM ]] | å¤§äº |
[[ NUM -ge NUM ]] | 大äºçäº |
(( NUM < NUM )) | å°äº |
(( NUM <= NUM )) | å°äºæçäº |
(( NUM > NUM )) | æ¯...æ´å¤§ |
(( NUM >= NUM )) | 大äºçäº |
| æ¡ä»¶ | æè¿° |
|---|---|
[[ -z STR ]] | 空å符串 |
[[ -n STR ]] | |
[[ STR == STR ]] | ç¸ç |
[[ STR = STR ]] | ç¸ç(åä¸) |
[[ STR < STR ]] | å°äº (ASCII) |
[[ STR > STR ]] | å¤§äº (ASCII) |
[[ STR != STR ]] | ä¸ç¸ç |
[[ STR =~ STR ]] | æ£åè¡¨è¾¾å¼ |
if [[ -z "$string" ]]; then
echo "String is empty"
elif [[ -n "$string" ]]; then
echo "String is not empty"
else
echo "This never happens"
fi
if [[ X && Y ]]; then
...
fi
if [[ "$A" == "$B" ]]; then
...
fi
if [[ '1. abc' =~ ([a-z]+) ]]; then
echo ${BASH_REMATCH[1]}
fi
if (( $a < $b )); then
echo "$a is smaller than $b"
fi
if [[ -e "file.txt" ]]; then
echo "file exists"
fi
| æ¡ä»¶ | æè¿° |
|---|---|
[[ -e FILE ]] | åå¨ |
[[ -d FILE ]] | ç®å½ |
[[ -f FILE ]] | æä»¶ |
[[ -h FILE ]] | 符å·é¾æ¥ |
[[ -s FILE ]] | å¤§å° > 0 åè |
[[ -r FILE ]] | å¯è¯» |
[[ -w FILE ]] | å¯å |
[[ -x FILE ]] | 坿§è¡æä»¶ |
[[ f1 -nt f2 ]] | f1 æ¯ f2 æ° |
[[ f1 -ot f2 ]] | f2 æ¯ f1 æ° |
[[ f1 -ef f2 ]] | ç¸åçæä»¶ |
| æ¡ä»¶ | æè¿° |
|---|---|
[[ -o noclobber ]] | 妿å¯ç¨ |
[[ ! EXPR ]] | 䏿¯ |
[[ X && Y ]] | å |
[[ X || Y ]] | æè
|
if [ "$1" = 'y' -a $2 -gt 0 ]; then
echo "yes"
fi
if [ "$1" = 'n' -o $2 -lt 0 ]; then
echo "no"
fi
for i in /etc/rc.*; do
echo $i
done
for ((i = 0 ; i < 100 ; i++)); do
echo $i
done
for i in {1..5}; do
echo "Welcome $i"
done
for i in {5..50..5}; do
echo "Welcome $i"
done
i=1
while [[ $i -lt 4 ]]; do
echo "Number: $i"
((i++))
done
i=3
while [[ $i -gt 0 ]]; do
echo "Number: $i"
((i--))
done
for number in $(seq 1 3); do
if [[ $number == 2 ]]; then
continue;
fi
echo "$number"
done
for number in $(seq 1 3); do
if [[ $number == 2 ]]; then
# è·³è¿æ´ä¸ªå¾ªç¯çå
¶ä½é¨åã
break;
fi
# è¿åªä¼æå° 1
echo "$number"
done
count=0
until [ $count -gt 10 ]; do
echo "$count"
((count++))
done
while true; do
# ä¸é¢æ¯ä¸äºä»£ç
done
while :; do
# ä¸é¢æ¯ä¸äºä»£ç
done
cat file.txt | while read line; do
echo $line
done
myfunc() {
echo "hello $1"
}
åä¸(æ¿ä»£è¯æ³)
function myfunc() {
echo "hello $1"
}
myfunc "John"
myfunc() {
local myresult='some value'
echo $myresult
}
result="$(myfunc)"
myfunc() {
return 1
}
if myfunc; then
echo "success"
else
echo "failure"
fi
é¿å è¦çæä»¶
# (echo "hi" > foo)
set -o noclobber
ç¨äºåºéæ¶éåºï¼é¿å 级èé误
set -o errexit
æç¤ºéèç失败
set -o pipefail
å ¬å¼æªè®¾ç½®çåé
set -o nounset
ä¸å¹é ç glob 被å é¤
shopt -s nullglob # ('*.foo' => '')
ä¸å¹é ç glob æåºé误
shopt -s failglob
ä¸åºå大å°åççä½
shopt -s nocaseglob
éé 符å¹é ç¹æä»¶
shopt -s dotglob # ("*.sh" => ".foo.sh")
å 许 ** è¿è¡éå½å¹é
shopt -s globstar # ('lib/**/*.rb' => 'lib/a/b/c.rb')
| å½ä»¤ | æè¿° |
|---|---|
history | æ¾ç¤ºåå² |
sudo !! | ä½¿ç¨ sudo è¿è¡ä¸ä¸ä¸ªå½ä»¤ |
shopt -s histverify | ä¸è¦ç«å³æ§è¡æ©å±ç»æ |
| è¡¨è¾¾å¼ | æè¿° |
|---|---|
!$ | å±å¼ææ°å½ä»¤çæåä¸ä¸ªåæ° |
!* | å±å¼ææ°å½ä»¤çææåæ° |
!-n | å±å¼ç¬¬ n 个æè¿çå½ä»¤ |
!n | å±å¼åå²ä¸ç第 n 个å½ä»¤ |
!<command> | å±å¼æè¿è°ç¨çå½ä»¤ <command> |
| 代ç | æè¿° |
|---|---|
!! | 忬¡æ§è¡æå䏿¡å½ä»¤ |
!!:s/<FROM>/<TO>/ | 卿è¿çå½ä»¤ä¸å°ç¬¬ä¸æ¬¡åºç°ç <FROM> æ¿æ¢ä¸º <TO> |
!!:gs/<FROM>/<TO>/ | 卿è¿çå½ä»¤ä¸å°ææåºç°ç <FROM> æ¿æ¢ä¸º <TO> |
!$:t | ä» ä»æè¿å½ä»¤çæåä¸ä¸ªåæ°æ©å±åºæ¬åç§° |
!$:h | ä» ä»æè¿å½ä»¤çæåä¸ä¸ªåæ°å±å¼ç®å½ |
!! å !$ å¯ä»¥æ¿æ¢ä¸ºä»»ä½ææçæ©å±ã
| 代ç | æè¿° |
|---|---|
!!:n | ä»
æ©å±æè¿å½ä»¤ä¸ç第 n 个æ è®°(å½ä»¤ä¸º 0ï¼ç¬¬ä¸ä¸ªåæ°ä¸º 1) |
!^ | 仿è¿çå½ä»¤å±å¼ç¬¬ä¸ä¸ªåæ° |
!$ | 仿è¿çå½ä»¤ä¸å±å¼æåä¸ä¸ªæ è®° |
!!:n-m | 仿è¿çå½ä»¤æ©å±ä»¤çèå´ |
!!:n-$ | 仿è¿çå½ä»¤ä¸å°ç¬¬ n 个æ è®°å±å¼å°æå |
!! å¯ä»¥æ¿æ¢ä¸ºä»»ä½ææçæ©å±ï¼å³ !catã!-2ã!42 çã
$((a + 200)) # $a å 200
$(($RANDOM%200)) # éæºæ° 0..199
(cd somedir; echo "I'm now in $PWD")
pwd # ä»ç¶å¨ç¬¬ä¸ä¸ªç®å½
command -V cd
#=> "cd æ¯ä¸ä¸ªå½æ°/å«å/å
¶ä»"
python hello.py > output.txt # æ åè¾åºå°(æä»¶)
python hello.py >> output.txt # æ åè¾åºå°(æä»¶)ï¼è¿½å
python hello.py 2> error.log # æ åé误å°(æä»¶)
python hello.py 2>&1 # æ åéè¯¯å°æ åè¾åº
python hello.py 2>/dev/null # æ åé误å°(空null)
python hello.py &>/dev/null # æ åè¾åºåæ åé误å°(空null)
python hello.py < foo.txt # å° foo.txt æä¾ç» python çæ åè¾å
¥
source "${0%/*}/../share/foo.sh"
DIR="${0%/*}"
case "$1" in
start | up)
vagrant up
;;
*)
echo "Usage: $0 {start|stop|ssh}"
;;
esac
trap 'echo Error at about $LINENO' ERR
æè
traperr() {
echo "ERROR: ${BASH_SOURCE[1]} at about ${BASH_LINENO[0]}"
}
set -o errtrace
trap traperr ERR
printf "Hello %s, I'm %s" Sven Olga
#=> "Hello Sven, I'm Olga
printf "1 + 1 = %d" 2
#=> "1 + 1 = 2"
printf "Print a float: %f" 2
#=> "Print a float: 2.000000"
while [[ "$1" =~ ^- && ! "$1" == "--" ]]; do case $1 in
-V | --version )
echo $version
exit
;;
-s | --string )
shift; string=$1
;;
-f | --flag )
flag=1
;;
esac; shift; done
if [[ "$1" == '--' ]]; then shift; fi
if ping -c 1 google.com; then
echo "çæ¥æ¨çäºèç½è¿æ¥æ£å¸¸"
fi
if grep -q 'foo' ~/.bash_history; then
echo "æ¨è¿å»ä¼¼ä¹è¾å
¥è¿âfooâ"
fi
| :-- | -- |
|---|---|
cat | ç¨äºæ¾ç¤ºææ¬æä»¶å 容ï¼å ¨é¨è¾åº |
EOF | end of fileï¼è¡¨ç¤ºææ¬ç»æç¬¦ |
cat > output.txt <<EOF
this is test eof
this is test eof2
EOF
è¾åº cat output.txt
this is test eof
this is test eof2
追å å 容
cat >>2.txt <<EOF
456
789
EOF
$ çç¹æ®å符æ¶ï¼é¡»å©ç¨è½¬ä¹å符 \
cat > file <<EOF
export ORACLE_SID=yqpt
export PATH=\$PATH:\$ORACLE_HOME/bin
EOF
åæ¶åéæ¿æ¢ï¼EOF 被å ä¸åå¼å·æè
åå¼å·ï¼å³å¯åæ¶åéçæ¿æ¢
cat << "EOF" > output.sh
echo "This is output"
echo $1
EOF
ææTABé®å°å ¨é¨å¿½ç¥[ä¸è½æ¯ç©ºæ ¼]
cat << -EOF
echo "This is output"
EOF
| è¡¨è¾¾å¼ | æè¿° |
|---|---|
$? | æåä¸ä¸ªä»»å¡çéåºç¶æ |
$! | æåä¸ä¸ªåå°ä»»å¡ç PID |
$$ | shell PID |
$0 | shell èæ¬çæä»¶å |
è§ç¹æ®åæ°ã
ä½¿ç¨ \ 转ä¹è¿äºç¹æ®å符
cat <<END
hello world
END
pwd # /home/user/foo
cd bar/
pwd # /home/user/foo/bar
cd -
pwd # /home/user/foo
echo -n "Proceed? [y/n]: "
read ans
echo $ans
read -n 1 ans # åªæä¸ä¸ªå符
git commit && git push
git commit || echo "Commit failed"
set -euo pipefail
IFS=$'\n\t'
åè§ï¼é宿¹ bash ä¸¥æ ¼æ¨¡å¼
args=("$@")
args+=(foo)
args+=(bar)
echo "${args[@]}"
å°åæ°æ¾å ¥æ°ç»ä¸ï¼ç¶å追å
å¯ç¨è°è¯æ¨¡å¼ï¼ä¼æèæ¬ä¸çæ¯æ¡å½ä»¤çæ§è¡æ 嵿å°åºæ¥ãå®å¯ä»¥å¨æ´ä¸ªä¼è¯æèæ¬ä¸è¿è¡ï¼ä¹å¯ä»¥å¨èæ¬å 以ç¼ç¨æ¹å¼å¯ç¨ã
以è°è¯æ¨¡å¼è¿è¡èæ¬(æ´ä¸ªèæ¬é½ä¼æå°è°è¯ä¿¡æ¯)ï¼
$ bash -x myscript.sh
å¨ bash èæ¬ä¸æå¼è°è¯(é对é¨åå 容æå°è°è¯ä¿¡æ¯)
#!/bin/bash
set -x # å¯ç¨è°è¯æ¨¡å¼ï¼æ¾ç¤ºæ§è¡çæ¯ä¸è¡å½ä»¤ï¼
# æ¤å¤æ¾ç½®è¦æ§è¡ç代ç
set +x # å
³éè°è¯è¾åºï¼åæ¢æ¾ç¤ºå½ä»¤ï¼
| å¿«æ·é® | ä½ç¨ |
|---|---|
Ctrl + A | ç§»å¨å°å½ä»¤è¡å¼å¤´ |
Ctrl + E | ç§»å¨å°å½ä»¤è¡æ«å°¾ |
Alt + B | å左移å¨ä¸ä¸ªâè¯â |
Alt + F | åå³ç§»å¨ä¸ä¸ªâè¯â |
Ctrl + B | å左移å¨ä¸ä¸ªå符ï¼âï¼ |
Ctrl + F | åå³ç§»å¨ä¸ä¸ªå符ï¼âï¼ |
æ¨å¯ä»¥éè¿ä¸ºå ¶è¾åºçè²æ¥ä½¿æ¨ç BASH èæ¬æ´æ¼äº®ï¼ä½¿ç¨ä»¥ä¸æ¨¡æ¿ç¼åå½©è²ææ¬ï¼
$ echo -e "\e[31må½ä»¤è¡ä¸æ¾ç¤ºçº¢è²æå\e[0m"
$ echo -e "\e[42m绿è²èæ¯\e[0m"
绿è²èæ¯
| Option | Description |
|---|---|
-e | å¯ç¨åææ è½¬ä¹çè§£é |
\e[ æ \x1b[ æ \033[ | å¼å§é¢è²ä¿®æ¹ |
COLORm | é¢è²ä»£ç + m 卿«å°¾ |
\e[0m æ \x1b[0m æ \033[0m | ç»æé¢è²ä¿®æ¹ |
0x1b åé¢ä¸ç§°ä¸º ESC
$ echo -e "\e[3mä¸åçº¿ææ¬\e[0m"
ä¸åçº¿ææ¬
$ echo -e "\e[1;33;4;44mç²ä½ä¸å线èè²èæ¯é»è²æåçææ¬\e[0m"
ç²ä½ä¸å线èè²èæ¯é»è²æåçææ¬
\e[ # å¯ç¨è½¬ä¹
1;33;4;44 # åæ° (1;33;4;44)
m # 设置å¾å½¢æ¨¡å¼
| :- | -- | -- |
|---|---|---|
0 | æ®éå符(å¤ä½ææ£å¸¸) | å ³éææå±æ§ |
1 | ç²ä½å | |
2 | å¼±å(éä½å¼ºåº¦) | æªå¹¿æ³æ¯æ |
3 | æä½ | æªå¹¿æ³æ¯æææ¶ä¸ºåç¸æ¾ç¤º |
4 | ä¸å线 | |
5 | ç¼æ ¢éªç | |
6 | å¿«ééªç | |
7 | åæ¾ | |
8 | éè | æªå¹¿æ³æ¯æ |
9 | åé¤ |
| é¢è² | åç§° | åæ¯è² | èæ¯è² | ç¤ºä¾ |
|---|---|---|---|---|
Black | é»è² | 30 | 40 | é» |
Red | çº¢è² | 31 | 41 | 红 |
Green | ç»¿è² | 32 | 42 | 绿 |
Yellow | é»è² | 33 | 43 | é» |
Blue | èè² | 34 | 44 | è |
Purple | ç´«è² | 35 | 45 | ç´« |
Cyan | éè² | 36 | 46 | é |
White | ç½è² | 37 | 47 | ç½ |
| é¢è² | åè² | èè² | ç¤ºä¾ |
|---|---|---|---|
BrightBlack(Gray) ç°è² | 90 | 100 | 90 |
Bright Red äº®çº¢è² | 91 | 101 | 91 |
Bright Green äº®ç»¿è² | 92 | 102 | 92 |
Bright Yellow 亮é»è² | 93 | 103 | 93 |
Bright Blue 亮èè² | 94 | 104 | 94 |
Bright Magenta äº®ç´«è² | 95 | 105 | 95 |
Bright Cyan 亮éè² | 96 | 106 | 96 |
Bright White æµ
ç° | 97 | 107 | 97 |
| :- | -- | -- |
|---|---|---|
n A | å æ ä¸ç§» | å
æ åæå®çæ¹åç§»å¨ n(é»è®¤1)æ ¼ |
n B | å æ ä¸ç§» | å
æ åæå®çæ¹åç§»å¨ n(é»è®¤1)æ ¼ |
n C | å æ åç§» | å
æ åæå®çæ¹åç§»å¨ n(é»è®¤1)æ ¼ |
n D | å æ åç§» | å
æ åæå®çæ¹åç§»å¨ n(é»è®¤1)æ ¼ |
n E | å æ ç§»å°ä¸ä¸è¡ | å
æ ç§»å¨å°ä¸é¢ç¬¬ n(é»è®¤1)è¡çå¼å¤´(éANSI.SYS) |
n F | å æ ç§»å°ä¸ä¸è¡ | å
æ ç§»å¨å°ä¸é¢ç¬¬ n(é»è®¤1)è¡çå¼å¤´(éANSI.SYS) |
n G | å æ æ°´å¹³ç»å¯¹ | å
æ ç§»å¨å°ç¬¬ n(é»è®¤1)å(éANSI.SYS) |
n;m H | å æ ä½ç½® | å
æ ç§»å¨å°ç¬¬ nè¡ã第 m åãå¼ä»1å¼å§ï¼ä¸é»è®¤ä¸º1(å·¦ä¸è§) |
n J | ED â æ¦é¤æ¾ç¤º | æ¸ é¤å±å¹çé¨ååºå |
n K | EL â æ¦é¤è¡ | æ¸ é¤è¡å çé¨ååºå |
n S | SU â å䏿»å¨ | æ´é¡µå䏿»å¨ n(é»è®¤1)è¡ãæ°è¡æ·»å å°åºé¨ (éANSI.SYS) |
n T | SD â å䏿»å¨ | æ´é¡µå䏿»å¨ n(é»è®¤1)è¡ãæ°è¡æ·»å å°é¡¶é¨ (éANSI.SYS) |
n;mf | HVP â æ°´å¹³åç´ä½ç½® | åCUP |
n m | SGR â éæ©å¾å½¢åç° | 设置SGRåæ°ï¼å æ¬æåé¢è² |
5i | æå¼è¾ å©ç«¯å£ | å¯ç¨è¾ å©ä¸²è¡ç«¯å£ï¼é常ç¨äºæ¬å°ä¸²è¡æå°æº |
4i | å ³éè¾ å©ç«¯å£ | ç¦ç¨è¾ å©ä¸²è¡ç«¯å£ï¼é常ç¨äºæ¬å°ä¸²è¡æå°æº |
6n | DSR â 设å¤ç¶ææ¥å | 以 ESC[n;mR (å°±åå¨é®çä¸è¾å
¥)ååºç¨ç¨åºæ¥åå
æ ä½ç½®(CPR)ï¼å
¶ä¸ næ¯è¡ï¼ m æ¯å |
s | SCP â ä¿åå æ ä½ç½® | ä¿åå æ çå½åä½ç½® |
u | RCP â æ¢å¤å æ ä½ç½® | æ¢å¤ä¿åçå æ ä½ç½® |