红帽系统管理一 3章节 从命令行管理文件

红帽企业linux重要目录

位置用途
/usr安装的软件,共享的库,包括文件和只读程序文件
/etc特定于此系统的配置文件
/var运行时动态可变的文件,如缓存文件,日志等
/run自上次系统启动以来启动的进程的运行是数据,包括进程ID文件和锁定文件
/home存储普通用户个人数据和配置文件
/root系统超级管理员主目录
/tmp供临时文件使用的全局可写空间,10天未变动或访问的文件将会被删除。/var/tmp下的30天未变动或访问将会被删除
/boot系统启动时所需要的引导文件
/dev特殊的设备文件,供系统访问硬件

通过名称指定文件

一些新认识:
认识绝对路径和相对路径。
linux的文件系统严格区分大小写。File.txt和file.txt是两个不同的文件。
touch命令通常用于更新文件的时间戳,touch一个不存在的文件可以新建一个空文件。
ls命令用于显示目录所包含的内容。- l :长列表 -a:显示隐藏文件 -R:递归的显示。

cd -    :切换回用户进入当前目录之前的上一个所处目录。
cd ..  :切换到当前目录的父级目录。

使用命令行工具管理文件

mkdir

用于创建一个或者多个(不同的目录之间用空格分开)目录及其子目录。如果试图在一个不存在的目录中创建子目录,mkdir将会报错。使用 - p 选项可以避免报错,此时系统将会创建所缺失的父级目录。

cp

命令用以向当前路径或者指定路径复制一个或者多个文件。注意,当目标处有同名文件时,目标出的同名文件将会被覆盖。
通过一个命令复制多个文件时,最后一个参数必须为目录

cp file1 file2 dir1 dir2  #file1和file2将会被复制到dir2,dir1会被忽略。

从别处忽略复制文件到当前路径,.代表当前路径

cp /etc/xxx .

-r参数递归复制文件到指定文件夹。

cp -r dir1 dir2  将dir1及其子代文件和路径一起复制到dir2中。
mv

用以移动文件,事实上如果我们将文件的绝对路径加上文件名看做是文件的真实名字,那么mv命令就是在重命名文件。

mv file1 file2   #file1将会被重命名为file2

移动文件

mv file1 /var/log   #file1将会被移动至/log目录下
rm

-r 参数,rm -r 命令首先遍历每个子目录,在删除目录之前逐一删除其中的文件。-i 参数,将会在删除每一个文件时要求用户予以确认。-f 参数,与 -i 参数相反,忽略所有的交互式确认,直接执行删除。-f -i 同时出现时,-f 优先级更高。注意:rm操作不能撤销,也没有回收站。

制作文件的链接

创建指向同一文件的多个名称成为文件的链接。软链接也称为符号链接。

创建硬链接

从初始名称到文件系统上的数据,每个文件都从一个硬链接开始。创建一个指向文件的硬链接,新的硬链接与原始文件名作用完全相同。
ln
用以创建硬链接,ln至少需要两个参数,即现有文件的路径和要创建的硬链接的路径。
可以通过 ls -l 命令来查看文件的软硬链接数。

[root@#test ~]# ls -l hello 
-rw-r--r-- 1 root root 17 928 23:35 hello   #1个硬链接
[root@#test ~]# ln hello /tmp/hellohello
[root@#test ~]# 
[root@#test ~]# ls -l hello 
-rw-r--r-- 2 root root 17 928 23:35 hello   #2个硬链接

想确认两个文件是否为彼此的硬链接,使用 ls -i 命令,列出文件的索引节点编号,如果文件处于同一个文件系统,且索引节点编号相同,那么这两个文件就是指向同一数据的硬链接。

[root@#test ~]# ls -il hello /tmp/hellohello 
33595953 -rw-r--r-- 2 root root 17 928 23:35 hello
33595953 -rw-r--r-- 2 root root 17 928 23:35 /tmp/hellohello

指向同一数据文件的硬链接具有相同的链接数,访问权限,用户和组所有权,时间戳和文件内容。使用其中一个硬链接对数据进行改动,其他硬链接会同步显示改动后的信息。即使原文件被删除,只要至少存在一个硬链接,该文件就依然可用。只有删除了最后一个硬链接时,才会将数据从存储中删除。

[root@#test ~]# rm hello 
rm:是否删除普通文件 "hello"?y
[root@#test ~]# 
[root@#test ~]# cat /tmp/hellohello 
hello here is sz

硬链接的局限性
硬链接只能指向一般文件,不能指向特殊文件或者目录。
硬链接不能跨文件系统。工作过程中切换目录可能会切换到不同的文件系统中,这与系统的配置有关。可以通过 df 命令来查看文件系统。

创建软链接

ln -s 用以创建软链接,也称为符号链接。软链接不是普通文件,而是指向现有文件和目录的特殊文件。软链接不同于硬链接,可以跨越文件系统,且可以指向目录文件和其他特殊文件。
如下,使用ls -l
查看软链接文件的属性,可以看到以 “l” 开头而非 “-” 或者 “d”

[root@#test ~]# ln -s /home/guoj/newfile.txt  /tmp/newfile-link.txt
[root@#test ~]# 
[root@#test ~]# ls -l /tmp/newfile-link.txt 
lrwxrwxrwx 1 root root 22 930 21:50 /tmp/newfile-link.txt -> /home/guoj/newfile.txt

当原文件被删除后,软链接依然指向该文件,但是目标已消失。此时指向目标消失的软链接称为“悬挂的如链接”。

[root@#test ~]# cat /tmp/newfile-link.txt 
hello this is /home/guoj/newfile.txt
[root@#test ~]# 
[root@#test ~]# rm -f /home/guoj/newfile.txt 
[root@#test ~]# 
[root@#test ~]# cat /tmp/newfile-link.txt 
cat: /tmp/newfile-link.txt: 没有那个文件或目录

注意:此时如果重新创建一个文件名与原文件名(包含路径的文件名)相同的文件,软链接将不再被悬挂。硬链接则不是这样,删除原文件后创建同名文件不会指向新的同名文件。
硬链接直接将名称指向数据。
软链接将名称指向另一个名称,后者指向数据。

使用 shell拓展 匹配文件名

常见简单模式匹配
模式匹配项
*由零个或多个字符组成的任何字符串
任意单个字符
[abc…]括起的类(括号内的)中的任意一个字符
[!abc…] [^abc…]不在括起的类(括号内的)中的任意一个字符
[[:alpha:]]任何字母字符
[[:lower:]]任何小写字符
大括号拓展

逗号分隔的分隔列表

[root@#test ~]# echo {monday,tuesday,wednesday}.log
monday.log tuesday.log wednesday.log

数字序列(字母也可以)

[root@#test ~]# echo {1..6}.log
1.log 2.log 3.log 4.log 5.log 6.log

嵌套

[root@#test ~]# echo Q{a,b}{1,2}P
Qa1P Qa2P Qb1P Qb2P

大括号拓展的实际用途是一次性创建多个文件或目录。

[root@#test ~]# mkdir ../RHEL{6,7,8}
[root@#test ~]# 
[root@#test ~]# ls ../RHEL*
../RHEL6:

../RHEL7:

../RHEL8:
变量拓展和命令替换

通过一下语法将数据作为值传递给变量。

[root@#test ~]# var=value
[root@#test ~]# 
[root@#test ~]# echo ${var}
value

命令在括号内且前面有美元符号时发生命令替换。即 $(命令) 形式。

[root@#test ~]# echo time : $(date +%R)
time : 23:35
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值