目录
小编是双非本科大一菜鸟不赘述,欢迎大佬指点江山(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 分别代表年月日时分秒的格式。
cal 是Linux的日历功能

find 指令是非常重要的,它是 Linux 里面非常常见的文件查找指令,他可以查找指定目录下的指定文件,任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件,并且将查找到的子目录和文件全部进行显示。
因为目前俺是入门,很多 find 选项还用不到,所以了解一手就行,想深入研究的请自行搜索
grep 是一个行文本过滤指令,即在文件中搜索字符串,将找到的内容打印出来,语法:
grep [选项] 要搜索的字符串 文件
-i
搜寻的字符串要加上 单引号 ‘ ’ ,而且在查找时该指令是明确了大小写的,所以如果要默认不区分大小写可以使用选项 -i,-i 是忽略大小写。
-v
-v 是反向过滤,凡是具有关键字的文本行,全部去掉留下没有匹配的文本行。
注意 grep 是行处理指令,永远拿到的是一行一行的内容。
总结一下就是:
cat命令:将文件内容一次全输出显示在屏幕上。
more命令:分屏显示文件内容,每次只显示一屏,只允许向前浏览。
less命令:与more相似,并且支持向前,向后浏览。
zip 命令用于压缩文件,zip 是个使用广泛的压缩程序,压缩后的文件后缀名为 .zip,对应解压指令 unzip。
比如要将 /home/zip 目录下所有文件和文件夹打包成 zip 格式:
zip -r test.zip /home/zip
查看压缩文件中包含的文件:
# unzip -l abc.zip
Archive: abc.zip
Length Date Time Name
-------- ---- ---- ----
94618 05-21-10 20:44 a11.jpg
202001 05-21-10 20:44 a22.jpg
16 05-22-10 15:01 11.txt
46468 05-23-10 10:30 w456.JPG
140085 03-14-10 21:49 my.asp
-------- -------
483188 5 files
当然他会像所有解压软件一样,默认解压会将目标文件放在默认路径也就是当前目录下,如果想要放在指定地方我们可以带上-d
-d<目录> 指定文件解压缩后所要存储的目录
那我们为什么要打包压缩?
一般一个压缩包分了两个动作:打包和压缩,tar 指令就可以将这两个动作分开,他是用来建立或者还原备份文件的工具程序,它可以加入,解开备份文件内的文件。
touch a.c
tar -czvf tar.c test.c //压缩 test.c 文件为 tar.c
-c 是创建(还原改成 x 即可),-z 是压缩,-f 是在后面输出对应文件名,则解压文件可写成:
tar -xzvf test.c
这里要解压缩到指定路径就需要加上 -C 选项即可。
这里只讲了 zip不讲其他的是因为几乎所有种类的压缩包 Linux 都能支持,因为 Linux 面对非常多的平台包括 Windows,Mac 这些个,如果以后遇到后缀 .xxx 的不知道怎么搞,建议直接搜索 “ centos .xxx 文件的解压缩 ”。
今天就到这里了,润了家人们。
?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------
项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU
Rails相对较新。我正在尝试调用一个API,它应该向我返回一个唯一的URL。我的应用程序中捆绑了HTTParty。我已经创建了一个UniqueNumberController,并且我已经阅读了几个HTTParty指南,直到我想要什么,但也许我只是有点迷路,真的不知道该怎么做。基本上,我需要做的就是调用API,获取它返回的URL,然后将该URL插入到用户的数据库中。谁能给我指出正确的方向或与我分享一些代码? 最佳答案 假设API为JSON格式并返回如下数据:{"url":"http://example.com/unique-url"
我正在尝试复制此GETcurl请求:curl-D--XGET-H"Authorization:BasicdGVzdEB0YXByZXNlYXJjaC5jb206NGMzMTg2Mjg4YWUyM2ZkOTY2MWNiNWRmY2NlMTkzMGU="-H"Content-Type:application/json"http://staging.example.com/api/v1/campaigns在Ruby中,通过电子邮件+apikey生成身份验证:auth="Basic"+Base64::encode64("test@example.com:4c3186288ae23fd9661c
文章目录一、项目场景二、基本模块原理与调试方法分析——信源部分:三、信号处理部分和显示部分:四、基本的通信链路搭建:四、特殊模块:interpretedMATLABfunction:五、总结和坑点提醒一、项目场景 最近一个任务是使用simulink搭建一个MIMO串扰消除的链路,并用实际收到的数据进行测试,在搭建的过程中也遇到了不少的问题(当然这比vivado里面的debug好不知道多少倍)。准备趁着这个机会,先以一个很基本的通信链路对simulink基础和相关的debug方法进行总结。 在本篇中,主要记录simulink的基本原理和基本的SISO通信传输链路(QPSK方式),计划在下篇记
Linux操作系统——网络配置与SSH远程安装完VMware与系统后,需要进行网络配置。第一个目标为进行SSH连接,可以从本机到VMware进行文件传送,首先需要进行网络配置。1.下载远程软件首先需要先下载安装一款远程软件:FinalShell或者xhell7FinalShellxhell7FinalShell下载:Windows下载http://www.hostbuf.com/downloads/finalshell_install.exemacOS下载http://www.hostbuf.com/downloads/finalshell_install.pkg2.配置CentOS网络安装好
文章目录一基础定义二创建逻辑卷2-1准备物理设备2-2创建物理卷2-3创建卷组2-4创建逻辑卷2-5创建文件系统并挂载文件三扩展卷组和缩减卷组3-1准备物理设备3-2创建物理卷3-3扩展卷组3-4查看卷组的详细信息以验证3-5缩减卷组四扩展逻辑卷4-1检查卷组是否有可用的空间4-2扩展逻辑卷4-3扩展文件系统五删除逻辑卷5-1备份数据5-2卸载文件系统5-3删除逻辑卷5-4删除卷组5-5删除物理卷六LVM逻辑卷缩容6-1缩容注意事项6-2标准缩容步骤一基础定义LVM,LogicalVolumeManger,逻辑卷管理,Linux磁盘分区管理的一种机制,建立在硬盘和分区上的一个逻辑层,提高磁盘分
如何在Ruby中获取linux系统(这必须适用于Fedora、Ubuntu等)的软件/硬件信息? 最佳答案 Chef背后的优秀人才,拥有一颗名为Ohai的优秀gemhttps://github.com/opscode/ohai以散列形式返回系统信息,例如操作系统、内核、规范、fqdn、磁盘、空间、内存、用户、接口(interface)、sshkey等。它非常完整,非常好。它还会安装命令行二进制文件(也称为ohai)。 关于ruby-如何在Ruby中获取linux系统信息,我们在Stack
我在LinuxMint17.2上。我最近使用apt-getpurgeruby删除了ruby。然后我安装了rbenv然后rbenvinstall2.3.0所以现在,~/.rbenv/versions/2.3.0/bin/ruby存在。但是现在,我无法执行geminstallrubocop。我明白了:$geminstallrubocoprbenv:gem:commandnotfoundThe`gem'commandexistsintheseRubyversions:2.3.0但是我可以~/.rbenv/versions/2.3.0/bin/geminstallrubocop。但是,
我是Ruby和RoR的新手。我有一个带有Ubuntu镜像的干净Linode实例,我想从源代码编译Ruby而不是使用apt-get。我已经在谷歌上搜索了执行此操作的说明,但经过一些尝试后,当我尝试运行一些教程示例时,我不断收到有关缺少zlib和其他一些包的错误。任何人都可以给我详细的说明(或链接),教我如何在从源代码编译Ruby之前安装必要的必备包吗?我的目的是编译Ruby的最新稳定版本,然后安装Rubygems和Rails。提前感谢您的帮助!!! 最佳答案 Thisblogpost涵盖从源代码编译ruby所需的包和安装过程;它引