文件的基本管理

152 阅读19分钟

文件的基本管理和XFS文件系统备份恢复

  1. Linux系统目录结构和相对/绝对路径。
  2. 创建/复制/删除文件,rm -rf / 意外事故
  3. 查看文件内容的命令
  4. 实战:xfs文件系统的备份和恢复

4.1 Linux系统目录结构和相对/绝对路径

在windowsk ,系统是多根系统 c:\ d:\ e:\

Linux只有一个根

用tree命令查看linux目录结构,这个命令默认是没有安装的,需要手工安装一下

[root@test ~]# mount /dev/sr0 /media/

mount: /dev/sr0 写保护,将以只读方式挂载

[root@test ~]# rpm -ivh /media/Packages/tree-1.6.0-10.el7.x86_64.rpm

根下的目录作用说明:

目 录说 明
/处于linux系统树形结构的最顶端,它是linux文件系统的入口,所有的目录、文件、设备都在 / 之下
/binbin是Binary的缩写。常用的二进制命令目录。比如 ls、cp、mkdir、cut等;和/usr/bin类似,一些用户级gnu工具
/boot存放的系统启动相关的文件,例如:kernel.grub(引导装载程序)
/devdev是Device的缩写。设备文件目录,比如声卡、磁盘……在Linux中一切都被看做文件。终端设备、磁盘等等都被看做文件 设备文件: /dev/sda,/dev/sda1,/dev/tty1,/dev/tty2,/dev/pts/1, /dev/zero, /dev/null, /dev/cdrom
/etc常用系统及二进制安装包配置文件默认路径和服务器启动命令目录 passwd 用户信息文件shadow 用户密码文件group 存储用户组信息fstab 系统开机启动自动挂载分区列表hosts 设定用户自己的IP与主机名对应的信息
/home普通用户的家目录默认存放目录
/lib库文件存放目录,函数库目录
/lost+found只在centos6中有默认为空,被FSCK(file system check用来检查和维护不一致的文件系统。若系统掉电或磁盘发生问题,可利用fsck命令对文件系统进行检查)用来放置零散文件(没有名称的文件) 当系统非法关机后,这里就会存放一些文件。在centos6版本下,每个分区的挂载点下会有些目录
/mnt /media一般用来临时挂载存储设备的挂载目录,比如有cdrom、U盘等目录在CENTOS7中会挂载到/run下面
/opt表示的是可选择的意思,有些软件包也会被安装在这里
/proc操作系统运行时,进程(正在运行中的程序)信息及内核信息(比如cpu、硬盘分区、内存信息等)存放在这里。/proc目录是伪装的文件系统proc的挂载目录,proc并不是真正的文件系统。因此,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。也就是说,这个目录的内容不在硬盘上而是在内存里 查看咱们的CPU信息 cat /proc/cpuinfo
/sys系统目录,存放硬件信息的相关文件
/run运行目录,存放的是系统运行时的数据,比如进程的PID文件
/srv服务目录,存放的是我们本地服务的相关文件
/sbin大多数涉及系统管理的命令都存放在该目录中,它是超级权限用户root的可执行命令存放地,普通用户无权限执行这个目录下的命令,凡是目录sbin中包含的命令都是root权限才能执行的
/tmp该目录用于存放临时文件,有时用户运行程序的时候,会产生一些临时文件。/tmp就是用来存放临时文件的。/var/tmp目录和该目录的作用是相似的,不能存放重要数据,它的权限比较特殊 [root@test ~]# ls –ld /tmpdrwxrwxrwt 10 root root 12288 Oct 3 20:45 /tmp/ à粘滞位(sticky bit)目录的sticky位表示这个目录里的文件只能被owner和root删除
/var系统运行和软件运行时产生的日志信息,该目录的内容是经常变动的,存放的是一些变化的文件。比如/var下有/var/log目录用来存放系统日志的目录,还有mail、/var/spool/cron
/usr存放应用程序和文件, /usr/bin 普通用户使用的应用程序 /usr/sbin 管理员使用的应用程序 /usr/lib 库文件Glibc(32位) /usr/lib64 库文件Glibc
/lib/lib64都在/usr/目录下这个目录里存放着系统最基本的动态链接共享库,包含许多被/bin/和/sbin/中的程序使用的库文件,目录/usr/lib/中含有更多用于用户程序的库文件。作用类似于windows里的DLL文件,几乎所有的应用程序都需要用到这些共享库注:lib .a是静态库 lib.so是动态库静态库在编译时被加载到二进制文件中 动态库在运行时加载到进程的内存空间中简单的说:这些库是为了让你的程序能够正常编译运行的其实类似于WIN中.dll文件,几乎所有的应用程序都需要用到这些共享库

