���IJ��֣�SHELL����
��һ����ʲô��Shell
�����ǵ���Unix֮��, ��һ���Ӵ�����, ���� Shell. ���DZ�������е��������ʶ����.
һ. Shell ���.
Unixϵͳ�ֳ�������Ҫ�IJ���
����
Shell
���߳�ʽ
���ĵIJ����൱�ͽ�, �����߲�����ֱ�ӹ�ͨ, ���, ����Ҫ��һ�����ƵĽ���(interface), ʹ�ò���ʱ�ܸ�Ϊ����, ���������� Shell.
����֮, Shell ����һ����춺��ĺͲ�����֮���һ��ʹ���߽���.
����, Ϊ�γ���Ϊ Shell ��? Shell �ı����� "��" ����˼��!
û��, �ں��ĵ�����, ������һ�����, �����������ʹ���������ָ��, Ȼ�Ὣָ�����ɺ����ܹ��˽�ķ�ʽ, ��������ȥִ��, �ٽ����������Ԥ�������ܱ�.
����: ����
ls -l
shell �������»�Ӧ:
ӵ
�� ��
�� ��
�� �� ������С ����ĵ�
�� ����Ȩ�� �� ӵ���� ��� (byte��λ)���ڼ�ʱ�� ��������
drwxr-xr-x 14 root root 1024 Jul 21 21:31 .
drwxr-xr-x 17 root root 1024 Apr 11 12:01 ..
drwxr-xr-x 8 82 82 1024 Feb 25 19:23 apache
-rw-r--r-- 1 root root 1335460 Feb 25 17:45 apache_1_3_4.tar.gz
drwxr-xr-x 6 root root 1024 Aug 31 1998 ftp
drwxr-xr-x 5 root root 1024 Aug 31 1998 httpd
drwx------ 2 james james 1024 Apr 23 06:47 james
drwxr-xr-x 2 root root 12288 Aug 31 1998 lost+found
drwxr-xr-x 2 msql nobody 1024 Dec 28 1998 msql
drwxr-xr-x 28 ols3 ols3 2048 Jul 19 21:38 ols3
drwxr-xr-x 3 1022 nobody 1024 Jan 25 23:40 ols3cgi
drwxrwxr-x 3 perl ols3 1024 Feb 2 07:11 perl
-rw------- 1 root root 2097152 Jul 21 18:39 quota.group
-rw------- 1 root root 1278656 Jul 21 18:39 quota.user
drwxrwxr-x 2 root nobody 1024 May 11 1998 samba
drwxr-xr-x 3 apache nobody 1024 Feb 25 16:58 temp
drwxrwxr-x 2 webadm nobody 1024 Mar 14 16:34 webadm
Shell ���ű��ֵķ�ʽ���ȡʹ������������IJ�ͬ, �ɷ�Ϊ������:
Text base : ���ֵ���
Graph base: ͼ�͵���
��ν "��ȡʹ�����������ͬ" ��ָ: ��ȡ�Լ���, ���ȡ�Ի���, ���� serial input, өĻ���ص�.
����˵��, Shell ����ֻ������ֱ��������?!
��, �Ҫ����ͬ�� OS �������� Shell �书�ܺ�ѡ���Ե����ɶȶ���.
�� DOS �� COMMAND.COM ����, ������һ��ʮ�������ֱ����, ����һ��� batch ��������֮��, ���Ĺ��ܲ�����. Win ƽ̨�� GUI, ����һ��ͼ��ʽ������ֱ����, ����ʮ������. ����, ����� OS, �����������ɶ���ѡ�� Shell.(��ǰ DOS �� 4dos ��ѡ��)
��� Unix ����, �� Shell �Ĵ���, �ɶ������ɿ��ŵķ�ʽ, ���, Shell �������൱�ض�, �������������ɵظ���(chsh).
Ŀǰ���е� shell ��:
Bourne shell : sh
C shell : csh
Korn shell: ksh (��ҵ����)
tcsh (free)
Bourne Again shell: bash (GNU)
��. Shell �ļ�ʷ
��һ����Ҫ�� shell �� Bourne shell (���������Ϊ�˼���� shell �ķ����� Steven Bourne), 1979 ���һ�����е� Unix �汾 7 ����ʱ, ��ʼʹ�� Bourne shell.
Bourne shell ��������Ϊ sh, ���, �������DZ��� sh Ϊ Bourne shell ����Ҫʶ������.
��Ȼ Unix �ϵ� shell ��������, �� Bourne shell �ĵ�λ������Ȼû�иı�. ���� Unix ϵͳ����Ȼʹ�� sh ��Ϊ��Ҫ�Ĺ�������. (���Ĺ����ӿ������ػ�, ������������)
��һ����Ϊ����ʹ�õ� shell ������ C shell. C shell ��Ҫ���� BSD ��� Unix ϵͳ��. ���������ǰؿ�����ѧ�� Bill Joy. C shell ��Ҫ����Ϊ����� C ����������, �������. ��ʹ�� Unix ϵͳ�ij�ʽʦ, ��ѧϰ C shell ʱ, �е��൱�ط�������.
����������γ� shell �Ķ�������, �����ı��� shell ��ȡ����� shell ���ŵ�.
���� Korn, tcsh �� bash.
Bash shell �� GNU �ƻ�����Ҫ��������֮һ, Ҳ�� GNU ��ҵϵͳ�б��� shell.
Bash �� 1988 �굮��, ����������� Brian Fox, Chet Ramey � 1989 ����, ���ڹٷ���ʽ��ά������ Chet Ramey, ���Ĺ������dz������ϵ���ǿ bash �Ĺ���.
1995~1996 �ڼ��Ƴ� bash 2.0 , ����֮ǰ, ��Ϊʹ�õİ汾�� 1.14.x, �������������µĹ���, �Լ����õ�������.
��Ȼ, Bash ����ȫ��ѵ�, ���� Open Source ��һԱ, ԭʼ��ȫ������.
��. Bash ����.
Bash �������¹���:
����� Bourne shell (sh)
������ C shell �Լ� Korn shell ����õĹ���.
�������б�������(���ǵ���ǰ DOS �е� doskey ��?)
��������(job control)������, �ɿ���ǰ����������ʽ
�� shell ��ʽ��Ƶ�����, �������Զ�shell����Ƴ�ʽ, ����ϵͳ.
��. �°�� Bash ����ץȡ?
��. ��ʼʹ�� Bash
���� login �� unix ����ʱ, �㿪ʼ�� bash ����, һֱ���� exit ����(��^D) Ϊֹ.
Bash ����ʾ����Ϊ$(����һ������ʹ����), �������� root Ȩ��ʱ, ��ʾ�������Ϊ #.
һ��������ʾ����ʱ, ������Կ�ʼ�������������(command line)��.
����ɷ�Ϊ������:
bash �ڽ���ָ��
��ʽ
����� bash �ڽ���ָ��, ���� bash shell �����Ӧ; ���dz�ʽ, �� shell ���ҳ��ó�ʽ, Ȼ�Ὣ����Ȩ��������, �ɺ���ִ�иó�ʽ, ִ����֮��, �ٽ�����Ȩ���ظ� shell.
����֪����Щָ���� bash �ڽ���, ��Щ�dz�ʽ��? ͨ���� "which ָ��", ��û���κλ�Ӧ, ��ʾ���ڽ���ָ��(���Ǹ�ָ���������, ��ó�ʽ����Ԥ�����Ѱ·��֮��), ������:
$/usr/ucb/which echo ������[û�л�Ӧ, ��ʾ���ڽ���ָ��]
/usr/bin/echo
$ /usr/ucb/which ls
/bin/ls
��. �����еĸ�ʽ.
������ͨ���ɺü����ִ����, �м��ÿհ� tab ���ֿ�. ������ʾ:
command options arguments(���Ϊ parameters)
���� ѡ�� ����
rm -rf /home/ols3
���˿հ� tab ��֮��, ÿһ����, ���dz�֮Ϊ token, ���������������, �������� token: rm, -rf, /home/ols3.
�������һ������ʱ, shell ���Ƚ����ֽ�ɸ���� token, Ȼ���ж����ڽ���ָ��, ���dz�ʽ, �ٰ�֮ǰ����ķ�ʽȥִ��.
����֪��һ��������ʽ, ������Щѡ��Ͳ�����? ͨ�� man һ�¸�ָ��, �Ϳ��Եõ���. ����:
man rm
����, ����ָ��Ҳ����һ��ȫ��д��ͬһ��������, ֻҪ�м��� ; �ֿ�, ��:
ls ; mkdir test ; clear
��. ����Ŀ¼���Լ�Ŀ¼.
��ν����Ŀ¼(current directory)��ָ: ������������λ��, �ֳ�Ϊ����Ŀ¼(working directory).
��֪����Ŀ¼Ϊ��? ���� pwd ָ���֪.
��ν�Լ�Ŀ¼(home directory)��ָ: ���� root Ϊ�㽨���ʺ�ʱ, ��ָ�������һ��˽��ר�õ�Ŀ¼, Ҳ�������ϵͳ֮��, ��һ������ĵط�.
��֪�Լ�Ŀ¼, �������з�ʽ:
cd ������(Ȼ��ֱ�Ӱ� Enter)
cd ~ ���� (~ �����Լ�Ŀ¼)
cat /etc/passwd | grep �����ʺ�
��صļ���
cd ./myway (����ĿǰĿ¼�µ� myway Ŀ¼��)��
cd ..��(�ص���һ��Ŀ¼)
��. ������Ԫ.
��������еIJ�����, ���е���, ����������Ԫ(wildcards)���Դ���ʮ�ֱ����IJ���. (������ʹ�ò���, Ҳ�Ƕ��εĿ�ʼ)
�����λ��ǰ�й� DOS �IJ�������, Ӧ�û��ǵ� * �� ? �������������?!
������ bash ��ʹ�õ�������Ԫ:
? �����κε�һ��Ԫ(character)
* �����κ��ִ� (ע��: 0 �����ϵ���Ԫ, ��: *yes ������ yes �� yes-or-not)
[��Ԫ���] ���������е���Ԫ�Է���, ��: [a-z]�������е�Сд��ĸ
[!��Ԫ���] �����������е���Ԫ�Է���, ��: [!0-9]���������ֵ���Ԫ�Է���
��. �������������µ���.
�� unixϵͳ��ɿ���֮��, Ԥ����, �㿪����������, ��������������Ϊ���롢����Լ���ʾ����֮�õ�.
���dz�֮Ϊ:
������: ͨ���Ǽ���, ��������Ϊ 0
�����: ͨ����өĻ, ��������Ϊ 1
������: ͨ���������ͬ(Ҳ����өĻ), ��������Ϊ 2
��Ȼϵͳ�Ѱ������������������, ��������Ȼ��������Ҫ, ��ʱ�ظı�����,���,����������������ͬ�ĵط�. ���ָı�������Ķ���, ���dz�֮Ϊ "I/O ���µ���" (I/O Redirection).
����:
ls -la > myfile ���ǽ���ѯ�Ľ�����µ����� myfile ��(������Ӧ�ó�����өĻ�ϵ�)
cat myfile ����Կ��� ls -la �Ľ��.
cat < myfile > youfile ���ǽ� myfile �����ݿ����� youfile.
> ���������ת��
< ����������ת��
��һ���Ὣ�����ת��Ļ����� "����" (Pipelines).
��ν�Ĺ��߾��ǽ�һ����ʽ�����������һ����ʽ������.
����: cat /etc/passwd | grep ols3
�������ָ�����˼��˵: �� /etc/passwd ����������ʾ���(�����) ���� grep ���ָ�������ֵ, Ȼ���� grep �����ҳ������ؼ��� ols3 ��������.
��. ǰ̨���̨����.
unix �Ƕ��û����������ҵϵͳ, ����νUNIX �����ö���ͬʱʹ��, ������ͬʱִ�������ʽ.
һ�����, ����ִ�е�ָ���һֱ���ſ���Ȩ, һֱ����ʽ����Ϊֹ, ���dz�Ϊ������ִ�й�������ǰ̨����(foreground jobs), ���, ִ��ָ��ʱ, ����Ȼ������������������, �����Ǿͳ������ں�̨����.
ͨ���ȽϺ�ʱ��Ĺ���, ���ǻ����������̨ȥִ��, �����ڼ�, ������Ȼ���Ժ� shell ������ͨ, �´���������� shell ȥִ��.
����: �����������Ժ�� FTP �ŷ�������ijһ��Ŀ¼�����еĵ���, ���ֲ������ִ�����(��Ϊ������ʱ��,Ҳ������), ���������µķ�ʽ�����:
���� & ������ű��ǽ������ж�����̨ȥִ�е�ָ��.
�����������֮��, ��Ȼ��ϵͳ��������, ������ǰ���ټ�һ�� nohup ��ָ��, ����:
nohup �� no hangup �����Ҷ�֮��.
��. ������Ԫ������.
��������Ԫ, �� shell ��˵, �Ǿ������������. �������:
���� ����
~ �Լ�Ŀ¼
` ����ȡ��
# ��
$ ����ȡֵ
& ��̨����
* ������Ԫ
( ��shell��ʼ
) ��shell����
\ ʹ������Ԫ�ָ�����
| ����
[ ��Ԫ��Ͽ�ʼ
] ��Ԫ��Ͻ���
{ �������鿪ʼ
} �����������
; ����ָ���
' ������(���߱����û��Ĺ���)
" ˫����(���û��Ĺ���)
< ����ת��
> ���ת��
/ ·���ָ���
? ������Ԫ
! �����������ϵ� NOT