# 云计算运维2 linux的简单操作
一.linux的简单指令
1.切换目录–cd
-
更改当前的工作目录,即切换目录
-
绝对路径(以/开始的路径)
-
相对路径(以当前工作目录开始的路径)
-
cd= change directory,切换工作目录 -
/根目录;~当前登录用户家目录(root 用户就是/root) -
.当前目录;..上一级父目录
[root@server ~]# cd / 切换到系统根目录
[root@server /]# cd /root 使用绝对路径切换到 root 用户的家目录
[root@server ~]# cd /home 绝对路径切换到
/home目录 /home 存放普通用户的家目录[root@server home]# cd ~ ~是家目录简写,等价于cd /root[root@server ~]# cd /etc 绝对路径切换到
/etc目录[root@server etc]# cd ..
..代表当前目录的上一级父目录[root@server /]# cd .
.代表当前所在目录本身
2.查看当前的工作目录–pwd
[root@server ~]# pwd 全称:print working directory,打印当前所在目录
[root@server ~]# su - fox su = switch user,切换用户
[centos@server ~]$ pwd /home/centos 切换到普通用户后执行
pwd,输出/home/centos# 注意:windows和linux系统的目录路径表示的不同
3.浏览目录内容
[root@server ~]# ls 公共 模板 视频 图片 文档 下载 音乐 桌面 anaconda-ks.cfg
[root@server ~]# ls / afs bin boot dev dvd.repo etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
4.修改密码
[root@server /]# passwd
更改用户 root 的密码 。
新的密码:
无效的密码: 密码少于 8 个字符
重新输入新的密码:
passwd:
所有的身份验证令牌已经成功更新。
[root@server /]# passwd fox
更改用户 fox 的密码 。
新的密码:
无效的密码: 密码未通过字典检查 - 太简单或太有规律
重新输入新的密码:
passwd:所有的身份验证令牌已经成功更新。
[root@server /]# passwd -d fox # 清除fox账户密码
清除用户的密码 fox。
passwd: 操作成功
5. 重置root密码
第一步:重启虚拟机后在图一启动界面按下“e”键,显示图二内核驱动参数。

第二步:找到linux这行,末尾空格后 输入 rd.break,然后按ctl+x

第三步 以读写方式挂载/sysroot

第四步:设置密码

第五步:退出(输入两次exit)

二.Linux中的执行命令
1.命令格式
命令分为两类
-
内置命令:由shell程序自带的命令
-
外部命令:有独立的可执行程序文件,文件名即命令名
格式:
主命令 参数 操作对象
注意:
下面是对于命令的语法的一些符号的说明:
[] :表示的是可选
...: 表示的可以存在多个参数
|:表示是可选的
<>:必填
{}:表示作为一个整体存在的
终止当前的命令:按【Ctrl+C】键可中断正在执行的命令
2.命令帮助
查看bash内部命令帮助
[root@server ~]# help cd
命令 --help
[root@server ~]# cat ——help 示例如下:这里改为"yum"

man
-
man命令用来提供在线帮助,使用权限是所有用户。
-
使用man命令可以调阅其中的帮助信息,非常方便实用。
man command
[root@server ~]# man ls

-
在man命令帮助信息的界面中,所包含的常用操作按键如下:
| 按键 | 作用 |
|---|---|
| 空格键,PaGe down | 向下翻一页 |
| PaGe up,b | 向上翻一页 |
| home | 直接前往首页 |
| end | 直接前往尾页 |
| / | 从上至下搜索某个关键词,如“/linux” |
| ? | 从下至上搜索某个关键词,如“?linux” |
| n | 定位到下一个搜索到的关键词 |
| N | 定位到上一个搜索到的关键词 |
| q | 退出帮助文档 |
-
man命令的帮助信息的结构如下:
| 结构名称 | 代表意义 |
|---|---|
| NAME | 命令的名称 |
| SYNOPSIS | 参数的大致使用方法 |
| DESCRIPTION | 介绍说明 |
| EXAMPLES | 演示(附带简单说明) |
| OVERVIEW | 概述 |
| DEFAULTS | 默认的功能 |
| OPTIONS | 具体的可用选项(带介绍) |
| ENVIRONMENT | 环境变量 |
| FILES | 用到的文件 |
| SEE ALSO | 相关的资料 |
| HISTORY | 维护历史与联系方式 |
man手册的几个部分
区段1:用户指令,查看命令的帮助
区段2:系统调用,查看可被内核调用的函数的帮助
区段3:程序库调用,查看函数和函数库的帮助
区段4:设备,查看特殊文件的帮助(主要是/dev目录下的文件)
区段5:文件格式,查看配置文件的帮助
区段6:游戏,查看游戏的帮助
区段7:杂项,惯例与协议等,例如Linux文件系统、网络协议、ASCII code等等的说明
区段8:系统指令,查看系统管理员可用的命令的帮助 区段9:内核内部指令,查看内核相关文件的帮助
使用如下命令可以知道某个命令在man的哪个区段有相关帮助文档:
[root@server ~]# whatis man
man (7) - macros to format man pages
man (1) - an interface to the on-line reference manuals
man (1p) - display system documentation
[root@server ~]# man -f man
man (7) - macros to format man pages
man (1) - an interface to the on-line reference manuals
man (1p) - display system documentation
[root@server ~]# man 1 man [root@server ~]# man 7 man
3.date
作用
-
date命令用于显示或设置系统的时间与日期
格式
date -参数 +显示日期时间格式参数
4.timedatectl
timedatectl命令用于设置系统的时间,英文全称为:“time date control”