4.2 绝对路径和相对路径

在linux中分绝对路径和相对路径的,其中绝对路径一定是从 /开始的,而相对路径不是从根开始的,且还可能使用路径符号,路径符号有以下几种:

  • . (一个点) 表示当前目录
  • .. (二个点) 表示上一层目录
  • “-” (一个短横线) 表示上一次使用的目录,例如从/etc/sysconfig直接切换到/tmp目录,-就表示/etc/sysconfig目录
  • /dir 和 /dir/ 一般是用来表示dir目录和dir目录中的内容

rysnc /etc ---> /mnt ===> A机 /mnt/etc

rysnc /etc/ ---> /mnt ===> A机 /mnt/a.txt b.txt test

4.3 文件的管理

文件的管理方式有好多种:

  1. 改变目录 cd
  2. 创建、修改,移动,删除: touch mkdir mv vi rm cp
4.3.1 创建文件和文件夹

命令之:touch 

作用:常用来创建空文件,如果文件存在,则修改这个文件的时间

补充:文件的三种时间

[root@test mnt]# ll
total 0
-rw-r--r--. 1 root root  0 Apr 29 05:54 a.txt
-rw-r--r--. 1 root root  0 Apr 29 05:54 b.txt
drwxr-xr-x. 2 root root 19 Apr 29 05:54 test
[root@test mnt]# date
Wed Apr 29 06:02:34 CST 2020
[root@test mnt]# stat a.txt 
  File: ‘a.txt’
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: fd00h/64768d    Inode: 1921        Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:mnt_t:s0
Access: 2020-04-29 05:55:24.845067470 +0800
Modify: 2020-04-29 05:54:29.600066282 +0800
Change: 2020-04-29 05:54:29.600066282 +0800
 Birth: -
[root@test mnt]# LANG=zh_CN.UTF8
[root@test mnt]# stat a.txt 
  文件:"a.txt"
  大小:0          块:0          IO 块:4096   普通空文件
设备:fd00h/64768d Inode:1921        硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:mnt_t:s0
最近访问:2020-04-29 05:55:24.845067470 +0800
最近更改:2020-04-29 05:54:29.600066282 +0800
最近改动:2020-04-29 05:54:29.600066282 +0800
创建时间:-
[root@test mnt]# echo 23 > a.txt
[root@test mnt]# stat a.txt 
  文件:"a.txt"
  大小:3          块:8          IO 块:4096   普通文件
设备:fd00h/64768d Inode:1921        硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:mnt_t:s0
最近访问:2020-04-29 05:55:24.845067470 +0800
最近更改:2020-04-29 06:04:40.977079426 +0800
最近改动:2020-04-29 06:04:40.977079426 +0800
创建时间:-
[root@test mnt]# cat a.txt 
23
[root@test mnt]# stat a.txt 
  文件:"a.txt"
  大小:3          块:8          IO 块:4096   普通文件
设备:fd00h/64768d Inode:1921        硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:mnt_t:s0
最近访问:2020-04-29 06:05:12.888080112 +0800
最近更改:2020-04-29 06:04:40.977079426 +0800
最近改动:2020-04-29 06:04:40.977079426 +0800
创建时间:-
[root@test mnt]# date
2020 04 29 星期三 06:05:26 CST
[root@test mnt]# date
2020 04 29 星期三 06:05:31 CST
[root@test mnt]# chmod +x a.txt 
[root@test mnt]# stat a.txt 
  文件:"a.txt"
  大小:3          块:8          IO 块:4096   普通文件
设备:fd00h/64768d Inode:1921        硬链接:1
权限:(0755/-rwxr-xr-x)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:mnt_t:s0
最近访问:2020-04-29 06:05:12.888080112 +0800
最近更改:2020-04-29 06:04:40.977079426 +0800
最近改动:2020-04-29 06:05:47.509080856 +0800
创建时间:-

