线上求助

在文件模式下,输入g之后出现

软件安装

  • RPM
    rpm -ivh filename.rpm 安装软件
    rpm -e filename.rpm 卸载
    rpm -qpi filename.rpm 查询软件信息

  • yum

yum install software 下载软件
yun update
yum remove
yum clean all 清除所有仓库缓存

文件管理与常用命令

文件的目录配置

/:根目录,文件系统的顶层。 与开机有关
/home:用户主目录。
/bin:必备的二进制可执行文件。 最基本的命令 比如:cat mv mkdir
/sbin:系统管理二进制文件。
/etc:配置文件。 只有 root 可以更改,一般着只能查阅
/var:可变数据(日志、假脱机文件)。 与系统运行有关
/usr:用户程序和数据。 与系统操作有关
/lib:共享库。 函数库
/tmp:临时文件。
/opt: 第三方软件 存储第三方
/sbin : 开机过程所需要的指令

起点是根目录,文件可以是本地也可以是网络文件,每个文件在此目录树中的文件是独一无二的

文件系统与目录树的关系

硬盘需要分区,格式化,挂载才能使用。

每个文件都会有一个 inode
对于目录,inode 存储属性,权限,data block号。data block号存储的是文件名与文件对应的inode
对于普通文件,inode 存储属性,权限,以及分配的一组data block号(这里存储的是文件内容)

目录树的读取方式

从根目录的inode 逐层往下访问

文件和目录的布局

详细讲解
可变的不可变的,可分享的不可分享的。

绝对路径和相对路径

绝对路径:从根开始
相对路径:相对与当前路径的相对位置
假设现在在home 目录中,需要进入 var/log

cd /home/var/log    绝对路径
cd ../var/log 相对路径

. 代表当前目录
.. 代表返回上一层目录
- 回到上一个工作目录
~ 家目录 home
向下一层:直接写文件名字就行。或者 ./ 文件名 (也是相对路径)

文件-权限 (Linux5.2)

用户与用户组

  • 文件拥有者(user)
  • 组用户(group) 被给权限的成员
  • 其他(others)
    万能用户:root

文件属性详解

-rwx-w-rw- 实际上除了9个“r w x”最前面是代表文件是“目录,文件,链接文件”
‘r’ 对于文件,具有文件读取(data block)“数据块内容”内容。对于目录,具有浏览目录(data block)的权限。
‘w ‘’ 对于文件,具有新增,修改文件内容(data block)的权限。 对于目录,具有删除、移动 目录内文件(data block)的权限
‘x’ 对于文件,具有执行文件的权限。 对目录,具有进入目录权限。
图片

文件类型权限、链接数、

修改文件权限

命令 chomd 选项 文件

数字表示法

r w x 分别用数字 4 2 1 (二进制)表示,再把所授予的权限相加而成。
-rwxrw-r– 764 (每个数字八进制 111 110 100) 给其他人写内容的权限更改为766

文字表示法

u user
g group
o others
a all 以上三种用户
符号: + 添加某种权限,- 减去某种权限,= 赋予并取消原来权限
chmod u +x g=rw o+w abc

修改文件所有者

命令 chmod 选项 用户和属组 文件列表

文件默认权限

umask 命令用于指定用户在建立文件和目录时的权限默认值,umask值称之为权限掩码。

文件预设权限 -rw-rw-rw- 666 目录的预设文件 -rwxrwxrwx 777
普通用户的umask为002 (原来有的减去,没有的忽略掉) 对于文件:664 rw-rw-r– 对于目录:775 rwxrwxr-x
root用户的umask为022

特殊权限

linux-special-permission-suid-guid-sticky-bit

SUID

只对二进制有效,执行者需要对程序有执行权限,本权限仅仅在执行的时候有效。
执行者将具有拥有者的权限

一个例子:rwxr-xr-x 变成了 rwsr-xr-x
1.tester用户对于/usr/bin/passwd -rwsr-xr-x 这个程序具有执行权限,因此可以执行passwd程序
2.passwd程序的所有者为root
3.tester用户执行passwd程序的过程中会暂时获得root权限
4.因此tester用户在执行passwd程序的过程中可以修改/etc/shadow 文件

