linux_day02

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   ;

-o:or   ;

!:逻辑取反;

查找改内核的所有 .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,向上取整)

(b)block:块(512字节为一块)

(c)character:一个字符占一个字节(以字节为单位)

-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,管道符的左侧的命令输出格式与右侧的命令输入格式不匹配,

加了xargs,xargs会把管道符左侧的输出格式转化为右侧命令行所期望的输入格式;

权限:

        当有时候没有权限的时候,不能使用一些对应的功能,所以需要用到更改权限;

上图所示,hello.py没有执行权限x,使用 chmod u+x hello.py后获得执行权限;

chmod:按位编码;

rwx     rwx        rwx

user  group      other

权限的设置:

        文字设定法:

chmod  [ugoa] [+ = -] [rwx]   file/dir   //a--all,

chmod u+x hello.py   ///添加执行权限

chmod  a+x  aabbcc.txt     /给所有用户添加对aabbcc.txt的写权限

chmod a-x aabbcc.txt  ;给所有用户减少对aabbcc.txt的执行权限

chmod a=x aabbcc.txt ;所有的用户都只有执行权限

权限可以组合使用:

        chmod u=rw,g=rw,o=r a.txt  ;给user 读写权限,组读写权限,其他用户读权限;

数字设定法:

        chmod  三位八进制数字   file/dir

第一位用户权限,第二位组权限,第三位其他人权限

chmod  664  hello.py  ;;

文件掩码:umask

文件掩码关注后三位八进制数字,

普通用户的文件掩码:002

root用户的文件掩码:022

