LinuxGod

LinuxGod.net
Linux大神网——精选每一篇高品质的技术干货
  1. 首页
  2. 开源快讯
  3. 正文

开发者学堂|Linux企业运维实战-入门及常用命令

2023年5月16日 143点热度

开发者学堂课程【Linux企业运维实战-入门及常用命令:Linux文件键值进阶及cp命令解读】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:

Linux文件键值进阶及cp命令解读

内容介绍:

一、上节回顾

二、练习

三、创建空文件和刷新时间

四、复制文件和目录cp

五、cp常用选项

六、练习

一、上节回顾

上节内容述说了转义,思索怎么在当前目录里只显示隐藏文件?

输入ls-d.*,显示如图

输入l.后也一样,l.是某些名,aliasl.=‘ls-d.*--color=auto’

输入touchDesktop/.test

ls-d.*

假如想要显示当前目录下所有的隐藏文件包括每位文件夹下的隐藏文件,输入ls-R.*

发觉下边文件..开头,步入到根目录中,由于.*包括..,而..是父目录。应当写为ls-R.[^.]*

想要显示所有隐藏文件,也可以输入ls-a,a显示所有隐藏文件以及不隐藏文件,再输入ls-a.[^.]*默认步入到子目录里,如图再加入d,输入ls-ad.[^.]*

二、练习

1、显示/var目录下所有以l开头,以一个大写字母结尾,且中间出现起码一位数字的文件或目录

先创建文件,输入touch/data/la9ab

再输入ls/var/l*[[:digit]]*[[:lower:]]

显示/data/la9ab

2、显示/etc目录下以任意一位数字开头,且以非数字结尾的文件或目录

先创建文件,输入touch/data/9abctouch/data/9abc8

输入ls/etc/[0-9]*[^[:digit:]]

显示/data/9abc

3、显示/etc/目录下以非字母开头,前面跟了一个字母及其它任意宽度任意字符的文件或目录

先创建文件,输入touch/data/3bxx

非字母开头:[^[a-zA-Z]]也可以写为[^[:alpha:]]

跟一个字母:[[:alpha:]]

输入ls/data/[^[:alpha:]][[:alpha:]]*

显示/data/3bxx/data/9abc/data/9abc8

4、显示/etc/目录下所有以rc开头,并前面是0-6之间的数字,其它为任意字符的文件或目录

输入ls/etc/rc[0-6]*

加上-d不会步入目录中,输入ls-d/etc/rc[0-6]*

显示如图

5、显示/etc目录下,所有以.d结尾的文件或目录

输入ls-d/etc/*.d

显示如图

6、显示/etc目录下,所有.conf结尾,且以m,n,r,p开头的文件或目录

输入ls-d/etc/[mnrp]*.conf

linux 文件通配符_linux shell 通配符_linux通配符的使用

显示如图

7、只显示/root下的隐藏文件和目录

输入ls-d/root/.*

显示如图

8、只显示/etc下的非隐藏目录

只显示目录:*/-d

输入ls/etc/[^.]*/-d

显示如图

三、创建空文件和刷新时间

touch命令:

touch[OPTION]...FILE...

-a仅改变atime和ctime

-m仅改变mtime和ctime

-t[[CC]YY]MMDDhhmm[.ss]

指定atime和mtime的时间戳

-c假如文件不存在,则不予创建

例如说输入touchf1都会创建出f1空文件。

例如一个文件早已存在,touch不会覆盖linux 文件通配符,并且会刷新文件的时间,三个时间全刷新。输入ll/etc/hosts

touch/etc/hosts

ll/etc/hosts

输入touch-t2.50/etc/hosts

stat/etc/hosts

显示如图更改了两个时间

-c意味着只拿来刷新文件,输入touch-cf2,f2是不存在的,输入ls不会创建都会显示f1,假如文件早已存在linux操作系统界面,例如touch-cf1,都会把时间做一次刷新,输入

touch-cf1

statf1

显示如图

四、复制文件和目录cp

cp是copy缩写,是外部命令,默认是一某些名,格式有以下三种句型:

cp[OPTION]...[-T]SOURCEDEST

cp[OPTION]...SOURCE...DIRECTORY

cp[OPTION]...-tDIRECTORYSOURCE...

cpSRCDEST

SRC是文件︰

假如目标不存在∶新建DEST,并将SRC中内容填充至DEST中

假如目标存在∶

假如DEST是文件∶将SRC中的内容覆盖至DEST中

基于安全,建议为cp命令使用-i选项

假如DEST是目录∶在DEST下新建与原文件同名的文件,并将SRC中内容填

充至新文件中

具体讲解:

第一种句型是cp加选项,选项可以多个,源source写在前,只能是一个,目标dest写在后,只能是一个,-[T]选项可有可无linux 文件通配符,只是复制单个目录或文件

linux shell 通配符_linux 文件通配符_linux通配符的使用

第二种句型源可以是多个,是把多个文件复制到文件夹里

第三种句型是-t选项,文件夹在前,源在后,是把源的数据复制到目录中,通常不常用。

另外在cp命令复制时可能会碰到各类场景,如下

目标

源

不存在

存在且为文件

存在且为目录

一个文件

新建DEST,并将SRC中内容填充至DEST中

将SRC中的内容覆盖至DEST中

注意数据遗失风险!建议用-i选项

在DEST下新建与原文件同名的文件,并将SRC中内容填充至新文件中

多个文件

提示错误

提示错误

在DEST下新建与原文件同名的文件,并将原文件内容复制进新文件中

目录

须使用-r选项

创建指定DEST同名目录,复制SRC目录中所有文件至DEST下

提示错误

在DEST下新建与原目录同名的目录,并将SRC中内容复制至新目录中

例如

(1)第一种情况源是一个文件,目标不存在下用第一种句型,输入

cp/etc/hostshosts.bak

疗效是将etc/hosts复制,并更名为hosts.bak

再比较二者属性

ll/etc/hostshosts.bak

发觉大小完全一样,而且有些属性遗失

(2)目标存在且为文件时再来复制,输入

cp/etc/hostshosts.bak

会显示是否覆盖cp:overwrite‘hosts.bak’?覆盖输入y,回车默认不覆盖

据悉须注意:

假如登陆时是一个普通用户wang,如今把该文件复制到wang的家目录里,输入

cp/etc/hosts~wang/

复制后wang的文件夹是存在的,而且没有写旁边的文件名,意味着保留原先的名子hosts,复制完后查看属性,输入ll,是root用户所拥有

再来复制motd文件到当前家目录中,当前家目录用.表示,文件名为hosts,输入cp/etc/motd./hosts,应当显示是否覆盖,并且结果显示没有权限,由于该文件是root用户所拥有

再来直接复制到家目录中而且不更名,输入cp/etc/motd.,再复制文件motd,输入cp/etc/hostsmotd可以覆盖吗?

结果不显示,可以输入ll!*查看,显示覆盖,由于motd文件最初是0字节,而如今是158字节

注意到在root用户下覆盖会寻问是否覆盖,而wang下则没有,是由于默认root用户下的cp不是真cp,是一某些名aliascp=‘cp-i’。而默认的cp命令是直接覆盖的,加-i会寻问。

为了避免wang下的文件也被误覆盖,可以在wang的家目录下加别称nano.bashrc,步入后在.bashrc下加入aliascp=‘cp-i’,最后镜象,输入.bashrc

alias

别称生效

这时再想覆盖都会寻问,输入cp/etc/issuemotd

显示cp:overwrite‘motd’?

(3)目标早已存在且为目录时,输入

cp/etc/hosts/data,意味着把该文件复制到data目录中,但是保留该名称

(4)源是多个文件时用第二种句型,当目标不存在时,输入

cp/etc/issue/etc/hosts/data/f1f1不存在,所以报错,结果显示

cp:target‘/data/f1’isnotadirectory

(5)当目标存在且为文件时,输入

cp/etc/issue/etc/hosts/data/fff

显示报错