可能会有一个问题,既然不在用户中或者组用户中,为什么不赋予w权限,而是要用 SUID?

  • 因为有些文件只能root修改
如何设置与删除SUID
创建
chmod u+s file_name
chmod 4766 file.name 4 代表SUID 中的s
删除
chmod u-s test.txt
chmod 0766 test2.txt
小写s 与大写S 的区别

如果一开始文件就没有 执行,再设置suid 位 小写的s将会变成大写 的S
也就是出现了错误。

如何查找所有了设置SUID 的文件

SGID

只对二进制有效,执行者需要对程序有执行权限。执行者在执行的过程中将会获得该程序群组的支持
目录功能:
用户若对于此目录具有r与x权限时,该用户能够进入目录;用户在此目录下的有效群组,将会变 成该目录的群组;用途:若用户在此目录有w权限,则使用者所建立的新文件,该新文件的群组与此目录的群组相同。
就是说:一个目录有sgid, 当一个其他人在目录下创建文件的时候,组用户不是单独的自己,而是目录的组用户。

SBID

sticky bit
只针对目录有效。当用户对此目录具有w,x 权限的时候。当用户在该目录下建立文件或目录时,仅有自己与root才有删除的权利。
说白了,就是针对目录,用于阻止非文件的所有者进行删除

suid sgid sbit 设定

数字:4为SUID,2为SGID,1为SBIT
suid u+s,sgid g+s,SBIT o+t

suid rwsr-xr-x
sgid rwxr-sr-x
sbit rwxr-xr-t

练习

当一个文件的权限为–rwxrwxrwx则表示这个文件的意义为?任何人都可以读、修改或编辑、执行,但未必能删除。
文件是否能删除: 取决于该文件所在的目录下的权限 对于属于这个文件的 user 或着group或者其他人, 看此文件的权限和该文件所在目录当中的权限

文件及文件管理

文件类型

在linux 系统中,一切都是文件。对所有文件(目录、字符设备、块设备、套接字、打印机、进程、线程、管道等)操作

详细了解
[d] 目录
[-] 文件:硬链接和普通文件
[l] 链接文件 类似于Windows下的快捷方式。
[b]
[c] 设备文件 代表终端、打印机及鼠标等

文件扩展名

inux系统中文件的扩展名是没有意义的。一个文件能否执行取决于是否拥有“x”权限。扩展名仅仅用来了解文件是什么 。 例如,一个文件叫 abc.exe

文件名的规则

文件名 分大小写
文件名的字符包括: 字母,数字,点,下划线,连字符-

目录操作命令

-help 非常有用

  • pwd

  • cd

  • mkdir [选项] 文件名 选项:-m对新建目录设置存取权限 -p在创建目录时,如果父目录不存在,则同时创建该目录及该目录的父目录

  • rmkdir

  • ls

文件操作命令

  • cat cat file.txt 输出全部内容,cat filetxt file2.txt 查看 file1.txt 与 file2.txt 连接后的内容
    cat 这里是 concatenate(连接)的缩写,因为 cat 工具实际的功能是连接多个文件,然后输出。但是当只有一个文件的时候,cat 就会直接输出这个文件,所以 cat 最常见的用途就是输出单个文件。

  • head

  • tail

  • more

  • less
    less 和 cat 的区别在于,cat 会一次性打印全部内容到终端中并退出,而 less 一次只显示一页,且支持向前/后滚动、搜索等功能。如果要在一个大文件中(例如 man page)查找一部分内容,less 通常要比 cat 方便得多。
    一些快捷键:

    ![屏幕截图 2024-09-24 190844](C:\Users\86151\Pictures\Screenshots\屏幕截图 2024-09-24 190844.png)

  • touch

  • cp 复制文件和目录

    ![屏幕截图 2024-09-24 191221](C:\Users\86151\Pictures\Screenshots\屏幕截图 2024-09-24 191221.png)

文件搜索

文件通配符

星号 * : 匹配任意长度的文件名字符串
问号 ? : 匹配任一单字符
点字符(.):当它作为文件名或路径名分量的第一个字符时 ,必须显式匹

  • file匹 配 file , makefile , 不 匹 配 . profile文 件
    try*c 匹配try1.c try.c try.basic

