Linux入门(一)(下)

简介: Linux入门(一)

前面已经提到,touch也可以改变文件的时间,那么touch指令改变的是哪个时间呢?答案是:三个时间都会改变。

mkdir指令

主要功能就是在Linux下用于创建空目录。

语法: mkdir [选项] dirname…

功能: 在当前目录下创建一个名为 “dirname”的目录

常见选项:

-p, --parents 可以建立一个路径。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录

rmdir指令 && rm 指令

rmdir指令

语法: rmdir [ -p ] [dirName]

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

功能: 删除空目录,只能删除空目录

常用选项

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

随后我又新建了一个空目录c,再使用rmdir指令,这次很明显删除成功了

当我们使用rmdir指令时总能看到这样的提示:

没关系,Linux下还有一个更好用的删除指令那就是:rm,这个指令可以删除文件或目录。

rm指令

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

适用对象: 所有使用者

功能: 删除文件或目录

常用选项

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

-i 删除前逐一询问确认

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

前面已经提到过,几乎所有的操作系统文件目录的组织结构都是一棵多叉树,根据我们前面学习树形结构的经验可以知道,递归几乎贯穿二叉树的始终。因此在这里我们也使用:rm -r(递归删除),可以直接从将一整个目录删除,无论这个目录中有多少个文件或目录

这里可以看到,很顺利的将a目录删除了,但是在删除期间操作系统一直询问我们是否要删除该文件(y代表是,n代表否),如果这个目录下有一万个文件,难道我要输入一万个y或者n吗?当你不想让操作系统询问时,可以再带上”f“选项,表示强制递归删除。

可以看到,这次删除时操作系统没有再问我们是否确定要删除文件。我们之前说过” / “也是目录,那么是否可以有 “ rm -rf / ”的操作出现呢?前面说过” /“是根目录,所有文件或目录的绝对路径都是从根目录中开始的,这意味着,当你输入这个操作并按下回车以后,你操作系统中所有文件都将被删除,包括系统文件,随后你的操作系统就会挂掉。这里强调,不可以写“ rm -rf /”或者“ sudo rm -rf /”这样的代码。

话都说到这里了,我们都知道删库跑路这个梗。可是如果当你真的不小心在Linux下执行了该操作,特别是你有root权限时,删掉的不只是你的数据,更有公司的用户数据,这个时候你想跑路都不见得能跑掉。因为Linux不像Windows那样有回收站,一旦删除再想恢复的成本实在过于巨大。删掉了公司的用户数据致使公司蒙受损失,那就只能承担责任。这也是为什么你在删除文件时操作系统总要问你是否确认删除,这是操作系统在免责。但是,如果你作为一个实习生不小心删掉了公司的数据,那这只是你的责任吗?答案是否定的,这只能说明你是第一责任人,除了你之外,包括你的上司和公司的权限设置人也要承担责任,因为你作为一个实习生,本不该有这么高的权限。


man指令

Linux有很多命令参数,这些命令我们很难完全记住,当我们忘记某个命令的用法时就可以通过查看联机手册来获取信息。

语法: man [选项] 命令

常用选项:

-k 根据关键字搜索联机帮助

-num 只在第num章节找

-a 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当按下q退出,他会继续往后面搜索,直到所有章节都搜索完毕

可以看到printf后面跟着一个数字,这个数字代表的是这个联机手册的章节,手册的各个章节代表:

-数字 -意义
1 普通命令
2 系统调用
3 C语言库函数
4 设备或特殊文件
5 文件格式和规则
6 游戏及其他
7 宏、包及其他杂项
8 系统管理员相关的命令

1.man指令是需要安装的,安装命令:“ yum install -y man-pages",且只能由root用户安装。

2.如果man指令不带数字,也就是不指定章节,会默认从第一章节开始查找,如果指定章节则会直接从该章节中查找。

3.前面说了Linux是由C语言实现的,因此Linux中是可以直接查询C语言的库函数的,如果要查其他语言则需要现在Linux中安装,不过还是建议直接去各大语言官网中查询。

4.man手册其实有汉化版,不过目前只能汉化一号章节,而且我也不建议各位使用汉化版,作为一个程序员,看英文文档是我们逃不过的命运,所以还是接受吧。

5.在进入手册之后,按下”q“键退出。

cp指令

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

功能: 复制文件或目录,相当于Windows下的复制粘贴。

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

常用选项

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

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

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

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

复制不重名文件:


复制重名文件:

dir是刚创建出来的空目录,将1.10.txt这个文件复制到该目录下很明显的成功了,但如果在dir目录下已经存在1.10.txt文件的前提下,再将该文件复制一次呢?

发现操作系统只是询问了我一下,当我再输入”y“时,原文件便被覆盖了。如果我们不希望操作系统向我询问可以带上”-f“选项,这一点和” rm“指令是一样的。


复制目录:

cp指令和rm指令有诸多相似,当我需要复制目录或多个文件时,需要带” -r “选项递归复制。并且因为cp指令时复制指令,因此是不影响原文件的。

mv指令

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

功能: mv 是 move 的缩写,可以用来移动文件或者将文件改名(move (rename) files),相当于Windows下的剪切。

前面提到Linux下是没有回收站的,删了就是真的删了。但其实可以利用shell脚本将rm指令改造成类mv指令,从而达到类似于回收站的功能。

常用选项

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

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

