1.cp指令
cp指令用于复制文件或目录。
使用:cp [选项] [源文件或目录] [目标文件或路径]
常使用的选项是-r,即递归式复制。
接下来给两个使用示例来看:
当前有这些文件:
复制后:
2.mv指令
mv指令具有两个作用,即①剪切文件/目录,②给文件重命名。
使用:mv [源文件或目录] [目标文件或路径]
注意:当[目标文件或路径]为文件时,则mv的作用是重命名,若为路径,则是剪切。
例如,将empty2中的文件全部移到empty,由于empty本身就是一个目录(路径),其下还有文件,所以这里mv就是剪切的作用。
接下来看一个例子,我们先进入到empty中,然后执行命令“mv ./empty2/test.c hello.c”,这时候可以看到,empty2下的test.c文件剪切到了当前路径下,并重新命名为hello.c。
从这个例子也可以看到mv是可以有重命名功能的,我们也可以通过执行“mv [旧的文件名] [新的文件名]”来直接修改文件名。
3.cat指令
cat指令的作用是显示文件内容。
使用:cat [选项] [文件]
为了便于演示,我们清空之前所有的文件,新建一个test.c文件,并在里边写一段C语言代码。
要在文件里面写入内容,需要用到nano,使用格式是nano [要写入的文件]。
通过cat指令就可以直接打印出文件内容了。
与cat相关的还有一个指令,叫tac,cat是正序打印文件,而tac是逆序打印文件。
接下来讲可以带上的选项:
1)-n:显示信息并带上编号
2)-s:不输出多行空行,打印时将多个空行压缩为一个空行
3)-b:对非空行进行编号
我们故意在新建的文件中多加几个空行,便于后边操作观察。
加上-n选项后,打印出的每行内容前都有编号:
加上-s选项后,中间的多个空行压缩为了一个空行:
加上-b选项后,只对非空行进行了编号:
这些选项同样也能够一起使用,在上一篇博客中提到过,这里就不演示了。
4.echo指令
echo指令用于在终端或文件中输出文本内容。
例如我们要在显示器上打印出hello就可以直接用echo来实现。
这是因为在Linux中一切皆文件,不论是键盘还是显示器,都是文件,这里实际上是向显示器文件写入相关内容。我们在后边加上特定文件时(命令格式:echo "内容" > [文件]),就会向文件中写入,不过需要加上>符号即重定向符。
需要注意的是:如果后边的文件是不存在的,则会新建再写入,如果存在,则会直接写入,不过会先清空文件里边的内容。
当前是有两个源文件的:
我们向hello.c中写入东西:
可以看到,向已存在的文件中直接写入时,是会先清空里面的内容的。
我们再向一个未存在的文件中写入内容:
可以看到,新建了一个test.txt文件,并且在里边写入了hello。
从上边的例子中可以看到重定向符>的作用,因此我们可以用它来清空已存在文件中的内容和新建文件,示例如下:
上边的例子中如果我们用echo加上重定向符写入内容,是会清空文件内容后再写入的,要是我们不想清空呢?那就需要用到追加重定向符>>。
我们再用echo写入“ world”后发现,world并没有接在原内容hello的后边,这是因为用echo写入时默认是会有一个换行的。
在上面讲解了cat + [文件名]是可以打印出文件中的内容的,如果不加文件名,是默认从键盘文件读取的:
我们输入hello后回车就会打印hello,再输入xxxx后回车就又会打印xxxx,可以使用ctrl+C终止,遇到不可控的情况,ctrl+C都可以解决。
与输出重定向相对应的是输入重定向<,使用cat < [文件名]就可以更改为向指定文件中读取。
cat < test.txt 与cat test.txt的作用效果一样。
5.more和less指令
more指令是用于分页显示文件内容的,功能与cat类似,但是当内容较多时,使用cat会刷屏,这时候就适合使用more。
首先我们需要有一个能产生大量内容的文件,借用命令for i in {1..1000}; do echo "This is line $i" >> output.txt; done实现(来自讯飞星火)。
当我们每按一次回车时就会多显示一行即向下滚动一行,按空格键就会向下滚动一屏,按q是退出。
需要注意的是,more不能支持上翻,而less可以。
less与more非常类似,并且less功能更多,使用less可以搜索想要的内容。
例如,我们搜索含有5的内容:
输入/5即可,然后含有5的内容会被标出来,由于篇幅较长,这里只截取一点点:
more和less的使用格式都是more/less [选项] [文件]。
这里主要说less中的选项:
1)-i:忽略搜索时的大小写
2)-N:显示每行的行号
3)/[字符串]:向下搜索[字符串]
4)?[字符串]:向上搜索[字符串]
5)n:重复前一个搜索
6)N:反向重复前一个搜索
7)q:停止
这里只演示第一个:
当我们输入/t后所有含有T和t的都会被标出来: