自学内容网 自学内容网

【Linux】Linux基本指令3

目录

1.date指令

2.cal指令

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

4.grep指令——行文本过滤工具

5.zip/unzip指令:

6.tar指令(重要):打包/解包,不打开它,直接看内容

7.bc指令:

8.uname –r指令:

9.重要的几个热键[Tab],[ctrl]-c, [ctrl]-d

10.关机

 11.shell命令以及运行原理


本节开始我们使用普通用户的账号来学习linux,不能使用root账号,本专栏后面的学习都是用普通账号

下面开始正式开始

我们先来了解一下日志

日志:在日常生活中,日志是指类似日记的日常记录。随着互联网的迅猛发展,日志被越来越多地用于指代机器数据。

机器数据通常由系统或程序自己产生。

程序开发者为监控程序执行过程,会让程序在执行完一步或几步操作后输出相应的执行结果,该结果通常会记录系统或程序在什么时间、哪个主机、哪个程序上执行了什么操作及出现了什么问题等信息,这些信息被称为机器数据,即日志(Log)。

当系统、程序或硬件设备出现原因不明的错误或故障时,通过查看日志能够快速定位错误或故障的原因

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

1.date指令

data是用来显示时间的

date 指定格式显示时间:

 date +%Y:%m:%d

date 用法:

date [OPTION]... [+FORMAT]

1.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

我们看几个例子 

分隔符是可以自己设置的,不能是空格

我们再看看几个例子 

1.2.在设定时间方面——要root账号

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

1.3.时间戳

什么是时间戳?

时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数 。

时间戳是使用数字签名技术产生的数据,签名的对象包括了原始文件信息、签名参数、签名时间等信息。时间戳系统用来产生和管理时间戳,对签名对象进行数字签名产生时间戳,以证明原始文件在签名时间之前已经存在。

由此而知——时间戳只会单调递增,这在计算机世界里是非常重要的

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

我们看看时间戳

 我们也能把时间戳转换成年月日

我们加点要求

 依次类推

这个是北京时间哦!!我们看上面时间戳的概念 

有人就想问了,这个时间戳会溢出吗?

2.cal指令

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

命令格式:

cal [参数][月份][年份]

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

常用选项:

举例:

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

我们看看

可以直接查看任意一年全年的日历

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

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

语法:

 find pathname -options

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

常用选项:

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

 

我们使用find从家目录开始递归式的查找名字叫test.c的文件 

~是家目录的意思哦 

我们可以从家目录开始递归式寻找文件格式是.c的文件

 依次类推,各种也能找

我们也能使用find查找指令

 我们不知道具体的文件夹,我们可以像下面这样搜索

Permission denied是个问题,这个是普通用户的权限问题,系统不让你查

用root账号就不会有这种问题 

find很重要,我们可以使用man find去了解更多的

 which也是查找,在系统的指令路径下进行指定的搜索

/usr/bin

它是专门用来搜索指令的

whereis也是查找

 它是介于find和which之间,它可以在系统特定路径下,既可以找到可执行程序,又可以找到安装包,压缩包等

4.grep指令——行文本过滤工具

grep参考文档:linux grep命令详解 - ggjucheng - 博客园 (cnblogs.com)

语法:

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

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

常用选项:

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

为了演示这个效果,我们先创建一个大文件 

100000个数字!!!!!!

我们使用这个去查找,要查到猴年马月

我们就可以使用grep指令了

 

所有带9的都给你找出来了 

我们加几个9

我们继续展示一下

-v是反转的意思

 

 -n就是打印行数

 -i是忽略大小写

这个可以跟管道结合起来写

 grep的用处举例

5.zip/unzip指令:

我们先来了解打包和压缩

 打包和压缩

打包:

压缩

为什么要打包和压缩?

Linux充服务器的时候,也需要使用打包压缩的知识 

 语法:

zip 压缩文件.zip 目录或文件

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

常用选项:

  • -r : 递归处理,将指定目录下的所有文件和子目录一并处理 

 我们先做准备

我们直接把这个d1打包

在此之前,我们要确保我们的系统配置了zip

要去root账号里安装哦!!!!

sudo yum install zip

这个是安装zip指令的安装指令

我们当前在普通用户,怎么快速的切换root账号?

很简单,注意要输入密码

我们怎么退回去普通用户呢?

 我们把它放当上级目录里去

我们现在开始将它解压 

我们解压出来的只有d1这个文件夹,它麾下的目录全没有复制过来

那怎么办呢? 

 

不就成功了吗!!! 