timedatectl命令中的参数以及作用:
| 参数 | 作用 |
|---|---|
| status | 显示状态信息 |
| list-timezones | 列出已知时区 |
| set-timezone | 设置生效时区 |
| set-time | 设置系统时间 |
5.日历
格式:cal 月份 年份
[root@server ~]# cal 05 2023
[root@server ~]# cal 2023
6.查看目录下文件 ls
格式
ls -参数 操作对象
参数
| 参数 | 功能 |
|---|---|
| -l | 以长格形式显示文件和目录的详细信息,ls命令默认只显示名称的短格式。 |
| -d | 显示指定目录本身的信息,而不显示目录下的各个文件和子目录的信息。 |
| -c | 按文件的修改时间排序后,予以显示。 |
| -h | 以更人性化的方式显示出目录或文件的大小,默认的大小单位为字节,使用-h选项后将显示为K、M等单位。此选项需要和-l选项结合使用才能体现出结果。 |
| -R | 以递归的方式显示指定目录及其子目录中的所有内容。 |
| -a | 显示所有子目录和文件的信息,包括名称以“.”开头的隐藏目录和隐藏文件。 |
| -A | 与-a选项的作用类似,但不显示表示当前目录的“.”和表示父目录的“..”。 |
| -i | 显示文件索引节点号(inode)。一个索引节点代表一个文件,在linux中保存在磁盘分区中的文件都给它分配一个编号,称为索引节点号inode。 |
| -s | 按照文件大小排序 |
ls浏览后颜色表示
-
白色:普通文件
-
蓝色:目录
-
红色:压缩包文件
-
黄色:设备文件
-
绿色:可执行文件
三.linux文件类型和根目录结构
1.linux文件类型
| 第一个字符 | 文件类型 | 说明 |
|---|---|---|
| - | 普通文件 | 类似于Windows的记事本 |
| d | 目录文件 | 类似于windows文件夹 |
| c | 字符设备文件 | 串行端口设备,顺序读写,键盘 |
| b | 块设备文件 | 可供存储的接口设备,随机读写,硬盘 |
| p | 管道文件 | 用于进程间的通信 |
| s | 套接字文件 | 通常用于网络上的通信。可以启动一个程序来监听客户端的要求,客户端可以通过套接字来进行数据通信 |
| l | 符号链接又叫软链接,和原文件不是一个文件 | 例如Windows的快捷方式,如果原始文件被删除,所有指向它的符号链接也就都被破坏了。软链接有自己的node,是linux特殊文件的一种,作为一个文件,它的数据是它所连接的文件的路径。符号链接可以跨越文件系统,也可以为目录建立。 |
| 硬链接 | 只能引用同一文件系统中的文件。它引用的是文件在文件系统中的物理索引(也称为inode)。当移动或者删除原始文件时,硬链接不会被破坏,因为它所引用的是文件的物理数据而不是文件在件结构中的位置。 |
2.linux目录结构
特点
-
使用树形目录结构来组织和管理文件。
-
整个系统只有一个根目录(树根),Linux的根目录用“/”表示
-
其他所有分区以及外部设备(如硬盘、光驱等)都是以根目录为起点,挂接在目录树的某个目录中的,通过访问挂载点目录,即可实现对这些分区的访问
常见目录用途
| 文件名 | 描述 |
|---|---|
| / | Linux文件系统的最上层根目录,其他所有目录均是该目录的子目录 |
| /boot | 存放系统启动时所需的文件,这些文件若损坏常会导致系统无法启动,一般不要改动 |
| /root | 超级用户的个人目录,普通用户没有权限访问 |
| /home | 存放一般用户的个人目录 |
| /bin | Binary的缩写,存放普通用户可执行的程序或命令 |
| /sbin | 和/bin类似,这些文件往往用来进行系统管理,只有root可使用 |
| /lib | 是库(library)英文缩写,存放系统的各种库文件 |
| /lib64 | 存放系统本身需要用到64位程序的共享函数库(library) |
| /usr | 一般用户程序安装所在的目录,用于安装各种应用程序 |
| /opt | 该目录通常提供给较大型的第三方应用程序使用,例如Sun Staroffice、Corel WordPerfect,这可避免将文件分散至整个文件系统 |
| /etc | 存放了系统管理时要用到的各种配置文件和子目录 |
| /var | 通常各种系统日志文件放在这里 |
| /run | 保存自系统启动以来描述系统信息的文件 |
| /dev | dev 是设备(device)的英文缩写。包含所有的设备文件 |
| /mnt和/media | 可以临时将别的文件系统挂在这个目录下,即为其他的文件系统提供安装点 |
| /tmp | 用来存放不同程序执行时产生的临时文件 |
| /srv | srv 是服务(server)的简写,服务启动之后需要访问的数据目录 |
| /sys | 本目录是将内核的一些信息映射文件,以供应用程序所用 |
| /proc | 可以在这个目录下获取系统信息,详解网址:Linux下一个重要目录“/proc”,你还不知道作用? |
注意
-
系统自带的目录不要随意删除
-
目录的名称是区分大小写的
四.从命令行管理文件
1.文件命名规则
-
不能使用/来当文件名,/是用来做根的,也是用来做路径分隔符的
-
文件名不能超过255个字符
-
区分大小写file File FILE fIle root Root ROOT rOOt ROOT
-
目录也是文件,在同一路径下,两个不同类型文件不能同名
2.创建链接文件
硬链接
原理
linux系统允许多个文件指向同一个inode,即允许一个文件拥有多个有效地路径名(硬连接就是指向原始文件inode的指针)
查看
ll 文件名
stat 文件名
建立硬链接
格式
ln -参数 源文件 目标连接文件

