欢迎光临
我们一直在努力

linux基础命令第三天

linux基础命令第三天

命令行管理文件

书接上回,我们先从mv命令开始讲

mv

#我们先创建一个目录,名字随意这里我取xdc
[ljy@centos7 ~ 17:00:52]$ mkdir xdc

#移动单个文件到xdc目录当中 ,我们先创建几个空文件
[ljy@centos7 ~ 09:39:55]$ mv wj1 ./xdc
#将wj1这个文件移动到xdc 目录当中,这个.代表的是当前工作目录下的文件
#查看xdc目录单中是否有wj1,当前目录下wj1这个文件是已经不存在的了,通过mv命令移动到/xdc目录下了
[ljy@centos7 ~ 09:46:19]$ ls xdc/
wj1
[ljy@centos7 ~ 09:46:30]$ ls
lab1 qq wj2 wx xdc 公共 模板 视频 图片 文档 下载 音乐 桌面

#这时就有小伙伴问了,那mv可以同时移动多个文件吗。mv可以同时移动多个文件,但是这里的目标必须得是目录。
[ljy@centos7 ~ 09:50:15]$ mv wj2 wj3 wx ./xdc
[ljy@centos7 ~ 09:50:35]$ ls xdc
wj1 wj2 wj3 wx

#mv也可以移动目录,和移动文件相同
#先在当前工作目录下创建几个目录,用mkdir命令
[ljy@centos7 ~ 09:52:34]$ mkdir lab2 lab3
[ljy@centos7 ~ 09:52:50]$ ls
lab1 lab2 lab3 xdc 公共 模板 视频 图片 文档 下载 音乐 桌面

#移动单个目录
[ljy@centos7 ~ 09:52:51]$ mv lab1 ./xdc
[ljy@centos7 ~ 09:53:26]$ ls xdc
lab1 wj1 wj2 wj3 wx
[ljy@centos7 ~ 09:53:29]$ ls
lab2 lab3 xdc 公共 模板 视频 图片 文档 下载 音乐 桌面

#移动多个目录
[ljy@centos7 ~ 09:53:31]$ mv lab2 lab3 ./xdc
[ljy@centos7 ~ 09:53:44]$ ls
xdc 公共 模板 视频 图片 文档 下载 音乐 桌面
[ljy@centos7 ~ 09:53:45]$ ls xdc
lab1 lab2 lab3 wj1 wj2 wj3 wx

rmdir命令

有创建肯定就有删除,不然的话系统早就充满一堆文件了,rmdir命令就是删除的一种,但是rmdir不能直接删除非空目录就是里面有文件的目录。

#删除空目录
[ljy@centos7 ~ 09:58:50]$ mkdir 111 #先创建一个空目录

#删除刚刚创建的111空目录
[ljy@centos7 ~ 09:59:01]$ rmdir 111
[ljy@centos7 ~ 09:59:09]$ ls
xdc 公共 模板 视频 图片 文档 下载 音乐 桌面

#当前xdc目录下是存放了文件和其他目录的所有使用rmdir时系统提示
[ljy@centos7 ~ 09:59:11]$ rmdir xdc
rmdir: 删除 "xdc" 失败: 目录非空

rm命令

rm命令的功能就相对完善很多,rm可以删除文件,可以删除目录包括非空目录

[ljy@centos7 ~ 09:59:34]$ ls
xdc 公共 模板 视频 图片 文档 下载 音乐 桌面
[ljy@centos7 ~ 10:03:43]$ touch 1 2 3
[ljy@centos7 ~ 10:03:50]$ ls
1 2 3 xdc 公共 模板 视频 图片 文档 下载 音乐 桌面

#删除单个文件
[ljy@centos7 ~ 10:04:27]$ rm 1
[ljy@centos7 ~ 10:04:34]$ ls
2 3 xdc 公共 模板 视频 图片 文档 下载 音乐 桌面

#删除多个文件
[ljy@centos7 ~ 10:04:35]$ rm 2 3
[ljy@centos7 ~ 10:04:39]$ ls
xdc 公共 模板 视频 图片 文档 下载 音乐 桌面