注:

访问时间:atime 查看内容 cat a.txt

修改时间:mtime 修改内容 vim a.txt

改变时间:ctime 文件属性,比如权限 change time。 chmod +x a.sh

atime不会一直更新,只有当mtime更新的时候,atime才会更新

语法:touch 文件名

[root@test mnt]# touch aa.txt
[root@test mnt]# touch bb.txt cc.txt ee.txt
[root@test mnt]# ll
总用量 4
-rw-r--r--. 1 root root  0 429 06:11 aa.txt
-rwxr-xr-x. 1 root root  6 429 06:10 a.txt
-rw-r--r--. 1 root root  0 429 06:12 bb.txt
-rw-r--r--. 1 root root  0 429 05:54 b.txt
-rw-r--r--. 1 root root  0 429 06:12 cc.txt
-rw-r--r--. 1 root root  0 429 06:12 ee.txt
drwxr-xr-x. 2 root root 19 429 05:54 test
[root@test mnt]# date
20200429日 星期三 06:12:37 CST
[root@test mnt]# touch aa.txt 
[root@test mnt]# ll a.txt 
-rwxr-xr-x. 1 root root 6 429 06:10 a.txt
[root@test mnt]# ll aa.txt 
-rw-r--r--. 1 root root 0 429 06:12 aa.txt
[root@test mnt]# touch file-{1..10}.txt
[root@test mnt]# ls
aa.txt  b.txt   file-10.txt  file-3.txt  file-6.txt  file-9.txt
a.txt   cc.txt  file-1.txt   file-4.txt  file-7.txt  test
bb.txt  ee.txt  file-2.txt   file-5.txt  file-8.txt
4.3.2 使用vi或vim和重定向功能创建一个文件
  • 使用vi 或vim创建文件
[root@test mnt]# ll c.txt
ls: 无法访问c.txt: 没有那个文件或目录
[root@test mnt]# vim c.txt
[root@test mnt]# ll c.txt
-rw-r--r--. 1 root root 6 4月  29 06:16 c.txt
[root@test mnt]# ll d.txt
ls: 无法访问d.txt: 没有那个文件或目录
[root@test mnt]# vim d.txt  # vi不可以创建空文件
[root@test mnt]# ll d.txt
ls: 无法访问d.txt: 没有那个文件或目录
  • 用重定向符号创建新文件
[root@test mnt]# ll e.txt
ls: 无法访问e.txt: 没有那个文件或目录
[root@test mnt]# >e.txt
[root@test mnt]# ll e.txt
-rw-r--r--. 1 root root 0 4月  29 06:17 e.txt
[root@test mnt]# cat e.txt 
[root@test mnt]# ll f.txt
ls: 无法访问f.txt: 没有那个文件或目录
[root@test mnt]# echo nihao > f.txt
[root@test mnt]# ll f.txt 
-rw-r--r--. 1 root root 6 4月  29 06:18 f.txt
4.3.3 创建目录命令之mkdir

作用:创建目录

语法: mkdir 选项(-p) 目录名

[root@test mnt]# ll -d dir1
ls: 无法访问dir1: 没有那个文件或目录
[root@test mnt]# mkdir dir1
[root@test mnt]# ll -d dir1
drwxr-xr-x. 2 root root 6 429 06:20 dir1
[root@test mnt]# mkdir a/b/c/d
mkdir: 无法创建目录"a/b/c/d": 没有那个文件或目录
[root@test mnt]# mkdir -p a/b/c/d  # 选项-p表示递归
[root@test mnt]# ls a
a/      aa.txt  a.txt   
[root@test mnt]# ls a/b/c/d/
[root@test mnt]# cd a/b/c/d/
[root@test d]# pwd
/mnt/a/b/c/d
[root@test d]# mkdir -v a1/b1/c1
mkdir: 无法创建目录"a1/b1/c1": 没有那个文件或目录
[root@test d]# mkdir -pv a1/b1/c1
mkdir: 已创建目录 "a1"
mkdir: 已创建目录 "a1/b1"
mkdir: 已创建目录 "a1/b1/c1"
4.3.4 删除文件或目录之rm

命令:rm

作用:可以删除一个目录中的一个或多个文件或目录,对于链接文件,只是删除整个链接文件,而原文件保持不变的

