* 通配符
- 通匹配任意字符(包括空字符),用于匹配任意长度的字符串。包括空字符。加入你要匹配任何以.txt后缀的文件,只需要在*通配符后加上.txt后缀即可。
样例演示
ls *.后缀名
ls xxx* 找到匹配的字符串
man指令(重要)
Linux的命令有很多参数,我们不可能全记住,下面我们就会介绍Linux的联机手册以获取帮助。man手册一共分为8章:
1、普通命令
2、系统调用接口,如open、write等
3、c语言库函数,如printf,fopen等
4、特殊文件说明,这些文件是系统常用的设备文件和协议文件类型
5、文件的格式,如passwd,就会说明这个文件中各个字段的含义
6、是给游戏预留的,由各个游戏自己定义
7、是一些附件和变量,比如environ这种全局变量在这里就有说明
8、是系统管理用的命令,这些命令这能由root使用,如ifconfig等。
指令语法
man [选项] [查找目标]
常用选项
-k 根据关键字搜索联机手册
n 即只在第n页手册查找
-a 将所有章节都显示出来,比如 man printf 它默认从第一章开始搜索,直到找到为止,当按下q就会退出,它会继续往后搜索,直到所有章节都搜索完毕。
举例演示
cp指令(重要)
cp指令用于拷贝文件或目录,如同时指定两个以上的文件和目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的文件或目录拷贝到当前的目录下。若同时指定多个文件或目录,而最后的目的地并非一个已经存在的目的地,则产生错误信息。
语法
cp [选项] 源文件或目录 目标文件或目录
常用选项
-f 强行拷贝文件或目录,不论目的的文件是否已经存在。
-i 拷贝覆盖文件前询问用户。
-r 递归处理,将指定的目录下的子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理。
-R recursive递归处理,将指定目录下的文件及子目录一并处理。
样例演示
echo指令和cat指令
在正式样例演示前,先介绍两个指令,以便于下面的演示。
echo指令,即将内容输出到显示器文件中,即打印到屏幕。
echo "字符串内容"
echo 指令可以搭配输出重定向符(>)来将字符串内容重定向写入到指定的文件中。
echo "helloc linux" > 文件名
cat指令,查看文件内容。
cat [选项] 文件名
cp指令案例演示
mv指令(重要)
mv指令是move的缩写,可以用来移动文件或更改文件名称。是Linux系统下的常用指令,常用于备份文件或目录。mv命令的本质功能就是剪切加重命名。
语法及特点
语法:mv[选项]源文件或目录 目标文件或目录
特点一:根据mv指令的第二个参数的不同(无论是目标目录还是目标文件),mv指令将文件重命名或者将其移动到新的目录中。如将文件移动到上级目录下,可以这样敲指令。
mv 源文件或目录 ../
特点二:当第二个参数的类型是文件时,mv指令会完成对于文件的重命名。此时,源文件只能有一个(这里的文件也可以是源目录),它讲所给的源文件或者目录重命名成给定的目标文件或目录的文件名称。
mv test.txt testmv.txt
特点三:当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv指令将各个指定的源文件均移动到目标文件中
常用选项
-f 如果目标文件已经存在,不会询问而直接覆盖。
-i 若目标文件已经存在时,就会询问是否进行覆盖。
样例演示
其实默认在不知名目录的情况下,mv指令默认是在当前所处的目录下对文件或目录进行剪切并重命名。
指令的本质
再此之前,已经介绍了一些的指令。那么这里我抛出一个问题,指令的本质是什么?下面我简单编写了一个简单的c语言程序,并在Linux环境下执行它。
而此时再敲几个已经介绍的指令。
为什么我们敲了指令就能够执行它呢?
当我们敲下指令时,系统会去对应的搜索目录查找是否有对应的指令。如果指令存在,则执行它。那么系统存放指令的目录在哪呢?
ls /usr/bin/
下面。将刚刚编写的可执行程序拷贝到系统存放指令的目录下,验证指令的本质就是可执行程序这一说法。
而我们将自己写好的程序拷贝到系统存放指令的目录下,使它变成指令,这一行为的本质就是安装可执行程序。当然,在试验完成后一定要删除拷贝添加的指令。不然时间久了忘记了自己胡搞了一个指令,在未来的某一天你敲了myc加热键补齐后,出来一个mycmd指令。你还隔着研究半天是哪来的指令,这就比较尴尬了。
指令的重命名
生活中,如果一个人的名字比较难念难写,但是他又特别的受欢迎。毫无疑问,他会获得一个专属的外号。指令也会有外号。由于ls -l这个指令常被用到,它就得到了一个别名ll。
下面,简单举例一下alias指令的用法
Linux一切皆是文件
在上面的echo指令和>输出重定向的介绍中,提到了屏幕上输出字符串信息。而在Linux中,显示器本质也是一个文件。只不过,显示器是一个只具备写入而不具备读取方法的文件。与之对应的是键盘,键盘的本质是一个具备读取而不具备写入方法的文件。
>> 追加重定向
<输入重定向
cat test.txt和cat < test.txt两者间还是有些许区别的。但是,现阶段我们先不管这些。
cat指令
用于查看目标文件的内容
语法
cat [选项][文件]
常用选项
-b 对非空输出行编号
-n 对输出的所有行编号
-s 不输出多行空行
样例演示
more指令
用于查看大文本,功能类似cat
语法
more[选项][文件]
常用选项
-n 对输出所有行编号
-q 退出more
样例演示
由于cat指令查看大文本时,效率很差。所有查大文本时,可以使用more指令进行查看。下面是一个构造10000行内容文本指令。
cnt=1; while [ $cnt -le 10000 ]; do echo "hello Linux $cnt"; let cnt++; done > test.txt
less指令(重要)
1、less指令也是对文件或其他输出进行分页现实的工具,应该说是Linux正统查看文件内容的工具,功能极其强大。
2、less的用法比起more更加的弹性。使用more时并没有办法向前翻,只能向后看。但使用less时可以用[pageup][pagedown]等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容。
3、less里还可以有很多搜索功能,不止于向上搜索和向下搜索
语法
less [参数] 文件
选项
-i 忽略搜索时的大小写
-N 显示每行的行号
/字符串:向下搜索"字符串"的功能
?字符串:向上搜索"字符串"的功能
n:重复前一个搜索(与/或?有关)
N:反向重复前一个搜索(与/或?有关)
q:退出
样例演示
head指令
head指令用来显示档案的开头至标准输出中。默认情况下head指令打印其对应文件的前10行内容。
语法
head -[行数][文件]
样例演示
tail指令
tail指令从指定点开始将文件写到标准输出中。使用tail指令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename 会把文件名里最尾部的内容显示在屏幕上,并且不断刷新是使你能看到最新的文件内容。
语法
tail [必要参数][选择参数][文件]
常用选项
-f 循环读取
-n 显示行数
管道操作样例演示
假设我们需要看1000-1020行的文件内容我们要怎么看呢?
当然管道操作也是可以连续使用
这里主要是认识一下管道就可以,后面还会深入学习。