【Linux】第四站:Linux基本指令(三)

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 【Linux】第四站:Linux基本指令(三)


一、时间相关的指令

1.指令简介

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

3.时间戳

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

2.使用

在实际的写代码中,有一个很重要的东西就是日志

程序运行到自己的每一个关键时刻,都要自己打日志

日志:时间,日志等级,日志具体信息,其他信息

这些东西都要放入一个文件中,也就是日志文件

如下所示都是时间指令的基本使用

下面是一些加上时分秒的

使用起来很简单,但是需要注意的是,date后面+号后必须是一个连续的字符串,不可以加上空格。

不过上面我们注意到了,如果是%s的话,会打印出来一个很奇怪的数字

这个数字其实就是时间戳

我们知道对于每一个时间都有唯一确定的时间戳,所以,我们可以使用下面这条指令去恢复出时间,但是这样的是系统默认的格式,我们可以像前面那样指定格式

date -d @xxxxxxxxx

但是当我们去查看时间戳为0的时候

我们注意到,是早上八点,但是这个时间不应该是凌晨开始的吗?

其实这是因为我们处于东八区,要早八个小时

既然这个时间戳在一直变化,那么就说明是有一个变量存储着它。那么它会不会有一天溢出呢?

当然会,不过那就已经很多年以后了

比如下面的linux系统中,我们可以看到至少都在20亿年以后了,那时候或许早就打败三体文明了

二、cal指令

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

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

功能: 用于查看日历等时间信息,如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份

常用选项

  • -3 显示系统前一个月,当前月,下一个月的月历
  • -j 显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)
  • -y 显示当前年份的日历

三、find指令 -name

1.介绍

  • Linux下find命令在目录结构中搜索文件,并执行指定的操作。
  • Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。
  • 即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限。
  • 在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)

语法: find pathname -options

功能: 用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)

常用选项:

  • -name 按照文件名查找文件

2.使用

第二个参数是指定目录的,而~就是当前用户的目录,所以我们可以在我们这个整个用户中查到我们的文件,结合通配符就非常好用了

我们也可以指定根目录,当然由于权限,很多文件是看不到的

也可以去查指令

find可以在指定的路径下进行文件的搜索 --真的在磁盘文件中搜索

而find与which的区别就是

which只是在/usr/bin指令路径下查询,搜索指令文件,而find是在指定的文件下

而且which指令可以显示它的一些重命名的信息

除了which以外,在查找的时候还可以去使用whereis指令

它可以帮助我们在usr路径下找到只要涵盖了这个名字的全部文件,包括压缩包、文件、指令等等

也就是说whereis:在系统特定路径下查找,既可以找到可执行程序,又可以找到手册,安装包压缩包之类的

四、grep指令

1.介绍

语法: grep [选项] 搜寻字符串 文件

功能: 在文件中搜索字符串,将找到的行打印出来

常用选项:

  • -i :忽略大小写的不同,所以大小写视为相同
  • -n :顺便输出行号
  • -v :反向选择,亦即显示出没有 ‘搜寻字符串’ 内容的那一行

2.使用

我们先生成一个10w个数字的文件

cnt=1;while [ $cnt -le 100000 ];do echo "Hello world $cnt";let cnt++;done > log.txt

然后我们可以看到这个文件大概有2M个字节

然后我们知道这个文件很多,如果我们想将其中包含9999的全部打印出来,我们就可以使用这个命令

所以grep其实就是一个行文本过滤工具

我们现在重新写一个小一点的文件方便我们后序观察

如果直接grep就是找到包含这个字符串的那一部分,如果加上-v选项,那么就是不包含这个字符串的那一部分

如果加上-n那么就会天然的给我们这个文件加上编号,注意我们这里由于找的是空串,所以全部都可以找得到

当然如果我们是nv的话,就什么也没有了

对于这个行号,它打印的时候,打印的是这个的行坐标不会从1开始,而是原来是多少行就是多少行

如果我们加上-i,就代表ignore,忽略大小写

我们还可以结合管道去打印

对于这个grep指令,当我们想要找到一个程序的main函数,尤其是大文件的时候,就非常好用

而且这个grep不仅仅可以找一个文件,我们可以在它后面跟很多个文件(注意空格隔开),只要可以匹配到,就会打印出来

但是要注意这个我们不可以直接跟一个目录,如果要跟目录的话,那么必须带上-R选项,也就是递归式找

而且这个grep也可以去找进程

五、zip/unzip指令

1.介绍

语法: zip 压缩文件.zip 目录或文件

功能: 将目录或文件压缩成zip格式