#rm可以强制删除具有写保护的文件,我们进入xdc中cp一个有写保护的文件,再通过rm去删除。
[ljy@centos7 ~ 10:04:49]$ cd xdc
[ljy@centos7 xdc 10:06:54]$ ls
lab1 lab2 lab3 wj1 wj2 wj3 wx
#cp cacerts这个文件
[ljy@centos7 xdc 10:06:55]$ cp /etc/pki/ca-trust/extracted/java/cacerts .
[ljy@centos7 xdc 10:07:10]$ ls
cacerts lab1 lab2 lab3 wj1 wj2 wj3 wx

#通过rm删除系统会有提示询问确认删除这个文件吗
[ljy@centos7 xdc 10:07:11]$ rm cacerts
rm:是否删除有写保护的普通文件 "cacerts"?yes
[ljy@centos7 xdc 10:07:19]$ ls
lab1 lab2 lab3 wj1 wj2 wj3 wx

#xdc中cacerts没有了
[ljy@centos7 xdc 10:07:21]$ ls cacerts
ls: 无法访问cacerts: 没有那个文件或目录

#使用-f选项直接删除,系统不会提示。
[ljy@centos7 xdc 10:07:40]$ cp /etc/pki/ca-trust/extracted/java/cacerts .
[ljy@centos7 xdc 10:11:03]$ rm -f cacerts
[ljy@centos7 xdc 10:11:08]$ ls
lab1 lab2 lab3 wj1 wj2 wj3 wx

#-r递归删除目录,-r不只是单纯把目录里文件一个个删,是层层深入处理所有子目录
[ljy@centos7 xdc 10:16:26]$ rm -r lab1
[ljy@centos7 xdc 10:16:42]$ ls
lab2 lab3 wj1 wj2 wj3 wx

#递归强制删除-fr选项,遇到只读取的文件也强制删除,不会报错
[ljy@centos7 xdc 10:20:35]$ ls
lab2 lab3 wj1 wj2 wj3 wx
[ljy@centos7 xdc 10:20:37]$ rm -fr lab2
[ljy@centos7 xdc 10:20:49]$ ls
lab3 wj1 wj2 wj3 wx

软链接

soft link,也称为symbolic link(符号链接)。软连接有点类似于我们windows中的快捷方式,只不过windows中软链接图形化了,如果源文件失效了,那么软链接也就没有用了。

#创建软链接
[ljy@centos7 ~ 10:27:47]$ ln -s /var/tmp/ mytmp
#/var/tmp 的软链接mytmp
#查看
[ljy@centos7 ~ 10:28:11]$ ls -l mytmp
lrwxrwxrwx. 1 ljy ljy 9 7月 19 10:28 mytmp –> /var/tmp/
#查看mytmp 和查看/var/tmp两者的内容是一样的
[ljy@centos7 ~ 10:29:10]$ ls mytmp/
abrt
systemd-private-691a5c58964146589ab07c27072d7bb6-bolt.service-1MOmS5
systemd-private-691a5c58964146589ab07c27072d7bb6-chronyd.service-4VAwNy
systemd-private-691a5c58964146589ab07c27072d7bb6-colord.service-r48AfC
systemd-private-691a5c58964146589ab07c27072d7bb6-cups.service-at5kqY
systemd-private-691a5c58964146589ab07c27072d7bb6-rtkit-daemon.service-A5o66Q
systemd-private-e1559428306847da867629c7fd928a40-bolt.service-BjlYXI
systemd-private-e1559428306847da867629c7fd928a40-chronyd.service-80ym8T
systemd-private-e1559428306847da867629c7fd928a40-colord.service-PrGK27
systemd-private-e1559428306847da867629c7fd928a40-cups.service-2DKmT1
systemd-private-e1559428306847da867629c7fd928a40-rtkit-daemon.service-MnyNZx
systemd-private-e45241b443314a299906342278ae3ac4-bolt.service-1ujlOC
systemd-private-e45241b443314a299906342278ae3ac4-chronyd.service-hrrDSQ
systemd-private-e45241b443314a299906342278ae3ac4-colord.service-Z2K7zL
systemd-private-e45241b443314a299906342278ae3ac4-cups.service-NONnvT
systemd-private-e45241b443314a299906342278ae3ac4-fwupd.service-QfEfSR
systemd-private-e45241b443314a299906342278ae3ac4-rtkit-daemon.service-VaAmCt
[ljy@centos7 ~ 10:30:01]$ ls /var/tmp/
abrt
systemd-private-691a5c58964146589ab07c27072d7bb6-bolt.service-1MOmS5
systemd-private-691a5c58964146589ab07c27072d7bb6-chronyd.service-4VAwNy
systemd-private-691a5c58964146589ab07c27072d7bb6-colord.service-r48AfC
systemd-private-691a5c58964146589ab07c27072d7bb6-cups.service-at5kqY
systemd-private-691a5c58964146589ab07c27072d7bb6-rtkit-daemon.service-A5o66Q
systemd-private-e1559428306847da867629c7fd928a40-bolt.service-BjlYXI
systemd-private-e1559428306847da867629c7fd928a40-chronyd.service-80ym8T
systemd-private-e1559428306847da867629c7fd928a40-colord.service-PrGK27
systemd-private-e1559428306847da867629c7fd928a40-cups.service-2DKmT1
systemd-private-e1559428306847da867629c7fd928a40-rtkit-daemon.service-MnyNZx
systemd-private-e45241b443314a299906342278ae3ac4-bolt.service-1ujlOC
systemd-private-e45241b443314a299906342278ae3ac4-chronyd.service-hrrDSQ
systemd-private-e45241b443314a299906342278ae3ac4-colord.service-Z2K7zL
systemd-private-e45241b443314a299906342278ae3ac4-cups.service-NONnvT
systemd-private-e45241b443314a299906342278ae3ac4-fwupd.service-QfEfSR
systemd-private-e45241b443314a299906342278ae3ac4-rtkit-daemon.service-VaAmCt

