网站提供的链接,网站开发无形资产,旅游目的地门户网站如何建设,wordpress登录后评论文章目录 3. Linux指令3.1 ls指令和rm指令补充3.2 man指令#xff08;重要#xff09;3.3cp指令#xff08;重要#xff09;输出重定向3.3.1ubuntu20.04如何安装tree 3.4 mv指令#xff08;重要#xff09;mv指令更改文件名mv指令更改目录名 如何看待指令指令的重命名3.5… 文章目录 3. Linux指令3.1 ls指令和rm指令补充3.2 man指令重要3.3cp指令重要输出重定向3.3.1ubuntu20.04如何安装tree 3.4 mv指令重要mv指令更改文件名mv指令更改目录名 如何看待指令指令的重命名3.5 cat指令追加重定向输入重定向 3.6 more指令3.7 less指令重要3.8 tail指令 3. Linux指令
3.1 ls指令和rm指令补充 *通配符
ls *显示任何文件
ls *.c局部匹配前面不管只匹配.c后缀
ls test.*局部匹配前面匹配test后缀不管 rm * -rf删除所有的 rm -rf 文件名/目录名和rm 文件名/目录名 -rf作用一样但是推荐写成前者。 rm -i删除前逐一询问确认 在root用户不用-i也会询问确认普通用户不用-i就直接删除了使用了-i才会询问确认 3.2 man指令重要
访问Linux手册页的命令是man
语法: man 命令
man ls 按空格键翻页 按键盘上的⬆和⬇可以上下慢慢移动页面。
退出man点击q man man也是可以的
下方1-9的是指Linux手册编号因为是云服务器所以联网的。 man printf也是可以的
printf不止是C语言有Linux里面也有。
我们可以通过下面的语句调用printf指令。
printf hello %d,hello %f 12 3.14 这个printf和我们之前学习的C语言的printf不是一个东西就像六耳猕猴和孙悟空一样。
如果想要调用C接口里面的printf呢
man 3 printf这里的3指的是手册的编号。 如果直接man 指令名那么得到的是按照手册编号顺序得到的解释。1号手册有就是1号手册的该指令的定义。没有就查2号手册依此类推。
如果全都没有就说明这个指令是不存在的。 3.3cp指令重要
输出重定向 讲cp指令的前面要先讲一下输出重定向。 echo hello Linuxecho指令可以把后面跟着的字符串打印在显示器上。
echo hello Linux mytest.txt把hello Linux写到mytest.txt里面。
我们可以通过ll看到文件大小从0变成了12。 cat mytest.txt打印mytest.txt文件的内容 实际上echo hello Linux mytest.txt经过了两个阶段 echo hello Linuxecho指令将字符串打印在显示器上 这里的echo hello Linux 没有在显示器显示字符串 这个数据被写入文件中。 我们把在指令后面带和一个文件名现象是没有在显示器显示字符串这个数据被写入文件中我们把它称为输出重定向。 输出重定向本来应该显示到显示器的内容打印到文件中 cp mytest.txt mytest_backup.txt把mytest.txt拷贝成mytest_backup.txt 想要把一个文件拷贝给另一个文件但是两个文件名字一样那么就会报错。 cp mytest.txt ../mytest.txt拷贝mytest.txt给上一级路径
ls ../查看上一级路径 常识告诉我们同一个目录下不能存在同名文件。 3.3.1ubuntu20.04如何安装tree 依次执行下面两行语句 sudo apt update sudo apt install tree ll显示指定文件或目录的详细属性信息
mkdir –p d1/d2/d3递归建立多个目录 目录无法直接拷贝 cp -r lesson3 lesson3_backup递归拷贝lesson3目录 -r是递归的意思 我们也可以进一步验证mytest.txt文件的内容 -i覆盖文件之前先询问用户 -f强行复制文件或目录 不论目的文件或目录是否已经存在一般不会询问 -fi是会问的因为为了保险起见。 3.4 mv指令重要
mv指令更改文件名
mv mytest_backup.txt mytest1.txt把mytest_backup.txt重命名为mytest1.txt mv也可以剪切
mv mytest.txt ../把mytest.txt剪切到上级目录 mv ../mytest.txt .把上级路径的mytest.txt剪切到当前路径 mv mytest.txt ../test.txt把mytest.txt剪切并重命名为test.txt到上级目录 那么怎么分辨mv是剪切还是重命名还是剪切并重命名呢
mv 当前文件 目录剪切
mv 当前文件 路径/文件名剪切并重命名
mv a.txt b.txt剪切并重命名
mv a.txt ./b.txt剪切并重命名本质上mv都是剪切
CtrlC撤销这一次的操作 mv指令更改目录名 mv 目录名1 目录名2这里不管是重新命名还是剪切目录名2都要不存在存在的话就会重名。这个时候会把目录名1放进目录名2里面。
不存在的话就是重新命名和剪切了。 如何看待指令 如何看待指令 指令和可执行程序都是可执行的指令就是可执行程序。 指令一定在系统的某一个位置存在。 我们在执行指令前我们要干什么? 先在系统中查找对应的指令。 指令存在在系统中可以得出指令是在系统中特定的路径下存在的。 一定是某种可执行程序 指令的本质就是可执行程序和我们自己写的代码编译好的程序没有本质区别。 例如我们编译后出现一个可执行程序a.out我们把这个可执行程序a.out重命名为ssss后放到/user/bin/里面后我们直接输入刚刚那个重命名的ssss就会出现这个可执行程序的运行结果。不过不建议自己写了丢进去因为以后会忘记也没多大用处。 把可执行程序从刚刚的系统路径下删除实际上就是卸载。 这种概念在Windows下面也是一样的。 指令的本质就是文件可执行文件就是直接安装到系统的某个路径下然后使用的时候会自动跳到那边使用。 指令的重命名
alias AB;
把B操作重命名为A
which可以查询指令的地址但是在Ubuntu里面which只能查询没有被重命名的指令的位置。 3.5 cat指令
语法cat [选项][文件]
功能 查看目标文件的内容 常用选项 -b 对非空输出行编号 -n 对输出的所有行编号 -s 不输出多行空行 Linux下一切皆文件。 例如 显示器向显示器打印–向显示器文件写入fwhite不会从显示器读取fread(){}读方法为空 键盘向键盘输入–向键盘文件读取fread不会向键盘打印fwhite(){}写方法为空 普通文件…
之前的输出重定向本质上就是把向显示器文件写入变成向另外的文件写入。 echo后面跟的是字符串把后面原封不动的打印出来。
cat后面跟的是文件名cat打印的是文件的内容
ll后面跟的是我们所对应的文件的属性ll打印的是文件的属性 这个情况很有意思一开始test.txt里面是hello Linux。
后来输入了多次echo hello Linux test.txt结果还是打印一行hello Linux。
然后我们输入echo 108 good test.txt结果打印108 good了。 这种输出重定向有个特点 向目标问价写入的时候会从文件的开始把所有的内容覆盖写入。 实际上在重定向过程中要干两件事 清空原始文件写入新内容 由此我们想清空一个文件的话我们可以这样 这个号就代表重定向。
这里打开文件的时候就默认清空了。 追加重定向 扩展 如果我想让文件的内容不清空呢 这个中间不能带空格 是错误的。
这种重定向叫做追加重定向。
echo默认带换行。
如果我们想不换行那就可以换成printf 然后我们可以看一下cat后面如果不跟文件名会发生什么 我输入了a回车他就打印a
我输入了b回车他就打印b
我输入了回车他就打印回车
说明cat后面如果不跟文件名就默认从键盘读。本来cat指令就是向显示器打印的所以我输一个回车他就打印一个。 输入重定向
我们还可以这样 这里我们呢可以认为本来应该从键盘文件读取的就不从键盘读了转而从我们指定的文件读取。
这个叫做输入重定向。 两个问题 当然这里也可能感觉cat test.txt就可以实现了为什么要用cat test.txt呢 因为这里要将。 他们有区别吗 有区别但是后面讲。现阶段会用就行了。 由图可见创建新文件不一定非得要touch。 这里的cat就是打印。 cat -n 文件名对输出的所有行编号 cat -b 文件名对非空输出行编号
我们先创建一些空行在里面 然后输入命令 cat -s 文件名不输出多行空行多个空行变一行空行 也可以组合使用 3.6 more指令
语法more [选项][文件]
功能more命令功能类似 cat 常用选项 -n 对输出的所有行编号 q 退出more 先用脚本语言来创建一个脚本 使用cat来读的话 说明cat不适合大文本适合小文本。
所以要使用more
默认显示一面 按回车下翻 退出就按Q就行了
more也可以带选项 more一般靠按键只能下翻不能上翻。
我们也可以直接/9999 3.7 less指令重要 less 工具也是对文件或其它输出进行分页显示的工具应该说是linux正统查看文件内容的工具功能极其强大。 less 的用法比起 more 更加的有弹性。在 more 的时候我们并没有办法向前面翻 只能往后面看。 但若使用了 less 时就可以使用 [pageup][pagedown] 等按键的功能来往前往后翻看文件更容易用来查看一个文件的内容 除此之外在 less 里头可以拥有更多的搜索功能不止可以向下搜也可以向上搜 语法 less [参数] 文件 功能 less与more类似但使用less可以随意浏览文件而more仅能向前移动却不能向后移动而且less在查看之前不会加载整个文件。 选项 -i忽略搜索时的大小写 -N显示每行的行号 /字符串向下搜索“字符串”的功能 ?字符串向上搜索“字符串”的功能 n重复前一个搜索与 / 或 ? 有关 N反向重复前一个搜索与 / 或 ? 有关 qquit 我们输入less 按↓会下翻按↑会上翻。所以less适合大文本的上下布局。
less也可以输入/999查看后面的消息 也可以输入?899查看之前的消息 cat不适合看大文本适合看小文本。
那么我们为什么要看一个比较大的文本呢什么文本属于大文本呢
在项目里面可以用到。 3.8 tail指令
tail 命令从指定点开始将文件写到标准输出。使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容。 语法 tail[必要参数][选择参数][文件] 功能 用于显示指定文件末尾内容不指定文件时作为输入信息进行处理。常用查看日志文件。 选项 -f 循环读取 -n行数 显示行数 如何读取1001-1020行内容呢? head -1020 log.txt temp.txt; tail -20 temp.txt head -1020 log.txt temp.txt
从 log.txt 文件的开头读取前 1020 行将这 1020 行保存到 temp.txt 文件中 是重定向符号会覆盖已存在的 temp.txt 文件
tail -20 temp.txt
从 temp.txt 文件包含前面获取的 1020 行中读取最后 20 行将这 20 行显示在屏幕上
最终效果
显示 log.txt 文件的第 1001 行到第 1020 行相当于查看了原文件的第 1001-1020 行的内容 这里要创建temp.txt文件如果不创建文件能完成吗
我们可以使用管道。
# 使用管道无需临时文件
head -1020 log.txt | tail -20区分左右两侧的|称为管道文件。
这个管道文件是一种内存级别的文件。 什么叫做管道呢 有输入有输出传输资源