Linux基础指令(二)详解
目录
- 扩展1(指令就是程序)
- which +指令(找出指令所在的路径)
- stat(查看文件中更详细的属性)
- tree
- mkdir -p(创建路径)
- tree的安装
- tree的用法
- 拓展2Ctrl+C(终止异常命令)
- rmdir和rm(删除空目录/直接删除文件)
- rmdir
- rm
- rm -f(不询问直接删除文件)
- rm -r(直接删除目录)
- rm -rf(不询问直接删除文件)
- man(解答指令用法)
- cp(复制文件或目录)
- mv(移动文件并修改名字)
- nano(记事本)
- cat(将文本内容打印出来)
- cat -s(将多余的行数除去)
- tac(倒着打印)
感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接
🐒🐒🐒 个人主页
🥸🥸🥸 C语言
🐿️🐿️🐿️ C语言例题
🐣🐣🐣 python
🐓🐓🐓 数据结构C语言
🐔🐔🐔 C++
🐿️🐿️🐿️ 文章链接目录
🏀🏀🏀 笔试练习题
🐒🐒🐒 Linux
扩展1(指令就是程序)
我们现在处于根目录,现在进入bin这个文件中
进入后用ls展示所有的文件名
我们会发现有许多看不懂的文件,但当我们仔细的去找的时候发现里面的一些文件名就是之前指令的名字
我们可以通过ls -l去搜索出来
所以这里想要说的就是指令其实就程序
在我们平时用的一些软件中,其实就是通过代码编写出来最后生成可执行的应用程序,我们可以在文件中找到应用程序
应用程序是以.exe结尾的,我们平时写的代码在运行时也会生成生成.exe结尾的文件
因此指令 程序 可执行程序其实都是一回事,指令就是程序,因此安装其实就是在把可执行程序拷贝到系统路径下,而卸载就是将可执行程序在系统路径下删除,所以指令是可以被删除的,因为他是一个文件,但是建议不要这么做
which +指令(找出指令所在的路径)
有了which指令后我们可以找到指令的路径,有了这个路径后我们也可以向下面这样操作
从这个图片中我们可以看出输入指令时我们可以用指令的路径去替换也会有同样的效果
在输入which指令时有时会出现alias
这个alias是什么意思呢
这个alias也是一个Linux指令,其实就是给其他命令起一个别名
因为这里的ls的别名就是ls,所以没有变
当我们给ls取别名为jack后,在用which查看ls和jack,发现jack=ls,但是ls!=jack
但是他们的功能是相同的
另外有一些指令是自带别名的
上面图片中color=auto是什么意思呢
有时候我们在输入一些指令的时候会出现一些带颜色的文件名,这是因为有color=auto的原因
stat(查看文件中更详细的属性)
显示的信息中有几个时间Access是访问时间,Modify是修改时间,Change是改变世界,Birth是创建世界
tree
在上一篇文章中mkdir是创建出一个空目录,里面什么也没有,但是我们一般会让这个目录里面有一些其他的文件,比如创建出一个目录为jack,现在我们想让jack里面又有一个目录为john,john里面有一个文件,如果一步一步的创建就太麻烦了,有没有可以一次性就创建出来的方法呢?
其实是有的,假设我们想创建一串路径,比如a/b/c/d/e,
mkdir -p(创建路径)
创建路径方式像下面这样
然后我们用cd 进入我们创建的路径
想要一次性会退到指定路径可以用下面这种方式
因为现在所处路径为root/a/b/c/d/e
第一次cd…变成root/a/b/c/d
第二次cd…变成root/a/b/c
第三次cd…变成root/a/b
第四次cd…变成root/a
第五次cd…变成root
这种方法有个不好的点就是你要自己去算要回退多少次才可以到指定的路径
所以我们要用到tree指令
tree的安装
当我们第一次用tree命令的时候会出现下面这种情况,这个命令找不到
安装只需要输入下面这个指令就可以了 yum -y install tree
tree的用法
因为之前进入e的时候用用了次mkdir -pa/b/c/d/e,所以用tree .就会变成下面这种情况,这里的 . 表示的是当前路径,tree.就是当前路径下的所有路径
当输入tree a的时候结果如下
显然这里的a表示的是当前路径下最近的a
拓展2Ctrl+C(终止异常命令)
以tree为例,因为tree是打印当前目录下的所有路径,如果打印根目录的所有路径的话,因为根目录里有许多文件,所以会一直打印下去,这是我们需要用Ctrl+C去终止这种行为,一次不行就多按几次
有时候我们会因为自己输入错误导致出现下面这种情况
如果按回车还是有那个箭头,那么我们可以直接输入Ctrl+C去终止
rmdir和rm(删除空目录/直接删除文件)
rmdir
这个指令只能用来删除空目录,所以并不常用
rm
比如我们想要删除jack目录里的文件john.txt,在删除的时候他会询问你是否要删除,如果要删除的话就输入y,也就是yes的简写,不删除就输入n
blog.csdnimg.cn/direct/c3e6f765c18442fe8e94cdfe6f1c81b4.png)
rm -f(不询问直接删除文件)
如果觉得每次都要问是否要删除太烦了,就可以输入rm -f
rm -r(直接删除目录)
我们删除之前的a/b…路径
rm -rf(不询问直接删除文件)
和之前rm -f一个道理
但是要注意的是不要删除根目录,因为删除后很难恢复
man(解答指令用法)
当我们遇到不会用的指令的时候,我们可以用man指令去找这个指令的详细用法
比如ls不会用,那么就用man ls去了解ls的用法,Q键退出
cp(复制文件或目录)
cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息,并且复制的文件在同一个目录下不可以重名
这里顺便在解释一下f和r的含义
f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
-r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
mv(移动文件并修改名字)
mv命令是move的缩写,可以用来移动文件或者将文件改名,是Linux系统下常用的命令,经常用来备份文件或者目录。
mv命令有以下几种使用方法,他的格式为mv+要移动 的文件+移动到哪个地方/改为什么名字
第一种:对于想要修改文件名,比如一个文件名为jack.txt,我们想要将他修改成john.txt,那么我们可以输入mv jack.txt log.txt来进行修改
同样的我们也可以修改目录,比如a目录,我们要修改成b目录,只需要输入mv a b就行了
第二种:如果我们只想用mv命令实现剪切的功能,比如有一个文件为jack.txt,我们要将他剪切到上级目录上,那么就可以用mv jack.txt …,这里的…是返回到上级目录的意思
如果我们想让上一级目录的文件比如jack.txt移动到当前目录下,那么可以输入mv …/jack.txt .
第三种:这是前两种情况的结合,我们想要将一个文件移动到另一个目录下,并且修改文件的名字,比如将jack.txt移动到上级路径下并修改名字为john.txt,那么就输入mv jack.txt …/john.txt
nano(记事本)
nano就和windows下的记事本一样的,我们可以在这个记事本上编写代码
在编写代码之前我们需要创建一个.c文件,这里我创建的文件名为code.c
创建之后输入nano code.c
但是在输入这个指令后发现没有这个指令,这是因为我们还没有安装这个指令,输入yum install -y nano
输入nano code.c后就可以开始写代码了
可以看到下面有一系列的指令,其中^表示的是Ctrl,Ctrl+X表示的退出
退出时他会询问你是否保存代码,我们只需要输入Y即可
然后按回车键可以退出
输入cat code.c可以查看写的代码
这里发现我代码少些了一个括号,我们可以重新进如记事本修改之前的代码
之后输入gcc code.c对记事本代码运行,然后输入./a.out可以查看结果,因为我没有输入\n所以没有换行
cat(将文本内容打印出来)
上面的代码就是用cat打印出文本里的内容
cat -s(将多余的行数除去)
有时我们写的代码会有多余的行数
我们只输入cat code.c会打印出下面的结果
而输入cat -s code.c就会变成下面这样