Linux-基础指令-3

news2024/10/6 15:57:22

时间相关的指令

 date显示 

 date 指定格式显示时间:

date +%Y:%m:%d

例子:

 而上述中的 %Y %m %d ·· 等等这些中间可以用很多的符号来分割, 如:" - "  " _ " " : " ···等等这些都是可以的,但是空格是不行的,因为Linux当中认为用 空格 分隔的是指令。

 输出格式:

%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

设定时间

 我们可以使用一下代码输出时间戳:

date +%s

 时间戳的由来,由于各个地区时间不同,不同地区所在时区不同,当地的时间是不同的,而且互联网在进行交互的时候是很快的,为了实现时间的同一,创建了Unix时间戳,改时间戳是从 1970 年1月1日开始(UTC和GMT的午夜)开始所结经过的秒数,不考虑润秒。

 而且上述的时间戳是自增的,而上述的时间戳是,当前的时间转换的时间戳,我们还可以使用一下命令把 对应时间戳转化为 日期:

date -d @时间戳

 date -s  的用法:

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

cal指令

 查看Linux 当中的日历。

 命令格式:

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

 直接 cal  查看当前月份的日历:

 cal -3 查看当前月份前后月份,月份个数加起来3个月:

 cal 年份     查看输入年份的 全月日历:

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

 find指令

 -name 按照文件名查找文件

 命令格式:

find 目录 -name 文件名

可以在指定目录中以这个文件名寻找文件。

 上述我们在 usr 陆慕中寻找 pwd 这个目录,我们发现它报了 Permission denied 这个错,这个表示我们当前 普通用户没有权限访问这个文件。因为普通用户只能再 home 目录中自己的家目录中进行find操作,当在不在家目录中使用find 查询的时候就会报错。

find 查找文件,就是直接在磁盘文件当中好像查找。

 which 也可以查找,但是查找的是 在指令路径下,/usr/bin, 搜索指令文件;还有一种 whereis:在系统特定路径下,既可以找到可执行文件,又可以找到手册,安装包,压缩包等等的文件。

 grep指令

 行文本过滤工具:在文件中搜索字符串,将找到的行打印出来

语法: 

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

如果在指定文件中,没有搜索的字符串,就丢弃,如果有就打印在屏幕上。

 

 选项:

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

 -v:

 -n:

 -i:

 grep 也可以使用 管道 和其他指令进行联用:

 使用之后 grep 不用再带文件名了,因为管道前就是文件名。

 在源文件当中查找某个函数在第几行:

 而像上述的查找不仅仅可以查找一个,还可以查找多个文件,如果找到了,会把目录也打印到结果当中:

 可以使用 -R 在某一目录路径下,递归式的寻找字符串:

zip/unzip指令

 我们都知道 打包 压缩 和 解压 ; 之所以要 打包 压缩,因为能被打包压缩的就是 一个整体,不管其中有多少个文件,打包压缩之后都是一个文件,这样做就不容易丢失,像这种文件缺失的情况,如果是全部丢失其实还好,如果是比较大的文件比如是 10g 文件,其中丢了几个文件,那么我们就不太好查找我们缺失的是哪几个文件。而且打包压缩之后,这个文件的体积也会变少,体积大就会出现,下载时间变长,储存空间变大等等的问题。

语法:

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

现在我们创建了这个样一个目录(d1):

 现在我们直接把这个 目录使用 zip 命令压缩:

以上就是我们进行 压缩和 解压的过程,但是我们发现解压出来的文件夹只有 d1,这是因为,对于 zip 解压命令,如果我们不加选项,默认去压缩的话,它会把这个指定的目录当做是一个文件来压缩,那么他就只会压缩这个目录,如上述我们就使用默认的 zip 命令压缩,我们解压出来就只有这个 d1 这个目录。

 为了避免上述情况,我们可以使用 -r 递 归处理,将指定目录下的所有文件和子目录一并处理。

当然,我们可以一次压缩多个 文件或目录:

 当然我们在解压的时候,可以不进入其他路径,而解压到其他路径当中:

unzip 压缩文件名.zip -d 解压的目的地路径

 如上述就是把 d1.zip 当中的文件解压到 text 这个路径之下。

