Thứ hai, 01/07/2013 | 00:00 GMT+7

Cách sử dụng Z Shell (zsh) trên server cloud


Giới thiệu

Bài viết này trình bày cách sử dụng zsh trên server cloud . Bạn có thể xác minh zsh đã được cài đặt trên VPS của bạn bằng cách thử khởi động nó:

zsh

Nếu bạn đã cài đặt zsh, bạn sẽ chạy ngay vào shell đó.

Nếu không, bạn nên cài đặt zsh trước khi tiếp tục.

Sử dụng zsh

Đến đây, có thể khó hiểu zsh mạnh hơn bao nhiêu so với một shell như bash. Hãy bắt đầu bằng cách xem xét các khả năng tự động hoàn thành của shell .

Tự động hoàn thành

Hãy tưởng tượng rằng ta muốn cài đặt “vim-addon-manager” để giúp ta sắp xếp file cấu hình editor của bạn . Mặc dù vậy, ta không thể nhớ gói được gọi là gì. Thay vì sử dụng apt-cache để tìm kiếm tên gói, ta chỉ có thể sử dụng zsh để đưa ra danh sách các gói bắt đầu bằng “vim”.

sudo apt-get install vim<tab>
vim                vim-doc            vim-lesstif        vim-scripts
vim-addon-manager  vim-gnome          vim-migemo         vim-syntax-go
vim-athena         vim-gtk            vim-nox            vim-syntax-gtk
vim-common         vim-gui-common     vim-puppet         vim-tiny
vim-conque         vimhelp-de         vim-rails          vim-vimoutliner
vim-dbg            vim-latexsuite     vim-runtime        

Khi ta sử dụng <tab> hoàn thành với apt, ta thấy rằng nó cung cấp cho ta danh sách các gói có sẵn. Sau đó, ta có thể nhập các chữ cái bổ sung cần thiết để có được một lần truy cập duy nhất. Trong trường hợp này, gõ “-ad <tab>” sẽ hoàn thành lệnh nếu cần.

sudo apt-get install vim-ad<tab>

Hãy làm cho tính năng tự động hoàn thành của ta mạnh mẽ hơn nữa. Hãy thêm phần sau vào .zshrc của ta :

nano ~/.zshrc
zstyle ':completion:*' menu select
setopt completealiases

Điều này sẽ làm được hai điều. Nó sẽ cho phép ta tự động hoàn thành bất kỳ alias nào mà ta có thể viết trong .zshrc của ta và nó cũng cho phép ta chọn ra khỏi menu khi có nhiều lựa chọn. Hãy nguồn lại file .zshrc để tải các thay đổi của ta và sau đó thử lại ví dụ apt-get.

source ~/.zshrc
sudo apt-get install vim<tab>

Nó trông giống nhau. Sự khác biệt là bây giờ ta có thể nhấn lại phím <tab> và sau đó sử dụng phím <tab> và phím mũi tên để chọn các tùy chọn của bạn. Điều này có thể dẫn đến việc chọn nhanh hơn nhiều trong một số trường hợp.

Đánh bóng

Một trong những tùy chọn ta cài đặt ban đầu là sử dụng các biểu thức nhấp nháy mở rộng. Globbing là một loại cú pháp sử dụng các ký hiệu đặc biệt để đối sánh và lọc kết quả khi tìm kiếm hoặc chuyển đối số cho bất kỳ chương trình hoặc hàm nào.

Hãy thử một vài ví dụ. Đầu tiên, ta sẽ thử một số kiểu cầu vồng truyền thống hơn trong trường hợp bạn không quen với ý tưởng này. Hãy tạo một folder thử nghiệm và điền vào nó một số file .

mkdir test
cd test
touch file1 file2 file3 file100 file120 file122 file200 file222
touch file250 file800 file808 file80 somefile anotherfile
touch thisotherfile file.txt file.c file.o file.html file.css
touch completelydifferent different separate
mkdir directa directb directc directd

Thư mục thử nghiệm của ta hiện có rất nhiều file và folder mà ta có thể chọn và thao tác.

Hãy chọn mọi thứ với file word trong đó. Ký tự dấu hoa thị (*) là viết tắt của 0 hoặc nhiều ký tự.

ls *file*
anotherfile		file120		file200		file3
file808			file.html	somefile	file1
file122			file80		file.c		file.o
thisotherfile		file100		file2		file250
file800			file.css	file.txt

Kết quả là mọi file có từ “tệp” trong tiêu đề của nó. Giả sử rằng ta chỉ muốn tìm các file bắt đầu bằng “tệp”.

ls file*
file1		file122		file222		file80
file.c		file.o		file100		file2
file250		file800		file.css	file.txt
file120		file200		file3		file808
file.html

Điều này làm giảm kết quả của ta một chút, nhưng hãy thu hẹp điều này hơn nữa. Ký tự dấu mũ (^) được sử dụng để phủ định mẫu sau. Vì vậy, giả sử ta muốn tất cả các file bắt đầu bằng “tệp” nhưng ta không muốn các file nào mà “1” nằm ngay sau “tệp”.

ls file^1*
file2		file222		file3		file800
file.c		file.html	file.txt	file200
file250		file80		file808		file.css
file.o

Giả sử ta muốn tìm tất cả các file bắt đầu bằng “tệp” và có số sau đó nằm trong repository ảng từ 100 đến 300. Ta có thể sử dụng các dấu hiệu nhỏ hơn (<) và lớn hơn (>) để bao gồm một dải số.