语法:rm (选项) 处理对象

选项:

-f 强制删除,没有提示

-r 删除目录

[root@test mnt]# ll a.txt 
-rwxr-xr-x. 1 root root 6 4月  29 06:10 a.txt
[root@test mnt]# rm a.txt   #  不加任何选项,是交互式删除,会提示
rm:是否删除普通文件 "a.txt"?y
[root@test mnt]# ll a.txt
ls: 无法访问a.txt: 没有那个文件或目录
[root@test mnt]# rm -f b.txt
[root@test mnt]# ll b.txt
ls: 无法访问b.txt: 没有那个文件或目录
[root@test mnt]# rm -f dir1
rm: 无法删除"dir1": 是一个目录
[root@test mnt]# rm -r dir1
rm:是否删除目录 "dir1"?y
[root@test mnt]# rm -rf a
[root@test mnt]# rm -rv 
rm: 缺少操作数
Try 'rm --help' for more information.
[root@test mnt]# 
[root@test mnt]# 
[root@test mnt]# 
[root@test mnt]# mkdir -pv a1/b1/c1
mkdir: 已创建目录 "a1"
mkdir: 已创建目录 "a1/b1"
mkdir: 已创建目录 "a1/b1/c1"
[root@test mnt]# rm -rv a1
rm:是否进入目录"a1"? y
rm:是否进入目录"a1/b1"? y
rm:是否删除目录 "a1/b1/c1"?y
已删除目录:"a1/b1/c1"
rm:是否删除目录 "a1/b1"?y
已删除目录:"a1/b1"
rm:是否删除目录 "a1"?y
已删除目录:"a1"

rm -rf (一定要慎用,在使用这个命令以前,一定要确定一下当前所在的目录,防止误删重要数据,多敲一下pwd)

4.3.5 复制文件/目录

命令:cp 源文件/目录 目录文件/目录

在复制的时候也支持改名操作

选项:

-p: 文件的属性(权限、属组、时间戳)也复制过去。如果不指定p选项,谁执行复制动作,文件所有者和组就是谁

-R/r:递归处理,将指定目录下的所有文件与子目录一并处理

-l:在目标位置建立硬链接,而不是复制文件本身

-s:在目标位置建立软链接,而不是复制文件本身(软链接或符号链接相当于windows的快捷方式)

-a: 相当于pdr三个选项,常用于备份

[root@test mnt]# touch a1 a2 a3
[root@test mnt]# ll 
总用量 0
-rw-r--r--. 1 root root 0 430 20:38 a1
-rw-r--r--. 1 root root 0 430 20:38 a2
-rw-r--r--. 1 root root 0 430 20:38 a3
[root@test mnt]# chown alice: a2
[root@test mnt]# ll
总用量 0
-rw-r--r--. 1 root  root  0 430 20:38 a1
-rw-r--r--. 1 alice alice 0 430 20:38 a2
-rw-r--r--. 1 root  root  0 430 20:38 a3
[root@test mnt]# mkdir dir1
[root@test mnt]# ll
总用量 0
-rw-r--r--. 1 root  root  0 430 20:38 a1
-rw-r--r--. 1 alice alice 0 430 20:38 a2
-rw-r--r--. 1 root  root  0 430 20:38 a3
drwxr-xr-x. 2 root  root  6 430 20:39 dir1
[root@test mnt]# echo a1 > a1
[root@test mnt]# echo a2 > a2
[root@test mnt]# echo a3 > a3
[root@test mnt]# cp a1 b1
[root@test mnt]# cat a1 b1
a1
a1
[root@test mnt]# ll
总用量 16
-rw-r--r--. 1 root  root  3 430 20:39 a1
-rw-r--r--. 1 alice alice 3 430 20:39 a2
-rw-r--r--. 1 root  root  3 430 20:39 a3
-rw-r--r--. 1 root  root  3 430 20:39 b1
drwxr-xr-x. 2 root  root  6 430 20:39 dir1
[root@test mnt]# cp a3 dir1/
[root@test mnt]# ls dir1/
a3
[root@test mnt]# ls
a1  a2  a3  b1  dir1
[root@test mnt]# ll a2
-rw-r--r--. 1 alice alice 3 430 20:39 a2
[root@test mnt]# id alice
uid=1000(alice) gid=1000(alice) 组=1000(alice)
[root@test mnt]# cp a2 b2
[root@test mnt]# ll a2 b2
-rw-r--r--. 1 alice alice 3 430 20:39 a2
-rw-r--r--. 1 root  root  3 430 20:41 b2
[root@test mnt]# cp -p a2 dir1/b2
[root@test mnt]# ll dir1/b2 
-rw-r--r--. 1 alice alice 3 430 20:39 dir1/b2
[root@test mnt]# mkdir dir2
[root@test mnt]# ls dir1/
a3  b2
[root@test mnt]# cp dir1/ dir2/
cp: 略过目录"dir1/"
[root@test mnt]# ls dir2
[root@test mnt]# cp -r dir1 dir2/
[root@test mnt]# ls dir2
dir1
[root@test mnt]# ls dir2/dir1/
a3  b2
[root@test mnt]# cp -r dir
dir1/ dir2/ 
[root@test mnt]# cp -r dir/ dir2/
cp: 无法获取"dir/" 的文件状态(stat): 没有那个文件或目录
[root@test mnt]# cp -r dir/* dir2/
cp: 无法获取"dir/*" 的文件状态(stat): 没有那个文件或目录
[root@test mnt]# cp -r dir1/ dir2/
cp:是否覆盖"dir2/dir1/a3"y
cp:是否覆盖"dir2/dir1/b2"y
[root@test mnt]# ls dir2
dir1
[root@test mnt]# cp  dir1/* dir2/
[root@test mnt]# ls dir2/
a3  b2  dir1
[root@test mnt]# ls
a1  a2  a3  b1  b2  dir1  dir2
[root@test mnt]# mkdir /opt/dir3
[root@test mnt]# cp -a /mnt/* /opt/dir3
[root@test mnt]# cd /opt/dir3
[root@test dir3]# ll
总用量 20
-rw-r--r--. 1 root  root   3 430 20:39 a1
-rw-r--r--. 1 alice alice  3 430 20:39 a2
-rw-r--r--. 1 root  root   3 430 20:39 a3
-rw-r--r--. 1 root  root   3 430 20:39 b1
-rw-r--r--. 1 root  root   3 430 20:41 b2
drwxr-xr-x. 2 root  root  26 430 20:42 dir1
drwxr-xr-x. 3 root  root  38 430 20:44 dir2
[root@test mnt]# cp -l a1 c1   #  建立一个硬链接
[root@test mnt]# ll
总用量 24
-rw-r--r--. 2 root  root   3 430 20:39 a1
-rw-r--r--. 1 alice alice  3 430 20:39 a2
-rw-r--r--. 1 root  root   3 430 20:39 a3
-rw-r--r--. 1 root  root   3 430 20:39 b1
-rw-r--r--. 1 root  root   3 430 20:41 b2
-rw-r--r--. 2 root  root   3 430 20:39 c1
drwxr-xr-x. 2 root  root  26 430 20:42 dir1
drwxr-xr-x. 3 root  root  38 430 20:44 dir2
[root@test mnt]# cat a1
a1
[root@test mnt]# cat c1
a1
[root@test mnt]# echo nihao > c1
[root@test mnt]# cat c1
nihao
[root@test mnt]# cat a1
nihao
[root@test mnt]# rm -f a1
[root@test mnt]# cat c1
nihao
[root@test mnt]# echo a1 >> c1
[root@test mnt]# cat c1
nihao
a1
4.3.6 移动文件/目录

mv在移动文件的时候也支持改名操作

[root@test mnt]# move===mv
[root@test mnt]# mkdir dir3
[root@test mnt]# ls dir3
[root@test mnt]# mv a2 dir3/
[root@test mnt]# ls dir3
a2
[root@test mnt]# ls
a3  b1  b2  c1  dir1  dir2  dir3
[root@test mnt]# mv a3 dir3/^C
[root@test mnt]# mv a3 ./dir3
[root@test mnt]# ls dir3
a2  a3
[root@test mnt]# ls
b1  b2  c1  dir1  dir2  dir3
[root@test mnt]# mv b1 c2   # 把文件b1改名为c2
[root@test mnt]# ls
b2  c1  c2  dir1  dir2  dir3
[root@test mnt]# mv dir1 dir11  # 把目录dir1改名为dir11
[root@test mnt]# ls
b2  c1  c2  dir11  dir2  dir3
[root@test mnt]# ls dir11
a3  b2
4.3.7 传输文件scp