硬连接建立后,删除源文件后数据依然可以访问,只有硬连接为0时,数据旧无法访问了

注意
硬连接不能给目录建立
目录自带2个硬连接,即目录中的 . .. ,表示当前目录和上一级目录
不可以在不同的文件系统内建立硬连接,由于inode是当前文件在本文件系统的索引值即只能在本分区使用,应以硬连接不能跨越文件系统
软链接
原理
软连接是一种符号连接,类似于windows的“快捷方式”,仅包含所连接的路径名
格式
ln -s 源文件 目标连接名

软连接只是一种指向关系,删除源文件则数据不可访问

软硬链接的区别
| 对比维度 | 硬链接 Hard Link | 软链接 Symbolic Link |
|---|---|---|
| inode | 和源文件共用同一个 inode,inode 号相同 | 拥有独立全新 inode,inode 号不一样 |
| 文件大小 | 不占用额外空间(仅目录条目) | 文件大小 = 目标路径字符串长度(例:yum->dnf-3 大小 5) |
| 跨分区 / 磁盘 | ❌ 不支持。inode 只在本文件系统有效,不能跨分区、跨硬盘 | ✅ 支持,可指向其他分区、U 盘、远程挂载文件 |
| 指向目录 | ❌ 不能给目录创建硬链接(系统保护,防止目录环) | ✅ 可以给目录、文件、设备任意创建软链接 |
| 删除源文件 | 只是引用计数 - 1,硬链接仍能正常访问文件数据 | 源文件删除后,软链接变成失效链接(红标断链),无法读取 |
| 权限控制 | 硬链接无独立权限,权限统一看原 inode | 软链接自身权限几乎无效,访问权限由目标文件决定 |
| 创建命令 | ln 源文件 硬链接名 |
ln -s 源文件 软链接名 |
| 相对 / 绝对路径 | 无路径概念,直接绑定 inode | 分相对 / 绝对路径,移动软链接后相对路径容易失效 |
3.目录操作命令
1.创建目录
格式
mkdir [-p] [/路径/]目录
参数
-p 可快速创建出目录结构中指定的每个目录,对于已存在的目录不会被覆盖
-v 显示创建目录的详细过程
示例
[root@server ~]# mkdir t1 [root@server ~]# mkdir t2 t3 t4 # 批量一次性新建 [root@server ~]# mkdir -p n1/n2/n3 # 新建递归目录
du命令
-
作用:统计目录及文件的空间占用情况,查看某个目录中的各级子目录所占用的磁盘空间数。
-
命令格式: du [参数] [目录名]
-
参数:
选项 功能 -a 统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录。 -s 只统计每个文件所占用空间总的大小,而不是统计每个子目录、文件的大小。 -h 以K,M,G为单位显示磁盘使用情况,以提高信息的可读性。
2.新建文件
创建普通文件
touch用法
用法一:若文件已存在,则更新文件的三个时间

