2、linux文件、目录及相关常用操作命令

1、描述Linux发行版的系统目录名称命名规则以及用途。
  1. linux目录名称命名规则,应遵循以下规则:
  • 遵循文件系统层次结构标准FHS(Filesystem Hierarchy Standard);
  • 名称严格区分大小写,即大小写敏感;
  • 目录也视为文件,在同一路径下,两个文件不能同名;
  • 支持使用除斜杠(/)和空格(NULL)以外的任意字符,但特殊字符不推荐使用;
  • 文件名最长不能超过255个字符;
  • 包括路径在内的文件名最长不能超过4095个字节;
  1. 系统目录的用途
  • /boot:系统启动引导文件存放目录。内核文件(vmlinuxz)以及引导加载器(BootLoader)都存放在此目录下
  • /bin:存在所有用户使用的基本命令,该目录不能独立分区,操作系统在启动时会使用该目录下的文件
  • /sbin:存放管理类的基本命令,一般存放的是开机、修复、还原系统等所需要的指令,该目录不能独立分区,操作系统在启动时会使用该目录下的文件
  • /lib:存在系统启动时程序依赖的基本共享库文件以及内科模块文件(/lib/modules)
  • /lib64:专用于x86_64系统上辅助共享文件库文件存放的位置
  • /etc:存放配置文件的目录
  • /home:普通用户的家目录,在创建普通用户账号时,默认的用户家目录都会放到这里
  • /root:管理员用户的家目录
  • /media:便携式移动设备挂载点
  • /mnt:临时文件系统挂载点
  • /dev:设备文件以及特殊文件存储位置
  • /opt:第三方引用程序的安装位置
  • /srv:系统上运行的服务用到的数据
  • /tmp:临时文件的存储位置
  • /run:用于存放运行中的进程相关数据,通常用于存储进程的PID文件
  • /proc:这个目录本身是一个虚拟文件系统,存放的数据都在内存中用于输出内核与进程信息相关的虚拟文件系统
  • /sys:这个目录本身也是一个虚拟文件系统,主要记录与核心相关的信息,包括目前已加载的核心模块与核心侦测到的硬件装置信息等。用于输出当前系统上硬件设备相关信息的虚拟文件系统
  • /selinux:selinux相关的安全策略等信息的存储位置
  • /usr:用于存放可分享的与静态的数据,操作系统的软件资源一般放在此目录中,类似于Windows系统中C:\Windows\与C:\program files\两个目录的合体。
  • /var:主要用于存放常态变动的文件,如cache、日志文件,以及某些软件运行所产生的文件,通常在系统运行后才会渐渐占用硬盘容量。
2、描述文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息?

(1)文件的元数据信息有:

File:文件名称;
Size:文件大小;
Blocks:占用的磁盘块数;
IO Block:IO块大小;
regular file :这里是显示文件的类型,这是一个普通文件
Device:所在设备;
Inode: Inode节点号;
Links: 被链接的次数;
Access【第一个】:访问权限;
Uid: uid号和属主;
Gid: gid号和属组;
Access【第二个】:atime, 文件最近一次的访问时间;
Modify:mtime,记录最后一次文件数据部分的修改时间,只有修改了文件内容才会改变;
Chang:ctime,记录最后一次文件元数据的改变时间,修改文件属性时改变,mtime的改变一定会引起ctime的改变。

(2)如何查看文件:
a) ls -l或ll 命令可以查看文件的类型、时间、属主、属组、大小以及最近修改时间等

[root@centos7 data]# ll 1.txt 
-rw-r--r-- 1 root root 0 Apr 22 23:07 1.txt

最左边第一个字符表示文件类型,主要文件类型表示:

-:表示普通文件
d:表示文件夹
l:表示链接文件
p:表示管道文件
c:表示字符设备文件
b:表示块设备文件
s:表示套接字文件

b) stat :查看文件属性

[root@centos7 data]# stat 1.txt 
  File: ‘1.txt’
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 803h/2051d  Inode: 67          Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-04-22 23:07:25.649130305 +0800
Modify: 2020-04-22 23:07:25.649130305 +0800
Change: 2020-04-22 23:07:25.649130305 +0800
 Birth: -

c) file:查看文件类型

[root@centos7 ~]# file anaconda-ks.cfg 
anaconda-ks.cfg: ASCII text

(3)如何修改文件的时间戳信息
atime:最后一次访问时间,默认情况下只有满足两个条件之一才会更新
一个是文件的atime时间超过一天以上,一个是文件的mtime比atime更晚

[root@centos7 data]# cat 1.txt 
[root@centos7 data]# stat 1.txt 
  File: ‘1.txt’
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 803h/2051d  Inode: 67          Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-04-22 23:55:08.514156979 +0800
Modify: 2020-04-22 23:07:25.649130305 +0800
Change: 2020-04-22 23:07:25.649130305 +0800
 Birth: -

mtime:最近一次文件数据的修改时间,只要数据发生变化,即会变化
验证:往1.txt文件中写入11111,之后查看文件属性,mtime与ctime均发生变化

[root@centos7 data]# stat 1.txt 
  File: ‘1.txt’
  Size: 6           Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d  Inode: 67          Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-04-22 23:55:08.514156979 +0800
Modify: 2020-04-23 00:01:53.894160756 +0800
Change: 2020-04-23 00:01:53.894160756 +0800
 Birth: -

ctime:最后一次文件元数据的修改时间,文件的内容或元数据发生变化,会触发ctime的变化。
验证:
首先使用stat命令查看文件的三个时间

[root@centos7 data]# stat 1.txt 
  File: ‘1.txt’
  Size: 6           Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d  Inode: 67          Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-04-22 23:55:08.514156979 +0800
Modify: 2020-04-23 00:01:53.894160756 +0800
Change: 2020-04-23 00:01:53.894160756 +0800
 Birth: -

然后修改文件的权限属性

[root@centos7 data]# chmod +r 1.txt 

再次使用stat查看文件的三个时间,此时发行文件的atime和mtime均没有发生变化,而ctime发生了变化

[root@centos7 data]# stat 1.txt 
  File: ‘1.txt’
  Size: 6           Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d  Inode: 67          Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-04-22 23:55:08.514156979 +0800
Modify: 2020-04-23 00:01:53.894160756 +0800
Change: 2020-04-23 00:04:25.491162169 +0800
 Birth: -
3、总结软连接和硬连接区别,并用实例操作说明。

答:
硬链接其本质是对同一个文件起多个文件名,所以表现为一个inode号可以对应多个文件名,硬链接可使用命令ln或link创建,可不用加参数;

而软链接与硬链接不同,若文件用户数据块中存放的内容是另一文件的路径名的指向,则该文件就是软链接。软链接就是一个普通文件,只是数据块内容有点儿特殊。软链接有着自己的inode号以及用户数据块,因此软链接的创建于使用没有类似硬链接的诸多限制,软链接的创建也可使用ln,但需加上参数-s。
硬链接的特点:
(1)文件有相同的inode和数据块
示例:

//查看文件属性
[root@centos7 data]# ll -i
total 4
67 -rw-r--r-- 1 root root 6 Apr 23 00:01 1.txt
//创建硬链接
[root@centos7 data]# ln 1.txt 1_1.txt
//再次查看文件属性
[root@centos7 data]# ll -i
total 8
67 -rw-r--r-- 2 root root 6 Apr 23 00:01 1_1.txt
67 -rw-r--r-- 2 root root 6 Apr 23 00:01 1.txt
//使用stat命令查看文件属性
[root@centos7 data]# stat *
  File: ‘1_1.txt’
  Size: 6           Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d  Inode: 67          Links: 2
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-04-23 23:17:31.256105264 +0800
Modify: 2020-04-23 00:01:53.894160756 +0800
Change: 2020-04-23 23:20:17.997112192 +0800
 Birth: -
  File: ‘1.txt’
  Size: 6           Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d  Inode: 67          Links: 2
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-04-23 23:17:31.256105264 +0800
Modify: 2020-04-23 00:01:53.894160756 +0800
Change: 2020-04-23 23:20:17.997112192 +0800
 Birth: -

(2)只能对已存在的文件进行创建,否则会报错

[root@centos7 data]# ln 2.txt 2_1.txt
ln: failed to access ‘2.txt’: No such file or directory

(3)不能跨分区创建硬链接
示例:

[root@centos7 data]# ln 1.txt /1_2.txt
ln: failed to create hard link ‘/1_2.txt’ => ‘1.txt’: Invalid cross-device link

(4)不能对目录进行创建,只可对文件创建

[root@centos7 data]# file test
test: directory
[root@centos7 data]# ln test test_1
ln: ‘test’: hard link not allowed for directory

(5)删除一个硬链接文件并不影响其他有相同inode号的文件

//查看两个具有硬链接关系的文件
[root@centos7 data]# ll
total 8
-rw-r--r-- 2 root root 4 Apr 23 23:41 1_1.txt
-rw-r--r-- 2 root root 4 Apr 23 23:41 1.txt
//将源文件删除
[root@centos7 data]# rm 1.txt 
rm: remove regular file ‘1.txt’? y
//查看硬链接文件
[root@centos7 data]# ll
total 4
-rw-r--r-- 1 root root 4 Apr 23 23:41 1_1.txt
//使用stat查看硬链接文件,links值由2变为了1
[root@centos7 data]# stat 1_1.txt 
  File: ‘1_1.txt’
  Size: 4           Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d  Inode: 67          Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-04-23 23:41:43.337165591 +0800
Modify: 2020-04-23 23:41:11.938164287 +0800
Change: 2020-04-23 23:42:08.215166625 +0800
 Birth: -
//向文件中写数据
[root@centos7 data]# echo 11111 >> 1_1.txt 
//查看数据可正常写入
[root@centos7 data]# ll
total 4
-rw-r--r-- 1 root root 10 Apr 23 23:43 1_1.txt
[root@centos7 data]# stat 1_1.txt 
  File: ‘1_1.txt’
  Size: 10          Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d  Inode: 67          Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-04-23 23:41:43.337165591 +0800
Modify: 2020-04-23 23:43:00.815168810 +0800
Change: 2020-04-23 23:43:00.815168810 +0800
 Birth: -
[root@centos7 data]# cat 1_1.txt 
222
11111

软链接的特点:
(1)软链接有自己的文件属性即权限等

//先查看文件属性
[root@centos7 data]# ll
total 4
-rw-r--r-- 1 root root 10 Apr 23 23:43 1.txt
//为1.txt创建软链接
[root@centos7 data]# ln -s 1.txt 1_1.txt
//查看二者的文件属性,发现在权限、大小等方面有不同
[root@centos7 data]# ll
total 4
lrwxrwxrwx 1 root root  5 Apr 23 23:59 1_1.txt -> 1.txt
-rw-r--r-- 1 root root 10 Apr 23 23:43 1.txt

(2)可对不存在的文件或目录创建软链接,但不能指向已经存在的软链接上

//查看现有文件
[root@centos7 data]# ls
1_1.txt  1.txt
//为不存在的文件2.txt创建已存在的软链接1_1.txt,报错
[root@centos7 data]# ln -s 2.txt 1_1.txt 
ln: failed to create symbolic link ‘1_1.txt’: File exists
//对不存在的文件创建软链接
[root@centos7 data]# ln -s 2.txt 2_2.txt 
//显示对不存在的文件创建软链接成功,但会显示红色并闪烁
[root@centos7 data]# ll
total 4
lrwxrwxrwx 1 root root  5 Apr 23 23:59 1_1.txt -> 1.txt
-rw-r--r-- 1 root root 10 Apr 23 23:43 1.txt
lrwxrwxrwx 1 root root  5 Apr 24 00:06 2_2.txt -> 2.txt

(3)可跨分区创建软链接

[root@centos7 data]# ln -s ../var/  var
[root@centos7 data]# ll -i var
69 lrwxrwxrwx 1 root root 7 Apr 24 00:18 var -> ../var/

