当前位置: 首页 > news >正文

修改文件权限--- chmod ,vi/vim,yum-软件包管理器,systemctl管理系统服务

🚀  一  chmod

🔐  文件详细属性

🛠️ Linux 中使用 ls -l 命令查看文件详细属性时的标准输出

📄 示例:

-rwxr-xr-- 1 alice dev 1024 Nov 1 test.sh

含义:文件 test.sh是一个 可执行的 Shell 脚本,alice 可以编辑、运行它;dev 组成员 可以运行和查看,但不能修改;其他任何人 只能看内容,不能改也不能运行


🔍 逐字段解析

字段内容含义说明
1-rwxr-xr--文件类型 + 权限(共10个字符)
21硬链接数(Hard Link Count)
3alice文件所有者(Owner / User)
4dev文件所属用户组(Group)
51024文件大小(单位:字节 Bytes)
6Nov 1最后修改时间(Last Modified Time)
7test.sh文件名

✅第1字段:-rwxr-xr--(权限与类型)

这是 10 个字符,分为两部分:

第1位:文件类型
  • - → 普通文件(regular file)
    其他常见类型:
    • d → 目录(directory)
    • l → 软链接(symbolic link)
    • c → 字符设备(如 /dev/tty
    • b → 块设备(如硬盘 /dev/sda

✅ 这里是 -,说明 test.sh 是一个普通文件(脚本)。

后9位:权限位(每3位一组,共3组)

在 Linux 中,每个文件都有 3 类用户3 种权限,共 3×3 = 9 个权限位

组别字符位置权限字符串含义
所有者(User)第2~4位rwx文件所有者(alice):可读、可写、可执行
所属组(Group)第5~7位r-x同组用户(dev 组成员):可读、不可写、可执行
其他人(Others)第8~10位r--其他所有人:只读,不能写,也不能执行

🔑 权限字母含义:

  • r = read(读) → 可查看内容
  • w = write(写) → 可修改/删除内容
  • x = execute(执行) → 对脚本/程序可运行;对目录表示“可进入”

🔐 修改文件权限--- chmod 命令

有两种常用方式修改权限:

✅ 方式1:数字模式(推荐,简洁)

chmod [三位八进制数] 文件名

权限对应数字:

  • r = 4
  • w = 2
  • x = 1

组合示例:

  • rwx = 4+2+1 = 7
  • rw- = 4+2+0 = 6
  • r-x = 4+0+1 = 5
  • --- = 0

所以:

  • chmod 755 file → 所有者 rwx,组和其他人 rx
  • chmod 644 file → 所有者 rw,组和其他人 r(常见于普通文件)
  • chmod 777 file → 所有人全能(⚠️ 不安全,慎用)

✅ 方式2:符号模式(灵活,适合微调)

chmod [ugoa][+-=][rwx] 文件名
  • u:用户(所有者)
  • g:组
  • o:其他人
  • a:所有人(all,等价于 ugo)

操作符:

  • +:增加权限
  • -:移除权限
  • =:设定权限(覆盖原有)
示例:
chmod u+x script.sh        # 给所有者加执行权限
chmod g-w file.txt         # 去掉组的写权限
chmod o=r file.txt         # 设置其他人只有读权限
chmod a+r file.txt         # 所有人都加读权限(等价于 chmod +r)
chmod ug=rw,o=r config.ini # 所有者和组:rw,其他人:r#批量修复目录下所有脚本权限
#1. 进入测试目录
cd /project/tests/
#2. 给所有 .sh 文件加上执行权限
chmod +x *.sh
#3. 或更精确地:仅给所有者加执行
chmod u+x *.sh

❌ 常见错误 & 注意事项

错误操作后果正确做法
chmod 777 sensitive.conf安全风险!任何人可读写用 600 或 640
忘记给脚本加 x 权限Permission deniedchmod +x script.sh
对目录不设 x 权限无法进入该目录目录必须有 x 才能 cd 进去(没有 x,即使有 r 也无法 lscd!)

📊 常用权限速查表

文件类型推荐权限说明
普通文件(如 .txt, .conf)644所有者可读写,其他人只读
可执行脚本(.sh, 二进制)755所有者可读写执行,其他人可读执行
私密文件(如 .ssh/id_rsa)600仅所有者可读写,其他人无权访问
Web 网站目录755(目录),644(文件)保证 Nginx/Apache 能读取
临时共享文件664所有者和组可读写,其他人只读

🧪 三、场景实战

场景1:让测试脚本可执行
# 创建一个测试脚本
echo '#!/bin/bash\necho "Test OK!"' > test.sh# 查看当前权限(默认可能没有 x)
ls -l test.sh
# -rw-r--r-- 1 user user 30 Nov 1 test.sh# 添加执行权限(给所有者)
chmod u+x test.sh# 再次查看
ls -l test.sh
# -rwxr--r-- 1 user user 30 Nov 1 test.sh# 运行测试
./test.sh   # 输出:Test OK!

✅ 成功!


场景2:禁止其他人修改测试配置文件
touch config.test
chmod 640 config.test   # 所有者:rw,组:r,其他人:无权限ls -l config.test
# -rw-r----- 1 user dev 0 Nov 1 config.test

这样,只有你和同组成员能读,其他人完全无法访问,更不能改。

🚀 二. vi/vim

✅  vi/vim 的三种工作模式

模式进入方式功能退出方式
普通模式(Normal)启动 vim 或按 Esc移动光标、删除、复制、粘贴等命令操作按 i/a/o 进入插入模式,或 : 进入命令模式
插入模式(Insert)在普通模式下按 iao 等输入/编辑文本按 Esc 回到普通模式
命令模式(Command)在普通模式下按 :保存、退出、查找、替换等执行命令后自动回到普通模式

💡 新手最容易卡住的地方:不知道当前在什么模式!
✅ 记住:Esc 总是安全的,可确保回到普通模式。


✅ 1. 打开与退出

vim filename        # 打开或创建文件
操作命令说明
保存并退出:wq 或 :xwrite + quit
强制退出(不保存):q!quit + force
仅保存不退出:wwrite
退出但有修改时拒绝:q若有未保存内容会报错

⚠️ 注意:命令前必须先按 Esc 进入普通模式!

✅ 2. 光标移动(普通模式下)

按键功能
h / j / k / l左 / 下 / 上 / 右(vim 标志性操作)
0(数字零)跳到行首
$跳到行尾
gg跳到文件第一行
G跳到文件最后一行
5G跳到第 5 行
Ctrl + f向下翻页
Ctrl + b向上翻页

📌 场景:快速跳到日志末尾看错误 → 按 G

✅ 3. 查找与定位((普通模式下))

/test          " 向下查找关键词 "test"
?error         " 向上查找 "error"
n              " 跳到下一个匹配项
N              " 跳到上一个匹配项

✅ 实战例子:

  • 在日志中找 Exception:输入 /Exception,在按回车,然后按 n 循环查看
  • 快速定位配置项:/port 查看端口设置:(输入 /port,按回车 ,执行 :set hlsearch 开启高亮(很多系统默认已开启),用 n/N 跳转)

✅ 4. 编辑操作(插入 & 修改)((普通模式下))

操作按键说明
在光标前插入iinsert
在光标后插入aappend
在下一行插入oopen new line below
删除当前字符x类似 Delete 键
删除整行dddelete line
复制整行yyyank (copy) line
粘贴ppaste after cursor
撤销uundo
重做Ctrl + rredo

📌 场景

  • 修改配置文件中的 IP:/ip  →回车→ i → 修改 → Esc → :wq
  • 删除某行错误配置:光标移到该行 → dd → :wq

✅ 5. 替换(批量修改)

:%s/old/new/g       " 全文将 old 替换为 new
:%s/old/new/gc      " 替换时逐个确认(c = confirm)
:5,10s/foo/bar/g    " 仅替换第5到10行

✅ 应用:

  • 批量改测试环境 URL::%s/http:\/\/dev/http:\/\/test/g

✅ 6. 显示行号(调试必备!)

:set nu             " 显示行号
:set nonu           " 取消行号

✅ 强烈建议打开行号!便于定位错误位置(如“第 42 行语法错误”)


✅ 7. 只读查看大文件(安全模式)

vim -R logfile.log   # 以只读模式打开,防止误改
# 或
view logfile.log     # 等价于 vim -R

🔒 日志时推荐使用,避免不小心修改生产日志!

🧩 四、常见问题 & 面试回答

Q1:如何在 vim 中快速跳到文件末尾?

G(大写)。如果是看日志,通常配合 /ERROR/Exception 使用。


Q2:误操作进入 vim 不知道怎么退出怎么办?

Esc 确保在普通模式,然后输入 :q! 强制退出不保存。这是每个 Linux 用户的“救命令”。


Q3:如何在 vim 中查找并高亮所有 “fail” 字样?
  1. 输入 /fail 查找
  2. 执行 :set hlsearch 开启高亮(很多系统默认已开启)
  3. 用 n/N 跳转

Q4:dd 和 x 有什么区别?

dd 删除整行;       x 删除光标所在的一个字符


✅   vim 技巧总结

场景推荐操作
查看日志vim log.txt → G → /ERROR → n
修改配置vim config.ini → /port→回车 → i → 改 → Esc → :wq
写测试脚本vim test.sh → i → 输入内容 → Esc → :wq → chmod +x test.sh
安全查看view huge.log(防止误改)
调试脚本:set nu 显示行号,快速定位报错行

🚀 三.  yum-软件包管理器

📦 一、什么是 yum

✅类似于 Windows 的“应用商店”或 Ubuntu 的 apt

  • 作用:Red Hat 系 Linux(如 CentOS、RHEL、Fedora)的 软件包管理器
  • 功能:自动下载、安装、更新、卸载软件,并自动解决依赖关系


✅  🆚  yum 、 apt , dnf 对比
系统包管理器安装命令
CentOS / RHEL 7 及以下yumyum install xxx
CentOS 8+ / Rocky / AlmaLinuxdnf(兼容 yum)dnf install xxx 或 yum install xxx
Ubuntu / Debianaptapt install xxx

 在测试中,先用 cat /etc/os-release 确认系统类型!

📦 二、apt 常用命令速查表

✅ 1.  在 Debian(以及 Ubuntu、Linux Mint 等)中,请使用以下命令替代 yum

功能Red Hat / CentOS (yum)Debian / Ubuntu (apt)

更新所有软件/

更新软件包

yum update

yum update 包名

apt update/

apt update 包名

安装软件

yum install xxx

yum install -y xxx(-y 自动确认 yes,跳过交互式确认提示)

apt install xxx/

apt install -y xxx(-y 自动确认 yes,跳过交互式确认提示)

卸载软件yum remove xxxapt remove xxx
搜索软件yum search xxxapt search xxx

查看已安装包/

查看指定已安装包

yum list installed

yum list installed | grep 包名

apt list --installed/

yum list installed | grep 包名

升级所有软件(不会删除旧包)yum upgradeapt upgrade
查看软件包信息yum info 包名apt info 包名
清理缓存(释放空间yum clean allapt clean all
列出可用仓库yum repolistapt repolist
查找命令所属包

yum provides 命令或 

dnf provides 命令

1、先装 apt-file::

        apt install apt-file

2.  首次使用未初始化缓存,需要更新 apt-file 的缓存( apt-file 工具自己的 update 子命令,和 apt update 不同!):

         apt-file update

3. 查询想要的命令

   apt-file search /sbin/命令

安装 EPEL 源(扩展软件库)

sudo yum install -y epel-release或

sudo dnf   install -y epel-release

✅实例:


sudo yum search nginx                    # 查找 nginx 相关包
sudo yum search telnet                   # 找 telnet 客户端sudo yum install -y curl            # 安装 curl(-y 自动确认 yes)
sudo yum install -y net-tools       # 安装 ifconfig、netstat 等网络工具
sudo yum install -y vim             # 安装 vim 编辑器
sudo yum install -y mysql-server    # 安装 MySQL 服务sudo yum remove -y firewalld        # 卸载防火墙(测试环境常关闭)sudo yum update                     # 更新所有已安装的包(谨慎在生产用)
sudo yum update 包名                # 只更新指定包sudo yum list installed                 # 列出所有已安装的软件
sudo yum list installed | grep nginx # 查看是否装了 nginx
rpm -qa | grep java             # 也可用 rpm 查询(yum 底层基于 rpm)sudo yum info 包名                   # 查看版本、描述、大小等sudo yum clean all              # 清除下载的软件包缓存
sudo yum makecache              # 重建缓存(可选)sudo yum repolist                    # 查看当前启用的软件源yum provides ifconfig             #查看ifconfig属于哪个软件包      
# 输出:net-tools-2.0-0.25.20131004git.el7.x86_64 : Basic networking tools# 安装 EPEL 源
sudo yum install -y epel-release   # CentOS 7
sudo yum install -y htop jq tree   # 然后就可以安装更多工具

📦 三、 实战场景举例

场景1:服务器没有 ifconfig,如何解决?
# 先搜索
sudo yum search ifconfig# 输出提示:net-tools 提供 ifconfig
# 安装
sudo yum install -y net-tools# 验证
ifconfig
场景3:检查 Java 是否安装,若未安装,安装
sudo  yum list installed | grep -i java
# 或
java -version   # 如果没装会提示命令未找到若未安装
sudo yum install -y java-1.8.0-openjdk
场景4:安装 EPEL 源(扩展软件库)

很多工具(如 htopjq)不在默认源中,需先装 EPEL:

# CentOS 7
sudo yum install -y epel-release# CentOS 8+/Rocky/AlmaLinux
sudo dnf install -y epel-release   # 注意:CentOS 8+ 默认用 dnf(yum 的新版)# 然后就可以安装更多工具
sudo yum install -y htop jq tree

💡 dnfyum 的下一代,命令基本兼容。在较新系统中 yum 实际是 dnf 的软链接。

✅ 注意事项

问题原因解决方案
yum: command not found系统不是 Red Hat 系(如 Ubuntu)改用 apt
安装时报错 “No package xxx available”软件包不在默认源中启用 EPEL 源或配置第三方源
权限不足没有 sudo 权限联系运维或使用 root 用户
网络不通无法连接 yum 源检查网络、代理或使用本地源

🎯 问题

Q1:yum install -y 中的 -y 是什么意思?

A:表示自动回答 “yes”,跳过交互式确认提示。在自动化脚本中非常常用。


Q2:如何查看某个命令属于哪个软件包?

A:使用 yum provides

yum provides ifconfig
# 输出:net-tools-2.0-0.25.20131004git.el7.x86_64 : Basic networking tools

Q3:yum update 和 yum upgrade 有什么区别?

在 yum 中,两者几乎等价。但在某些系统(如 dnf)中,

   upgrade 不会删除旧包,而 update 可能会。一般测试用 yum update 即可。


✅ 总结:yum 命令清单

命令
# 搜索yum search xxx
# 安装(带 -y)sudo yum install -y xxx
# 卸载sudo yum remove -y xxx
# 查看是否安装yum list installed | grep xxx
# 安装 EPEL 源(扩展包)sudo yum install -y epel-release
# 清理缓存sudo yum clean a

🚀 四.  systemd 系统和服务管理器的命令行工具

systemctl 是与 systemd 交互的主要命令行工具,用于 管理系统服务(unit)

 一、systemctl:systemd 的命令行接口

功能命令说明
查看服务状态systemctl status nginx显示是否运行、进程ID、最近日志片段
启动服务systemctl start nginx立即启动(临时,重启失效)
停止服务systemctl stop nginx立即停止
重启服务systemctl restart nginx先停再启(配置变更后常用)
重载配置systemctl reload nginx不中断服务,仅重读配置(如 Nginx 支持)
设置开机自启systemctl enable nginx创建软链接,实现持久化自启
取消开机自启systemctl disable nginx删除自启链接
查看是否开机自启systemctl is-enabled nginx输出 enabled / disabled
列出所有服务systemctl list-units --type=service查看所有已加载的服务
列出失败的服务systemctl --failed快速定位启动失败的服务

🧪 二、实战示例

场景1:快速部署一个 Web 测试服务器,部署完 Nginx 后验证服务
# 安装 nginx
sudo yum install -y nginx# 启动并设为自启
systemctl start nginx
systemctl enable nginx# 检查状态
systemctl status nginx# 测试访问
curl http://localhost
场景2:排查 MySQL 启动失败
systemctl status mysql
# 如果看到 "Failed to start", 可进一步看日志:
journalctl -u mysql -n 50    # 查看该服务最近50行日志
场景3:临时关闭防火墙
systemctl stop firewalld        # CentOS/RHEL
# 或
systemctl stop ufw              # Ubuntu/Debiansystemctl disable firewalld     # 永久关闭自启(谨慎!)

http://www.dtcms.com/a/594897.html

相关文章:

  • 网站动效是代码做的吗全国信息企业公示系统
  • 个人网站制作体会长沙seo推广营销
  • thinkphp网站开发房产官方网站
  • 网站建设的预算费用番禺人才网最新招聘市场在哪里?
  • 谷歌收录网站wordpress 代码编写
  • 建立什么样的网站好梅州网站优化公司
  • 中国网站优化哪家好北京响应式网站建设费用
  • 东莞厚街网站建设百度网站怎么做的赚钱吗
  • wordpress网站白屏手表网站功能设计
  • 内蒙古网站设计360安全浏览器
  • 如何进入公司网站后台门户网站建设意见
  • 小学数学(二)资源合集
  • 小木桥建设网站电子商务网站设计与实现
  • 哪个网站可以做h5页面优秀交互设计app欣赏
  • Linux下程序设计综合实验报告——图书管理系统(黑龙江大学)
  • 网站公司的利润在哪里wordpress获取分类导航
  • 怎么看网站到期时间怎样建设VR网站
  • 公司做网站需要哪些专业网站设计公司行业
  • 两条n次B样条曲线(次数相同),已知分别的控制点和节点矢量,两条曲线G0连续,将合并成一条B样条曲线的方法
  • linux中使用docker安装MySQL
  • 我们来详细讲解一下 Linux 中 `crontab` 定时器的使用
  • 三合一网站系统建设银行内部网站
  • 做信息发布网站要多少钱百度搜索引擎优化详解
  • 网站内页没有排名网络软文是什么意思
  • 2025年上半年网络工程师基础知识真题及答案解析
  • 网站制作 网站开发fixed wordpress主题
  • 新公司建网站合肥网络推广策划方案
  • 建筑培训网站有哪些网站制作公司十强
  • 一步步实现 AI 模型调用:DeepSeek 深度对接实战全解析
  • 官网建站系统济宁 创意大厦 网站建设