博客主页:【夜泉_ly】
本文专栏:【Linux】
欢迎点赞👍收藏⭐关注❤️
文章目录
- 📚 前言
- 🔑 概念一
- 🔑 概念二
- 📖 man
- 💬 echo
- 📁 cp
- 📂 mv
- 🔑 概念三
- 🔑 概念四
- 🔄 输入输出重定向
- 🏷️ Ctrl c
📚 前言
本文主要内容:
在Linux -初识 与基础指令1中,
我简单介绍了几个Linux的常见指令。其实啥也没讲
由于写得比较激动,把几个重要的概念给忘了,
所以本篇先补补之前涉及的相关概念,
后面继续讲基础指令。。加相关概念。
🔑 概念一
概念一:文件 = 文件内容 + 文件属性。
首先来看个东西:
touch test.txt
mkdir testdir
我 touch
创建了一个空文件,又 mkdir
创建了一个空目录。
那么这些 空 的文件/目录,占不占空间?
答案是要占空间,因为下面这些信息也是需要空间来存的:
🔑 概念二
概念二:Linux 中的任何文件操作,本质上都是对文件系统树的修改。
在前一篇,我通过不断 cd ..
,一直退到了 /
目录:
这个 /
目录就是 Linux 系统中树形结构的文件系统的起点。
在这颗树中,任何一个文件都可以被当作这颗树的节点。
因此,修改任何一个文件,等价于修改这颗多叉树。
举几个例子:
- 创建文件或目录:在树中添加一个新节点。
- 删除文件或目录:从树中移除一个节点。
- 修改文件内容:修改树中某个节点的内容。
📖 man
接下来看看本篇的第一条指令:man
。
这是Linux中的手册,用来介绍指令是怎么用的。
比如,你现在连 man
都不会用,那你就直接输入:
man man
查看 man
怎么用:
往下翻翻可以看到 man
手册分了几个章节:
这个章节主要看一三就行,一是指令,三是库函数。
这个库函数主要是C语言的,比如你可以查 printf 怎么用。
不过 man
默认是顺着手册查,因此当你直接:
man printf
你会发现查到了第一章的指令:
是的,printf
也是一条指令,不过这里就不过多介绍了。
先要查看库函数里的 printf
,需要加上章节名:
man 3 printf
💬 echo
echo
指令用于将我们输入的内容加个换行后再输出。
echo "Hello World"
后面加个 >
可以用来写文件。
echo "Hello World" > test.txt
可以看见:
- 屏幕上没有输出。
- 文件大小被改变。
至于检查内容是否被写入,我们还需要一个指令:
cat
,用于把文件内容显示到屏幕。
因此在 echo
后跟个 >
符号,再跟个文件名,发现本该输出到屏幕的东西进文件了,我们把这个叫做输出重定向。
📁 cp
现在先来看看拷贝指令 cp
:
cp test.txt cp.txt
上面这条可以将 test.txt 的内容拷贝到 cp.txt:
也可以改改路径:
cp test.txt ./test/cp.txt
如果要拷贝整个目录,加个 -r
就行:
cp -r test cp
📂 mv
mv
指令,用来:重命名 + 剪切。
先来看看重命名( + 剪切):
mv test.txt test_mv.txt
再看看(重命名 + )剪切:
mv test_mv.txt d1
再看看重命名 + 剪切:
mv test_mv.txt ../test.txt
目录同理:
mv d2 d1
🔑 概念三
概念三:指令是可执行程序。
在了解了这么多指令的用法后,也应该了解一下指令的本质了:
指令就是可执行程序!
当我们输入了abcdefg
后,会提示我们指令未找到:
这意味着想要运行一条指令,必须先找到它的位置。
当我们执行 rm -rf /*
后,再输入指令,就会显示它的位置:
🤣开个玩笑,你们可万万不能输 rm -rf /*
。
当我们输入 which
加指令,就能看见对应的位置:
可以看见,大多指令都是放在 /usr/bin
下的。
cd
过去看看:
上面这绿色的一片就是指令。
我又用C语言简单写段代码,并 gcc
出了可执行程序:
简单运行一下:
但如果想像指令那样运行,还是会提示未找到:
这好办,把它移到指令在的目录里面就行了:
看见了吧,我写的 Hello World
也可以像指令一样用。
那么问题来了:
指令和我们写的可执行程序有区别吗?
当然有!别人写得更好。。
🔑 概念四
概念四:Linux中一切皆文件。
在了解了指令不过就是可执行程序后,我们可以更深一步的理解:Linux中一切皆文件。
比如,显示器。
在Linux系统看来,显示器是个文件。
当直接 echo
时,相当于向这个文件写入。
比如,键盘。
在Linux系统看来,键盘也是个文件。
当我们打字时,就是在从这个文件读数据。
🔄 输入输出重定向
在简单了解了,或者说知道了Linux中一切皆文件后,我们再来看一下重定向。
首先是 echo
,我们可以看见它默认写是显示器:
echo Hello World
此时,加上 >
,可以向文件写入:
echo Hello World > test.txt
这个 >
我们叫做输入重定向。
再看看输入重定向的特点:
ls -l // 确认当前目录没有test2.txt
echo Hello World > test2.txt
echo Hello World > test2.txt
echo Hello World > test2.txt
cat test2.txt // 确认是否有test2.txt,以及其内容
- 如果没有对应文件,会创建个新的
- 如果有对应文件,会覆盖写
如果想要快速清空一个文件,可以直接 >
加文件名:
> test2.txt
如果想要追加,可以使用追加重定向 >>
echo Hello World >> test2.txt
再看看 cat
,如果直接输入,不加文件:
可以看见,cat
默认从键盘读取,默认向显示器打印。
如果想让 cat
读取文件的内容,需要用到输入重定向 <
。
cat < test.txt
🏷️ Ctrl c
Ctrl c可以帮助我们中断程序,常用于完结死循环:
希望本篇文章对你有所帮助!并激发你进一步探索编程的兴趣!
本人仅是个C语言初学者,如果你有任何疑问或建议,欢迎随时留言讨论!让我们一起学习,共同进步!