cp:target‘/data/fff’isnotadirectory

(6)当目标存在且为目录时能够复制多个文件,输入

cp/etc/issue/etc/hosts/data/,两个文件复制并保留原名称

输入ls/data,显示data中早已有这两个新文件形成

2018-03-29.logf1hostshosts.bakissue

(7)复制目录时假如目标是文件,如下输入

cp/etc/sysconfig//data/issue

结果显示报错:cp:omittingdirectory‘/etc/sysconfig/’

也可以写入一个新名子,如下dir不存在,输入

cp/etc/sysconfig//data/dir,意味着把文件夹sysconfig复制到data下,命名成dir,相当于复制并更名,并且直接这样写会报错

cp:omittingdirectory‘/etc/sysconfig/’提示忽视目录

由于cp命令默认不能复制文件夹,只是复制文件,要复制文件,必须跟-r属性,-r、在此是递归行为,复制该文件夹下的子文件或则目录等

输入

cp-r/etc/sysconfig//data/dir

再输入

ls/data

结果显示data下出现dir一个子目录

若果再度执行cp-r/etc/sysconfig//data/dir不会覆盖,会放在dir目录下作为子目录

输入ls/data/dir查看

但是当第三次执行时会显示是否覆盖,假如想覆盖文件,我们难以输入仍然输入y来确定覆盖,可以使用原始命令

cp-r/etc/sysconfig//data/dir

据悉-f属性不能覆盖,实际上是将原先文件删掉再创建文件,而覆盖是文件内容发生变化并且文件属性不变

五、cp常用选项

-i:覆盖前提示-n:不覆盖,注意二者次序

-r,-R:递归复制目录及内部的所有内容

-a:归档,相当于-dR--preserv=all

-d:--no-dereference--preserv=links不复制原文件,只复制链接名

--preserv[=ATTR_LIST]

mode:权限

ownership:属主属组

timestamp:

links

xattr

context

all

-p:等同--preserv=mode,ownership,timestamp

-v:--verbose

-f:--force

-u:--update只复制源比目标更新文件或目标不存在的文件--backup=numbered目标存在,覆盖前先备份加数字后缀

具体讲解:

-a是一个综合选项,输入cp--help查看

-a可以用长格式的archive,作用等价于-dR--preserv=all功能的组合,r是递归,d是保留链接

linux通配符的使用_linux 文件通配符_linux shell 通配符

哪些是保留链接呢?

比如输入ll/etc/grub.conf

结果中显示快捷方法(软链接)/etc/grub.conf

如今拷贝该软链接复制到data目录下,这么复制后是软链接/etc/grub.conf还是软链接所指向的原始文件

../boot/grub/grub.conf呢?,

输入

cp/etc/grub.conf/data/

ll/data/

显示如图

显而易见,复制的是原始文件grub.conf,软链接应当始终是浅黄色

如今消除掉data目录数据,

输入

