当前位置: 首页 > article >正文

Linux基本指令(2.0)

周边知识:

1.Linux中, 一切皆文件

构建大文件 输入如下shell命令

i=1; while [ $i -le 10000]; do echo "hello Linux $i"; let i++; done

 

 此时大文件已经创建在big.txt 此时我们发现cat查看无法查看开始内容 我们使用more

当占满一屏之后就不会继续,支持我们回车逐行阅读,也可以输入行数查看内容,输入q退出

但我们不推荐使用more阅读大文件内容,通常使用less 上下键就可以翻阅 

2.查日志 

有些程序运行会产生很多记录信息   在查看日志时,使用less会更加便捷

3.   管道   |

 管道可以集联两个文件的命令 例: 查看一个大文件中的中间行文件

head -9010 big.txt |  tail -11

4. wc 

统计文本行数  

wc -l  

5.时间 

时间在计算机中十分重要

 如果在日志中  查看日志就可以搭配 |

date +%s  :时间戳  单调递增的时间

时间戳 -> 时间: date -d@1508749502
Unix 时间戳(英文为 Unix epoch, Unix time, POSIX time Unix timestamp )是从 1970 1 1 日( UTC/GMT
午夜)开始所经过的秒数,不考虑闰秒

6.打包和压缩 

1.什么是打包压缩,为什么要打包压缩

a.缩小体积,占用资源比较少,占据磁盘空间比较小,下载快

b.不会轻易的丢失文件

2.怎么办 zip,unzip

 

1.输出重定向 >

首先我们使用echo命令输出语句

紧接着我们使用了   “>”   called “输出重定向”   

我们发现原本打印在显示器屏幕上的内容打印在了文件内 由此我们可以推出

输出重定向:

  1. 创建一个新的文件  或者清空文件
  2. 将显示器上的内容转移到文件内显示
  3. 每次进行重定向,都会从文件开始处写入文件
  4. 所以可以用重定向清空文件  

 

所以我们可以推出单独使用 > 是否也可以创建文件呢? 

 

答案是可以 

 1.1 输出重定向原理

1. 众所周知,在Linux中有一重要理念:一切皆文件。

也就是说我们的电脑分为键盘,鼠标,显示器等等都可以看作是文件 。键盘有读取操作 写入为空。对于任何文件来讲都可以分为 读取文件写入文件。 所以向显示器设备打印就相当于向显示器文件打印。就是 向显示器文件写入。 而‘>’ 就是重定向 将原本向显示器文件打印的内容打印到文件内。由于他是输出流,所以叫做 “输出重定向”

2.每次重定向时就相当于执行C语言的打开与关闭操作

#include <stdio.h>
int main()
{
  FILE* fp = fopen("log.txt","w");

  fclose(fp);
  return 0;
]

 有文件就打开 没文件就创建 打开关闭就清空

2.追加重定向 >> 

输出重定向是每次从文件开始处写入  而 追加重定向是从文件末尾处进行写入,并不会覆盖原先内容。 

2.1追加重定向原理

.当我们使用fputs时以a方式写入 就相当于追加,再进行gcc code.c   .a./out  后不会进行清空操作

只会进行追加操作。

 就相当于我们使用>> 时 进行a方式的fopen  此时只会追加,不会删除

 3.输入重定向 < 

当我们输入cat 命令时如果后面什么都不加 代表从键盘中读取文件打印到显示器文件中 

如果我们进行输入重定向,就代表将原本cat从键盘文件读取转为从log.txt文件进行读取

4.more指令

语法 more [ 选项 ][ 文件 ]
功能 more 命令,功能类似 cat
常用选项
-n 对输出的所有行编号
q 退出 more
[atong@LiWenTong ~]$ ls -l / | more
total 162
drwxr-xr-x 2 root root 4096 Apr 25 05:39 bin
drwxr-xr-x 4 root root 1024 Apr 25 04:11boot
drwxr-xr-x 9 root root 3820 May 4 23:20 dev
drwxr-xr-x 84 root root 4096 May 5 00:37 etc


 5.less指令(重要) 

 less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。 less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看 但若使用了 less 时,就可以使用 [pageup][pagedown] 等按键的功能来往前往后翻看文件,更容易用 来查看一个文件的内容! 除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。

语法: less [ 参数 ] 文件
功能
less more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前
不会加载整个文件。
选项
-i   忽略搜索时的大小写
-N   显示每行的行号
/ 字符串:向下搜索 字符串 的功能
? 字符串:向上搜索 字符串 的功能
n :重复前一个搜索(与  /   ?  有关)
N :反向重复前一个搜索(与  /   ?  有关)
q:quit

6.head指令 

head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的 开头至标准输出中,而 tail 想当然尔就是看档案的结尾。

