一些重要指令
touch指令
语法:touch [选项]… 文件…
功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
讲参数前我们再引入一个指令stat,可以参考这篇文章:
Linux命令之stat命令
我们可以通过stat获取文件更详细的信息,其中包括三个时间:
而touch指令的参数可以帮助我们更改这三个时间
-a 或–time=atime或–time=access或–time=use只更改存取时间。
对于一个已经存在的文件,如果我们再次使用touch指令并带上参数-a,我们就可以更新此文件的access time和change time:
-m 或–time=mtime或–time=modify 只更改变动时间。
即modify time和change time
这里就不再做展示
-t 使用指定的日期时间,而非现在的时间,此参数需严格按照格式"[[CC]YY]MMDDhhmm[.ss]"来修改access time 和 modify time,并更新change time
-d 使用指定的日期时间,而非现在的时间。可以用指定时间修改access time和modify time同时更新change time
-r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
将后一个的文件时间属性修改为前一个的文件时间属性
-c 或–no-create 不建立任何文档。可用来防止生成新文件
-f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
mkdir指令
语法:mkdir [选项] dirname…
功能:在当前目录下创建一个名为 “dirname”的目录
常用选项::-p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录
递归建立目录
man指令
Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问Linux手册页的命令是
man 语法: man [选项] 命令
常用选项
-k 根据关键字搜索联机帮助 num 只在第num章节找
-a 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当按 下q退出,他会继续往后面搜索,直到所有章节都搜索完毕。
解释一下,面手册分为8章
1 是普通的命令
2是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文 件)
3是库函数,如printf,fread
4是特殊文件,也就是/dev下的各种设备文件
5 是指文件的格式,比如passwd,就会说明这个文件中各个字段的含义
6 是给游戏留的,由各个游戏自己定义
7是附件还有一些变量,比如向environ这种全局变量在这里就有说明
8 是系统管理用的命令,这些命令只能由root使用,如ifconfig
cp指令
语法:cp [选项] 源文件或目录 目标文件或目录 功能: 复制文件或目录 说明:
cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息
常用选项
-f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
-i 或 --interactive 覆盖文件之前先询问用户
-r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
-R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理
mv指令
mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录。
语法: mv [选项] 源文件或目录 目标文件或目录功能:
- 视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的 目录中。
- 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它 将所给的源文件或目录重命名为给定的目标文件名。
- 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至 目标目录中。
常用选项
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
less指令
- less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极
其强大。 - less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看
- 但若使用了 less 时,就可以使用 [pageup][pagedown] (就是键盘的↑和↓)等按键的功能来往前往后翻看文件,更容易用
来查看一个文件的内容!
除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜
语法: less [参数] 文件
功能:
less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件。
常用选项
常用选项:
1)-i 忽略搜索时的大小写。
2)-N 显示每行的行号。
3)/字符串 向下搜索“字符串”的功能。
4)?字符串 向上搜索“字符串”的功能。
5)n 重复前一个搜索(与/或?有关)。
6)N 反向重复前一个搜索(与/或?有关)。
拓展:如何查看中间特定区域
先介绍两个简单指令:
head指令和tail指令
功能:用于显示文件的开头和结尾至标准输出中(显示器)可以通过选项-n来调整需要显示的行数(默认10行)
如果现在想读取一个文件中特定的中间区域的部分怎么办呢?
比如有100行数据的文件,我想读取区间[60,70]的数据,该如何操作?
思路:先读取前70行(head),再读取后10行(tail)就能达到目的了
小知识点:
“ > ”是输出重定向,意思是将本来要将file.txt文件中前70行读到标准输出中(显示器),但将其目标重定向读到temp.txt文件中,若temp文件不存在会自动创建一个。若文件已存在则输出重定向会清除原本文件存在的内容然后重新写入若不想影响原来文件内容可以利用
“ >> ”追加重定向。
再提一嘴:
键盘是标准输入,显示器是标准输出
我们平常使用cat查看文件内容时其实也利用了重定向,只不过利用的是输入重定向,cat单独使用时是一个标准输入,会从键盘读取内容并显示,但若 cat+文件 来显示文件内容时其实隐藏了一个输入重定向符号,将标准输入重定向到文件中,显示文件内容
让我们回归正题,大家不免觉得那样子处理中间区域会不会太过于麻烦,每次都要重新创建一个文件或者说利用一个文件来完成,有没有什么更简便的方法呢?
答案是有的:我们可以利用管道符来处理
处理也可以指执行命令。
因此我们可以将一百行的数据取前70行输入管道,再取后10行,也能达到效果,并且更方便
find指令
- Linux下find命令在目录结构中搜索文件,并执行指定的操作。
- Linux下find命令提供了相当多的查找条件,功能很强大。
- 即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限。
- 在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)。
语法: find pathname -options
功能: 用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)
常用选项
-name:按照文件名查找文件
还有很多功能,可以参考find命令详解
tar指令
tar指令可以用来打包和解包文件,还可以不打开包直接看内容
tar [-cxtzjvf] 文件与目录 … 参数:
-c :建立一个压缩文件的参数指令(create 的意思);
-x :解开一个压缩文件的参数指令!
-t :查看 tarfile 里面的文件!
-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
-C : 解压到指定目录
czf 搭配使用打包功能
xzf 搭配使用解包功能
xzvf 可以搭配使用解包并显示文件
tf 搭配使用可以实现未解包就看到包内容
若有内容错误请及时指出!