目录
基本指令
7 cp指令(重要)
8 mv指令(重要)
9 nano指令
10 cat指令
11 echo指令与重定向(重要)
12 more指令
13 less指令
功能:复制文件或目录(copy)
语法:cp [选项] 源文件或目录 目标文件或目录
常用选项:
-f 强制复制源文件或目录到目标文件,不管目标文件是否存在,如果没有就新建,前提是目标文件不重名
-i 复制文件前先询问用户
-r 递归复制源目录里的所有文件(不包括隐藏文件)到目标目录
-R 递归复制源目录里的所有文件(包括隐藏文件)到目标目录
-r/-R 选项
①如果源目录不空,复制就必须带-r选项;
②-R选项可以递归复制所有包括隐藏文件,单独复制隐藏文件需要指定操作:
cp指令支持绝对路径和相对路径:
但是有权限限制,可以拷贝root用户路径下的文件或目录到普通用户的路径下,但是不能拷贝普通用户路径下的文件或目录到root用户下!
功能:mv命令是move的缩写,可以用来移动文件(相当于ctrlx+v)或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录。
语法:mv [选项] 源文件或目录 目标文件或目录
常用选项:
-i 若目标文件 (destination) 已经存在时,就会询问是否覆盖-f force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
mv指令支持绝对路径和相对路径
mv用来改名文件或目录
①目录只能改目录,文件只能改文件!
②改名的前提是目标文件不存在,如果目标文件存在,就相当于把源文件或目录ctrlx+v进目标目录!
但是有权限限制,可以移动root用户路径下的文件或目录到普通用户的路径下,但是不能移动普通用户路径下的文件或目录到root用户下!
功能:简单的文本编辑器
语法:nano 文件名
nano指令可以编辑存在或者不存在的文件(先新建后编辑)
nano 1.txt
①写入任意文本
②ctrl+X退出编辑
③如果对已存在的文件进行编辑,ctrl+X会直接退出;如果对同时创建的文件进行编辑,ctrl+X会询问是否保存文件,敲击y表示yes;还会询问是否更改文件名,不更改直接回车就行
功能:查看文件内容
语法:cat [选项] [文件名]
常用选项:
-b 对非空输出行编号-n 对输出的所有行编号-s 不输出多行空行
cat指令我们可以配合nano指令进行使用,以及下面会叙述的echo指令。
cat后什么都不带,表示进入你输入什么就打印什么的循环,按ctrl+z或+c结束循环
-s选项效果
echo指令:用于在shell中打印shell变量的值,或者直接输出指定的字符串。
重定向:
> 输出重定向:将输出的内容重定向到某个文件中
>> 追加(输出)重定向:将输出的内容追加重定向到某个文件中
< 输入重定向:<+文件,表示将指定文件作为命令的输入设备
<< 追加(输入)重定向:表示从标准输入设备(键盘)中读入,直到遇到分界符才停止(读入的数据不包括分界符),这里的分界符其实就是自定义的字符串
<和<<的用法(了解即可)
①cat+文件==cat+<+文件
②<<用法
相当于打印出了分隔符1之前的东西
>和>>的用法(掌握)
echo与>配合:
①echo + 写入信息 + > + 不存在的文件名:先新建该文件,然后写入信息
②echo + 写入信息 + > + 已经存在的文件名:先清空文件中的文字,然后写入信息
如果我们什么都不写的话,这条指令就变成了清空目标文件中的所有文字:
echo > 文件名
更省略的:
> 文件名
如果文件名不存在,那么就相当于新建一个空文件!
那么我们不仅可以用touch指令,也可以直接echo>文件名或者>文件名创建一个空文件!
echo与>>配合:
相当于不清空文件中已有的文字,继续追加新的写入
总结:
>的作用:①新建文件②清空目标文件
>>的作用:追加写入文字
输出重定向还可以细分为标准输出重定向和错误输出重定向两种技术,这里不介绍。
功能:类似于cat指令,只能通过回车键查看文件内容
语法:more [选项] 文件名
常用选项:
-n 对输出的所有行编号q 退出more
more指令可用于查看文件内容多的文件
我们可以通过以下指令创建一个文字很多的文件i.txt:
i=0; while [ $i -le 1000 ]; do echo $i; let i++ ; done > i.txt
这个指令是什么意思呢?就是一个while循环,将每行输出的i重定向到i.txt这个文件中。
然后我们可以more这个文件:
这个文件一共有1000行,而more指令只能通过回车向下翻页,不能往回退!
下面我们介绍一个查看大文件更好用的less指令。
功能:less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件。
语法:less [选项] 文件名
常用选项:
-i 忽略搜索时的大小写-N 显示每行的行号输入:之后的参数:/字符串 向下搜索“字符串”的功能?字符串 向上搜索“字符串”的功能n 重复前一个搜索(与 / 或 ? 有关)N 反向重复前一个搜索(与 / 或 ? 有关)
间接搜索功能
查看第100行,输入100:
新的页面第一行就是原来文件的第100行
在此基础上,查看第400行,输入400-100=300:
新的页面第一行就是原来文件的第400行
通过pgup和pgdown上下键翻页查看文件
直接搜索功能
/字符串:向下搜索字符串
比如我们输入/100:
搜索的结果只有1个,就在第一行显示
输入/1:
可以看到有好多个匹配结果,说明这些文字都是字符串而不是一个数!
此时我们继续重复输入n或N,n会向下或N会向上重复搜索带1的字符串
如果我们在文件的中间行,需要搜索之前的匹配项,就需要用到?字符串
比如我们在第400行搜索第100行,就需要向前匹配:
?100
而不能:
/100
不然就向后匹配: