招聘门户网站开发人员,做做网站下载2023,envato wordpress toolkit,化工材料 技术支持 东莞网站建设1、链接#xff1a;LN 一个点表示当前工作目录#xff0c;两个点表示上一层工作目录#xff1b; 目录的本质#xff1a;文件#xff08;该文件储存目录项#xff0c;以链表的形式链接#xff0c;每个结点都是目录项#xff0c;创建文件相当于把目录项添加到链表中…1、链接LN 一个点表示当前工作目录两个点表示上一层工作目录 目录的本质文件该文件储存目录项以链表的形式链接每个结点都是目录项创建文件相当于把目录项添加到链表中 如果想在一个目录中添加或者删除目录项需要获取这个目录的写权限
软连接符号链接单独的文件里面存储了文件路径类似于指针指向目录
硬链接文件以链表形式存于物理文件系统虚拟文件系统VFS与物理文件系统存在一种映射上图he目录和点目录指向同一个文件这种映射情形叫硬链接
创建硬链接
dir目录下创建三个子文件夹dir目录下有五个硬链接如果创建文件硬链接为1 创建a.txt和link_hard的硬链接在dir下面创建了一个路径这个路径名叫link-hard,都指向同一个文件a.txt; link_hard和a.txt的路径都一样都是523423所以指向同一个文件 创建软链接参数-s 在dir目录下的dir1创建符号链接存储了b.txt的相对路径 回到上级目录dir利用echo输出流命令可以输出stdout打印指定字符利用 符号重定向输出输出到b.txt,cd 到dir1操作link_sym这个符号链接操作的是它指向的文件 运用绝对路径创建软链接二 一般采用相对链接进行符号链接
符号连接类似于window的快捷方式c语言的指针
硬链接不能跨分区链接不能为文件夹创建硬链接
查找文件
locate windows的everything查找插件原理有自己的数据库把文件系统中的文件进行分析创建索引存入数据库如果要查找的文件未存于数据库中是查找不到的
locate查找原理有一个自己的数据库通过分析文件系统把索引存入数据库
所有满足查找条件的都会打印出来 新添加的文件未来得及添加到数据库所以·查找不到 which查找可执行程序 command可执行程序 tree以树状格式列出目录内容 find在目录的层次结构中搜索包含子目录
find 起始目录 查找条件 操作 -name根据名字查找 find 后添加根目录 / 在整个文件系统中查找
find / -name stdio.h 在linux-5.16.12内核版本src目录下存放linux内核源代码linux内核用c实现
在内核中查找所有 .c 结尾的文件 find 可以组合多个查找条件 -a and
-oor
逻辑取反
查找改内核的所有 .c 文件和 按名字查找.h 文件 根据类型查找-type c代表文件类型 f常规文件find . -type f 根据类型查找 l 链接文件查找find . -type l 在本目录下查找名包含soft 而且是软链接的文件find 命令可以多种组合查找 根据用户组ID进行查找 -user用户 -group组 -uid用户id -gid组id
添加用户 test //创建家目录用bash这个shell命令行解释器 根据test 查找在家目录下 根据大小进行查找rouding up近视规则如果文件有1.1kb对应的是2kb向上取整
bblock块512字节为一块
ccharacter一个字符占一个字节以字节为单位 -size 默认以b为参数
find ~ -size 4096 在家目录下查找大小为4096*512 字节大小的文件默认为block一块512byte
find ~ -size 4096c以字节为单位4096byte加了参数表示精确查找 超过5M的文件 小于5M文件
查找4k向上取整 查找空文件或空目录-empty
find . -size 0c (查找不到一些空目录) -empty空目录默认大小为4096byte如果要查空目录应使用-empty 根据权限查找-perm perm mode 进行查找
权限中rwx用三位二进制就可以表示而三位二进制数可以用一位8进制数表示 -rw- rw- r--有权限记作1无权限记作0
-110 110 100
-6 6 4
find . -perm 664 用户拥有执行权限或用户只拥有执行权限查手册具体用法 命令的组合
按顺序组合命令依次执行 可以把一个命令的输出结果以行为单位当作另一个命令的参数
把find 的命令结果放入下一个命令的参数{ } 查找某些文件并且直到该文件详细信息 管道 xargs 管道符 | 将前一个的输出stdout作为后一个命令的输入stdin管道使用字符竖杠表示
语法格式命令1 | 命令2 | 命令 3
并不是所有的命令都支持管道符运算
xargs 完成了两个行为xargs 将标准输入作为命令行的参数 1、处理管道传输过来的stdin 2、将处理后的数据传递到正确的位置 不加xargs管道符的左侧的命令输出格式与右侧的命令输入格式不匹配
加了xargsxargs会把管道符左侧的输出格式转化为右侧命令行所期望的输入格式 权限 当有时候没有权限的时候不能使用一些对应的功能所以需要用到更改权限 上图所示hello.py没有执行权限x使用 chmod ux hello.py后获得执行权限 chmod按位编码 rwx rwx rwx
user group other
权限的设置 文字设定法
chmod [ugoa] [ -] [rwx] file/dir //a--all,
chmod ux hello.py ///添加执行权限
chmod ax aabbcc.txt /给所有用户添加对aabbcc.txt的写权限 chmod a-x aabbcc.txt ;给所有用户减少对aabbcc.txt的执行权限 chmod ax aabbcc.txt 所有的用户都只有执行权限 权限可以组合使用 chmod urw,grw,or a.txt ;给user 读写权限组读写权限其他用户读权限 数字设定法 chmod 三位八进制数字 file/dir
第一位用户权限第二位组权限第三位其他人权限
chmod 664 hello.py ;; 文件掩码umask 文件掩码关注后三位八进制数字
普通用户的文件掩码002 root用户的文件掩码022 创建文件夹时默认的权限是777最终生成文件夹的时候生成775对umask002取反再与默认权限777按位与最终生成775 创建普通文件时默认权限是666对umask取反再将取反的结果与默认权限按位与最终生成权限
临时改变umask文件掩码umask 0···退出用户重启动后生效
在bash.rc文件中修改umask可以永久改变 umask :222
创建文件夹 创建普通文件 查看文件内容 cat拼接到流的末尾把标准输入中的内容输出到标准输出 文件描述符(非负整数)可以用文件描述符表示输入输出
stdin(标准输入) 键盘 0文件描述符
stdout(标准输出) 显示器 1文件描述符
stderr(标准错误输出) 显示器 2文件描述符 重定向 标准输出重定向 标准输入重定向
2 标准错误重定向 2表示标准错误输出 标准输出重定向追加
cat hello.py a.txt 标准输出重定向到a.txt cat把标准输入的内容读取到缓存中然后输出到标准输出流中
cat d.txt (ctrl D)结束输入
创建了d.txt文件并输出了输入流内容 cat可以重定向标准输入把输入流换成文件
echo
echo hello world e.txt
创建了e.txt 并重定向了字符串的流向 head显示文件的头几行信息默认前10行 可以指定head的参数 head -n 5 a.txt (输出前5行) tail :输出文件后几行 默认显示后10行 用-n 限制显示后5行 tail可以用来查看日志文件
more 单页浏览
more file
只显示第一页可以按f下翻b上翻
less单页浏览
less file
fforward:向前翻页
b backward往后翻页
q quit退出
其他操作 排序sort 以行为单位) 读取文件的内容并且在内存中对文件的内容行进行排序并把排序后的结果输出到stdout中 uniq去重去除连续重复的以行为单位 只去除了不同行且相邻的重复项的一项 读取文件的内容并对连续的行去重并把去重后的结果输出到stdout中
如果想把所用行进行去重可以先排序后去重
也可以用xargs 管道排序后去重不加xargs是读取文件为参数加了xargs就会把文件里的行作为参数导致uniq找不到文件 file确认文件类型 WC统计文件行字节数等 行数单词数字节数wc默认格式
iconv修改字符集修改编码格式 -f从哪个字符集开始from
-t要转化的目标字符集 转化后需要重定向保存不然会输出到输出流 grep搜索文件内容 Gglobally全局
reregex--regular expression正则表达式
pprint
-E使用扩展版本的正则表达式规则正则表达式有很多版本添加-E增加兼容性 -n显示行号
-i ignore 忽略正则表达式中的大小写
grep -nE txt a (查找含txt的内容并显示其行号双引号里是正则表达式) [ro] (ro至少出现一次) “.*” (点是匹配任意字符*是重复任意次会匹配所有的行) 正则表达式 基本单位普通字符转义字符. (用点代表任意字符)[ ] (集合), () (把小括号的整体当基本单位) 基本操作 连接ab 重复?(问号表示重复0次或1次)加号表示重复一次或者多次*重复任意次数{mn}可以用{ }表示重复次数 匹配以t开头以e结尾的单词
贪婪匹配模式尽量匹配更多内容该正则表达式匹配方式\t.*e\会尽量匹配更多内容 可以利用集合取反不匹配空格即可避免空格
找到家目录中所有的main函数
1、找到所有.c结尾的文件
find home/ -name *.c 2、利用grep找到main函数grep -nE int main\(
3、利用管道 | 和xargs 组合完成对所用文件的查找 可以直接通过vim命令打开对应的文件的行vim 2 home/leao/work/bit2.c (2 表示查到的行号后面则是路径) 在test01里查找以.txt结尾的内容
grep -nE \.txt$ test01 ($符号表示结尾) 正则表达式会尽量匹配更多的内容 其他命令 alias :别名 直接输入alias会显示已有的别名 history显示最近敲过的命令 可以给history起别名
该起别名方式只是临时生效类似umask 把最近输出的20条命令保存到文件中 打包和压缩 把多个文件包成一个文件打包后的文件大小一般高于打包前文件的总和会预留空间用于后续添加压缩便于传输
tarball的大小大于打包的文件 打包tar 打包后的文件叫tarball; tar (主选项 辅选项) 目标文件名 源文件或目录
主选项只能选择一个
ccreate创建一个包
r追加
x释放文件
辅选项
f指定文件的名称
v (verbose)显示打包过程
z用gzip算法来压缩或解压缩文件后缀名为.gz
把所有.txt结尾的文件打包成tarball 移动包到dir5使用sudo获得临时授权 在dir5中进行解包 压缩sudo tar cvfz tarball * 以上打包和解包以及压缩的命令不加-
打包所有.txt结尾的文件到tarball中sudo tar cvf tarball *.txt
解包tarballsudo tar xvf tarball
压缩所有文件到tarballsudo tar cvfz tarball *