【Linux】基本指令(入门篇)(下)
目录
前言
1.指令相关指令
1.1指令
1.2理论
2.打包压缩指令
2.1指令
2.2理论
3.其他工具指令
3.1指令
前言
本文续【Linux】基本指令(入门篇)(上)继续探讨Linux基本入门指令与其内在基础理论,主要涉及指令相关指令、压缩与打包相关指令、网络传输了解等。
1.指令相关指令
Linux的命令有许多,我们不可能全部记住,可以通过一些指令相关的指令来查询指令语法以及深入了解相关指令。
1.1指令
man指令
语法:man [选项] 命令
功能:man指令本质是记录命令了一个联想手册,Linux的命令有很多参数,我们不可能全记住,可以通过查看联机⼿册获取帮助。
常用选项:
-k:根据关键字搜索联机帮助
num:只在第num章节查找
-a:将所有章节的都显⽰出来,⽐如 man printf 它缺省第⼀章开始搜索,知道就停⽌,⽤a选项,当按下q退出,他会继续往后⾯搜索,直到所有章节搜索完毕
man手册解释:man手册一般分为9章(不同系统可能会有所差别)。常用的1是普通指令,像ls、pwd;2是系统调用,如open、write;3是库函数,如C语言中的printf、scanf。
举例:
像我们查找ls指令,会直接调出ls的各种基本属性,又或者插C语言库中的printf
find指令
语法:find [路径名] [选项]
功能:在文件树中查找文件,并作出相应处理(可能访问磁盘)
• Linux下find命令提供了相当多的查找条件,功能很强⼤。由于find具有强⼤的功能,所以它的选项也很多,其中⼤部分选项都值得我们花时间来了解⼀下。
• 即使系统中含有⽹络⽂件系统( NFS),find命令在该⽂件系统中同样有效,只要你具有相应的权限。
• 在运⾏⼀个⾮常消耗资源的find命令时,很多⼈都倾向于把它放在后台执⾏,因为遍历⼀个⼤的⽂件系统可能会花费很⻓的时间(这⾥是指30G字节以上的⽂件系统)。
which指令
功能:搜索系统指定指令
whereis指令
功能:⽤于找到程序的源、⼆进制⽂件或手册
这两个指令都比较简单且功能类似,因此放在一起演示:
这里最值得注意的是ls指令which后除了显示所在路径,还有个类似指令的alias,这实际是对指令进行重命名。
alias指令
功能:设置命令别名
像C语言的typedef给数据类型设置别名一样,Linux系统中也可以用alias给指令设置别名。像上面的ls实际是经过重命名后的指令,因此显示结果会带颜色,而普通的ls实际是不会有颜色的。
此外我们也可以对别的命令自己进重命名
1.2理论
根据之前基础指令理论分析中,我们知道Linux系统下一切皆文件,那么我们每次执行的指令本质上也是文件,以ls指令为例,通过which可以得到ls指令所在路径:
我们再通过ll来查看该路径下的详细信息
可以看到本质是'-'类型文件,即普通文件(Linux下文件分类初步了解可看Linux权限部分),但从windows那种细分文件类型来看,ls是一种可执行文件。本质上和C/C++程序最后生成的可执行文件类似。
但指令这样的可执行文件在系统在运行时不需要指明所在路径,原因是Linux中的/usr/bin路径下的可执行文件可直接以指令的形式运行。同样的,我们也可以在/usr/bin路径下放入我们自己的可执行文件(不推荐,会污染系统指令池),这样也可无需指明路径直接运行。
以上,可以初步了解到指令本质也是程序最后生成的可执行文件,至于其代码现阶段无需重点了解。
2.打包压缩指令
2.1指令
zip/unzip指令
语法:zip [压缩文件名] [文件或目录]/unzip [解压文件名] [路径]
功能:将⽬录或⽂件压缩成zip格式/将zip格式压缩包进行解压
常用选项:
-r:递归处理,将指定⽬录下的所有⽂件和⼦⽬录⼀并处理
-d: 压缩/解压到指定目录
举例:将first目录压缩,并进行解压
但这里还有个问题
可以看到这里原本first目录下的test.c文件并没压缩过来,主要原因是Linux目录是树状结构,需要进行递归压缩
tar指令
语法:tar [选项] 文件与目录
功能:打包/解包,不打开它,直接看内容
常用选项:
-c :建⽴⼀个压缩⽂件的参数指令(create 的意思);
-x :解开⼀个压缩⽂件的参数指令!
-t :查看 tarfile ⾥⾯的⽂件!
-z :是否同时具有 gzip 的属性?亦即是否需要⽤ gzip 压缩?
-j :是否同时具有 bzip2 的属性?亦即是否需要⽤ bzip2 压缩?
-v :压缩的过程中显⽰⽂件!这个常⽤,但不建议⽤在背景执⾏过程!
-f :使⽤档名,请留意,在 f 之后要⽴即接档名喔!不要再加参数!
-C : 解压到指定⽬录
2.2理论
为什么在系统中需要对文件进行打包压缩呢?在计算机系统中打包(Archiving)主要解决的是文件组织和传输问题,而压缩(Compression)则专注于节省存储空间和带宽。具体来说,文件打包压缩主要出于以下几个关键考虑:
打包压缩
节省存储空间:
- 通过压缩算法(如ZIP、RAR、7z等)可以减少50%-90%的文件体积
- 特别适合处理文本类、数据库等具有高冗余度的文件
- 示例:一个10MB的文本文件经压缩后可能只需2-3MB
便于传输:
- 单个压缩包比多个零散文件更易于网络传输
- 减少传输时间,节省带宽成本
- 应用场景:电子邮件附件、云存储上传下载
文件组织管理:
- 将成百上千个相关文件打包成一个文件
- 保持文件目录结构不被打乱
- 示例:网站源代码、程序依赖库的打包分发
数据保护:
- 可以对压缩包设置密码保护
- 防止传输过程中的数据泄露
- 支持数字签名验证文件完整性
备份效率:
- 系统备份时压缩可显著减少备份文件体积
- 加快备份速度,节省备份介质空间
- 典型应用:数据库备份、系统镜像制作
但需要注意的是,压缩算法会消耗CPU资源,对已压缩的文件(如JPEG图片、MP4视频)再次压缩效果有限,甚至可能适得其反。
3.其他工具指令
在Linux系统开发中,有时需要查看成千上万行文档(比如日志),这时如果用cat全部展开查看,会导致终端一下被大量文本淹没,无法清晰查看文档所需内容,这时便需要使用Linux中其他便捷指令。
3.1指令
more指令
语法:more [选项] [文件]
功能:查看文件内容,通过-n控制输出行数
常用选项:
-n:指定输出行数
q:推出more
举例:tmp.txt为有1001行hello world的普通文件。
less指令
• less ⼯具也是对⽂件或其它输出进⾏分⻚显⽰的⼯具,应该说是linux正统查看⽂件内容的⼯具,功能极其强⼤
• less 的⽤法⽐起 more 更加的有弹性,在 more 的时候,我们并没有办法向前⾯翻, 只能往后⾯看
• 但若使⽤了 less 时,就可以使⽤ [pageup] [pagedown] 等按键的功能来往前往后翻看⽂件,更容易⽤来查看⼀个⽂件的内容
• 除此之外,在 less ⾥头可以拥有更多的搜索功能,不⽌可以向下搜,也可以向上搜。语法:less [选项] [文件]
功能:less与more类似,但使⽤less可以随意浏览⽂件,⽽more仅能向前移动,却不能向后移动,⽽且less在查看之前不会加载整个⽂件。
常用选项:
-i 忽略搜索时的⼤⼩写
-N 显⽰每⾏的⾏号
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重复前⼀个搜索(与 / 或 ? 有关)
N:反向重复前⼀个搜索(与 / 或 ? 有关)
q:quit