语法: head [ 参数 ]... [ 文件 ]... 
功能
head  用来显示档案的开头至标准输出中,默认 head 命令打印其相应文件的开头 10 行。 

 上图可以看出 在对应位置加入数字即可查看对应前多少行

7. tail指令

tail  命令从指定点开始将文件写到标准输出 . 使用 tail 命令的 -f 选项可以方便的查阅正在改变的日志文件 ,tail -
f filename 会把 filename 里最尾部的内容显示在屏幕上 , 并且不但刷新 , 使你看到最新的文件内容 .
语法: tail[ 必要参数 ][ 选择参数 ][ 文件
功能: 用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
选项:
-f  循环读取
-n< 行数 显示行数
举例 :(简单讲解重定向和管道)
有一个文件共有100行内容,请取出第50行内容<br>
seq 1 100 > test # 生成1到100的序列装入test
方法1 head -n50 test > tmp #将前50行装入临时文件tmp
tail -n1 tmp #得到中建行
方法2 head -n50 test | tail -n1

 8.时间相关的指令

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

 

 

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″ // 这样可以设置全部时间

 

9.Cal指令 

cal 命令可以用来显示公历(阳历)日历。公历是现在国际通用的历法,又称格列历,通称阳历。 阳历 又名 太阳 历” ,系以地球绕行太阳一周为一年,为西方各国所通用,故又名 西历

 

命令格式 cal [参数][月份][年份]

功能 : 用于查看日历等时间信息,如只有一个参数,则表示年份 (1-9999) ,如有两个参数,则表示月份和年份
常用选项
-3  显示系统前一个月,当前月,下一个月的月历
-j   显示在当年中的第几天(一年日期按天算,从 1 1 号算起,默认显示当前月在一年中的天数)
-y   显示当前年份的日历

 Cal –y 2018

 10.find指令:(灰常重要) -name

 

Linux find 命令提供了相当多的查找条件,功能很强大。由于 find 具有强大的功能,所以它的选项也很 多,其中大部分选项都值得我们花时间来了解一下。
即使系统中含有网络文件系统 ( NFS) find 命令在该文件系统中同样有效,只你具有相应的权限。
在运行一个非常消耗资源的 find 命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间( 这里是指 30G 字节以上的文件系统 )
语法: find pathname -options
功能: 用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)
常用选项:
-name   按照文件名查找文件

11.grep指令 

语法: grep [ 选项 ] 搜寻字符串 文件
功能: 在文件中搜索字符串,将找到的行打印出来
常用选项:
-i :忽略大小写的不同,所以大小写视为相同
-n :顺便输出行号
-v :反向选择,亦即显示出没有 ' 搜寻字符串 ' 内容的那一行

 

12.zip/unzip指令 

语法: zip 压缩文件 .zip 目录或文件
功能: 将目录或文件压缩成 zip 格式
常用选项:
-r 递 归处理,将指定目录下的所有文件和子目录一并处理
举例
test2 目录压缩: zip test2.zip test2/*
解压到 tmp 目录: unzip test2.zip -d /tmp

 

如上图所示 ,我们先递归打包,再剪切到根目录,再解压,再tree发现操作成功 


http://www.kler.cn/a/159206.html

相关文章:

  • PaoluGPT——千里挑一
  • 每行数据个数在变的二维数组的输出
  • 电子电气架构 --- 传统刷写流程怎么用在SOC上就不适用呢?
  • 「Mac玩转仓颉内测版5」入门篇5 - Cangjie控制结构(上)
  • RabbitMQ 与 PHP Swoole 实现
  • 【大数据】MySQL与Elasticsearch的对比分析:如何选择适合的查询解决方案
  • 【计算机网络笔记】物理层——信道与信道容量
  • MATLAB算法实战应用案例精讲-【图像处理】边缘检测(补充篇)(附MATLAB代码实现)
  • Unity3D实现鼠标悬浮UI或物体上显示文字信息
  • iOS不越狱自动挂机
  • 上海亚商投顾:沪指再度失守3000点 两市超4600只个股下跌
  • Hadoop学习笔记(HDP)-Part.14 安装YARN+MR
  • 利用flask将yolov5算法封装成在线推理服务
  • 并发集合框架
  • 探秘 Sass 之路:掌握强大的 CSS 预处理器(上)
  • skynet学习笔记(12/05未完待续)
  • Azure Machine Learning - 使用 Azure OpenAI 服务生成文本
  • vue打包完成后出现空白页原因及解决
  • 第二十五章 控制到 XML 模式的映射 - 将文字属性映射到 XML 模式
  • 学习mongoDB
  • 【6】PyQt信号和槽
  • Python语言基础学习大纲(由某大模型生成)
  • uniapp基于u-grid-item九宫格实现uCharts秋云图表展示
  • 软著项目推荐 深度学习的智能中文对话问答机器人
  • Qt之QCache和QContiguousCache
  • 第19章 正则表达式 - C++