Article View: cn.comp.os.linux
Article #10992Bash readline 使用技巧(zt)
From: NewBlue
Date: Fri, 30 May 2003 13:40
Date: Fri, 30 May 2003 13:40
258 lines
15067 bytes
15067 bytes
Bash readline ʹ�ü���
�ܶ��˻��� Bash�����Ǻ�������֪�� readline ����ô���¡�readline ��һ��
ǿ��Ŀ⣬ֻҪʹ������ij���������ͬһ�������ļ����ã�������ͬ���
�������������У�������Է���ı༭�����С�
ʹ�� readline �ij���������Ҫ�� Bash, GDB��ftp �ȡ�readline ������Щ��
��ǿ��� Emacs �Ƶ������б༭��ʽ��������������ļ��̡�
�������
�������У����Ǿ����ᵽ "C-x r" ����������"C-x r" ��ʵ���ǰ�
Ctrl-x��Ȼ�� r��ͬ�� "C-M-@" ���ǰ� ctrl-alt-@(M��ʾmeta, �� PC �Ͼ�
�� Alt ��)��������ʵ @ ��shift-2 (������ļ���)������ "C-M-@" ʵ����Ҫ
�㰴 ctrl-alt-shift-2��
�����������ļ���ļ������У����ǰ� "C-x r" ��ʾΪ "\C-xr", �� "C-M-@"
��ʾΪ "\C-\M-@"�����Լ�������֪����ô�����ˡ�ͬ�� "Esc a" ���ʾ��
"\ea"��
����� Emacs ��İ����ͨ����Ƿ�����EMACS = Esc Meta Alt Ctrl Shift
:)
����ƪ���Լ�����������֮ǰ������������������ȱʡ�ļ���ܹ����е�һЩ
������÷���
��һ�У�ʹ����ǰ�������в���
���Ƿ������������������� ~/text-browser/ Ŀ¼�µ�3��.tar.gz�ļ�
�ᵽ/usr3/software/�����������룺
$mv ~/text-browser/*.tar.gz /usr3/software/
������һ���Ѿ�֪�������� ~/text ֮�� TAB �Ϳ��Բ�ȫtext-browser���
���ļ���ɣ�����Bash �Ļ��ܡ��ҷϻ������ˣ��͵���֪���ɡ��������
��Ҫ���Ķ������������һЩ��
Go on! �ո����뵽�����ͻȻ����Ӧ���� /usr3/software/ ���Ƚ���һ��
Ŀ¼��browsers������Ž�ȥ���ļ��ȽϺù��?
������ Ctrl-u��ɾ�������������ѽ����ô��������һ�¾�û�ˡ��Dz�����
���ϧ��������鷳��Ȼ����
mkdir /usr3/software/browser
mv ~/text-browser/*.tar.gz /usr3/software/browser
�š�TAB �ǰ����㲻��æ��������ʵ�����и�õİ취�������������ðɣ�
���� readline ������������������� ���ǻص����������
$mv ~/text-browser/*.tar.gz /usr3/software/
��ղ��ǰ��� Ctrl-u ɾ������������Ķ�������ϧ������Ҫ�ǰ� M-#(Ҳ����
��ס PC ��� Alt ���ٰ� #��ʵ���Ͼ��� Alt-Shift-3)����ô Bash �ͻ���
�����ͷ����һ�� "#"��Ȼ���������С���������ͱ���Ϊһ��ע����������
ʷ�� ����ʲô�ô������������������������ݾͿ��Ա��ٴ����á����ţ���
�������룺
mkdir ...
�ȵȣ����Dz��������� /usr3/software/���㲻������һ���ˣ�ֱ�Ӱ� M-.(Alt
�Ӿ��)�������� /usr3/software/ �Dz��dz��������������ˣ�M-. ���ǵ�����
yank-last-arg �������һ����������һ����������������ϡ����ˣ��س�
�ɣ� ��������룺
mv ...
�ȵȣ������Ǹ����� ~/text-browser/*.tar.gz �ˡ�������������һ�ַ�ʽ�ɡ�
�밴��"M-1 M-."(����һ������ĵ�һ�����������������)�����������г�Ϊ
�ˣ� mv /usr3/software/browser
��ô�������ˣ�������ġ���һ�������ʲô�ɣ��ǡ������Լ������������
����������Ҫ�ġ���ô�����ٰ�һ�� "M-."�������˰ɣ�����������Ѿ���Ϊ��
mv ~/text-browser/*.tar.gz
�á���һ���ո��ٰ�һ�� "M-."�������б���ˣ�
mv ~/text-browser/*.tar.gz /usr3/software/browser
���������Ҫ�ģ� �Dz��ǿ������㻹�ǻ��˲��ٹ�������һ�룬�������
Ҫִ������һ�������أ�
mv /data/ftp/pub/TUG/texmf/tex/latex/CJK/GB/GB.cap \
/usr/local/texlive/texmf-local/tex/latex/CJK/GB/
�š���ס����������M-. �� ���ǰ������� M-0, ... ��Ϊ���ֲ���
�ڶ��У���ȫ�������ļ���ͱ�����
��֪�� TAB ���Բ�ȫ�������Ϻܶණ�����������������������ʱ����ô�죿
man a-very-very-long-command-name
�������� man a-ver... ֮�� TAB��ʲô��ӦҲû�С���Ϊ TAB ִ�е���
���������ȫ��(complete)���� man��֪����Ӧ����һ�������ô����Ϊ��
������Ӧ����һ���ļ������ ��������Ҫ���������������ô�죿�𰸣�
�� "M-!". ������������Ҫ���� XMODIFIERS="@im=fcitx"����������
export XM...
�� TAB? û�з�Ӧ��Ϊʲô�أ���Ϊ TAB �IJ�ȫ��Ҫһ���ļ����ǰĿ¼
û�п�ͷ�� "XM..." ���ļ�����ô����ô��ȫ���𰸣�"M-$"��
��ʵ readline �IJ�ȫ��ʽ�� Bash �����˺ܶࡣ�����ж��ٰɣ�
"TAB": complete
"\M-!": complete-command
"\M-/": complete-filename
"\M-@": complete-hostname
"\M-~": complete-username
"\M-$": complete-variable
�Լ����ɣ�
�����У���չ������
���һ��Ŀ¼���кܶ����Ƶ��ļ������ֽ� T12.txt, T12.log, T23.txt,
T23.log, T13.txt, T13.log���� �к� txt �ģ�Ҳ�к� log �ġ�... ����
�����е�ijЩ T*.txt ���ƶ�������һ��Ŀ¼����T*.log������������T*.txt
Ҳ����ȫ����Ҫ�ƶ������������T*.txt �������������ϣ�Ȼ��ѡ������һЩ��
�����룺
mv T...
���Ű� "M-*"(insert-completions)����� T ��ͷ���ļ������ŵ����������ˡ�
�š�����ijЩʱ�������õģ������������ T*.log ���ļ�Ҳ����ȥ�ˡ����С�
�������Ǽ������룺
mv T*.txt
���ˣ��������ǿ���ʹ�� "C-x*"(�Ȱ�ctrl-x��Ȼ��*)�������������T*.txt
���ļ������ŵ������������档"C-x*" ִ�еĺ������ glob-expand-word. ��
��ƪ���Dz��Ǿ�����Щ������Ѽ�ס����˳�֣����£����Ƕ��ǿ��Ըı�ģ���
��Emacs�ļ��������Ա�����ĸı䣡
����ʹ��readline�ij���ʹ��һ�������ļ������������Ϊ�ͼ�����
�ļ�һ���� INPUTRC ��������ȷ���ġ���������������û��ֵ����ôȱʡʹ
�� ~/.inputrc��
~/.inputrc �ļ��ܼ�ֻ��4����䣺
ע��
�����������(set variable value)
���("keyseq":function)
�������($if ... $endif)
�����Ȳ�˵����ģ�����������ɣ�
���
����䡣
�����ھͿ��Զ���������ϲ���Ŀ��Ʒ�ʽ�����磬�ҷ�����Щʱ������Ҫ������
�������� mark(Emacs ����)��Ȼ���mark ���֮��� region(Emacs����)
ɾ������������� Emacs �����kill-region. �������Ƿ������������ Bash
��ȱʡ��û�аġ������ϣ��õ��� Emacs һ��İ� C-w �Ļ����Ͱ���
�в��뵽 ~/.inputrc:
"\C-w":kill-region
ʹ����Ч��Ϊ��ʹ��������Ч������Ҫִ�� re-read-init-file ����
�������ȱʡ������ "C-x C-r"������ ~/.inputrc ֮���� Bash ������
"C-x C-r" �Ϳ���ʹ�µ�������Ч�ˡ�
�г����õĺ���
��������ô֪����Щ������Ա����أ�readline �� info
ҳ�г��˺ܶຯ������㲻��ÿ�ζ�ȥinfo���ѯ�ɣ����鷳������ʵ�����
ʹ��bash�� bind �������õ����еļ��:
$bind -p
������ʾ�������е��Ѿ���û�аĺ���û�б��ĺ�����ʾΪ
"(not bound)"������������ע�͡���������
"\C-g": abort
"\C-x\C-g": abort
"\M-\C-g": abort
"\C-j": accept-line
"\C-m": accept-line
# alias-expand-line (not bound)
# arrow-key-prefix (not bound)
# backward-byte (not bound)
"\C-b": backward-char
"\M-OD": backward-char
"\C-h": backward-delete-char
"\C-?": backward-delete-char
������������������Ϊһ��ģ�壬Ƕ�뵽 ~/.inputrc �ļ�������ϲ����
���������İ��� ��ʵ readline ���������������㷽��IJ�ѯ����
�����ͺ�İ�����������ǣ�
dump-functions
dump-variables
dump-macros
��������ȱʡ��û�б����κΰ��������Ϊ���Ƿֱ��������� "C-xf",
"C-xv", "C-xm" ����������İ� ������˰��� ������Ϳ�������
����Ҫ�İ����������㻹���п�������Ҫ��ʱ��ͻȻ�Dz�����Щ����Բ�
ȫ����ʱ�������룺
$bind -p | grep compl
�õ����
"\C-i": complete
"\M-\e": complete
"TAB": complete
"\M-!": complete-command
"\M-/": complete-filename
"\M-@": complete-hostname
"\M-{": complete-into-braces
"\M-~": complete-username
"\M-$": complete-variable
"\M-\C-i": dynamic-complete-history
"\M-g": glob-complete-word
"\M-*": insert-completions
.......
������Dz�סһ�����ʱ��Ϳ��Է���IJ�ѯ�������֮����ͻ���Լ���
Ҫ�İ����ס�ˡ�
����
���飺
Bash �� readline ��һЩ�������Կ��������Ϊ������:
bell-style ���Կ��Ƴ���ʱ�� audible(��������)��visible(������Ļ)������
none(ʲô������)��editing-mode ���Կ��������� Emacs �����뷽ʽ������
vi �ģ�
completion-query-times ��ֵ�����ڲ�ȫ�ĸ�������Nʱ��bash ��ʾ��
��Display all N possibilities? (y or n)����
��������� expand-tilde Ϊ on�������롰ls ~/doc������ TAB ʱ�������л�
�Զ���� "ls /home/wy/doc".
���� visible-stats ����Ϊ on����ô�г���ȫ��ʱ��Ŀ¼����ִ���ļ���
������ӣ��ᱻ�ֱ�ʹ�� /, *, @ ����ǣ����� ls -F �ĵ��Ľ��
���ã�
���õķ������������ ~/.inputrc �ļ���д��������䣺
set visible-stats on
Ȼ�� "C-x C-r" ʹ������Ч��
����֪������Щ���ã�
�������õIJ����Ǻܶ�ġ�ʹ������
$bind -v
�Ϳ��Եõ�������Щ�������õı��������ǵ�ֵ�ˡ�
--------------------------------------------------------------------------------
--
Email:
echo "newblue@batbug.org"|sed -e 's/batbug.org/newhuanet.com/g'
============================================
====== �±�˼���� =========
=========== ==============
========= Welcome to ============
========= cn.comp.os.linux ============
============================================
=ǿ=ǿ=ǿ=ǿ=ǿ=ǿ=ǿ=-ǿ-=ǿ=ǿ=ǿ=ǿ=ǿ=ǿ=ǿ=
============================================
Technical Details
Message-ID:
<uisrswo1l.fsf@batbug.org|s/batbug.org/xinhuanet.com/g>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-03!sn-xit-06!sn-xit-09!supernews.com!newsfeed.news2me.com!newsfeed.icl.net!newsfeed.fjserv.net!newsfeed.freenet.de!fu-berlin.de!news.cn99.com!not-for-mailShow Full Headers
Complete Article Headers
X-Google-Language: Chinese,GB X-Google-Thread: 10b277,abc7ee5bb1673d12,start X-Google-Attributes: gid10b277,public X-Google-ArrivalTime: 2003-05-30 06:42:31 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-03!sn-xit-06!sn-xit-09!supernews.com!newsfeed.news2me.com!newsfeed.icl.net!newsfeed.fjserv.net!newsfeed.freenet.de!fu-berlin.de!news.cn99.com!not-for-mail From: NewBlue <newblue@batbug.org|s/batbug.org/xinhuanet.com/g> Newsgroups: cn.comp.os.linux Subject: Bash readline 使用技巧(zt) Date: Fri, 30 May 2003 21:40:22 +0800 Organization: Bentium Ltd. (CN99) Lines: 258 Message-ID: <uisrswo1l.fsf@batbug.org|s/batbug.org/xinhuanet.com/g> NNTP-Posting-Host: 211.97.35.81 Mime-Version: 1.0 Content-Type: text/plain; charset=gb2312 Content-Transfer-Encoding: 8bit X-Trace: mail.cn99.com 1054302088 98284 211.97.35.81 (30 May 2003 13:41:28 GMT) X-Complaints-To: usenet@news.cn99.com NNTP-Posting-Date: Fri, 30 May 2003 13:41:28 +0000 (UTC) User-Agent: Gnus/5.1002 (Gnus v5.10.2) Emacs/21.3 (windows-nt)