linux
线上求助
在文件模式下,输入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 绝对路径 |
.
代表当前目录..
代表返回上一层目录-
回到上一个工作目录~
家目录 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
特殊权限
SUID
只对二进制
有效,执行者需要对程序有执行
权限,本权限仅仅在执行的时候有效。执行者将具有拥有者的权限
。
一个例子:rwxr-xr-x 变成了 rwsr-xr-x
1.tester用户对于/usr/bin/passwd -rwsr-x
r-x 这个程序具有执行权限,因此可以执行passwd程序
2.passwd程序的所有者为root
3.tester用户执行passwd程序的过程中会暂时获得root权限
4.因此tester用户在执行passwd程序的过程中可以修改/etc/shadow 文件
可能会有一个问题,既然不在用户中或者组用户中,为什么不赋予w权限,而是要用 SUID?
- 因为有些文件只能root修改
如何设置与删除SUID
创建 |
小写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 rws
r-xr-x
sgid rwxr-s
r-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