硬链接

硬链接就是一个普通文件。相当于可以通过多个文件名访问到一个数据块。任何一个文件发生变化,其他文件也跟着变。

[ljy@centos7 ~ 10:30:17]$ cp /etc/hosts ./hosts-1
[ljy@centos7 ~ 10:34:02]$ ls
hosts-1 mytmp xdc 公共 模板 视频 图片 文档 下载 音乐 桌面

#创建硬链接
[ljy@centos7 ~ 10:34:03]$ ln hosts-1 hosts-12
[ljy@centos7 ~ 10:34:13]$ ls
hosts-1 mytmp 公共 视频 文档 音乐
hosts-12 xdc 模板 图片 下载 桌面
[ljy@centos7 ~ 10:34:14]$ ls -l hosts-1 hosts-12
-rw-r–r–. 2 ljy ljy 158 7月 19 10:34 hosts-1
-rw-r–r–. 2 ljy ljy 158 7月 19 10:34 hosts-12

#两个数据的inode是相同的
[ljy@centos7 ~ 10:34:22]$ ls -i1 hosts-1 hosts-12
1300 hosts-1
1300 hosts-12

#更新hosts1的时间,hosts12也跟着改变
[ljy@centos7 ~ 10:34:39]$ touch hosts-1
[ljy@centos7 ~ 10:35:25]$ ls -l hosts-1 hosts-12
-rw-r–r–. 2 ljy ljy 158 7月 19 10:35 hosts-1
-rw-r–r–. 2 ljy ljy 158 7月 19 10:35 hosts-12

#查看hosts-1和hosts-12的内容是一模一样的
[ljy@centos7 ~ 10:35:31]$ cat hosts-1
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
[ljy@centos7 ~ 10:35:47]$ cat hosts-12
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

#更新hosts-1的内容,hosts-12也跟着关新
[ljy@centos7 ~ 10:35:52]$ echo hello >> hosts-1
[ljy@centos7 ~ 10:36:07]$ ls hosts-12
hosts-12
[ljy@centos7 ~ 10:36:11]$ cat hosts-12
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
hello
[ljy@centos7 ~ 10:36:18]$ cat hosts-1
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
hello
#硬链接就是同一个数据块,拥有多个文件名,可以通过多个文件名访问到。

shell扩展匹配文件