scp(security copy)命令是基于ssh的安全拷贝命令,在连接远程服务器时需要输入密码。可以实现如下功能:

  • 从本地拷贝到远程 scp 本地 远程
  • 从远程拷贝到本地 scp 远程 本地
  • 从远程拷贝到远程 scp 远程 远程
[root@test mnt]# scp a1 root@10.10.10.30:/mnt  # 将当前目录下的a1文件拷贝到远程服务                                                  器10.30的/mnt/目录下面
Password: 
a1                                    100%   23    22.6KB/s   00:00    
[root@test mnt]# scp root@10.10.10.30:/mnt/bin.tar.gz ./  # 将远程服务器10.30目                                录/mnt下面的bin.tar.gz文件拷贝到本地的当前目录/mnt下面
Password: 
bin.tar.gz                            100% 2312KB  50.9MB/s   00:00    
[root@test mnt]# ls
a1  b2  bin.tar.gz  c1  c2  dir11  dir2  dir3
[root@test mnt]# scp -r root@10.10.10.30:/mnt/bin.tar.gz ./  # -r 递归
[root@test mnt]# scp root@10.10.10.30:/mnt/bin.tar.gz  root@10.10.10.20:/tmp
[root@test mnt]# scp -r root@10.10.10.30:/opt/* /opt
Password: 
b                         100%    0     0.0KB/s   00:00    
a                         100%    0     0.0KB/s   00:00    
lib.tar.gz                100%  223MB  79.6MB/s   00:02    
[root@test mnt]# ls /opt
a.txt  b.txt  dir3  dir-remote  lib.tar.gz  rh
[root@test mnt]# ls /opt/dir-remote/
a  b

文件的传输拷贝也可以借助其它工具来进行,比如 : fz(filezilla)

4.4 查看文件

4.4.1 命令之-cat

语法:cat 文件名

作用:查看文件内容,一次显示整个文件的内容,针对内容比较多的文件,建议大家用别的命令去查看内容

[root@test mnt]# cat -n a1  # -n表示显示行号
     1	1
     2	
     3	
     4	
     5	
     6	3
     7	
     8	
     9	
    10	
    11	6
    12	6
    13	9
    14	
    15	
    16	01
[root@test mnt]# cat -ns a1  # -s 表示不显示多余的行
     1	1
     2	
     3	3
     4	
     5	6
     6	6
     7	9
     8	
     9	01
4.4.2 命令之-more

作用:以分页形式显示文件内容

语法:more + 文件名

说明: 按下回车刷新一行,按下空格刷新一屏,输入q键退出

[root@test mnt]# more /var/log/messages
4.4.3 命令之-less

作用:和more功能一样

语法:less +文件名

说明:linux中more与less的区别

搜索: 输入斜杠 / 然后在后面跟上你要查找的内容,然后回车具体使用和man手册的使用是一样的

more:不支持后退,但几乎不需要加参数,空格键是向下翻页,Enter键是向下翻一行,在不需要后退的情况下比较方便

less:支持前后翻滚,既可以向上翻页(pageup按键),也可以向下翻页(pagedown按键)。空格键是向下翻页,Enter键是向下翻一行,键盘上的方向键也可以向上向下翻页

4.4.4 命令之-head

作用: 用于显示文件的开头的内容。在默认情况下,head命令显示文件的头10行内容

语法:head(选项)文件名

参数: -n 显示从文件头开始的行数,默认是显示文件的头10行内容

[root@test mnt]# head -n 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
[root@test mnt]# 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
4.4.5 命令之-tail

作用: 用于显示文件中的尾部内容。默认在屏幕上显示指定文件的末尾10行

语法:tail (选项)文件名

参数:

-n 显示文件尾部多少行的内容(n为数字)

-f 动态显示数据(不关闭),常用来查看日志

[root@test ~]# tail -n 3 /var/log/secure  # 查看最后3行记录
[root@test ~]# tail -f /var/log/secure    # 在一个终端执行此命令动态查看文件内容
[root@test ~]# ssh root@192.168.1.63   #在另一个终端远程登录Linux,登录成功后