Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม BASH

5 ความสมบูรณ์มาตรฐานที่พร้อมใช้งานในบรรทัดคำสั่ง Linux Bash

ใน Linux โดยค่าเริ่มต้น Bash จะจัดเตรียมมาตรฐานต่อไปนี้ให้ผู้ใช้ใช้ในบรรทัดคำสั่ง:

  1. การเติมชื่อตัวแปร
  2. กรอกชื่อผู้ใช้
  3. การดำเนินการเสร็จสิ้น
  4. ชื่อไฟล์และไดเร็กทอรีที่สมบูรณ์
  5. การกรอกชื่อโฮสต์

1. กรอกชื่อตัวแปร

หลังจากพิมพ์ $ ในเทอร์มินัลแล้ว การกดแท็บสองครั้งจะแสดงตัวแปรเชลล์ที่มีอยู่ทั้งหมดดังที่แสดงด้านล่าง

$ echo $[TAB][TAB]
$_ $COMP_POINT $HOSTTYPE $PS1
$_backup_glob $COMPREPLY $IFS $PS2
$BASH $COMP_TYPE $inx $PS4
$BASH_ALIASES $COMP_WORDBREAKS $LANG $PWD
$BASH_ARGC $COMP_WORDS $LANGUAGE $RANDOM
$BASH_ARGV $cur $LESSCLOSE $redir
$BASH_CMDS $cword $LESSOPEN $SECONDS
$BASH_COMMAND $DIRSTACK $LINENO $SHELL
$BASH_COMPLETION_COMPAT_DIR $DISPLAY $LINES $SHELLOPTS
$BASH_LINENO $errx $LOGNAME $SHLVL
$BASHOPTS $EUID $LS_COLORS $split
$BASHPID $exclude $MACHTYPE $SUDO_COMMAND
$BASH_REMATCH $flag $MAIL $SUDO_GID
$BASH_SOURCE $FUNCNAME $MAILCHECK $SUDO_UID
$BASH_SUBSHELL $GROUPS $OLDPWD $SUDO_USER
$BASH_VERSINFO $__grub_script_check_program $OPTERR $suffix
$BASH_VERSION $HISTCMD $OPTIND $TERM
$__colormgr_commandlist $HISTCONTROL $OSTYPE $UID
$COLORTERM $HISTFILE $outx $USER
$COLUMNS $HISTFILESIZE $PATH $USERNAME
$COMP_CWORD $HISTSIZE $PIPESTATUS $words
$COMP_KEY $HOME $PPID $XAUTHORITY
$COMP_LINE $HOSTNAME $prev $_xspecs

2. ชื่อผู้ใช้เสร็จสมบูรณ์

เมื่อคุณกด tab สองครั้ง หลังจาก tilde (~) bash จะเริ่มการกรอกชื่อผู้ใช้โดยอัตโนมัติ

$ cd ~[TAB][TAB]
~bala/ ~raj/
~jason/ ~randy/
~john/ ~ritu/
~mayla/ ~thomas/
~nisha/ ~www-data

โปรดทราบว่าสิ่งนี้ไม่รับชื่อผู้ใช้จากโฮมไดเร็กตอรี่ แต่จะแสดงชื่อผู้ใช้ที่มีอยู่ทั้งหมดจากไฟล์ /etc/passwd

3. ชื่อพาธเสร็จสมบูรณ์สำหรับปฏิบัติการ

เมื่อคุณพยายามรันคำสั่ง หากไฟล์สั่งการมีสิทธิ์ดำเนินการ คำสั่งจะเสร็จสิ้นโดยอัตโนมัติ หากพบรายการที่ตรงกันเพียงรายการเดียวดังที่แสดงในตัวอย่างด้านล่าง

$ ls -l /etc/init.d/reboot
-rwxr-xr-x 1 root root 639 Jan 30 2013 /etc/init.d/reboot

$ /etc/init.d/reb[TAB][TAB]

$ /etc/init.d/reboot

เมื่อพบหลายรายการที่ตรงกัน จะแสดงคำสั่งที่ใช้ได้

4. ชื่อไฟล์และไดเร็กทอรีเสร็จสมบูรณ์

การดำเนินการนี้มีไว้สำหรับชื่อไฟล์และชื่อไดเร็กทอรีที่เกิดขึ้นที่ตำแหน่งที่สองและตำแหน่งถัดไปบนบรรทัดคำสั่ง ไม่เหมือนกับตัวอย่างข้างต้น การดำเนินการนี้จะไม่ตรวจสอบการอนุญาตใดๆ และจะแสดงเฉพาะไฟล์และไดเร็กทอรีที่มีอยู่ทั้งหมด

$ ls
countfiles.sh dir1 dir2 dir3 

$ cat [TAB][TAB]
countfiles.sh dir1 dir2 dir3 

$ cat c[TAB][TAB]

$ cat countfiles.sh

นอกจากนี้ เมื่อมีไฟล์จำนวนมากที่จะแสดง แทนที่จะแสดงความเป็นไปได้ทั้งหมดบนหน้าจอ ซึ่งอาจทำให้สับสนมาก จะแสดงข้อความเตือนต่อไปนี้

$ ls -l /etc/
Display all 228 possibilities? (y or n)

5. ชื่อโฮสต์เสร็จสมบูรณ์

หากต้องการให้ชื่อโฮสต์เชื่อมต่อ ให้กด tab สองครั้งหลังสัญลักษณ์ @ ดังที่แสดงด้านล่าง:

$ ssh john@[TAB][TAB]
@dev-db @fileserver @qa-server
@prod-db @localhost @web-server

คุณสามารถใช้คุณลักษณะการเติมชื่อโฮสต์นี้ร่วมกับคำสั่งใดๆ ที่คุณสามารถให้ @ สำหรับชื่อโฮสต์ได้ ตัวอย่างเช่น คุณสามารถใช้สิ่งนี้กับ scp ดังที่แสดงด้านล่าง:

$ scp filename.txt john@[TAB][TAB]
@dev-db @fileserver @qa-server
@prod-db @localhost @web-server

โปรดทราบว่านี่จะรับชื่อโฮสต์ที่มีอยู่จากไฟล์ /etc/hosts