本文一共7个小主题,1200字,主要对shell的语法进行分析,小白如果有些细节(命令)不懂也无妨,了解大致原理即可。
1、什么是shell
Shell(壳)顾名思义是用户和Linux交换的一个“壳”程序,它是用户和操纵系统通信的桥梁。Shell 既是一种命令语言,又是一种程序设计语言,shell解释用户输入的命令,然后提交给内核处理,最后把结果返回给用户。
2、shell命令格式
command
- command: 表示命令名称
- option:命令选项
- argument: 命令参数
ls -al /etc
例:ls列出etc文件的内容 参数al(a列出所有文件包含隐藏文件,l把文件和字目录的权限和大小等信息也详细列出)
3、Linux命令行快捷键
为了熟练编写shell命令,背一些常用快捷指令是非常有必要的。
Tab | 不用输入完整的命令,输入命令前几个字母后Tab键,会自动补全命令提示。 |
Ctrl+P (助记:Previous) | 上一条命令 |
Ctrl+N (Next) | 下一条命令 |
Ctrl+A(A,26字母的开头) | 移动光标到开头 |
Ctrl+E (End) | 移动光标到结尾 |
Ctrl+F (Front) | 往光标后面移动一个字符 |
Ctrl+B (Back) | 往光标前面移动一个字符 |
Ctrl+K | 剪切光标处到行尾的字符 |
Ctrl+U | 剪切光标处到行首的字符 |
Ctrl+Y | 将剪切的字符进行粘贴 |
Ctrl+Ins | 复制 |
Shift+Ins | 粘贴 |
Ctrl+C | 强制中断程序的执行,使得进程终止。 |
Ctrl+Z | 任务中止(暂停的意思),但是此任务并没有结束,只是被挂起,fg命令重新启动前台被中断的任务,bg命令把被中断的任务放在后台执行。 |
Ctrl+D | 发出二进制数0XEOF(End Of File)退出shell。 |
4、Linux通配符
① * 匹配一个或多个字符
1. ls *.txt
2. ls -al /ect/*/*.conf
例:1显示以txt结尾的文件,2列出ect的目录的字子目录以conf结尾的文件
② ? 匹配单个字符
ls ab?.txt
列出开头为ab,随后一个字母是任意字符以txt结尾的文件
③ [] 匹配括号内单个字符
ls /dev/sda[12345]
列出dev目录下,以sda开头,最后一个字符是1-5的文件(也可以写做[1-5])
④ 通配符相互搭配使用
1. ls [0-9]?.config
2. ls [xyz]*.txt
先看看代码想一想什么意思
1列出以数字开头,然后任意一个字符,接着以.config结尾的所有文件
2列出以x或y或z开头,然后任意字符最后以.txt结尾的文件
5、Linux重定向
linux默认把键盘设为默认的标准输入,默认错误和标准输出为屏幕,重定向即修改系统默认的标准输入/输出。
① 输入重定向 < 和 <<
1. wc </etc/shadow
用wc命令统计etc目录下shadow文件的行数、单词数和字符数
2. wc << aa
表示从标准输入设备(键盘)中读入,直到遇到分界符(分界符)aa才停止(读入的数据不包括分界符)。
② 输出重定向 > 和 >>
1. > ps -ef >ps.txt
2. >>ps -ef >ps.txt
1把系统进程信息输入到ps.txt之中,把原来得文本数据删除, >>追加输入,不删除原来数据
③ 错误重定向 2> 和 2>>
错误重定向和输出重定向一样, ‘command 2> error.txt’把错误信息保存起来
6、shell管道
管道可以把多个命令链接起来 command 1 | command 2 把一命令的输出作为2命令的输入。
ls -al /etc/* | more
将etc目录的文件分屏显示(more与cat一样,不过对于文本数多的文件,more会分页显示 空格键:查看下一屏;回车键:往下滚动一行,b 键:往前查看一屏,q 键:退出。)
ps -ef | grep httpd |wc -l
查看系统中正在运行的httpd进程,并统计进程数
7、shell引用
有些字符具有特殊含义,引用就是让系统忽略这些字符的特殊含义,当作普通字符处理。
- 转义字符
- 单引号 ‘ ’
- 双引号 “ ”
转义字()符用于单个特殊字符的转义,在单引号(')内的所有字符的特殊含义都会被忽略,而双引号则对于$,,’任保留其特殊含义。