(4)软链接可对文件或目录创建
(5)创建软链接时,链接计数不会增加
示例:链接计数仍为1

[root@centos7 data]# ll -i
total 4
68 lrwxrwxrwx 1 root root  5 Apr 23 23:59 1_1.txt -> 1.txt
67 -rw-r--r-- 1 root root 10 Apr 23 23:43 1.txt

(6)删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软链接被称为死链接;若被指向路径文件被重新创建,死链接可恢复为正常的软链接

//查看原文件与软链接文件
[root@centos7 data]# ll
total 4
lrwxrwxrwx 1 root root  5 Apr 23 23:59 1_1.txt -> 1.txt
-rw-r--r-- 1 root root 10 Apr 23 23:43 1.txt
//删除原文件后,再次查看软链接,发现软链接指向的原文件闪烁
[root@centos7 data]# rm -f 1.txt 
[root@centos7 data]# ll
total 0
lrwxrwxrwx 1 root root 5 Apr 23 23:59 1_1.txt -> 1.txt
//创建原文件后恢复正常
[root@centos7 data]# touch 1.txt
[root@centos7 data]# ll
total 0
lrwxrwxrwx 1 root root 5 Apr 23 23:59 1_1.txt -> 1.txt
-rw-r--r-- 1 root root 0 Apr 24 00:23 1.txt
4. Linux 上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。

(1)cat :文件查看命令

参数:-n :显示行号;-A:显示结尾符号$
-n参数
-A参数

(2)touch:创建普通文件,默认情况下,touch命令会创建空文件,如果文件存在,将更改文件的三个时间
参数:
-a:修改访问时间atime
-c,-no-create:不新建任何文件
-m:只更改mtime

//创建文件1.txt
[root@centos7 data]# touch 1.txt
//查看1.txt的属性,是一个空文件
[root@centos7 data]# ll
total 0
-rw-r--r-- 1 root root 0 Apr 24 22:32 1.txt
//使用stat查看文件属性
[root@centos7 data]# stat 1.txt 
  File: ‘1.txt’
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 803h/2051d  Inode: 67          Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-04-24 22:32:31.711649948 +0800
Modify: 2020-04-24 22:32:31.711649948 +0800
Change: 2020-04-24 22:32:31.711649948 +0800
 Birth: -
//使用-a选项重新创建1.txt
[root@centos7 data]# touch -a 1.txt 
//使用stat再次查看文件属性,发现atime发生改变,由于访问时间也是元数据,所以ctime也会发生改变
[root@centos7 data]# stat 1.txt 
  File: ‘1.txt’
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 803h/2051d  Inode: 67          Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-04-24 22:33:05.119647712 +0800
Modify: 2020-04-24 22:32:31.711649948 +0800
Change: 2020-04-24 22:33:05.119647712 +0800
 Birth: -
//重新创建
[root@centos7 data]# touch 1.txt 
//发现三个时间属性同时改变
[root@centos7 data]# stat 1.txt 
  File: ‘1.txt’
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 803h/2051d  Inode: 67          Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-04-24 22:33:32.606645873 +0800
Modify: 2020-04-24 22:33:32.606645873 +0800
Change: 2020-04-24 22:33:32.606645873 +0800
 Birth: -

(3)mv:移动及重命名文件
参数:
-b:当文件存在时,覆盖前为其创建一个备份
-f:强制执行,不提示
-v:显示移动过程

//创建两个文件
[root@centos7 data]# touch test.txt test1.txt
[root@centos7 data]# ls
test1.txt  test.txt
//将test.txt重命名为test.txt.bak
[root@centos7 data]# mv test.txt test.txt.bak
[root@centos7 data]# ls
test1.txt  test.txt.bak
// -v 显示移动过程
[root@centos7 data]# mv -v test.txt.bak test.txt
‘test.txt.bak’ -> ‘test.txt’

(4)rename:礼品修改文件名