如果我们想把108_class和d1.zip一起压缩进去,只需要再写这个即可

这个时候这个zip就有这么多文件了 

我们还可以指定解压路径

6.tar指令(重要):打包/解包,不打开它,直接看内容

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

案例:

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

我们以下面这个为例子

我们可以使用tar来打包和压缩

打包和压缩的后缀格式非常多

指令很多——我们不必记住所有指令,我们只需在要用的时候去查即可

我们只讲最常用的

 这个就是将d1目录,log.txt,test.c文件打包成一个code.gz格式的文件

我们直接解压 

我们只讲3种组合

打包成tgz的后缀

tar czf XXX      ——打包压缩
tar tzf XXX.tgz      ——预览
tar xzf XXX.tgz    ——解压解包

 我们要记忆住这3种即可

我们只需要知道这个后缀格式即可,不够用的再去搜

默认情况下,tar是解压在当前目录下。

我们可以指定解压路径

我们在解压指令后面加-C选项就可指定解压路径

7.bc指令:

这个就是linux的计算器

bc命令可以很方便的进行浮点运算 

 可以配合echo使用

8.uname –r指令:

语法:

uname [选项] 

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

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

常用选项:

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

查系统版本——和windows的差不多

 

x86_64和x64是一样的 

我们可以查磁盘的情况

9.重要的几个热键[Tab],[ctrl]-c, [ctrl]-d

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

 这些是特别常用的

我们先讲tab键——命令补全

我们输入w,然后就按Tab键,就有下面这样子

我们再试试 

我们输入下面那个,然后按tab键 

按下tab键发现它直接给我们补全了 

我们看看ctrl+r——历史命令搜索

我们直接点击ctrl+r

我们随便输入一个a,就发现了 

 

我们还可以通过history指令来搜索历史指令

Linux默认记录最新的1000条

ctrl+c——程序终止 

上面的搜索界面,我们可能担心出不来

我们可以直接按ctrl+出来

 ctrl+d——退出

我们可以直接ctrl+d,然后我们就回到云服务器登录界面了

再ctrl+d直接关闭了Xshell 

10.关机

Linux操作系统(我指的是服务器),永不关机 

语法:

shutdown [选项] **

常见选项:

  • -h  : 将系统的服务停掉后,立即关机。
  • -r: 在将系统的服务停掉之后就重新启动
  • -t seconds : -t 后面加秒数,亦即『过几秒后关机』的意思

 这里我们不做演示,懂得都懂

以下命令作为扩展:

  • 安装和登录命令: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。

这些我们在后续学习过程中会讲 

 11.shell命令以及运行原理

Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“ ,但我们一般用户,不能直接使用kernel。 而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。

如何理解?为什么不能直接使用kernel?

我们所有的指令,最终都要在OS内部运行,但是直接使用OS难度非常高,我们用户不能直接和操作系统打交道,我们只能通过命令行来进行交互,和OS沟通的之间的桥梁就是命令行解释器 

指令——>命令行解释器——>os 

命令行解释器存在的意义:

  • 进行命令行解释
  • 保护OS,对于用户的非法请求,直接拦截 

命令行解释器是个统称

在Linux下叫    命令行,bash/sh,   shell

在Windows下叫   图形化界面 

从技术角度,Shell的最简单定义:命令行解释器(command Interpreter)主要包含:

  • 将使用者的命令翻译给核心(kernel)处理。
  • 同时,将核心的处理结果翻译给使用者。

对比windows GUI,我们操作windows 不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的 操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序)。

shell 对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运 行出结果,通过shell解析给用户。

帮助理解:

  • 如果说你是一个闷骚且害羞的程序员,那shell就像媒婆,操作系统内核就是你们村头漂亮的 且有让你心动的MM小花。你看上了小花,但是有不好意思直接表白,那就让你你家人找媒婆帮你提 亲,所有的事情你都直接跟媒婆沟通,由媒婆转达你的意思给小花,而我们找到媒婆姓王,所以我们叫 它王婆,它对应我们常使用的bash。

指令运行的原理

我们这里只简单的了解了解它

zs_108是用户名,@后面是主机名,再后面的~是当前目录,$+后面是命令行提示符

上面的这些一起叫做bash命令行

我们输入指令的过程本质就是输入字符串

到后面我们学习的进程的知识之后我们就会指到,上面一条指令的执行就是一个进程

指令的本质就是编译好的可执行程序

到这里,我们指令的学习暂告一段落,我们在后面的学习中会慢慢的学习更多的指令


原文地址:https://blog.csdn.net/2301_80224556/article/details/139310904

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!