用法二:
文件不存在,则创建文件
格式:
touch 文件名1 文件名2 文件名3
touch {文件名1,文件名2,文件名3}
创建大容量文件
格式
dd if=来源 of=新文件名 count=数据块个数 bs=块容量
作用
制作指定个数及容量的空文件
4.删除文件
格式
rm -参数 文件名
用法
删除文件: rm 文件名
删除目录:rm -r 目录名
强制删除不确认:rm -f 文件名
注意
-
删除前必须确认路径及名称
-
删除文件时必须将文件名及扩展名写全
5.数据流和重定向
数据流
-
标准输入(standard input,简称stdin):默认情况下,标准输入指从键盘获取的输入
-
标准输出(standard output,简称stdout):默认情况下,命令执行所回传正确的信息会输出到屏幕上
-
标准错误输出(standard error output,简称stderr):默认情况下,标准错误输出可理解为命令执行失败后,所回传的错误信息会输出到屏幕上
-
不管正确或错误的数据都是默认输出到屏幕上,所以屏幕是混乱的。所以就需要用数据流重定向将这两条数据分开。数据流重定向可以将标准输出和标准错误输出分别传送到其他的文件或设备去,而分别传送所用的特殊字符如下所示:
-
标准输入(stdin):代码为0
-
标准输出(stdout):代码为1
-
标准错误输出(stderr):代码为2
重定向操作符
概念
-
重定向操作符可以将命令输入和输出数据流从默认设备重定向到其他位置。
-
重定向操作符本身不是命令,而是命令中附加的可改变命令的输入和输出对象的特殊符号。
-
重定向本质:把原本输出到屏幕 / 键盘的数据,改写到文件、管道、空设备等其他位置。 (本人个人理解是类似于编写文档)
-
输出重定向操作符:
>>> -
输入重定向操作符:
<<<
用法:
命令 >>文件 : 将命令执行后的正确输出信息以追加的方式写入到指定的文件中,不覆盖原文件内容,若指定的文件不存在,则自动创建该文件
命令 <文件 : 使命令从指定的文件中读取数据作为输入
命令 <<结束标识字符串 : 在命令行读取数据作为输入,直到遇到指定的结束标识字符串
命令 >文件 或 命令 1>文件 : 将命令执行后的结果不在默认的屏幕上显示,而是以覆盖的方式写入到指定文件中,若指定的文件不存在,则自动创建该文件
命令 2>文件 : 将命令执行后所产生的错误信息不在默认的屏幕上显示,而是以覆盖的方式写入到指定文件中,若指定的文件不存在,则自动创建该文件
命令 2>/dev/null : 将命令执行后所产生的错误信息不在默认的屏幕上显示,而是写入到空设备文件(黑洞)中,即将输出的错误信息丢弃掉
命令 &>文件 命令 >&文件 : 将命令执行后的正确输出信息和错误信息不在默认的屏幕上显示,而是以覆盖的方式写入到指定文件中,若指定的文件不存在,则自动创建该文件
将标准输出重定向到文件
echo命令
-
作用:向终端设备上输出字符串或变量提取后的值
-
格式
echo "字符串" echo "$量"
6.tee命令读取数据输出到文件
tee
作用
读取标准输入的数据,并将其内容输出到文件的同时输出到屏幕(即想把输出保存到文件中,又想在屏幕上看到内容)
格式
tee 参数 文件名
-a或--append,附加到现有文件的后面,而非覆盖它
-i或--ignore-interrupts 忽略中断信号
--help 在线帮助

管道符
管道符
管道符号,是lunix一个很强大的功能,符号为一条竖线:"|**",用于两个命令或者多个命令相连接,将管道符左边命令的输出作为管道符右边命令的输入
格式
命令A | 命令2 | 命令3 ……
例
[root@server ~]# more test1.txt | wc -l # 统计行数 5 [root@server ~]# cat /etc/group | tee test2.txt
[root@server ~]# cat /etc/group | tee test1.txt test2.txt
7.vi/vim文本编辑器
vim编辑器的三种模式