//批量创建10个文件
[root@centos7 data]# touch file{0..9}.txt
[root@centos7 data]# ls
file0.txt  file1.txt  file2.txt  file3.txt  file4.txt  file5.txt  file6.txt  file7.txt  file8.txt  file9.txt
//重命名
[root@centos7 data]# rename .txt .txt.bak *.txt
[root@centos7 data]# ls
file0.txt.bak  file2.txt.bak  file4.txt.bak  file6.txt.bak  file8.txt.bak
file1.txt.bak  file3.txt.bak  file5.txt.bak  file7.txt.bak  file9.txt.bak

(5)rm:删除文件
参数:
-f:强制删除,不提示
-d:删除空目录文件,非空目录不能删除
-r,-R,--recursive:递归删除
-v,--verbose:显示详细过程

[root@centos7 data]# mkdir -p {test1,test2/{test01,test02}}
[root@centos7 data]# tree
.
├── test1
└── test2
    ├── test01
    └── test02

4 directories, 0 files
[root@centos7 data]# rm -d test1
rm: remove directory ‘test1’? y
[root@centos7 data]# tree
.
└── test2
    ├── test01
    └── test02

3 directories, 0 files
//显示删除过程的递归删除
[root@centos7 data]# rm -rvf test2/
removed directory: ‘test2/test01’
removed directory: ‘test2/test02’
removed directory: ‘test2/’

(6)mkdir:创建目录
参数:
-m:指定创建文件夹的模式,可以指定权限
-p:递归创建目录,
-v:创建目录时显示创建过程

//创建目录
[root@centos7 data]# mkdir test
[root@centos7 data]# ls
test
//创建多层级目录,使用-p递归创建,-v显示创建过程
[root@centos7 data]# mkdir test/test3/test4/
mkdir: cannot create directory ‘test/test3/test4/’: No such file or directory
[root@centos7 data]# mkdir -pv test/test3/test4/
mkdir: created directory ‘test/test3’
mkdir: created directory ‘test/test3/test4/’
[root@centos7 data]# ls
test
[root@centos7 data]# tree
.
└── test
    └── test3
        └── test4

3 directories, 0 files

(7)rmdir:删除目录
参数:
-p:递归删除及其空的父目录
-v:显示删除过程

[root@centos7 data]# rmdir -pv test/*
rmdir: removing directory, ‘test/test1’
rmdir: failed to remove ‘test/test1’: Directory not empty
rmdir: removing directory, ‘test/test2’
rmdir: failed to remove ‘test/test2’: Directory not empty
[root@centos7 data]# rmdir -pv test/test{1,2}/test{1..3}
rmdir: removing directory, ‘test/test1/test1’
rmdir: removing directory, ‘test/test1’
rmdir: failed to remove directory ‘test/test1’: Directory not empty
rmdir: removing directory, ‘test/test1/test2’
rmdir: removing directory, ‘test/test1’
rmdir: failed to remove directory ‘test/test1’: Directory not empty
rmdir: removing directory, ‘test/test1/test3’
rmdir: removing directory, ‘test/test1’
rmdir: removing directory, ‘test’
rmdir: failed to remove directory ‘test’: Directory not empty
rmdir: removing directory, ‘test/test2/test1’
rmdir: removing directory, ‘test/test2’
rmdir: failed to remove directory ‘test/test2’: Directory not empty
rmdir: removing directory, ‘test/test2/test2’
rmdir: removing directory, ‘test/test2’
rmdir: failed to remove directory ‘test/test2’: Directory not empty
rmdir: removing directory, ‘test/test2/test3’
rmdir: removing directory, ‘test/test2’
rmdir: removing directory, ‘test’
[root@centos7 data]# tree
.

0 directories, 0 files

(8)tree:查看目录的树状结构
参数:
-a:显示所有文件和目录
-C:在文件和目录清单上添加颜色,便于区分各种类型
-d:显示目录名称而非内容
-D:列出文件的或目录的修改时间
-f:显示完整的相对路径名称
-p:列出权限
-s:列出文件或目录的大小

