目录
1.前言
在前面两节我们学习了:
1.linux用户下有自己的家目录,对于root账号:默认的家目录/root;对于普通用户的家目录:/home/XXX,XXX是新建的用户名。
2.指令的本质就是程序。
3.Linux是多用户的操作系统。
4.在Linux中一切皆文件。
5.一些指令。
本节我们将分成指令,理论两条线路去学习Linux更多的内容。
本节重点:
1. 造出一个大文件
2. 查看大文件中内容的指令
3.输出重定向,追加重定向,输入重定向,管道
4.日志,日历,时间戳
5.打包压缩文件
1.指令
1.1 cat指令
语法: cat [选项][文件]
功能: 查看目标文件的内容常用选项:
-b 对非空输出行编号
-n 对输出的所有行编号
-s 不输出多行空行在之前我们学习的大多是查看文件属性的命令,本条命令专门用来查看文件的内容
我们知道Linux中一切皆文件,那我们来进行如下操作:
我们输入cat指令,但不在后面追加指令,我们发现,我们输入一个,它就会向屏幕上打印一个。按CTRL C后便可以结束输入。(这是因为cat是默认从键盘文件中读取数据,相当于C语言中的scanf。)
见理论线2.2内容。
1.2 echo指令
语法:echo“输出的内容”
功能:向屏幕打印内容。
见理论线 2.1内容。
1.3 more 指令
语法: more [选项][文件]
功能: more命令,功能类似 cat
使用more命令打开一个文件后,你可以使用以下按键进行浏览:- 空格键:向下滚动一页。
- Enter键:向下滚动一行。
- /加关键字,跳到指定位置。
- q键:退出命令。
构造一个大文件,请先看完理论线2.1和2.2
造大文件的脚本:
i=1; while [ $i -le 10000 ]; do echo "hello Linux $i"; let i++; done > big.txt
此时大文件已经造好了。
如果我们使用cat命令进行查看的话,那么文件中的所有内容都是会被打印出来的。我们浏览器来是十分不方便的,这时我们就可以使用more指令。
1.4 less指令
less指令,可以说是more指令的升级版,它包含more的功能,他相较于more使用起来更加的方便,less可以进行上下的翻查内容(按↑键往上翻,按↓键往下翻)。所有我们查看大文件的时候------推荐使用less指令
1.5 什么时候使用less和more
我们以后工作的时候会查很多的日志,在查日志的时候我们会用到less和more。
什么是日志?
日志是程序运行过程中产生的记录,它包含了程序运行的状态、错误信息等内容。日志可以帮助程序员定位和解决程序运行中出现的问题,因此在程序员的工作中非常重要。
日志通常以文本文件的形式存储,每个日志文件都包含了某个时间段内程序运行的状态信息。日志文件通常以日期和时间命名,这样可以方便程序员查找和分析日志信息。
日志文件通常由程序自动生成,程序员也可以手动创建日志文件。日志文件可以通过日志管理工具进行管理,日志管理工具可以帮助程序员查找、分析和删除日志文件。
日志是程序员工作中非常重要的工具,它可以帮助程序员定位和解决程序运行中出现的问题。因此,程序员应该了解日志的概念和使用方法,并在日常工作中合理使用日志。
在Linux中的日志信息:
cat /var/log/messages
因为日志信息太庞大了,这时候就可以来利用less和more逐行的查找。
1.6 head指令
head 用来显示档案的开头至标准输出中。
语法: head [参数]... [文件]...
功能:head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。
选项:-n<行数> 显示的行数
1.7 tail指令
tail 命令从指定点开始将文件写到标准输出.
语法: tail[必要参数][选择参数][文件]
功能:用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
选项:-n<行数> 显示行数我们用head取了头,用tail取了尾,那么中间应该怎么取呢?
请看理论线2.4。
1.8 wc指令
查看文件中的行数。
1.9 与时间相关的指令
1.9.1 date指令
date显示
date 指定格式显示时间: date +%Y:%m:%d
date 用法: date [OPTION]... [+FORMAT]
1.在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中常用的标记列表如下 :
- %H : 小时(00..23)
- %M : 分钟(00..59)
- %S : 秒(00..61)
- %X : 相当于 %H:%M:%S
- %d : 日 (01..31)
- %m : 月份 (01..12)
- %Y : 完整年份 (0000..9999)
- %F : 相当于 %Y-%m-%d
eg:显示年月日
2.在设定时间方面
- date -s //设置当前时间,只有root权限才能设置,其他只能查看。
- date -s 20080523 //设置成20080523,这样会把具体时间设置成空00:00:00
- date -s 01:01:01 //设置具体时间,不会对日期做更改
- date -s “01:01:01 2008-05-23″ //这样可以设置全部时间
- date -s “01:01:01 20080523″ //这样可以设置全部时间
- date -s “2008-05-23 01:01:01″ //这样可以设置全部时间
- date -s “20080523 01:01:01″ //这样可以设置全部时间
3.时间戳
时间->时间戳: date +%s
时间戳->时间: date -d@1508749502
Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。(为了统一全球的时间,便于网络的全球化)有许多原因需要建立时间戳。其中一些最常见的原因包括:
* 跟踪时间变化。时间戳可以用于识别事件发生的确切时刻,这可以帮助跟踪数据随时间的变化。
* 确保数据完整性。时间戳可以用于验证数据没有被篡改或更改。 * 提高性能。时间戳可以用于优化数据存储和检索。
* 遵守法规。时间戳可以用于遵守要求数据以特定格式存储或要求数据保留一定时间的法规。 时间戳是许多不同应用程序的宝贵工具。它们可以用于跟踪时间变化、确保数据完整性、提高性能和遵守法规。
1.9.2 cal指令
cal命令可以用来显示公历(阳历)日历。公历是现在国际通用的历法,又称格列历,通称阳历。 “阳历”又名“太阳历”,系以地球绕行太阳一周为一年,为西方各国所通用,故又名“西历”。
命令格式: cal [参数][月份][年份]
功能: 用于查看日历等时间信息,如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份
常用选项:
- -3 显示系统前一个月,当前月,下一个月的月历
- -j 显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)
- -y 显示当前年份的日历
eg:查看2018年的日历
1.10 16.find指令:(灰常重要) -name
- Linux下find命令在目录结构中搜索文件,并执行指定的操作。
- Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。
- 即使系统中含有网络文件系统( NFS), find命令在该文件系统中同样有效,只你具有相应的权限。
- 在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)。
语法: find pathname -options
功能: 用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)
常用选项:-name 按照文件名查找文件。
此查找,可以查找文件子树下所有的此文件。
1.11 grep指令
语法: grep [选项] 搜寻字符串 文件
功能: 在文件中搜索字符串,将找到的行打印出来常用选项:
- -i :忽略大小写的不同,所以大小写视为相同
- -n :顺便输出行号
- -v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行
grep指令其实相当于文本过滤器:
显示出文件中包含999的所有行
1.12 文件的打包和压缩
1.12.1 什么是打包和压缩,为什么要打包和压缩?
打包和压缩是在计算机领域中常用的两个概念。
打包是将多个文件或者文件夹组合成一个单独的文件或者文件夹的过程。通过打包,可以将多个相关的文件或者文件夹整理在一起,方便存储、传输和管理。
压缩是将文件或者文件夹通过一定的算法和方法,减小其占用的存储空间的过程。通过压缩,可以将文件或者文件夹的体积减小,从而节省存储空间和减少传输所需的时间和带宽。
打包和压缩的目的主要有以下几点:
1. 节省存储空间:打包和压缩可以将多个文件或者文件夹整合在一起,减少占用的存储空间。
2. 减少传输时间和带宽:通过压缩文件或者文件夹,可以减小其体积,从而减少传输所需的时间和带宽。
3. 方便传输和分享:打包和压缩后的文件或者文件夹可以方便地进行传输和分享,减少传输错误和丢失的风险。
4. 方便管理和备份:通过打包和压缩,可以将多个相关的文件或者文件夹整理在一起,方便进行管理和备份。
总而言之,打包和压缩是为了提高存储和传输效率,方便管理和分享文件或者文件夹。
1.12.2 zip和unzip 指令
语法: zip 压缩文件.zip 目录或文件
功能: 将目录或文件压缩成zip格式
常用选项:-r 递 归处理,将指定目录下的所有文件和子目录一并处理
eg:(失败的打包案例)1.首先我们先造一批文件
我们发现所有的文件都是在data2目录下
2.我们把data2打包一下(zip)
3.然后我们把111.zip解压一下,看有什么效果(unzip)
此时我们把data2解压出来了。
此时data2中什么都没有,这说明我们这次打包是失败的,并没有打包data2中的内容
eg:成功的打包案例
1. zip -r 递归式的打包压缩
2.unzip ,此时发现data2中的内容全都被解压出来了
2.理论
2.1 '>'输出重定向&&'>>'追加重定向
'>'输出重定向:将程序的输出重定向到一个文件或其他设备,而不是在终端上显示。这可以用于保存输出以供以后使用,或将一个命令的输出重定向到另一个命令的输入。
补充概率见2.2 普通文件VS显示器
1.'>' (相当于C语言中以写'w'的方式打开文件)
我们可以看到本该输出到屏幕上的hello,却到了t.txt文件中。
这时我们发现:
1.1> 可以直接创建一个文件。
1.2 本该显示到显示器上的数据,显示到了文件中。
1.3 清空写入的内容
我们可以看到我们上一次所写的内容没有了,显示的是当前所写入的内容。
2.>> (相当于C语言中以追加'a'的方式向文件写入内容)
>>与>不同的是,>>不会清空文件内容,而是在上一次写入到末尾继续写入新的内容。
2.2 '<'输入重定向
暂时只介绍<,不对<<做介绍。
’<'输入重定向:输入重定向是指将文件的内容作为命令的输入。(相当于C语言中以读的方式'r'打开文件)
读取方向发生改变。
本来cat要由键盘文件输入,现在转变为由t.txt文件输入。
2.3 普通文件VS显示器
Linux中一切皆文件
对于任何文件来讲,读和写文件:
显示器设备->显示器文件->向显示器文件打印,向显示器文件写入 。
也就是说输出重定向的作用我们可以初步理解为:将写入显示器文件的内容,重新输出到普通文件中。
2.4 '|'管道
| 是 Linux 命令行中的一个特殊字符,它可以将一个命令的输出作为另一个命令的输入。这可以用于连接多个命令,或者将一个命令的输出传递给一个文件。就类似于管道的作用,用于连通。
eg:我想查看大文件中4991行到5000行的内容。
我们先用head去到了前 5000行,然后用管道连接tail指令去到了前5000行的后10行