文件查找命令

查找指定文件find命令

命令功能: 查找满足条件的文件 ,功能强大。
命令格式: find [搜索的路径] [选项] [-print -exec -ok]

find命令的匹配表达式主要有以下几种类型: -

  • -name filename: 查 找 指 定 名 称 的 文 件 。

  • -user username:查找属于指定用户的文件。

  • -group grpname:查找属于指定组的文件。

  • -size n:查找比n 大或小的文件 ,符号+n 表示查找大小大于n 文件;符号-n 表示查找大小于n的文件;符号nc 表示查找大小为n 个byte的文件 ,nk表示n * 1024bytes

  • -inum n:查找索引节点号为n 的文件。

  • -type:查找指定类型的文件。文件类型有:b (块设备文件) 、c (字符 设备文件) 、d(目录) 、p(管道文件) 、l(符号链接文件) 、f(普通文 件)。

  • -atime n:查找n天前被访问过的文件 “ +n ”表示超过n天前被访问的文件;“ -n ”表示n天内被访问 的文件 ,n 表示n天之前的[ 一天之内]被访问过的文件。

  • -mtime n:类似于atime,但检查的是文件内容被修改的时间。

  • -ctime n:类似于atime,但检查的是文件索引节点被改变的时间。

  • -perm mode:查找与给定权限匹配的文件 ,必须以八进制的形式给出访问权限。mode表示权限 为mode,-mode搜索权限包括mode的文件(范围比mode大) ,/mode表示搜索符合任何一 个 权限的文件(范围比mode小)。

  • -newer file:查找比指定文件新的文件 ,即最后修改时间离现在较近。

对文件的操作命令

  • -exec command {}\; :对匹配指定条件的文件执行command命令。 \是转义

  • -ok command {}\; :与exec相同 ,但执行command命令时请求用户确认

  • -print:显示查找结果。

locate 命令(速度快)

命令格式 : locate [选项] [文件名]

where is 命令

命令功能: 用来寻找命令的可执行文件所在的位置。
命令格式:where is [选项] [文件名]
常用参数选项:
-b: 只查找二进制文件。
-m: 只查找命令的联机帮助手册部分。
-s: 只查找源代码文件。

g rep 命令

命令功能: 用于查找文件中包含有指定字符串的行
命令格式:
g rep [选项] 查找模式 [文件名1 ,文件名2 , …]
g rep [选项] [-e 查找模式| -f 文件] [文件名1 ,文件名2 , …]

硬链接和符号链接

文件的压缩

文件归档

  • tar 命令
    将多个文件或目录打包在一个文件里 ,便于传输和保持。
    tar [options] 包名 file- list(待归档文件或目录列表)
    -c: 创建新的文件 。如果用户想备份一个目录或是一些文件 ,就要选择这个选项。
    -f:制定备份文件名。 一定要紧邻文件名
    -t: 列出备份文件的内容 ,查看已经备份的文件。
    -x:从备份文件中还原文件。
    -v: 显示指令执行过程。
    -r:添加文件到归档包文件的尾部
    -C:解压到指定的目录dir

tar – z: 以gzip压缩或解压
tar – j: 以bzip2压缩或解压
tar – J: 以xz压缩或解压

系统调用 (没懂)

概念

系统调用返回值

vim nano

nano 相关

nano [options] filename

命令

nano 打开,然后进入编辑,保存更改Ctrl + O 然后Enter
退出 nano,Ctrl+X。
-B 保存更改之前备份当前文件。 nano -B myfile.txt
-I 启用自动缩进。 nano -I myfile.txt
-N 无需从 DOS/Mac 格式转换。 nano -N myfile.txt
-T 将制表符的大小设置为给定的空格数。 nano -T 4 myfile.txt
-U 启用撤消功能。 nano -U myfile.txt
-Y 语法突出显示。 nano -Y sh myfile.sh
-c 不断显示光标位置。 nano -c myfile.txt
-i 自动缩进新行。 nano -i myfile.txt
-k 切换剪切以便从光标位置剪切。 nano -k myfile.txt
-m 启用鼠标支持。 nano -m myfile.txt