//显示所有文件及目录
[root@centos7 ~]# tree -a
.
├── anaconda-ks.cfg
├── .bash_history
├── .bash_logout
├── .bash_profile
├── .bashrc
├── .cache
│   ├── abrt
│   │   ├── applet_dirlist
│   │   └── lastnotification
│   ├── dconf
│   │   └── user
│   ├── event-sound-cache.tdb.eebeddfc9ed643049ab20bb89f55df70.x86_64-redhat-linux-gnu
│   ├── evolution
│   │   ├── addressbook
│   │   │   └── trash
│   │   ├── calendar
│   │   │   └── trash
│   │   ├── mail
│   │   │   └── trash
│   │   ├── memos
│   │   │   └── trash
│   │   ├── sources
│   │   │   └── trash
│   │   └── tasks
│   │       └── trash
│   ├── gdm
//添加颜色
[root@centos7 ~]# tree -aC
.
├── anaconda-ks.cfg
├── .bash_history
├── .bash_logout
├── .bash_profile
├── .bashrc
├── .cache
│   ├── abrt
│   │   ├── applet_dirlist
│   │   └── lastnotification
│   ├── dconf
│   │   └── user
│   ├── event-sound-cache.tdb.eebeddfc9ed643049ab20bb89f55df70.x86_64-redhat-linux-gnu
│   ├── evolution
│   │   ├── addressbook
│   │   │   └── trash
│   │   ├── calendar
│   │   │   └── trash
│   │   ├── mail
│   │   │   └── trash
│   │   ├── memos
│   │   │   └── trash
│   │   ├── sources
│   │   │   └── trash
│   │   └── tasks
│   │       └── trash
│   ├── gdm
│   │   ├── session.log
│   │   └── session.log.old
│   ├── gnome-shell
│   │   └── update-check-3.28
//显示目录而非内容
[root@centos7 ~]# tree -Cd
.
├── Desktop
├── Documents
├── Downloads
├── Music
├── Pictures
├── Public
├── Templates
└── Videos
// -D显示文件的更改时间,-f完整相对路径,-p列出权限,-s列出文件或目录大小
[root@centos7 ~]# tree -CDfps
.
├── [-rw-------        1959 Feb 21 15:39]  ./anaconda-ks.cfg
├── [drwxr-xr-x           6 Mar 17 21:46]  ./Desktop
├── [drwxr-xr-x           6 Mar 17 21:46]  ./Documents
├── [drwxr-xr-x           6 Mar 17 21:46]  ./Downloads
├── [-rw-r--r--        7786 Mar 25  2:14]  ./hellodb_innodb.sql
├── [-rw-r--r--        1990 Feb 21 15:43]  ./initial-setup-ks.cfg
├── [drwxr-xr-x           6 Mar 17 21:46]  ./Music
├── [drwxr-xr-x           6 Mar 17 21:46]  ./Pictures
├── [drwxr-xr-x           6 Mar 17 21:46]  ./Public
├── [drwxr-xr-x           6 Mar 17 21:46]  ./Templates
└── [drwxr-xr-x           6 Mar 17 21:46]  ./Videos

(9)cp:复制文件或目录
参数:
-b:覆盖已存在的目标文件前先备份
-l,--link:对源文件创建硬链接,而非复制文件
-p:保留源文件或目录的属性,包括所有者、所属组、权限与时间
-v:显示复制过程
-S:执行备份文件的后缀,默认为“~”,该选项只有在目标存放目录中存在要复制的目标文件时才生效,若目标存放目录中没有复制的目标文件时,直接执行复制操作,不修改文件后缀

//直接复制
[root@centos7 data]# cp /etc/fstab .
[root@centos7 data]# ls
fstab
//保留源文件属性
[root@centos7 data]# cp -p /etc/fstab fstab.bak
[root@centos7 data]# ll
total 8
-rw-r--r-- 1 root root 595 Apr 24 23:29 fstab
-rw-r--r-- 1 root root 595 Feb 21 14:57 fstab.bak
// -S指定备份的后缀
[root@centos7 data]# cp -S .bak1 /etc/fstab fstab
cp: overwrite ‘fstab’? y
[root@centos7 data]# ls
fstab  fstab.bak1