zip 和 unzip 这两个指令不一定是默认安装的,直接输入 zip 指令 如果出现一下报错就是没有安装:

 如果需要手动安装的话,首先需要登录 root用户 ,然后输入以下命令:

yum install -y zip unzip

然后就可以自动安装了。

 

 以上是在云服务器上的操作,其他环境需要自己查找安装方式。

进入 root 的方式,退出的话按下 ctrl + D 就可以退出。

 tar指令

  压缩和解压的方式有很多种,像上述的有 zip 的方式,还有 rar , 7z 等等很多种方式,所以我们使用 tar 指令就可以对多种压缩方式来进行 操作。

语法:

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

对应选项:

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

实例:

范例一:将整个 /etc 目录下的文件全部打包成为 `/tmp/etc.tar`
[root@linux ~]# tar -cvf /tmp/etc.tar /etc<==仅打包,不压缩!
[root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc <==打包后,以 gzip 压缩
[root@linux ~]# tar -jcvf /tmp/etc.tar.bz2 /etc <==打包后,以 bzip2 压缩
特别注意,在参数 f 之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。
如果加 z 参数,则以 .tar.gz 或 .tgz 来代表 gzip 压缩过的 tar file ~
如果加 j 参数,则以 .tar.bz2 来作为附档名啊~
上述指令在执行的时候,会显示一个警告讯息:
『`tar: Removing leading `/" from member names`』那是关於绝对路径的特殊设定。

范例二:查阅上述 /tmp/etc.tar.gz 文件内有哪些文件?
[root@linux ~]# tar -ztvf /tmp/etc.tar.gz
由於我们使用 gzip 压缩,所以要查阅该 tar file 内的文件时,就得要加上 z 这个参数了!这很重要的!

范例三:将 /tmp/etc.tar.gz 文件解压缩在 /usr/local/src 底下
[root@linux ~]# cd /usr/local/src
[root@linux src]# tar -zxvf /tmp/etc.tar.gz
在预设的情况下,我们可以将压缩档在任何地方解开的!以这个范例来说,
我先将工作目录变换到 /usr/local/src 底下,并且解开 /tmp/etc.tar.gz ,
则解开的目录会在 /usr/local/src/etc 呢!另外,如果您进入 /usr/local/src/etc
则会发现,该目录下的文件属性与 /etc/ 可能会有所不同喔!

范例四:在 /tmp 底下,我只想要将 /tmp/etc.tar.gz 内的 etc/passwd 解开而已[root@linux ~]# cd /tmp
[root@linux tmp]# tar -zxvf /tmp/etc.tar.gz etc/passwd
我可以透过 tar -ztvf 来查阅 tarfile 内的文件名称,如果单只要一个文件,
就可以透过这个方式来下达!注意到! etc.tar.gz 内的根目录 / 是被拿掉了!
范例五:将 /etc/ 内的所有文件备份下来,并且保存其权限!
[root@linux ~]# tar -zxvpf /tmp/etc.tar.gz /etc
这个 -p 的属性是很重要的,尤其是当您要保留原本文件的属性时!

范例六:在 /home 当中,比 2005/06/01 新的文件才备份
[root@linux ~]# tar -N "2005/06/01" -zcvf home.tar.gz /home

范例七:我要备份 /home, /etc ,但不要 /home/dmtsai
[root@linux ~]# tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc

范例八:将 /etc/ 打包后直接解开在 /tmp 底下,而不产生文件!
[root@linux ~]# cd /tmp
[root@linux tmp]# tar -cvf - /etc | tar -xvf -
这个动作有点像是 cp -r /etc /tmp 啦~依旧是有其有用途的!
要注意的地方在於输出档变成 - 而输入档也变成 - ,又有一个 | 存在~
这分别代表 standard output, standard input 与管线命令啦

但是,其实主要运用只有 三种,如下:

tar czf xxx ----    #打包压缩
tar tzf xxx.tgz ----  # 预览
tar xzf xxx.tgz ----  #压缩解包

上述中 c 的意思是 打包,z 是 以 zip 的方式压缩打包 , f 后面紧跟的就是包名,t 就是 预览,预览就相当于是我们在windows 当中双击某个 压缩文件,打开一个目录,这个目录中有这个压缩文件中的压缩的所有文件,但是此时并没有对这个压缩文件进行 解压操作,只是查看。而 x 就是解压操作。上述的 tgz 是 tar.gz    的缩写,而 这里 t 代表的是 tar 是打包后缀,gz 代表的是压缩后缀。

 像上述我我们使用的 都是 像 cxf 这样的选项,使用 -cxf 这样的方式也是可以的,但是有些 Linux 的环境可能不支持。

 tar -C 打包压缩到指定路径:

tar cxf xxx.tgz -C 目标路径

 使用上述的方式就可以把 打包压缩文件到指定 目录下。 

 关于 tar 和 zip 的使用建议:

 如果我们打包压缩的文件就只是在 Linux环境下使用,那么建议使用 tar 命令;如果我们想在 Linex 当中打包压缩的文件在 windows 环境下也能识别,那么我们可以使用 zip 来进行打包压缩。但是其实现在 windows 中已经有很多的软件可以识别很多的 打包压缩的方式了,所以我们使用单单使用 tar 也行。

 bc 指令

 相当于是 Linux 当中的 计算器,他可以很轻松的进行 浮点运算。

我们可以直接输入 bc ,那么他就相当于是 计算器了,我们输入一个表达式,回车他就可以帮我们输出结果:

 退出就输入 quit 就行。

 当然也可以使用管道:

 name指令

uname用来获取电脑和操作系统的相关信息。
uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息

我们一般是使用 -a 选项来 输出详细的全部信息:

 如上,依次输出的是:

内核名称,主机名,内核版本号,内核版本,硬件名,处理器类
型,硬件平台类型,操作系统名称

 

 几个快捷键([Tab],[ctrl]-c, [ctrl]-d)

 【tab】键:指令的快速补全。

 如上图,我们想补全which 指令,那么我们需要输入 whic 之后 在按下 【tab】键,他就会自动补全。如果只输入 w     wh     whi   ,按下两次【tab】键之后就会在屏幕上显示这个关键字的相关指令,如上图所示。

我们还可以只按下两次 【tab】 键来直接查看全部的指令,并显示当前 系统中有多少个 命令:

【ctrl + r】 :历史命令搜索,我们按下 【ctrl + r】在输入相关的命令,就会出现我们之前写过的这个命令的相关命令:

 也就是说,我们在Linux 当中输入的命令不是输入了就输入了,他会在一个文件当中保存这些命令,我们使用 history 这个命令就可以查看我们之前使用过的命令:
 

在Linux当中默认是会记录 1000 条最新的命令,因为是储存在文件当中,所以,如果我们退出了 当前操作系统,在进入这个命令历史也会记录。 

【ctrl + c】:结束当前异常进程。

【ctrl + d】:退出当前模块,比如我们在 nano中修改文件,我们就可以直接使用  【ctrl + d】退出当前进程,他相当于是在键盘上输入 结束(End Of File, EOF 戒 End OfInput)的意思。我们可以一直按 【ctrl + d】退出当前用户,在按【ctrl + d】退出xshell。

 nano

 Linux 当中记事本,

语法:

nano 文件名

使用 nano --varsion 命令查看 nano 命令是否在当前Linux 操作系统之下安装,如果没有安装,输入以下命令自动安装:

yum install -y nano

在使用 nano 文件名  就能进入这个文件,对这个文件进行修改:

 

 使用ctrl + 上图中字母就可以实现对应操作。

我们使用 ctrl + x 退出,此时他会问我们是否保存,我们选 y :

 关机指令  (shutdown)

 我们可以输入这个指令来进行关机的操作。

语法:

shutdown [选项] ** 常见选项:**

相关选项:

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

需要注意 的是 Linux 操作系统(服务器),是永远不关机的,如果主机关了,那么其他的【普通用户】就不能再使用这个 Linux 操作系统了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/529825.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

5月份了,不会还有人没找到工作吧.....

前两天跟朋友感慨&#xff0c;去年的铜九铁十、裁员、疫情导致好多人都没拿到offer&#xff01;现在都已经5月了&#xff0c;金三银四都结束一段时间了。 金三银四都已经结束&#xff0c;大部分企业也招到了自己需要的人&#xff0c;但是我看我的读者们还是有很大一部分人在抱…

算法套路十六——DP求解最长递增子序列LIS

算法示例&#xff1a;LeetCode300. 最长递增子序列 给你一个整数数组 nums &#xff0c;找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列&#xff0c;删除&#xff08;或不删除&#xff09;数组中的元素而不改变其余元素的顺序。例如&#xff0c;[3,6,2,7] …

品优购项目学习记录02-main主体盒子搭建,推荐模块

文章目录 一、main主体盒子搭建1.1 newsflash新闻快报模块1.1.1 news新闻模块1.1.2 lifeservice生活服务模块1.1.3 bargain模块 二、推荐模块 一、main主体盒子搭建 1.main盒子宽度为980像素&#xff0c;位置距离左边220px(margin-left)&#xff0c;给高度就不用清除浮动 2.mai…

桂院校园导航小程序 云开发项目 二次开发教程 1.0.1

Gitee代码仓库&#xff1a;桂院校园导航小程序 GitHub代码仓库&#xff1a;GLU-Guide 先 假装 大伙都成功安装了云开发项目&#xff0c;并能在 微信开发者工具 和 手机 上正确运行。 接着就是 将项目 改成自己的学校。 代码里的注释我就不说明了&#xff0c;有提到 我的学校…

vue 引入图片的问题

文章目录 为什么使用require自己讲解实例 - src下 - img验证 实例 - public下 - 绝对路径 - img报错&#xff0c;其中 imgurl5、imgurl6 找不到资源&#xff01;个人猜想&#xff1a; 去掉 imgurl5、imgurl6 再次运行&#xff08;开发环境&#xff09;&#xff1a;去掉 imgurl5…

EF Core Build failed. Use dotnet build to see the errors.

Build failed. Use dotnet build to see the errors. 今天学习abp框架用到EF Code First时&#xff0c;报出上述错误。 在网上查了很多资料。 dotnet build D:\Practice\abp\SourceCode\BookStore\src\Acme.BookStore.EntityFrameworkCore\Acme.BookStore.EntityFrameworkCor…

Stable Diffusion webui安装使用

参考&#xff1a; https://stability.ai/blog/stable-diffusion-public-release https://github.com/AUTOMATIC1111/stable-diffusion-webui 安装&#xff08;6g显存&#xff09; 1、conda创建python 3.10.6环境 conda create -n stable-diffusion pythonpython 3.10.6 也安装…

【axios】axios的完整配置

注意&#xff1a;本文实例化为TS版 1、axios概念 axios 是一个基于 promise 封装的网络请求库&#xff0c;它是基于 原生XHR 进行二次封装&#xff0c;可以说是 XHR 的一个子集&#xff0c;而 XHR 又是 Ajax 的一个子集 特点 从浏览器中创建 XMLHttpRequests从 node.js 创建…

C/CPP安装pthread教程;#include<pthread.h>无法引入该文件的解决方法;引入pthread后报错

在开发c及cpp的多并发程序时&#xff0c;常常会用到pthread.h头文件&#xff0c;但是pthread是需要自行安装的&#xff0c;下面就是在Windows平台使用Visual Studio安装pthread的教程。 1.下载并解压pthread库 在POSIX Threads for Windows - Browse Files at SourceForge.ne…

Unity 四元数

前言&#xff1a;在场景中&#xff0c;可以用旋转工具改变物体角度&#xff0c;也可以在Inspector窗口中改变物体的X、Y、Z值&#xff08;欧拉角&#xff09;来改变物体角度。 虽然用欧拉角表示角度和旋转&#xff0c;但一般人想不到&#xff0c;物体在三维空间的旋转并不是一…

TouchGFX开发(3)----触摸屏幕组件点亮LED

TouchGFX开发.3----触摸屏幕组件点亮LED 概述生成例程配置时钟树开启调试接口移植SSD1306配置调试开启TouchGFX设置屏幕刷新率配置TouchGFXTouchGFX代码配置编译实际效果 概述 TouchGFX是一种先进的软件框架&#xff0c;用于开发嵌入式图形界面(GUI)。借助其特性&#xff0c;…

一个非奇异快速终端滑模控制(NTSM)实例及仿真

一、被控对象 考虑这么一个被控对象 J θ ( t ) u ( t ) d ( t ) J \ddot\theta(t) u(t) d(t) Jθ(t)u(t)d(t) 其中&#xff0c; J J J 为转动惯量&#xff0c; θ \theta θ 为角度&#xff0c; u u u 为控制量&#xff0c; d d d 为扰动&#xff0c;且 d ( t ) < …

vue diff算法与虚拟dom知识整理(7) 根据init.ts源码简单梳理patch都做了些什么

之前我们也见证了 diff算法 的强大 但他 只有确认是同一个节点才做对比 如果不是就直接暴力拆卸了 我们打开我们的案例 找到 node_modules 下面的snabbdom/src下面的 init.ts文件 init.ts 拉到最下面 我们就可以看到这个返回的patch函数 patch相比于他的功能 代码算比较少的…

LeetCode高频算法刷题记录1

文章目录 1. 无重复字符的最长子串【中等】1.1 题目描述1.2 解题思路1.3 代码实现 2. 反转链表【简单】2.1 题目描述2.2 解题思路2.3 代码实现 3. LRU 缓存【中等】3.1 题目描述3.2 解题思路3.3 代码实现 4. 数组中的第K个最大元素【中等】4.1 题目描述4.2 解题思路4.3 代码实现…

吴恩达OpenAI最新课程:prompt-engineering-for-developers读书笔记

文章目录 一、前言二、Prompt编写原则2.1 环境配置2.2 编写清晰、具体的指令2.2.1 使用分隔符2.2.2 结构化输出&#xff08;JSON、HTML等&#xff09;2.2.3 要求模型检查条件是否满足2.2.4 提供少量示例&#xff08;Few-shot Prompting&#xff09; 2.3 指导模型思考2.3.1 指定…

未来工业维护:探索数据分析与机器学习的融合之路

随着工业领域相关技术的不断发展&#xff0c;预测性维护作为一种先进的维护策略&#xff0c;正日益受到企业的重视。预测性维护的核心目标是通过准确预测设备故障的发生时间&#xff0c;实现及时维护和优化生产效率。而在实现这一目标的过程中&#xff0c;数据分析和机器学习的…

FreeRTOS:任务状态和信息查询

目录 一、任务相关 API函数预览二、任务相关API函数详解2.1uxTaskPriorityGet()2.2vTaskPrioritySet()2.3uxTaskGetSystemState() ※※※※※2.4vTaskGetInfo() ※※※※※2.5xTaskGetApplicationTaskTag()2.6xTaskGetCurrentTaskHandle()2.7xTaskGetHandle()2.8xTaskGetIdleTa…

教你用JMeter做接口测试的几个简单实例

目录 前言 1、登录&#xff08;POST&#xff09; 登录 2、获取学生信息&#xff08;GET&#xff09; 获取学生信息 3、添加学生信息&#xff08;POST&#xff0c;JSON&#xff09; 添加学生信息 4、学生充值金币&#xff08;POST&#xff0c;Cookie&#xff09; 学生金…

【Linux】11. 进程控制

小实验(谨慎测试) 1. 进程退出码的引出 2. 进程码的使用 3. 进程退出 3.1 进程退出情况 进程退出分三种情况&#xff1a; 1.代码运行完毕&#xff0c;结果正确 – return 0; 2.代码运行完毕&#xff0c;结果不正确 – 根据退出码判断错误情况 3.代码没有运行完毕&#xff0c;…

如何0基础自学黑客(网络安全)技术,万字长文教你如何学习黑客(网络安全)

一、自学网络安全学习的误区和陷阱 1.不要试图先成为一名程序员&#xff08;以编程为基础的学习&#xff09;再开始学习 我在之前的回答中&#xff0c;我都一再强调不要以编程为基础再开始学习网络安全&#xff0c;一般来说&#xff0c;学习编程不但学习周期长&#xff0c;而…