Shell
shell是一个具备特殊功能的程序,它是介于使用者和操作系统内核的一个接口。也就是说,只要能操作应用程序的接口都叫做shell。
shell的语法
命令 选项 参数
[root@localhost ~]# ls
[root@localhost ~]# ls -a
[root@localhost ~]# ls -a /home
命令:整条 shell 命令的主体
选项:会影响会微调命令的行为 //通常以 -, –
- 短格式,比如-a -l 和 -al 等价
–长格式
参数:命令作用的对象,一般情况下参数是文件或目录
了解了shell之后,我们来查询一下linux使用的是哪一个shell
系统的 shell:cat /etc/shells
当前系统默认的 shell:echo $SHEL
我们学习到/bin/bash是系统默认的shell,bash是GNU计划中重要的工具软件之一,bash的主要优点如下:
1 命令记忆功能(history)
曾经执行过的命令几乎都被记录下来,默认的命令记忆多达1000个。
a.光标上下键
b.^R//搜索历史命令(输入一段某条命令的关键字:必须是连续的)
c.!220//执行历史命令中第220条命令
!字符串//搜索历史命令中最近一个以xxxx字符开头的命令,例
如!ser
2 命令与文件补全(Tab)
【Tab】接在一串命令的第一个字后面,则为命令补全。
【Tab】接在一串命令的第二个字后面,则为文件补全。
如果我想知道我的环境中可执行的命令有几个,直接在bash的提示符后面连续按两次Tab键,就可以显示所有可以执行的命令。要想知道系统中所有以c开头的命令,就按c【Tab】【Tab】。
命令补全:
shell 程序在接收到用户执行命令的请求,分析完成之后,最左侧的
字符串会被当作命令;
命令查找机制:
查找内部命令;
根据 PATH 环境变量中设定的目录,自左而右逐个搜索目录下的文件名。
给定的打头字符串如果能惟一标识某命令程序文件,则直接补全;不能惟一标识某命令程序文件,再击 tab 键一次,会给出列表;
路径补全:
在给定的起始路径下,以对应路径下的打头字串来逐一匹配起始路
径下的每个文件:
tab:
如果能惟一标识,则直接补全;
否则,再一次 tab,给出列表;
# ls /etc/sysconfig/network-scripts/
# ls /etc/sysconfig/network-scripts/ifcfg-eth0
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
# service network restart
# service sshd restart
# date -s 12:30
3 快捷键
^C 终止前台运行的程序
^A 光标移到命令行的最前端 //编辑命令
^E 光标移到命令行的后端 //编辑命令
^U 删除光标前所有字符 //编辑命令
^K 删除光标后所有字符 //编辑命令
^R 搜索历史命令,利用关键词。
Alt+. 引用上一个命令的最后一个参数,等价于!$,服务器端使用
ESC, .引用上一个命令的最后一个参数,等价于!$
示例:
[root@instructor ~]# ls /root /home
[root@instructor ~]# touch !$/file1
touch /home/file1
4 命令别名设置功能(alias)
如果我想知道这个目录下面所有色文件及文件属性,我需要执行“ls -al"这样的命令串,使用别名可以更快的代替