进入的顺序
-
刚打开文件后进入的为命令模式(默认)
-
命令模式点击i'键进入输入模式,点击Esc返回命令模式
-
命令模式中点击冒号进入末行模式,点击Esc返回
-
输入模式与末行模式不可以相互进入
命令模式
也成为了阅读模式,可以控制光标移动,对文本进行查看、删除、复制粘贴等操作(默认)
快捷键
光标跳转按键
| 功能 | 按键 |
|---|---|
| 光标按单个字符移动 | ↑、↓、←、→ |
| 光标按照单词向后跳转 | w |
| 光标按照单词向前跳转 | b |
| 光标跳转至行首 | ^ |
| 光标跳转至行尾 | $ |
| 文档首行第一个字符 | gg |
| 文档最后一行第一个字符 | G |
| 跳转到指定行 | 行号gg 或者 行号G |
复制、粘贴、删除
| 功能 | 按键 |
|---|---|
| 删除光标所在行 | dd |
| 删除从光标处开始的n行 | 数字dd |
| 删除光标前至行首字符 | d^ |
| 删除光标及之后的所有字符 | d$ |
| 复制光标所在行 | yy |
| 复制从光标处开始的n行 | 数字yy |
| 将缓冲区的内容粘贴到光标所在行的下一行 | p(小写) |
| 将缓冲区的内容粘贴到光标所在行的上一行 | P(大写) |
| 撤销操作 | u |
编辑模式
也称为插入模式,可以对文本进行编辑
快捷键
-
可通过如下任意一种功能键从命令模式切换到编辑模式
-
按esc键可从编辑模式切换到命令模式
| 功能 | 按键 |
|---|---|
| 在光标前插入 | i |
| 在光标所在行行首第一个非空字符前插入 | I(大写字母i) |
| 在光标后插入 | a |
| 在光标所在行末尾插入 | A |
| 在光标所在行上一行插入 | O(大写字母) |
| 在光标所在行下一行插入 | o(小写字母) |
| 删除光标所在字符并进入插入模式 | s(小写字母) |
| 删除当前行并进入插入模式 | S(大写字母 |
末行模式
保存、退出、设置编辑环境
快捷键
-
按
:或者/可从命令模式切换到末行模式 -
按esc键可从末行模式切换到命令模式。
查找关键字并替换
| 功能 | 按键 |
|---|---|
| 从上而下查找字符串“word”(可按n键定位到下一个匹配的的字符串) | /word |
| 将当前行中查找到的第一个字符“old”替换为“new” | :s /old/new |
| 将当前行中查找到的所有字符“old”替换为“new” | :s /old/new/g |
| 在行号“n1,n2”范围内替换所有的字符串“old”为“new” | :n1,n2 s/old/new/g |
| 将整个文件内的字符串“old”替换为“new” | :% s/old/new/g |
保存退出
| 功能 | 按键 |
|---|---|
| 退出vi/vim编辑器,未对文件做任何编辑操作才可退出 | :q |
| 不保存文档内容,强制退出vi/vim编辑器 | :q! |
| 保存文件 | :w |
| 将文件另存为/dir/file | :w /dir/file |
| 保存文件内容并退出vi/vim编辑器 | :wq 或者 ZZ |
| 强制保存并退出 | :wq! |
其他操作
| 功能 | 按键 |
|---|---|
| 在当前文件中读入其他文件内容 | :r /dir/file |
| 查找含有"word"的行并删除 | :g/word/d |
| 显示行号 | :set nu |
| 关闭行号显示 | :set nonu |
| 删除n1-n2行内容 | :n1,n2 d |
| 复制n1-n2行到第n行后面 | :n1,n2 co n |
vim的配置文件

[root@server ~]# vim /etc/vimrc 或者 vim ~/.vimrc
set hlsearch "高亮度反白 set backspace=2 "可随时用退格键删除 set autoindent "自动缩排 set tabstop=4 "缩进 set softtabstop=4 softtabstop是“逢4空格进1制表符”,前提是你tabstop=4 set shiftwidth=4 自动缩进空格长度 set mouse=a "使用鼠标 set selection=exclusive set selectmode=mouse,key set ruler "可显示最后一行的状态 set showmode "左下角那一行的状态 set nu "可以在每一行的最前面显示行号啦! set bg=dark "显示不同的底色色调 syntax on "进行语法检验,颜色显示
vim的异常处理
模拟异常
[root@server ~]# vim test
#输入一些内容,正常保存退出
[root@server ~]# vim test
#点击ctrl+z 键 模拟异常退出
[root@server ~]# vim test # 此时出现问题 E325: 注意 发现交换文件 ".test.swp" 所有者: root 日期: Sun Dec 18 14:05:17 2022 文件名: ~root/test 修改过: 否 用户名: root 主机名: node3 进程 ID: 8532 (仍在运行) 正在打开文件 "test" 日期: Sun Dec 18 14:05:05 2022
(1) Another program may be editing the same file. If this is the case, be careful not to end up with two different instances of the same file when making changes. Quit, or continue with caution. (2) An edit session for this file crashed. 如果是这样,请用 ":recover" 或 "vim -r test" 恢复修改的内容 (请见 ":help recovery")。 如果你已经进行了恢复,请删除交换文件 ".test.swp" 以避免再看到此消息。
交换文件 ".test.swp" 已存在! 以只读方式打开([O]), 直接编辑((E)), 恢复((R)), 退出((Q)), 中止((A)):
原因:vim 编辑过程中中断退出,再次打开时,交换文件(.swp)与源内容不一致
处理流程
1常打开
2.点击R键,后回车
3.正常编辑,保存退出
4.删除隐藏的交换文件
如上例的test文件
[root@server ~]# ls -a [root@server ~]# rm -f .test.swp # 删除对应隐藏的交换文件 [root@server ~]# vim test # 再次尝试打开,结果显示正常
五.文件内容显示
浏览普通文件
cat
-
作用:查看文件内容,适合数据量较少
-
格式:cat -参数 文件名
-
参数:
-
-n:显示行号,加上
-
-b:文件中所有非空行增加行号,编号从1开始
-

tac
-
作用:倒叙访问文件内容
-
格式:tac 参数 文件名
-
例如: tac /etc/passwd
more
-
作用:翻页查看文件内容,适合内容较多的文件查看
-
格式:more 文件名
-
注意:使用回车则一行一行查看,使用空格则整页查看,点击q键退出查看
less
-
作用:同more命令
-
格式:less 文件名
-
注意:可以使用上下键进行浏览,点击q退出浏览
head
-
作用: 查看文档前n行的内容
-
格式:head -数字 文件名
[root@server ~]# head /etc/passwd # 默认查看文档前10行内容 [root@server ~]# head -5 /etc/passwd
tail
-
作用:查看文档后n行内容
-
格式:tail -参数 文件名
-
参数
-
-数字:查看倒数行数
-
-f:动态刷新, 实时显示日志文件并且能动态更新
-
[root@server ~]# tail /etc/passwd # 默认查看文档后10行内容 [root@server ~]# tail -1 /etc/passwd [root@server ~]# tail -f /var/log/messages # 监视日志 [root@server ~]# head -6 /etc/passwd | tail -1 # 查看第6行
文件信息查看
file
-
作用:查看文件类型
-
格式:file -参数 文件名
-
文件类型:
-
ASCII file :ASCII文本字符文件
-
empty:空文件
-
block special :块设备文件
-
character special :字符设备文件
-
diretory:目录
-
stat
-
作用:显示文件属性信息
-
格式:stat 文件名
-
注意:一般通过该命令查看大小、Inode、硬链接、软连接
file和stat和cat的区别
| 命令 | 核心功能 | 输出内容 | 依赖 inode | 能否看文件内容 |
|---|---|---|---|---|
| cat | 读取文件内容 | 文件内部文字 / 二进制数据流 | 不关心 inode | ✅ 可以 |
| stat | 查看文件元数据 | inode、权限、三个时间、设备号、大小 | ✅ 完全基于 inode | ❌ 不能看内容 |
| file | 判断文件类型 | 文件分类(程序 / 文本 / 设备 / 链接) | 少量读取文件头部 | ❌ 只读头部一小段判断类型 |
文件内容过滤显示–grep
作用
-
在指定的普通文件中查找并显示含有指定字符串的行,也可与管道符一起使用
格式
grep -参数 查找条件 文件名
参数
| 选项 | 说明 |
|---|---|
| -c | 仅显示找到的行数 |
| -i | 忽略大小写 |
| -n | 显示行号 |
| -v | 反向选择——仅列出没有“关键词”的行 |
| -A | -A 2 搜索时显示匹配到的那一行以及下2行 |
| -B | -B 2 搜索时显示匹配到的那一行以及上2行 |
| -C | -C 2 搜索时显示匹配到的那一行以及上下2行 |
/etc/passwd文件含义
作用
-
记录用户账户信息:共分为7段,使用冒号分割
含义
-
文件内容意义:账户名:密码代号x:UID:GID:注释:家目录:SHELL
-
第7列/sbin/nologin:不允许登录
使用特殊符号匹配
| 匹配模式 | 说明 |
|---|---|
| grep h 文件名 | 查找文件里有字符h的行 |
| grep ^[q] 文件名 | 匹配以q开始的行 |
| grep ^[qf] 文件名 | 匹配以q或者f开头的行 |
| grep ^[ ^qf ] 文件名 | 不匹配以q或者f开头的行 |
| grep ^[0-9] 文件名 | 匹配以数字开头的行 |
| grep q$ 文件名 | 匹配以q结束的行 |
| grep ^$ | 过滤空白行 |
| grep -r h ./* | 如果要明确搜索当前目录中的子目录有h的行 |
| grep -d s kip h ./* | 忽略当前目录下的子目录下的普通文件 |
切割显示–cut
作用
cut命令用于按列提取文本内容
格式
cut -d "分隔符" -f列数字 文件名
sort 排序显示
作用
sort命令用于对文本内容进行排序显示
格式
sort -参数 文件名
参数
| 选项 | 作用 |
|---|---|
| -f | 忽略大小写 |
| -b | 忽略缩进与空格 |
| -n | 以数值型排序 |
| -r | 反向排序 |
| -u | 去除重复行 |
| -t | 指定间隔符 |
| -k | 设置字段范围 |
以passwd文件中第三列数字来进行排序

去重显示
作用
uniq命令用于去除文本中连续的重复行
格式
uniq -参数 文件名
示例
-
对比两个文本内容进行操作
[root@server ~]# cat uq1.txt Welcome to openlab.com Welcome to openlab.com Welcome to openlab.com Welcome to openlab.com Red Hat certified Free Linux Lessons Professional guidance Linux Course [root@kongd ~]# uniq uq1.txt Welcome to openlab.com Red Hat certified Free Linux Lessons Professional guidance Linux Course
文件中字符替换显示
作用
tr 指令从标准输入读取数据,经过替换或者删除后,将结果输出到标准输出
格式
tr -参数 替换内容 新内容
参数
-
-c :反选设定字符,符合 “替换内容” 的部份不做处理,不符合的剩余部份才进行转换
-
-d :删除指令字符
-
-s :缩减连续重复的字符成指定的单个字符
示例
-
小写字母全部转换成大写字母
[root@server ~]# cat /etc/passwd | tr a-z A-Z
六.文件的其他操作命令
wc– 文本内容统计
作用
用于统计文本字数,行数等
格式
wc -参数 文件名
参数
| 作用 | |
|---|---|
| -l | 只显示行数 |
| -w | 只显示单词数 |
| -c | 只显示字节数 |
示例:
[root@server ~]# wc /etc/passwd 37 88 2083 /etc/passwd
行数 单词数 字节数
复制和移动文件
复制文件或目录
格式
cp -参数 源文件 目标文件
参数
| 选项 | 功能 |
|---|---|
| -a | 通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录 |
| -d | 拷贝时保留链接 |
| -f | 在覆盖已经存在的目标文件时不提示 |
| -i | 在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝 |
| -p | 除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中 |
| -r | 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名 |
[root@server ~]# cd ~
[root@server ~]# touch t1.txt
[root@server ~]# cp t1.txt /
[root@server ~]# touch t2.txt
[root@server ~]# cp t2.txt /t3.txt # 另存为
[root@server ~]# cp p1 / # 报错,目录需加-r
[root@server ~]# cp -r p1 / [root@server ~]# cp -r p2 /p3 # 目录另存为
[root@server ~]# mkdir -p /t1/t2/t3
[root@server ~]# cp -a /t1 ~
[root@server ~]# ls 公共 模板 视频 图片 文档 下载 音乐 桌面 anaconda-ks.cfg t1 [root@server ~]# cd t1
[root@server t1]# ls
t2
[root@server t1]# cd t2
[root@server t2]# ls
t3
[root@server t2]# ll
总用量 0
drwxr-xr-x 2 root root 6 4月 25 10:39 t3
移动文件
格式
mv [选项] 源文件名称 目标文件名称
注意
-
剪切操作不同于复制操作,因为它会把源文件删除掉,只保留剪切后的文件。
-
如果在同一个目录中将某个文件剪切后还粘贴到当前目录下,其实本质就是对文件进行了重命名操作
查找文件
查找文件路径
whereis命令
-
作用:可以搜索系统命令的可执行文件路径和说明文档
-
格式
whereis 命令名
which
-
作用:搜索系统命令的可执行文件
-
格式
which 命令名
查找文件-find
作用
-
按照文件名、大小、时间、权限、类型、所属者、所属组来搜索文件
格式
find 查找路径 查找条件 具体条件 操作
注意
-
find命令默认的操作是print输出
-
find是检索文件的,grep是过滤文件中字符串
参数
| 参数 | 作用 |
|---|---|
| -name | 根据文件basename匹配名称 |
| -size | 匹配文件的大小(+50KB为查找超过50KB的文件,而-50KB为查找小于50KB的文件) |
| -mtime [+|-]n | 匹配修改内容的时间(-4指小于等于4天内的文件名;+4,大于等于5天前的文件名;4指前4~5那一天的文件) |
| -atime [+|-]n | 匹配访问文件的时间 |
| -ctime [+|-]n | 匹配修改文件权限的时间 |
| -newer f1 !f2 | 匹配比文件f1新但比f2旧的文件 |
| -perm | 匹配权限(mode为完全匹配,-mode为包含即可) |
| -user | 匹配所有者 |
| -group | 匹配所有组 |
| -nouser | 匹配无所有者的文件 |
| -nogroup | 匹配无所属组的文件 |
| -type b/d/c/p/l/f | 匹配文件类型(后面的字母参数依次表示块设备、目录、字符设备、管道、链接文件、文本文件) |
| -depth | 先从该目录子目录下查找,再查找该目录 |
| -maxdepth levels -mindepth levels | 最多查找多少层目录;最少查找多少层目录 |
| -delete | 将找到的文件删除,如果是目录只能删除找到的空目录。 |
| -exec …… {}\; | 后面可跟用于进一步处理搜索结果的命令 |
压缩和解压缩
zip和uzip命令
格式
zip FILE # 压缩 unzip FILE # 解压缩
gzip
#例1: 使用gzip压缩文件
[root@server test]# gzip test1.txt
#例2: 使用gzip压缩目录下文件
[root@server test]# gzip -r dir1 [root@server test]# ls dir1 #注意: 以上压缩之后原始文件就没有了。
#例3: 压缩但保留原始文件
[root@server test]# gzip -c test2.txt > test2.txt.gz
bzip
bzip2是更新的Linux压缩工具,比gzip有着更高的压缩率。
[root@server test]# [root@server test]# bzip2 test3.txt # 源文档不保留
[root@server test]# bzip2 -9 -c test3.txt > test3.txt.bz2 # 用最佳的压缩比压缩,并保留原本的档案
xz和unxz
例1:压缩文件
[root@server test]# xz test5.txt
例2:压缩dir1目录下文件
[root@server test]# xz dir1/* [root@server test]# ls dir1
例3:查看压缩文件内容
[root@server test]# xzcat test5.txt.xz test1
例4:解压缩(xz -d等价于unxz)
[root@server test]# unxz test5.txt.xz
tar归档
格式
tar -参数 [args]……
参数
| 选项 | 功能 |
|---|---|
| -c | 创建.tar格式的包文件 |
| -x | 释放.tar格式的包文件 |
| -t | 查看包中的文件列表 |
必选参数
| 选项 | 功能 |
|---|---|
| -f | 用于指定打包文件名。 当与-c选项一起使用时,创建的tar包文件使用该选项指定的文件名 当与-x选项一起使用时,则释放该选项指定的tar包文件 |
辅助参数
| 选项 | 功能 |
|---|---|
| -v | 表示在命令执行时显示详细的提示信息 |
| -p | 打包时保留文件及目录的权限 |
| z | 调用gzip程序,以gzip格式压缩或解压缩文件(.tar.gz) |
| -j | 调用bzip2程序,以bzip2格式压缩或解压缩文件(.tar.bz2) |
| -J | 使用xz压缩或解压缩文件(.tar.xz),xz的压缩率通常比bzip2更高 |
| -C(大写字母C) | 和-x选项一起使用,表示释放包时指定释放的目标路径 |
额外参数
# 打包时排除某个文件 tar cf 文件名.tar --exclude=路径/文件 路径 注:此处的路径前后需要保持保持一致,统一使用绝对路径或者相对路径
格式
打包
-
作用:创建(非压缩的)打包文件,将指定的一个或多个文件或目录备份生成为一个指定的包文件
tar cvf/cfv/-cvf 文件名.tar 要打包的目录或文件名
-
列出包文件中的文件列表
tar t[v]f 包文件名`
打包压缩
-
作用:为节省存储空间,通常需要生成压缩格式的tar包文件,tar命令支持三种不同的压缩方式
tar czf/-czf 文件名.tar.gz 要打包压缩的目录或文件名…… tar cjf/-cjf 文件名.tar.bz2 要打包压缩的目录或文件名…… tar cJf/-cJf 文件名.tar.xz 要打包压缩的目录或文件名……
-
提取包文件到指定目录
tar xf/-xf/-xzf 文件名.tar.gz [-C 目标路径] tar xf/-xf/-xjf 文件名.tar.bz2 [-C 目标路径] tar xf/-xf/-xJf 文件名.tar.xz [-C 目标路径]
七.问题与思考
问题

当时无法显示目录,后来发现是命令出错。

这张图中因为中英输入法的问题,导致”-k”前边的空格不一样,导致结果出现问题。
思考
硬链接和拷贝的区别
| 对比项 | 硬链接 ln 源 file | cp 拷贝 file newfile |
|---|---|---|
| inode 编号 | 和原文件完全相同 | 全新独立 inode,编号不一样 |
| 磁盘数据 | 磁盘上只存一份数据块,不占用额外存储空间 | 复制全部内容,占用双倍磁盘空间 |
| 修改内容 | 修改任意一个,全部同步变化(共用数据) | 修改其中一个,另一个不受任何影响 |
| 删除原文件 | 只是引用计数 - 1,硬链接依然保留完整数据 | 删除源文件,拷贝出来的新文件完好无损 |
| 文件权限 / 时间 | 完全共享原文件权限、三个时间 (atime/mtime/ctime) | 新文件拥有独立权限、全新创建时间 |
| 跨分区 | 不支持硬链接跨分区 | cp 可以跨分区、跨磁盘复制 |
| 目录操作 | 不允许给目录创建硬链接 | cp -r 可以拷贝目录 |
更多推荐


所有评论(0)