Computer >> Máy Tính >  >> Lập trình >> Lập trình BASH

5 Hoàn thành tiêu chuẩn có sẵn trong Dòng lệnh Linux Bash

Trong Linux, theo mặc định, Bash cung cấp hoàn thành tiêu chuẩn sau để người dùng sử dụng trong dòng lệnh:

  1. Hoàn thành tên biến
  2. Hoàn thành tên người dùng
  3. Hoàn thành có thể thực thi
  4. Hoàn thành tên tệp và thư mục
  5. Hoàn thành tên máy chủ

1. Hoàn thành tên biến

Sau khi nhập $ trong terminal, nhấn tab hai lần sẽ hiển thị tất cả các biến shell có sẵn như được hiển thị bên dưới.

$ 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. Hoàn thành tên người dùng

Khi bạn nhấn tab hai lần, sau dấu ngã (~), bash sẽ tự động bắt đầu hoàn thành tên người dùng.

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

Xin lưu ý rằng điều này không chọn tên người dùng từ thư mục chính. Thay vào đó, nó hiển thị tất cả tên người dùng có sẵn từ tệp / etc / passwd

3. Hoàn thành tên đường dẫn cho các tệp thực thi

Khi bạn đang cố gắng thực thi một lệnh, nếu tệp thực thi có quyền thực thi, nó sẽ tự động được hoàn thành, nếu tìm thấy một kết quả phù hợp như thể hiện trong ví dụ bên dưới.

$ 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

Khi tìm thấy nhiều kết quả phù hợp, nó sẽ hiển thị các lệnh có sẵn.

4. Hoàn thành tên tệp và thư mục

Việc hoàn thành này dành cho tên tệp và tên thư mục đang xuất hiện ở vị trí thứ hai và tiếp theo trên dòng lệnh. Không giống như ví dụ trên, điều này không kiểm tra bất kỳ quyền nào và sẽ chỉ hiển thị tất cả các tệp và thư mục có sẵn.

$ ls
countfiles.sh dir1 dir2 dir3 

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

$ cat c[TAB][TAB]

$ cat countfiles.sh

Ngoài ra, khi có nhiều tệp được hiển thị, thay vì hiển thị tất cả các khả năng trên màn hình, điều này có thể rất khó hiểu, nó sẽ đưa ra thông báo cảnh báo sau.

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

5. Hoàn thành tên máy chủ

Để kết nối tên máy chủ, hãy nhấn tab hai lần sau ký hiệu @ như hình dưới đây:

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

Bạn có thể sử dụng alogn tính năng hoàn thành tên máy chủ này với bất kỳ lệnh nào mà bạn có thể cung cấp @ cho tên máy chủ. Ví dụ:bạn có thể sử dụng điều này với scp như được hiển thị bên dưới:

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

Xin lưu ý rằng thao tác này chọn các tên máy chủ có sẵn từ tệp / etc / hosts.