ls file<100-300>
file100		file120		file122		file200
file222		file250

Nếu ta muốn tất cả các kết quả đó, nhưng ta đặc biệt không muốn file 200, ta có thể yêu cầu zsh không chọn nó bằng ký tự dấu ngã (~).

ls file<100-300>~file200
file100		file120		file122		file222
file250

Hãy thực hiện một số lựa chọn phức tạp hơn. Ta có thể xác định thêm kết quả của bạn bằng cách cung cấp một bộ chọn trong một tập hợp các dấu ngoặc đơn. Nếu ta muốn chọn mọi thứ là file thông thường (không phải folder , liên kết, v.v.), ta có thể sử dụng thông tin như thế này.

ls *(.)
anotherfile		file100		file200			file80
file.css		separate	completelydifferent	file120
file222			file800		file.html		somefile
different		file122		file250			file808
file.o			thisotherfile	file1			file2
file3			file.c		file.txt

Lưu ý không có folder nào mà ta đã tạo được liệt kê. Nếu thay vào đó, ta chỉ muốn các folder , ta có thể sử dụng điều này:

ls *(/)
directa:

directb:

directc:

directd:

Tiếp theo, hãy chọn 5 file mới nhất trong folder thử nghiệm của ta . Ta có thể làm điều đó bằng cách sử dụng từ "o" trong ngoặc đơn. Điều này chọn phương pháp sắp xếp của ta . Ta sẽ theo sau chữ “o” với chữ “m” nghĩa là ta đang sắp xếp theo thời gian sửa đổi. Cuối cùng, ta sẽ cung cấp một phạm vi trong dấu ngoặc cho zsh biết ta muốn có bao nhiêu kết quả.

ls *(.om[1,5])
completelydifferent	different	file.css	file.html	separate

Điều khoản khác

Dưới đây là một số ý tưởng bổ sung để thử.

Ta có thể cấu hình zsh để tự động sử dụng các chương trình cụ thể để mở file dựa trên phần mở rộng file . Ta sẽ thực hiện điều này bằng cách sử dụng "bí danh hậu tố". Chúng có thể được thêm vào .zshrc của ta để nếu ta chỉ cần nhập tên của một file và nhấn return, nó sẽ được mở bằng chương trình chính xác.

Hãy sử dụng “less” để mở các file nào có phần mở rộng là .view và sử dụng “nano” để mở các file nào có đuôi .edit. Thêm dòng này vào cuối file .zshrc của bạn.

nano ~/.zshrc
alias -s view=less
alias -s edit=nano
source ~/.zshrc

Bây giờ, hãy tạo hai file để kiểm tra điều này.

touch test.view test.edit

Nếu ta gõ:

test.view

Tệp sẽ mở ở “less” khi ta nhấn enter. Tuy nhiên, nếu ta nhập:

test.edit

Tệp sẽ mở ở dạng nano, như mong đợi.

Một điều thú vị khác mà zsh cung cấp cho ta là gợi ý hoàn thành. Zsh cung cấp cho ta các chỉ số trực quan tuyệt vời khi nhập đầu vào nhiều dòng. Thử một lần đi. Nếu ta nhập thông tin như thế này và nhấn "enter":

print “this is a line

Ta sẽ được giới thiệu với một dấu nhắc như sau:

dquote>

Ta có thể hoàn thành dòng này bằng cách kết thúc đầu vào của ta bằng bộ dấu ngoặc kép thứ hai.

 dquote> that goes onto the next line”

Như bạn thấy , nó cho ta biết loại đầu vào nào cần được đóng để hoàn thành câu lệnh. Ta có thể thấy một điều tương tự xảy ra nếu ta cố gắng nhập một tập lệnh shell đơn giản vào dấu nhắc .

if [[ -o interactive ]]; then
then> print yes
then> else
else> print no
else> fi

Như bạn thấy , nó cho ta cùng một loại gợi ý. Điều này có thể rất hữu ích nếu bạn có các câu lệnh đầu vào dài kéo dài nhiều dòng.

Đặt zsh làm shell mặc định

Nếu bạn quyết định rằng zsh trên server cloud phù hợp với nhu cầu shell hàng ngày của bạn, bạn có thể đặt nó làm shell mặc định cho user của bạn . Bằng cách này, mỗi khi bạn đăng nhập, các tùy chọn của bạn sẽ được tải và một phiên zsh sẽ được tạo ra. Bạn sẽ không còn phải gõ “zsh” để truy cập zsh trong VPS của bạn .

chsh -s $(which zsh)

Lần tới khi đăng nhập, bạn sẽ được hiển thị với dấu nhắc zsh.

Bởi Justin Ellingwood

Tags:

Các tin liên quan

Cách thêm tệp swap trên server cloud Arch Linux
2013-06-28
Cách cài đặt server DNS BIND trên CentOS 6
2013-06-12
Cách cài đặt eJabberd XMPP Server trên Ubuntu
2013-06-04
Cách cấu hình tmux trên server cloud
2013-05-20
Cách cài đặt cPanel trên server ảo chạy Centos 6
2012-11-02
Cách cài đặt Linux, Apache, MySQL, PHP (LAMP) trên Debian
2012-10-04
Cách cài đặt Joomla trên server ảo chạy CentOS 6
2012-09-27
Cách cài đặt Joomla trên server ảo chạy CentOS 6
2012-09-27
Cách cài đặt Drupal trên server ảo chạy CentOS 6
2012-09-25
Cách cài đặt Ruby on Rails trên Arch Linux với RVM
2012-09-21