小编是双非本科大一菜鸟不赘述,欢迎大佬指点江山(QQ:1319365055)
此前博客点我!点我!请搜索博主 【知晓天空之蓝】
非科班转码社区诚邀您入驻
小伙伴们,打码路上一路向北,背后烟火,彼岸之前皆是疾苦
一个人的单打独斗不如一群人的砥砺前行
这是我和梦想合伙人组建的社区,诚邀各位有志之士的加入!!
社区用户好文均加精(“标兵”文章字数2000+加精,“达人”文章字数1500+加精)
直达: 社区链接点我
倾力打造转码社区微信公众号
大家应该都知道,我们打开浏览器随便打开一个网站,再从网页里面点进任何一个个体,我们从现在网址栏复制下来的访问地址就是我们常说的 url,比如我找到 b 站一个视频:
https://www.bilibili.com/video/BV1u54y1Z7Wg?spm_id_from=333.851.b_7265636f6d6d656e64.1
那么这个视频 url 域名后面的一大坨是什么呢?我们说过 Linux 文件路径我们有路径分隔符,发现他和网址的 url 分隔符是一样的,其实网址靠后端维护,稍稍能看出来企业的后端是 Linux 操作系统!
Linux 下一切皆文件,这句话你是否有很多问号?
这就是一个 Linux 的感性理解,Linux 的设计哲学就认为所有的东西都可以被当成文件,我们能所见的键盘,硬盘,显示器,网卡都会被当成文件。这个世界很复杂,有好就有坏,不管你是乐天派还是觉得错的是这个世界,过去说过世上一切皆浮云,按照这个标准那么看待事物的方式就会变得简单,这就意味着我们可以用同一套方法来解决所有的问题。
Linux 的浮云就是文件,好处就是可以以同样的方式看待这些设备,当然这些设备在冯诺依曼体系下都被称为外设,说白了除了CPU和内存其他的基本上都是内设。
man命令是Linux下最核心的命令之一, 而 man 也并不是英文单词 “man” 的意思——男人,它是单词 manual 的缩写,即使用手册的意思
man命令会列出一份完整的说明,其内容包括命令语法、选项的意义及相关命令 ,更为强大的是,不仅可以查看 Linux 中命令的使用帮助,还可以查看软件服务配置文件、系统调用、库函数等帮助信息 。
Linux 的命令有很多参数,不可能全部记住,我们可以通过查看联网手册获取帮助,这就可以用到 Linux 手册页的访问语法——man 语法:
man [选项] + 命令参数
常见指令比如:
-a:在所有的man帮助手册中搜索;
-f:等价于whatis指令,显示给定关键字的简短描述信息;
-P:指定内容时使用分页程序;
-M:指定man手册搜索的路径。
比如我们查一个 printf:
还意外的发现 printf 是一个指令并不是函数,他可以在 Linux 中直接使用。因为 Linux 是C语言写的,man 既能查命令也能查函数,只需要在 printf 前加一个 3 ,就能查到C语言下的 printf 函数。那么问题来了,man 后面这个数字啥意思呢?这时候我们就可以来一手典中典的 man man 来看看 man 怎么用。
这些就是提供的接口,也就是9种不同的手册,我们 1 对应可执行程序手册,也就是 1 查指令;2 是系统调用手册,能查到功能; 3 对应库调用手册,所以跟 3 能查到 printf 的C语言定义。当 man 没有选项时默认为手册 1,最常用的就是前三个手册了,记住就行。
如果没有 man,执行:
yum install -y man-pages
cp 指令即拷贝指令,类似于 win 中的复制粘贴功能,比如进行文件拷贝,我将 new.txt 里面的内容拷到 new2.txt 里面:
cp 指令也可以进行指定路径的拷贝,如果在拷贝的时候,要拷贝的文件要在当前路径下,两个文件的名称不能一样。默认情况下,我们不允许拷贝目录,如果有硬性需要,就需要借助 -r 选项的递归拷贝。
mv 也是重要指令,他的主要功能有两个,一是剪切功能,比如我想将一个文件剪切移动到该目录下另一个目录里面,也可以剪切目录。
mv 文件名 目录名
这里我将 dir 目录下的 new2.txt 移动到了新建的 dir2 目录下
mv 原文件名 新文件名
在原来的位置进行原地重命名,同理也可以堆目录进行重命名。
mv 常用选项有 -f 和 -i,-f 我们说过是强制性命令直接进行覆盖,而 -i 是如果目标文件存在时,就会询问是否进行覆盖,默认参数是 -f。还是那句话,Linux 里面不要轻易删除或者覆盖一个文件,因为 Linux 并没有回收站。
我们其实一开始就使用了这个指令了,他的作用就是打印文件内容,比较适合查看短文本和代码,他也是可以带参数的:
-n :由 1 开始对所有输出的行数编号。
-b :和 -n 相似,只不过对于空白行不编号。
-s :当遇到有连续两行以上的空白行,就代换为一行的空白行。
cat 后面在不加文件名的时候,默认会从键盘进行标准输入与输出。
既然他时候短文本,那长文本咋办呢?他其实是可以展现出来的,但不会像在 vim 或者 nano 编辑器里面一样从开头供你随意查看,但是 cat 出来的第一眼永远是尾巴上的那几行文本,结论就是 cat 并不适合长文本。
他俩的作用是对于文本的显示,more 是进行行数的升序呈现,一个 100 行的文本,先出现在眼前的是开头开始的几行,而 less 是降序,从尾巴开始显示,键盘上下键支持文本页面上下翻。
more(less) 文件名
那么问题来了,我们为什么会去使用这两个命令呢?其主要用途就是进行查看日志。
echo “hello world” > new.txt
这句代码的意思就是将 “hello world” 写入 new.txt ,这里的 > 就是输出重定向,就是指本来应该写入到显示器的内容把他写入到文件中 ,重点在于他会清空原来文件的内容,进行重新写入,这是如果想要不清空原来文件内容,就使用双大于符号,>> 被称为追加重定向:
echo “hello world” >> new.txt
head,tail 是分别查看头,尾开始的正数 n 行和倒数 n 行的指令
head -num 文件名
tail -num 文件名
那如果我想要取中间的区间怎么办呢?可以用临时文件+ head 先取出右区间范围,再使用 tail 取到左区间来取出这个区间,当然这样是比较麻烦的,我们还有更聪明的方法——管道。
计算机世界里面的资源就是数据,就相当于世界的是由一样,这个管道和现实世界是一样的,有人去放入数据有人去拿出数据,他就是一个传输数据资源的载体
管道是一种单向通信的方式,一般用于进程间通信,在零拷贝时也会用到管道。管道本质上是一个文件,一个进程读,一个进程写。但是管道本身不占用磁盘或者其他外部存储的空间。在Linux上它占用内存空间。所以管道就是一个操作方式为文件的内存缓冲区。也正是因为管道是内存中的,所以它比使用文件作通信更快。
我们通过组合多条 head 、tail 命令来达到取区间数据,管道交付的最终意义就是级联多个命令来完成流水线式的数据处理工作。
顾名思义,date 指令就是用来显示时间的指令,他原本的输出格式并不方便我们直接阅读,所以我们一般会带上输出格式,一般是:
date +%Y-%m-%d_%H:%M:%S
Y,m,d,H,M,S 分别代表年月日时分秒的格式。
find 指令是非常重要的,它是 Linux 里面非常常见的文件查找指令,他可以查找指定目录下的指定文件,任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件,并且将查找到的子目录和文件全部进行显示。
因为目前俺是入门,很多 find 选项还用不到,所以了解一手就行,想深入研究的请自行搜索
grep 是一个行文本过滤指令,即在文件中搜索字符串,将找到的内容打印出来,语法:
grep [选项] 要搜索的字符串 文件
-i
搜寻的字符串要加上 单引号 ‘ ’ ,而且在查找时该指令是明确了大小写的,所以如果要默认不区分大小写可以使用选项 -i,-i 是忽略大小写。
-v
-v 是反向过滤,凡是具有关键字的文本行,全部去掉留下没有匹配的文本行。
注意 grep 是行处理指令,永远拿到的是一行一行的内容。
今天就到这里了,润了家人们。