创建文件夹时默认的权限是777;最终生成文件夹的时候生成775;(对umask(002)取反再与默认权限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

f(forward):向前翻页

b (backward):往后翻页

q (quit):退出

其他操作:

        排序:sort  (以行为单位)

读取文件的内容,并且在内存中对文件的内容(行)进行排序,并把排序后的结果输出到stdout中;

uniq:去重(去除连续重复的,以行为单位)

        

只去除了不同行且相邻的重复项的一项:

读取文件的内容,并对连续的行去重,并把去重后的结果输出到stdout中;

如果想把所用行进行去重,可以先排序后去重;

也可以用xargs;

管道排序后去重,不加xargs是读取文件为参数,加了xargs就会把文件里的行作为参数,导致uniq找不到文件;

file:确认文件类型

WC:统计文件行,字节数等

行数,单词数,字节数(wc默认格式)

iconv:修改字符集,(修改编码格式)

-f:从哪个字符集开始(from)

-t:要转化的目标字符集

转化后需要重定向保存,不然会输出到输出流;

grep:搜索文件内容

G:globally;(全局)

re:regex--regular expression(正则表达式)

p:print;

-E:使用扩展版本的正则表达式规则(正则表达式有很多版本,添加-E增加兼容性)

-n:显示行号

-i :ignore  忽略正则表达式中的大小写;

grep -nE "txt" a           (查找含txt的内容并显示其行号,双引号里是正则表达式)

"[ro]+"              (ro至少出现一次)

“.*”  (点是匹配任意字符,*是重复任意次,会匹配所有的行)

正则表达式:

        基本单位:普通字符,转义字符,. (用点代表任意字符),[ ] (集合), () (把小括号的整体当基本单位,)

        基本操作:

                连接:ab,

                重复:?(问号表示重复0次或1次),+(加号表示重复一次或者多次),*(重复任意次数){m,n}(可以用{ }表示重复次数)

匹配以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 (主选项 + 辅选项) 目标文件名  源文件或目录

主选项:(只能选择一个)

c(create):创建一个包;

r():追加;

x:释放文件;

辅选项:

f:指定文件的名称

v (verbose):显示打包过程

z:用gzip算法来压缩或解压缩文件,后缀名为.gz;

把所有.txt结尾的文件打包成tarball:

移动包到dir5,使用sudo获得临时授权;

在dir5中进行解包:

压缩:sudo tar cvfz tarball *

        

以上打包和解包以及压缩的命令不加-;

打包所有.txt结尾的文件到tarball中:sudo tar cvf tarball *.txt

解包tarball:sudo tar xvf tarball

压缩所有文件到tarball:sudo tar cvfz  tarball *

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/132953.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

在Spring Boot中使用JTA实现对多数据源的事务管理

了解事务的都知道&#xff0c;在我们日常开发中单单靠事务管理就可以解决绝大多数问题了&#xff0c;但是为啥还要提出JTA这个玩意呢&#xff0c;到底JTA是什么呢&#xff1f;他又是具体来解决啥问题的呢&#xff1f; JTA JTA&#xff08;Java Transaction API&#xff09;是…

C语言--青蛙跳台阶【内容超级详细】

今天与大家分享一下递归的经典题目--青蛙跳台阶问题。 一.引子 电影《少年班》&#x1f357;中的老师在全国各地寻找天才少年时&#xff0c;就问了一个这样的问题&#xff0c;有20阶台阶&#xff0c;每次只能上一阶或两阶&#xff0c;总共有多少种上法&#xff1f;这个少年王…

【LeetCode刷题日志】138.随机链表的复制

&#x1f388;个人主页&#xff1a;库库的里昂 &#x1f390;C/C领域新星创作者 &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏✨收录专栏&#xff1a;LeetCode 刷题日志&#x1f91d;希望作者的文章能对你有所帮助&#xff0c;有不足的地方请在评论区留言指正&#xff0c;…

WebSphere Liberty 8.5.5.9 (一)

WebSphere Liberty 8.5.5.9 (一) 安装 1. 从官网下载 WebSphere Liberty 8.5.5.9 2. 解压 解压到 D:\wlp-webProfile7-java8-8.5.5.93. 启动 D:\wlp-webProfile7-java8-8.5.5.9\wlp\bin>server start 正在启动服务器 defaultServer。 服务器 defaultServer 已启动。4. …

让你的win10/win11系统变得不再卡顿,优雅草伊凡整理-长期更新-如何让windows操作系统不用老是重装在不断的更新中依然保持流畅运行

概述 如题&#xff1a;让你的win10/win11系统变得不再卡顿&#xff0c;优雅草伊凡整理-长期更新-如何让windows操作系统不用老是重装在不断的更新中依然保持流畅运行 本文长期更新&#xff0c;本次更新2023年11月8日&#xff01; 很多时候 我们的win10win11系统不管再怎么关…

【Python】20大报告生成词云

这个我其实写过一篇类似的博客&#xff0c;但是那个的文件对象是.csv&#xff0c;对应到.docx文件的话&#xff0c;就不太适用了。如下&#xff1a; Python生成词云-CSDN博客 代码&#xff1a; import jieba import os import wordcloud import numpy as np from PIL import…

自动化测试框架Playwright安装以及使用

最近&#xff0c;微软开源了一个非常强大的自动化项目叫 playwright-python 它支持主流的浏览器&#xff0c;包含&#xff1a;Chrome、Firefox、Safari、Microsoft Edge 等&#xff0c;同时支持以无头模式、有头模式运行&#xff0c;并提供了同步、异步的 API&#xff0c;可以…

【读点论文】结构化剪枝

结构化剪枝 在一个神经网络模型中&#xff0c;通常包含卷积层、汇合层、全连接层、非线形层等基本结构&#xff0c;通过这些基本结构的堆叠&#xff0c;最终形成我们所常用的深度神经网络。 早在 1998 年&#xff0c;LeCun 等人使用少数几个基本结构组成 5 层的 LeNet-5 网络&…

概念解析 | Richardson-Lucy去卷积算法

注1:本文系“概念解析”系列之一,致力于简洁清晰地解释、辨析复杂而专业的概念。本次辨析的概念是:Richardson-Lucy去模糊算法 Richardson-Lucy去模糊算法:重现图像的真实面目 Blind deconvolution by means of the Richardson–Lucy algorithm 背景介绍 在图像处理中,图像获取…

Antd React Form.Item内部是自定义组件怎么自定义返回值

在线演示https://stackblitz.com/edit/stackblitz-starters-xwtwyz?filesrc%2FSelfTreeSelect.tsx 需求 当我们点击提交,需要返回用户名和选中树的id信息,但是,我不关要返回树的id信息,还需要返回选中树的名称 //默认返回的 {userName:梦洁,treeInfo:leaf1-value } //但是需…

十年测试工龄,揭露软件测试痛点以及分析

做软件测试的同学们&#xff0c;你在平时的测试工作中有哪些困惑或困扰呢&#xff1f;你可以自行简单思考一下。下面我梳理一下&#xff0c;大家可以看看自己是不是也有如此的感受。 从测试整体角度分析&#xff1a; 第一个痛点是入门容易深入难。 很多人认为软件测试也就那么…

python中的异常与模块

异常 为了能够让代码可以正常的运行下去&#xff0c;不会因为某个语句而让程序崩溃&#xff0c;所以我们就需要使用异常&#xff0c;异常的语法格式如下&#xff1a; try:可能出现异常的语句 except:出现异常之后的处理同时python也是支持捕获指定异常的 try:可能出现异常的…

阿里大佬:DDD中Interface层、Application层的设计规范

说在前面 在40岁老架构师 尼恩的读者交流群(50)中&#xff0c;最近有小伙伴拿到了一线互联网企业如阿里、滴滴、极兔、有赞、希音、百度、网易、美团的面试资格&#xff0c;遇到很多很重要的面试题&#xff1a; 谈谈你的DDD落地经验&#xff1f; 谈谈你对DDD的理解&#xff1f…

C语言 音乐播放器项目(综合)

1.main.c文件 #include<stdio.h> #include<stdlib.h> #include<string.h> #include <unistd.h>//休眠所需的头文件 #include "./pos/console.h"//光标使用所需的头文件 #include "lrc.h" #include "./mplayer/start_mplayer…

2023-11-11 LeetCode每日一题(情侣牵手)

2023-11-11每日一题 一、题目编号 765. 情侣牵手二、题目链接 点击跳转到题目位置 三、题目描述 n 对情侣坐在连续排列的 2n 个座位上&#xff0c;想要牵到对方的手。 人和座位由一个整数数组 row 表示&#xff0c;其中 row[i] 是坐在第 i 个座位上的人的 ID。情侣们按顺…

2023年03月 Python(四级)真题解析#中国电子学会#全国青少年软件编程等级考试

Python等级考试(1~6级)全部真题・点这里 一、单选题(共25题,每题2分,共50分) 第1题 运行下列程序,输出的结果是?( ) def wenhao(name = zhejiang): print(hello + name) wenhao

【JavaEE初阶】 TCP协议详细解析

文章目录 &#x1f332;TCP协议的概念&#x1f6a9;TCP协议段格式&#x1f6a9;TCP的特性 &#x1f333;TCP原理&#x1f6a9;确认应答机制&#xff08;安全机制&#xff09;&#x1f6a9;超时重传机制&#xff08;安全机制&#xff09;&#x1f6a9;三次握手四次挥手&#xff…

软件测试需要学习什么?好学吗?需要学多久?到底是报班好还是自学好?

前言&#xff1a; 我发现很多的小伙伴刚刚毕业和想转行的小伙伴对于软件测试很陌生&#xff0c;其中很有很多的小伙伴还踩不少的坑&#xff0c;花费了大量的精力和时间去探索&#xff0c;结果还是一无所获。这里给大家出一期关于软件测试萌新的疑惑&#xff0c;看完这篇文章你就…

pytorch中对nn.BatchNorm2d()函数的理解

pytorch中对BatchNorm2d函数的理解 简介计算3. Pytorch的nn.BatchNorm2d()函数4 代码示例 简介 机器学习中&#xff0c;进行模型训练之前&#xff0c;需对数据做归一化处理&#xff0c;使其分布一致。在深度神经网络训练过程中&#xff0c;通常一次训练是一个batch&#xff0c…

SPSS:卡方检验(交叉表)

第一步 打开SPSS软件&#xff0c;在工具栏中选中【打开-文件-数据】&#xff0c;然后选择一份要打开的数据表(如图所示)。 第二步 在工具栏中找到【分析-描述统计-交叉表】打开交叉表对话框(如图所示)。 第三步 接着将【行-列】相关变量放在对应对话框中(如图所示)。 第四步 在…