(10)ls:查看文件列表
参数:
-a,--all:显示隐藏文件;
-d:仅显示目录名,而不显示目录下的内容列表。显示符号链接文件本身,而不显示其所指向的目录列表;
-C:多列显示输出结果。这是默认选项;
-l:以长格式显示目录下的内容列表。输出的信息从左到右依次包括文件名,文件类型、权限模式、硬连接数、所有者、组、文件大小和文件的最后修改时间等;
-t:用文件和目录的更改时间排序;
-h:与-l选项配合使用,将文件大小以适合阅读的格式显示。

//显示隐藏文件
[root@centos7 data]# ls -a
.  ..  fstab  fstab.bak1
//以长格式、按更改时间排序,显示隐藏文件,将文件大小以适合阅读的格式显示
[root@centos7 data]# ls -lath
total 8.0K
drwxr-xr-x.  2 root root  37 Apr 24 23:35 .
-rw-r--r--   1 root root 595 Apr 24 23:35 fstab
-rw-r--r--   1 root root 595 Apr 24 23:34 fstab.bak1
dr-xr-xr-x. 19 root root 269 Apr 24 00:17 ..

(11)tac:倒叙查看文本内容
示例:tac /etc/passwd --倒叙查看文本内容

[root@centos7 data]# tac /etc/passwd
mysql:x:987:981:MySQL server:/var/lib/mysql:/sbin/nologin
quagga:x:92:92:Quagga routing suite:/var/run/quagga:/sbin/nologin
yyt:x:1000:1000:yyt:/home/yyt:/bin/bash
tcpdump:x:72:72::/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
gnome-initial-setup:x:988:982::/run/gnome-initial-setup/:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
saned:x:989:983:SANE scanner daemon user:/usr/share/sane:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
geoclue:x:990:986:User for geoclue:/var/lib/geoclue:/sbin/nologin
usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
unbound:x:991:988:Unbound DNS resolver:/etc/unbound:/sbin/nologin
qemu:x:107:107:qemu user:/:/sbin/nologin
chrony:x:992:989::/var/lib/chrony:/sbin/nologin
radvd:x:75:75:radvd user:/:/sbin/nologin
rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin
setroubleshoot:x:993:990::/var/lib/setroubleshoot:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
saslauth:x:994:76:Saslauthd user:/run/saslauthd:/sbin/nologin
gluster:x:995:992:GlusterFS daemons:/run/gluster:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
colord:x:996:993:User for colord:/var/lib/colord:/sbin/nologin
libstoragemgmt:x:997:994:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
sssd:x:998:995:User for sssd:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
halt:x:7:0:halt:/sbin:/sbin/halt
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
sync:x:5:0:sync:/sbin:/bin/sync
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
root:x:0:0:root:/root:/bin/bash

(12)head:显示文本内容,默认显示头10行
常用参数:-n #:显示文本头#行内容
示例:head -5 /etc/passwd --显示/etc/passwd文件头5行内容

[root@centos7 data]# head -5 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

(13)tail:显示文本内容,默认显示后10行
-n #:显示文本后#行内容   
-f:查看文件尾部内容结束后不退出,跟随显示新增的行,使用该参数可实时跟踪日志文件
示例:tail -5 /etc/passwd --显示/etc/passwd文件后5行内容

[root@centos7 data]# tail -5 /etc/passwd
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
yyt:x:1000:1000:yyt:/home/yyt:/bin/bash
quagga:x:92:92:Quagga routing suite:/var/run/quagga:/sbin/nologin
mysql:x:987:981:MySQL server:/var/lib/mysql:/sbin/nologin
5、复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的行首的空白字符
//执行复制操作
[root@centos7 data]# cp -p /etc/profile /tmp/
//使用vim打开
[root@centos7 data]vim /tmp/profile
//在命令模式下执行查找替换
:%s/^[[:blank:]]\+//g
//进行保存
:wq
6.在vim中设置tab缩进为4个字符
在vimrc配置文件中设置set tabstop=4即可,可配置个人和全局两种
个人生效:~/.vimrc
全局生效:/etc/vimrc
[root@centos7 ~]# vim ~/.vimrc
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容