持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第16天,点击查看活动详情
前言
开始Linux指令学习了,本文就来分享一波笔者的学习经验和心得,本文系第三篇。
笔者水平有限,难免存在纰漏,欢迎指正交流。
Linux基本指令(三)
时间相关的指令
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
不能加空格,因为linux下空格用来区分选项。
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的午夜00:00)开始所经过的秒数,不考虑闰秒
用于日志记录时间,方便存储,由于是线性递增的,也便于范围查找。
为什么是08而不是00是根据云服务器所在地时间的,这里是北京时间。
时间的重要性:
因为时间戳是要用变量来存储的,那随着时间的递增,变量是不是就有可能装不下了?那怎么办?换个更大的变量去装吗?那全球是统一时间戳的,那么多台机器要进行更改的话得多麻烦多耗时?万一在修改的空档期时间戳溢出的话,会造成十分严重的后果,交通调度、金融贸易、银行服务等等都会受到严重冲击。
Cal指令
cal命令可以用来显示公历(阳历)日历。公历是现在国际通用的历法,又称格列历,通称阳历。 “阳历”又名“太阳 历”,系以地球绕行太阳一周为一年,为西方各国所通用,故又名“西历”
命令格式: cal 参数 月份 年份
功能: 用于查看日历等时间信息,如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份
常用选项:
-3 显示系统前一个月,当前月,下一个月的月历
-j 显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)
-y 显示当前年份的日历
只有一个参数,则表示年份
有两个参数,则表示月份和年份
find指令(灰常重要)
Linux下find命令在目录结构中搜索文件,并执行指定的操作。
Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下,不过我们这里先了解一下基本用法。
即使系统中含有网络文件系统(NFS), find命令在该文件系统中同样有效,只你具有相应的权限。
在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)。
语法: find pathname -options filename
功能: 用于在文件树中查找文件,并作出相应的处理(可能访问磁盘,进而导致效率低下)
常用选项: -name 按照文件名查找文件
这是一个“大力出奇迹”的指令,你要它找它就实实在在地去找。
指令执行的时候访问的一般不是文件本身,而是加载到内存中的文件信息,在一开始就已经把根目录之类的目录结构载入内存了,不过可能存在成百上千的文件,不太可能一次性把所有文件信息都加载到内存中,一般把重要的先加载,所以find指令其实有可能在内存中找不到某个文件的信息,这时它就会去访问磁盘,硬是要把文件找出来(所有同名文件),还会把寻找所经历的路径显示出来。
grep指令
语法: grep [选项] 搜寻字符串 文件
功能: 在文件中搜索字符串,将找到的行打印出来
说明: 文本内容的行过滤工具,默认情况下会匹配文本中的关键字,匹配上的就进行行显示。
常用选项:
-i :忽略大小写的不同,所以大小写视为相同
-n :顺便输出行号
-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行
grep可以和其他命令结合管道来进行某些匹配工作。
wc -l 可以进行行数统计
sort 可以对文本内容进行排序打印,以行为单位,依据ASCII码值大小进行排序(类似于C语言中字符串比大小)。
uniq 可以对文本内容以行为单位去重打印,不过只限于相邻两行。
这时候就可以先sort排序后再uniq去重:
注意:sort和uniq并不会实际改变文件内容。
zip/unzip指令
语法: zip 压缩文件名.zip 要被压缩的目录或文件
功能: 将目录或文件压缩成zip格式
常用选项:
-r 递归处理,将指定目录下的所有文件和子目录一并处理(zip)
-d 解包解压到指定路径下(unzip)
为什么要打包和压缩呢?
各种资源、程序等东西通常包含多个大小文件,打包不易丢失文件而且方便网络传输,压缩的话可以提高传输效率,简而言之就是便于传输和保存。
tar指令(重要)
用于打包/解包
语法: tar [参数] 文件与目录
参数:
-c :建立一个压缩文件的参数指令(create 的意思);
-x :解开一个压缩文件的参数指令!
-t :不打开文件而直接查看 tarfile 里面的文件!
-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
-v :压缩/解压的过程中同步显示压缩文件列表!这个常用,但不建议用在背景执行过程!
-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
-C : 解压到指定目录
案例:
-czf 创建一个基于gzip算法压缩的文件
-xzf 解压一个基于gzip算法压缩的文件(到当前目录下)
-xzvf 基于上面的解压,显示解压过程
-czvf 基于上面的压缩,显示压缩过程
-tf 不解开压缩包而浏览里面的文件
加上-C可以把压缩包解压到指定目录下
bc指令
bc命令可以进行浮点运算,只是简单提一下。
uname –r指令:
语法: uname [选项]
功能: uname用来获取电脑和操作系统的相关信息。
补充说明: uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息。
常用选项:
-a或–all 详细输出所有信息,依次为内核名称,主机名,内核版本号,硬件名,处理器类型,硬件平台类型,操作系统名称
-r 查看体系结构
重要的几个热键
[Tab]按键:具有『命令补全』和『档案补齐』的功能
输入一个命令可以用tab键自动补齐,而且还可以查看可能的补齐命令
[Ctrl] c按键:让当前的程序『停掉』——用来终止前台的异常程序(比如程序跑起来发现死循环了可以无脑ctrl c)
[Ctrl] r按键:搜索历史命令(根据提供的命令片段)
[Ctrl] d按键:退出当前用户,退出一层。
通常代表着『键盘输入结束(End Of File, EOF 戒 End OfInput)』的意思;另外,也可以用来取代exit来退出。
关机
语法: shutdown [选项]
常见选项:
-t sec : -t 后面加秒数,即『过几秒后关机』的意思
这个就不演示了(😓)。
补充指令
lscpu:查看cpu信息。
lsmem:查看内存信息。
df -h:查看磁盘使用情况。
who:查看当前Linux系统的在线用户。
以上就是本文全部内容,感谢观看,你的支持就是对我最大的鼓励~