这里可以看出cp指令和mv指令的区别,cp指令只是复制粘贴并不影响原文件,而mv指令会改变原文件所处的路径。这点从指令名称中也可以看出,cp其实是copy的缩写,mv却是move的缩写,所谓move就是要移动的。

目前已经有了类似于Windows下的复制粘贴和剪切功能了,那重命名是怎么个说法呢?其实mv指令也是可以重命名文件的:

补充:

  1. 视mv命令中第二个参数类型的不同(是目标文件还是目标目录), mv命令将文件重命名或将其移至一个新的目录中。
  2. 当第二个参数类型是文件时, mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
  3. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个, mv命令将各参数指定的源文件均移至目标目录中 。

cat指令

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

功能: 查看目标文件的内容,将文件中的内容从上到下全部显示到终端(屏幕)上

其实还有一个tac指令,tac指令和cat指令不但名字相反,打印出来的内容顺序也是相反的,tac指令是逆向打印。

常用选项

-b 对非空输出行编号

-n 对输出的所有行编号

-s 不输出多行空行

拓展:

在讲解cat指令前,先讲一个echo指令,这个指令主要用于打印字符或者回显,当echo配合’’ > (重定项指令)''使就可以往一个文件中写入内容,如果该文件不存在,则会建立该文件。

前面说cp指令对于同名文件是覆盖粘贴的。如何证明?

为了方便解下来的演示,我先用shell脚本快速生成一万条“hello Linux"并将其重定向到test.txt文件中

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

可以使用cat指令查看是否生成成功:

可以看到是生成成功了,但是cat指令这样加载方式,不太适合去查看大文件。除此之外,对于查看文件内容我们更趋向于使用nano/vim,这里说一下nano,第一次使用nano指令需要安装(安装命令:yum install -y nano ),nano后我们会进入一个这样的界面

注意在nano查看文件时,我们不能使用鼠标滚轮来上下查看,而是应该使用上下键。当你想要退出nano是要使用CTRL+x键。

more指令

前面说cat指令并不适合查看大文件,那么是否存在一个指令适合查看大文件?答案是肯定的,这个指令就是more指令。

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

功能: more 命令功能类似 cat,都是将文本中的内容显示到终端上,但是与 cat 不同的是,more 会以全屏幕的方式按页显示文本文件的内容,当我们按空白键(space)时就往下一页显示,按 b 键时就会往回(back)一页显示,而且 more 还有搜寻字串的功能;同时,由于 more 命令从前向后读取文件,因此在启动时就加载整个文件;

常用选项

-n 对输出的所有行编号

q 退出more

前面提到more指令是显示到撑满终端(屏幕)时就不再继续加载,除非我们主动按下回车或者空格键(按一下回车键则会增加一条,按一下空格则会往下一页显示)

此外more命令还可以指定页面行数显示:

1.但是more指令只能往下查看,不能往回退。可能这就是好马不吃回头草吧(bushi)。

2.more指令下的退出也是q键。

相关文章
|
3月前
|
机器学习/深度学习 安全 网络协议
Linux防火墙iptables命令管理入门
本文介绍了关于Linux防火墙iptables命令管理入门的教程,涵盖了iptables的基本概念、语法格式、常用参数、基础查询操作以及链和规则管理等内容。
242 73
|
1月前
|
Unix Linux Shell
linux入门!
本文档介绍了Linux系统入门的基础知识,包括操作系统概述、CentOS系统的安装与远程连接、文件操作、目录结构、用户和用户组管理、权限管理、Shell基础、输入输出、压缩打包、文件传输、软件安装、文件查找、进程管理、定时任务和服务管理等内容。重点讲解了常见的命令和操作技巧,帮助初学者快速掌握Linux系统的基本使用方法。
72 3
|
2月前
|
机器学习/深度学习 Linux 编译器
Linux入门3——vim的简单使用
Linux入门3——vim的简单使用
61 1
|
2月前
|
Linux Shell Windows
Linux入门1——初识Linux指令
Linux入门1——初识Linux指令
36 0
Linux入门1——初识Linux指令
|
6月前
|
存储 Linux Android开发
Volatility3内存取证工具安装及入门在Linux下的安装教程
Volatility 是一个完全开源的工具,用于从内存 (RAM) 样本中提取数字工件。支持Windows,Linux,MaC,Android等多类型操作系统系统的内存取证。针对竞赛这块(CTF、技能大赛等)基本上都是用在Misc方向的取证题上面,很多没有听说过或者不会用这款工具的同学在打比赛的时候就很难受。以前很多赛项都是使用vol2.6都可以完成,但是由于操作系统更新,部分系统2.6已经不支持了,如:Win10 等镜像,而Volatility3是支持这些新版本操作系统的。
|
2月前
|
存储 数据可视化 Linux
Linux 基础入门
Linux 基础入门
|
2月前
|
Linux Go 数据安全/隐私保护
Linux入门2——初识Linux权限
Linux入门2——初识Linux权限
30 0
|
4月前
|
Java Shell Linux
【Linux入门技巧】新员工必看:用Shell脚本轻松解析应用服务日志
关于如何使用Shell脚本来解析Linux系统中的应用服务日志,提供了脚本实现的详细步骤和技巧,以及一些Shell编程的技能扩展。
66 0
【Linux入门技巧】新员工必看:用Shell脚本轻松解析应用服务日志
|
4月前
|
存储 Ubuntu Linux
Linux基础入门
Linux基础入门
33 1
|
4月前
|
Ubuntu Linux Shell
Linux 终端入门
Linux 终端入门
41 0
下一篇
DataWorks