常用选项:

  • -r 递 归处理,将指定目录下的所有文件和子目录一并处理
  • unzip [被解压文件] -d [解压到目标目录]

2.zip的安装

有时候我们的linux系统上没有zip,所以我们需要安装一下

  • 首先我们以root方式登录,可以使用ssh/su/su-三种方式切换到root用户
  • 然后输入下面的指令
yum install -y zip unzip

然后linux就会自动安装zip了

3.使用

首先来说以下打包和压缩的概念

打包就是将所有的东西放在一起,而压缩就是将东西合理的摆放,挤压它的空间,使得占用的空间变小

那么为什么要打包和压缩呢?

能被打包压缩的,一定是一个整体,由多个文件–>一个文件–>不容器造成文件缺失。因为如果丢文件的话,如果打包压缩了,要么全丢要么不丢,不会像以前那样只丢一个两个,还得去找哪几个丢了

其次打包压缩,使得体积变小了,从而下载时间变短,存储占据空间变小。

所以有了以上两个理由,那么就有了很多的打包压缩工具。而linux也是需要打包压缩的,因为linux充当服务器的时候,也需要各种网络应用场景满足通讯的需求

而打包压缩的时候就由比如由zip/unzip,还有tar等

现在来简单的使用一下

如下所示是我们先创建一些文件

然后我们在file1和file4中写一些东西

如下所示,我们可以先这个将d1给压缩

然后我们使用mv将d1.zip挪到上级目录

然后我们对d1.zip进行解包,但是我们发现了一个问题,d1里面的东西都没有了,只有它一个目录,里面的东西都没有打上来

其实原因很简单,因为这个zip默认d1是一个文件只把它压缩了,如果这个d1是一个普通文件那就很舒服了,但这个d1是一个目录。所以打包的是错误的

我们先删掉我们压缩的,然后重新压缩,我们其实应该要带上-r选项,因为我们需要递归式压缩

然后我们将这个文件挪到上级目录,最后并进行解压缩。可以看到现在的就是正常的了

我们也可以看到,刚刚我们输入进去的东西也都是有的

上面是压缩一个目录的,如果是一个多个目录或者文件混合呢?很简单,我们只需要往后接着就可以了

然后我们进行解压缩

还有一种情况就是我们想要解压到指定的目录里面去。我们可以这样做

比如下面的场景,我们需要将d1.zip解压到test目录里面去

如下所示,我们也可以看到在解压的时候包括了test了,我们只需要加上-d选项就可以了

六、tar指令:打包解包,不打开它、直接看内容

1.介绍

tar [-cxtzjvf]文件与目录参数

  • -c :建立一个压缩文件的参数指令(create 的意思);
  • -x :解开一个压缩文件的参数指令!
  • -t :查看 tarfile 里面的文件!
  • -z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
  • -j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
  • -v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
  • -f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
  • -C : 解压到指定目录

2.使用

我们先检测一下是否安装了tar,一般来说都会安装的

输入

tar --version

像下面的就是已经安装了

像在linux中是有很多的打包压缩算法的,我们肯定是无法记住的

当我们不知道的时候,我们只需要去搜一下就可以了,只要记住最常用的就可以了

如下所示,我们还是将那三个文件给打包压缩,如下代码所示,这里的czf中,c代表的就是创造一个压缩文件,z代表的就是gizp压缩

tar czf code.tgz d1 log.txt test.c

如果我们使用tzf,那么就是预览,而不解压,如下所示

tar tzf code.tgz d1 log.txt test.c

后面跟着的文件就是我们想要预览的文件

如果我们想要解包的话

tar xzf code.tgz

所以说,下面就是我们上面的压缩三个操作

tar czf xxx.tgz a b c----打包压缩a、b、c变为xxx.tgz
tar tzf xxx.tgz a b ----预览xxx.tgz中的a、b,但不解压
tar xzf xxx.tgz ----解压xxx

我们需要注意的是上面tgz后缀其实是tar.gz的简写,.tar是打包后缀,.gz是压缩后缀。所以XXX.tgz == XXX.tar.gz

上面这是最常用的压缩解压方式。但是压缩方式有很多,如果遇到其他陌生的,都是类似的,我们直接搜索用法即可

对于上面的压缩方式,如果我们想要压缩到指定路径下,我们可以这样做,使用-C选项

tar xzf code.tgz -C ..

七、bc指令

bc指令其实就是一个计算器,如下所示,当我们输入bc以后,我们就可以输入我们想要运算的数字,然后就可以进行运算了

当我们想要退出的时候直接输入quit就可以了