rm-rf/data/*

cp-d/etc/grub.conf/data/

ll/data/

显示结果中仍为浅黄色grub.conf

所以-d保留链接实际上就是复制快捷方法,并不复制原始文件

preserv是保留的意思,可以保留一些特定属性,

比如mode,ownership,timestamps

mode是权限,ownership是所有者linux 下载,timestamps是时间戳

在lrwxrwxrwx.1rootroot22Mar3011:34grub.conf->../boot/grub/grub.conf中lrwxrwxrwx.是权限,rootroot是所有者,Mar3011:34是时间戳

默认保留三个属性,假如保留以上三个属性,可以直接使用cp-p,-p选项相当于默认保留这三个

也可以保留其他属性,比如context上下文,links链接,xattr扩充属性等

-a选项全都保留,-p选项保留一部份,因而-a可以作为备份手段来实现,例如想备份etc,输入

cp-a/etc//data/etcbackup

ll/data

显示复制成功

另外在复制一些大的目录例如usr时,可以在复制时降低显示过程,添加v,输入

cp-av/usr/data/

-p属性只复制更新的文件,比如现今有一个文件f1,再复制到data下,输入

cpf1/data/

假如更改了data下的f1内容,再度复制f1,输入

cpf1/data/

都会将旧的内容复制到新内容上,而-u防止了复制旧内容

-backup选项在复制的目标早已存在时,会将旧的文件做备份,防止误覆盖,先来比较旧的f1和新的f1,输入

llf1/data/f1

显示data下的f1有17个字节,f1是0个字节,假如再输入

cpf1/data/f1

会造成data下的f1成为0个字节,所以添加-u,输入

cp-uf1/data/f1

llf1/data/f1

显示结果不会误覆盖,不会造成data下的f1被清零

再加上-backup选项会做备份,输入

cp--backup=numberedf1/data/f1

显示结果寻问是否覆盖,输入y覆盖后再来输入查看

ls/data

显示结果为f1f1.~1~有备份

linux 文件通配符_linux通配符的使用_linux shell 通配符

再输入ll/data

结果显示存在17个字节的旧文件f1.~1~

可以将--backup=numbered命令加入到别称中,省略复杂操作,输入

nano.bashrc

步入后在cp中添加

--backup=numbered

再输入..bashrc生成

再输入

cpanaconda-ks.cfg/data/

cpanaconda-ks.cfg/data/

确定覆盖后输入ll/data

查看有备份anaconda-ks.cfg.~1~

六、练习

1、定义别称命令baketc,每晚将/etc/目录下所有文件,备份到/data独立的子目录下,并要求子目录格式为backupYYYY-mm-dd,备份过程可见

2、创建/data/rootdir目录,并复制/root下所有文件到该目录内,要求保留原有权限

(1)、要备份输入-a,过程可见输入v,注意假如写*则则不包括etc中的隐藏文件

cp-av/etc//data/backup`data+%F`

复制成功,接出来定义成别称

aliasbacketc=‘cp-av/etc//data/backup`data+%F`’

假如要读档则须要放置到bashrc中

再来执行下疗效,输入

rm-rf/data/*

backetc

可以实现别称

(2)保留原先属性用-a,输入

cp-a/root/data/rootdir

ll/data

查看data下存在rootdir

cp在复制特殊文件时存在问题,比如输入

ll/dev/zero

ll/dev/sda

在复制这种文件时不能直接复制,须要降低-a只保留属性信息,而不是复制硬碟里的内容,输入

cp-a/dev/sda/data

ll/data

进行复制,再例如复制zero文件,输入

cp-a/dev/zero/data/

ll/data/

笔试题:

创建如下文件

touchfile{1..100}.conf

要求把以上文件做备份,而且每位文件名后加bak后缀,cp命令未能完成,用到一个批量处理文件的命令rename,可以批量实现文件更名

再来创建一些不是以conf结尾的文件,输入

toucha.txt

Touchb.txt

现今只备份conf结尾的文件,输入

rename“conf”“conf.bak”file*

“conf”“conf.bak”相当于要把conf字符串替换为conf.bak,对file开头的文件进行处理

若要删掉,将.bak替换为空,输入

rename‘.bak’‘’file*

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: 备份 复制 文件 目录 输入
最后更新:2023年5月16日

Linux大神网

每日更新,欢迎收藏♥ 不积跬步无以至千里,加油,共勉。

点赞
< 上一篇
下一篇 >

文章评论

您需要 登录 之后才可以评论

Linux大神网

每日更新,欢迎收藏♥
不积跬步无以至千里,加油,共勉。

最新 热点 随机
最新 热点 随机
用集群技术构建网络服务器的发展趋势提出了 搜狗输入法forlinux版本安装指南: Linux中常用的4种虚拟化方法以及它们相应的优缺点 如何在linux下安装搜狗输入法后怎么用的那些神秘传说? Linux虚拟服务器LVS自动化运维方法及运维系统介绍 时间戳和时区1Unix(/)接收的两个推测 安装Linux和Windows双系统的硬盘分区是什么意思? linux怎么安装输入法Linux系统可以通过以下步骤步骤安装 (Unix)Unix时间戳转换公式及Unix操作成时间公式 Linux计算机卸载文件系统的使用实例分析 史上最全的Linux系统设备文件系统类型汇总! AzureKubernetes启用自动节点映像升级解决方法升级 不懂这些硬盘分区的知识,怎么能够安装操作系统 Linux中进程间通信有多少方式,分别是什么? 系统备份和恢复:ISO文件的一些常见用途和用途 (扣丁学堂)进程通信的应用场景数据传输详解 Windows操作系统建立兼容Unix/Linux命令的命令行工具 小节知识架构学习目标了解掌握掌握了解早期进程间通信机制的原理 Unix系统下的安装在Unix平台下安装PHP的方法 Linux进程间通信(IPC)有几种方式
Linux桌面发行版的分类、如何选择?TinyCore3.1——世界上最小的Linux桌面发行版Linux生态系统开发工具总结环境开发的工具介绍Linux占用磁盘空间最小.lin的可定制性很高为什么有这么多Linux发行版,我们需要所有操作系统?kxJ红软基地软件说明(2014年10月更新)SSH安全加固的文字,网友点评通过密钥登录更加安全Linuxcentos7虚拟机装找Linux镜像找的!找了好多都是度盘!unix系统界面 没有最好的Linux发行版是什么样的?Part1linux修改文件夹权限:以上方法只能改变单个文件fedora 禁止root登录 如何在Linux上建立SSH安全连接的方法?安全快速实例学习:修改某个目录下的所有文件的权限bin是什么格式的文件怎么打开bin文件打开方法?科林·沃森:Ubuntu默认是关闭root帐户的,这样做(知识点)chmod系统控制用户对文件权限的命令如何在UbuntuLinux中启用和禁用root用户登录系统?Linux系统chmod命令使用数字修改文件权限的方式有哪些?关于Ubuntu修改密码及密码复杂度策略设置的文章!Ubuntu本地提权漏洞CVE-2017-16995程序员不输入密码进入Linux系统,孩子们永远不知道下一个bug
主频93.75MHz的MIPS64NECVR4300处理器在N64上运行 如何远程连接Linux呢?远程linux工具哪个好用? 红旗Linux推出新版本:界面设计媲美Windows 【知识点】如何记录常用的linux命令?(二) 聊聊我们建站主机选择Windows还是Linux系统的问题(图) 如何在linux下安装搜狗输入法后怎么用的那些神秘传说? 计算机操作系统全新版装系统盘点、理念与系统的优缺点 【好玩的网络-第2.5期】分配IP有哪些骚操作?小白保姆级教程 linux解压zip文件命令 2015年上海事业单位医疗招聘考试:tar 最热门的十大WiFi入侵工具,你知道几个? 轻松掌握Ubuntu软件安装:查看已安装软件 Linux内核内存检测工具系列中的一篇,配置以及典型应用 阿里云>社区>主题地图S>查看存储推荐 安装linux的系统光驱redhat安装的方法 Linux集群技术热点与发展趋势分分: 回到Linux基础系列之回到Shell系列文章大纲 Linux新建用户、用户组Linux系统的规定 快速实例学习:修改某个目录下的所有文件的权限 【干货】Linux下的线程是什么?(二) Linux总结出来的11个炫酷的Linux终端命令大全!
标签聚合
linux系统 命令模式 linux服务器 文件目录 sudo 虚拟机 linux脚本 软件 命令 电脑
书籍
课程
技术群
技术干货大合集↓
  • 2023年5月 / 86篇
  • 2023年4月 / 90篇
  • 2023年3月 / 129篇
  • 2023年2月 / 84篇
  • 2023年1月 / 161篇
  • 2022年12月 / 187篇
  • 2022年11月 / 76篇
友情链接:

Linux书籍 | Linux命令 | Linux系统 | RHCE红帽认证 | Linux软件 | Linux教程 | CentOS系统 | Linux内核 | Linux服务器 | Linux大神 | IT资源

COPYRIGHT © 2023 linuxgod.net ALL RIGHTS RESERVED.