模式匹配项
* 由零个或更多字符组成的任何字符串。单独*不匹配隐藏文件。
? 任何一个字符。
[abc…] 位于两个方括号之间中的任何一个字符。
[**^abc…]或[!**abc…] 不在括起的类中的任何一个字符。
~ 当前用户的主目录。
~username username用户的主目录。
[[:alpha:]] 任何字母字符,相当于[a-Z]。
[[:lower:]] 任何小写字符。
[[:upper:]] 任何大写字符。
[[:alnum:]] 任何字母字符或数字,相当于[a-Z0-9]。
[[:punct:]] 除空格和字母数字以外的任何可打印字符。
[[:digit:]]或[0-9] 从 0 到 9 的任何单个数字。
[[:space:]] 任何一个空白字符。这可能包括制表符、 换行符、回车符、 换页符或空格。
{…} 匹配列表。

* 示例

匹配由零个或更多字符组成的任何字符串。单独*不匹配隐藏文件。

#匹配/etc目录下所有ho开头的文件
[ljy@centos7 ~ 10:36:44]$ ls /etc/ho*
/etc/host.conf /etc/hostname /etc/hosts /etc/hosts.allow /etc/hosts.deny

# 将/etc目录下所有ho开头的文件复制到/tmp
[ljy@centos7 ~ 10:45:40]$ cp /etc/ho* /tmp
[ljy@centos7 ~ 10:46:10]$ ls /tmp/ho*
/tmp/host.conf /tmp/hostname /tmp/hosts /tmp/hosts.allow /tmp/hosts.deny

# 删除/tmp目录下所有ho开头的文件
[ljy@centos7 ~ 10:46:32]$ rm /tmp/ho*
[ljy@centos7 ~ 10:48:34]$ ls /tmp/ho*
ls: 无法访问/tmp/ho*: 没有那个文件或目录

# *不匹配隐藏文件

? 示例

匹配任何一个字符。

#准备一些文件
[ljy@centos7 ~ 10:53:16]$ touch filr-{1..3}
[ljy@centos7 ~ 10:55:04]$ ls
filr-1 filr-3 hosts-12 xdc 模板 图片 下载 桌面
filr-2 hosts-1 mytmp 公共 视频 文档 音乐
[ljy@centos7 ~ 10:55:06]$ touch filr-{a..c}
[ljy@centos7 ~ 10:55:38]$ ls
filr-1 filr-3 filr-b hosts-1 mytmp 公共 视频 文档 音乐
filr-2 filr-a filr-c hosts-12 xdc 模板 图片 下载 桌面

# 查看文件名称是 file- 后跟1个字母的文件
[ljy@centos7 ~ 10:55:50]$ ls filr-?
filr-1 filr-2 filr-3 filr-a filr-b filr-c

#查看-后面是两个字符的文件呢,打两个?
[ljy@centos7 ~ 10:56:46]$ touch filr-ab filr-12
[ljy@centos7 ~ 10:57:35]$ ls filr-?
filr-1 filr-2 filr-3 filr-a filr-b filr-c
[ljy@centos7 ~ 10:57:38]$ ls filr-??
filr-12 filr-ab

[] 示例

匹配位于两个方括号之间中的任何一个字符。

[ljy@centos7 ~ 11:00:58]$ ls filr-[abc]
filr-a filr-b filr-c

[ljy@centos7 ~ 11:01:47]$ ls filr-[12]
filr-1 filr-2

[ljy@centos7 ~ 11:01:54]$ ls filr-[^12]
filr-3 filr-a filr-b filr-c

{} 示例

[ljy@centos7 ~ 11:02:09]$ ls filr-[abcf]
filr-a filr-b filr-c
#[]相当于匹配当中的信息,有匹配的就反馈出来

[ljy@centos7 ~ 11:04:01]$ ls filr-{a,b,c,f}
ls: 无法访问filr-f: 没有那个文件或目录
filr-a filr-b filr-c
#相当于下面的命令
[ljy@centos7 ~ 11:05:39]$ ls filr-a filr-b filr-c filr-f
ls: 无法访问filr-f: 没有那个文件或目录
filr-a filr-b filr-c

这些就是比较基础的命令,下一章我们讲编辑器。

赞(0)
未经允许不得转载:171主机测评 » linux基础命令第三天
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址