如果是windows的话,我们可以输入calc指令,也可以进入计算器

对于bc也可以跟管道结合

八、uname -r指令

1.介绍

语法:uname [选项]

功能: uname用来获取电脑和操作系统的相关信息。

补充说明:uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息。

常用选项:

  • -a或–all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称

2.使用

如下所示,我们可以简单的去使用

我们也可以用uname -r来查

初次以外我们话可以看内存,使用free指令即可,后面的选项代表单位,kb,mb,gb等

也可以使用df -h指令去查磁盘

使用lscpu可以查cup

lsmem也可以查内存

九、一些重要的热键

[Tab],[ctrl]-c, [ctrl]-d

  • [Tab]按键—具有『命令补全』和『档案补齐』的功能
  • [Ctrl]-c按键—让当前的程序『停掉』
  • [Ctrl]-d按键—通常代表着:『键盘输入结束(End Of File, EOF 戒 End OfInput)』的意思;另外,他也可以用来取代exit

Tab的命令补全是这样的

当我们输入指令的前几个字母的时候,我们可以连续按两次Tab按键,这样的话如果已经可以唯一确定这个指令了,那么自动补全,如果不能那么就列举出可能的指令

如果我们什么也不输入,直接按两次Tab,那么可能会显示目前的所有指令的数量,注意是可能,因为有的机器不支持

还有一个热键是CTRL + R,它的作用是搜索历史中输入的指令,如下所示,我们输入while,就会显示这个我们之前用过的指令

我们可以使用history指令来查找我们之前用过的指令,不过这个一般会保存近1000多条,而且这个是可以修改的

文本编辑器nano

我们可以使用nano --version来查看我们是否装了nano,如果装了,会有下面的显示

如果我们没有装,我们可以直接去百度上搜索

yum -y install nano

我们可以直接使用root账号去安装一下,有了nano,就可以直接去在上面写一段代码

然后CTRL + X 然后Y,然后回车。

最后我们gcc test.c ,然后./a.out就可以了

十、关机

语法:shutdown [选项]

常见选项

-h : 将系统的服务停掉后,立即关机。

-r : 在将系统的服务停掉之后就重新启动

-t sec : -t 后面加秒数,亦即『过几秒后关机』的意思

如下所示,除了shutdown以外,我们还可以使用halt来关机,不过我们必须要root权限

其实Linux操作系统(作服务器),一般来说永远不关机

十一、一些其他的指令

◆安装和登录命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last;

◆ 文件处理命令: file、mkdir、grep、dd、find、mv、ls、diff、cat、ln;

◆ 系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab;

◆ 网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup;

◆ 系统安全相关命令: passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who;

◆ 其它命令: tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
2月前
|
Linux Windows
【Linux】-基本指令(下)
【Linux】-基本指令(下)
【Linux】-基本指令(下)
|
2月前
|
Linux
【Linux第一弹】- 基本指令
【Linux第一弹】- 基本指令
34 1
|
2月前
|
并行计算 Ubuntu Linux
Ubuntu学习笔记(三):Linux下操作指令大全
Ubuntu学习笔记,介绍了Linux操作系统中常用的命令和操作,如文件管理、系统信息查看、软件安装等。
47 3
|
2月前
|
Unix Linux 索引
【Linux】-基本指令(上)
【Linux】-基本指令(上)
|
2月前
|
Linux Shell Windows
Linux入门1——初识Linux指令
Linux入门1——初识Linux指令
31 0
Linux入门1——初识Linux指令
|
2月前
|
人工智能 Unix Linux
装杯 之 Linux指令
本文介绍了Linux操作系统的基本命令。首先欢迎各位进入Linux的世界,并展示了`ls`命令,用于列出目录下的文件和子目录。接着介绍了`pwd`命令,用于显示当前目录;`cd`命令,用于切换目录;`mkdir`命令,用于创建目录;`touch`命令,用于创建普通文件或修改文件时间戳;`rmdir`命令,用于删除空目录;以及`rm`命令,用于删除文件或目录。通过这些基本命令,你可以开始探索和管理Linux系统。
|
4月前
|
存储 人工智能 Ubuntu
Linux指令学习(一)
Linux指令学习(一)
|
4月前
|
安全 Unix Linux
【Linux】基本指令
【Linux】基本指令
|
4月前
|
存储 Linux 开发工具
【Linux】常见指令(下)
【Linux】常见指令(下)
|
4月前
|
存储 Linux 网络安全
【Linux】常见指令(上)
【Linux】常见指令(上)
下一篇
无影云桌面