文章目录
5.1、shell定义
- shell,即命令解释器,它本质是一个程序。
- 命令行和shell常常被混为一谈,但是命令行指的是供用户输入命令的界面,它接受输入,并传递给命令解释器(shell)。shell再将命令转换为指令代码发送给操作系统。
- 目前通用的shell为BASH
5.2、印刷约定
$
为提示符,用于提示用户可以输入命令了,表示命令行的开始。#
同样为提示符,当以root身份执行命令时,shell提示符转为#
。# #
表示后面的输入为注释,这并不是命令提示符,而是“linux从入门到精通”一书的约定。
注意:linux的命令和文件名都是区分大小写的。
5.3、快速上手
-
$ cd / ##进入根目录 $ ls ##列出文件和目录 $ cd home/ ##进入/home目录
-
$ cd / etc/ ##进入etc目录 $ ls ##列出文件和目录 $ cat fstab ##打开fstab这个文件
5.4、命令行补全和通配符
在输入文件名或者命令时,只要输入前面几个字符,然后按下Tab
键,shell会自动把文件名或者命令补全。
$ cat fs<Tab> ##打开fstab文件 ,用Tab
Shell会自动补齐为
$ cat fstab ##打开fstab文件 ,用Tab
如果以已键入的字符开头的文件不止一个,那么连续按两下Tab
键,Shell会以列表形式给出所有文件
另外,Shell有一套通配符,分别是“*”、“?”、“[]”。它们被用来搜索并匹配文件名的一部分,简化输入的负担。
- “ * ”用于匹配文件名中任意长度的字符串。
$ ls *.cpp ##列出所有后缀为cpp的文件
- “?”用于匹配给出的文件名的一部分的后面一位字符(!!!)只能匹配一位字符。
$ ls text?##列出所有textX的文件(X为任意字符)
“[]”用于匹配所有出现在方括号里的字符
$ ls text[ABC]##列出所有以text开头并以A或B或C结束的文件
$ ls text[1-3]##列出所有以text开头并以1或2或3结束的文件
$ ls text[A-C]##列出所有以text开头并以A或B或C结束的文件
5.5、查看目录和文件
5.5.1、pwd :显示当前目录
$ cd /usr/local/bin/##进入目录
$ pwd
/usr/local/bin/##显示当前位置
5.5.2、cd :进入目录
$ cd /usr/local/bin/##进入目录
直接输入cd
或者 cd ~
,会进入主目录,即home。
输入cd /
,会进入根目录。
输入cd ..
,会返回上一录。
5.5.3、ls :列出目录内容
$ cd / ##进入目录
$ ls ##列出文件
目录显示为蓝色,普通文件为黑色,可执行文件为草绿色,淡蓝色文件为链接文件
$ ls -F ##在列出的同时显示不同类型的文件
可执行文件后跟*,链接文件后跟@
$ ls -a ##显示所有文件(包括隐含文件)
$ ls -aF ##命令选项可以组合使用
$ ls -l ##在列出的同时显示文件的各个属性
5.5.4、dir和vdir :列出目录内容
dir
和ls
类似,vdir
和ls -l
一样`
5.5.5、cat和more :查看文本文件
$ cat txt ##打开文件,查看内容
$ cat txt txt2 ##打开多个文件,依次显示内容
$ cat -n txt ##显示内容的同时显示行数
cat
有个致命的缺陷就是它会将所有内容全部显示在屏幕上,当文件很大时,它就显得毫无用处。
因此使用more
来一页一页显示内容,在结尾会显示百分比,表示进度。
按空格键翻页,按Enter键向下滚动一行,按B向上翻页。按Q键退出。
5.5.6、head和tail :阅读文件的开头和结尾
head -n 行数 文件名
当显示多个文件时,会输出文件名
tail -n 行数 文件名
用法和head相同
5.5.7、less :更好的文本阅读工具
$ less /boot/grub/grub.cfg
less
和more
相似,但功能更为强大。
- 用光标上下翻页,或者左右移动
- 能够实现复杂的检索或者高亮
- 屏幕底部显示了更多的信息
- 屏幕底部显示一个“:”等待输入命令
/
跟上要查找的内容,用来搜索某一字符串,less
会将第一个搜索目标高亮标注,再次输入/
并按下回车会将所有搜索目标高亮表示。$ less -M /boot/grub/grub.cfg ##在屏幕底部还会显示文件名、当前页码、总页码以及百分比
5.5.8、grep :查找文件内容
$ grep 'un' txt ##在txt文件里查找带有 un 的行
5.6、find :查找文件
$ find /usr/bin/ -name zip -print ##在给定路径里查找文件名为zip的文件,-print将结果输出到屏幕,如下所示
usr/bin/zip
$ find /etc/ -name init.d -type d -print ##-type为指定格式
/etc/init.d
5.7、locate :更快地定位文件(适合批量搜索)
$ locate *.doc
5.8、whereis:查找特定程序
$ whereis find
find:/usr/bin/find/usr/share/man/man1/find.1.gz/usr/share/info/find.info.gz
提供这个程序的二进制可执行文件、源代码文件和使用手册的位置
5.9、man:寻求帮助
$ man find ##会提供find指令的帮助手册
5.10、whatis和apropos:获取命令简介
whatis
提供给定指令的简略性说明
apropos
则是反过来,例如:
$ apropos search ##在使用手册中的说明中检索带有search词的指令