目录
导言:我们在Linux下敲击各种指令究竟是在做什么?
首先要明确,我们敲击指令就是在使用Linux。就好比使用鼠标和键盘操作Windows系统。
所以我们这次的学习目标就是:学习使用各种指令。
一、创建文件和目录
目标:学习以下指令,尝试在Linux下创建一个目录,并进入该目录。
1.ls:显示当前目录下的文件
eg. 如果当前目录下没有文件
2.pwd: 显示当前路径
3.touch 文件名: 创建文件(注意指令和文件名间的空格)
4.mkdir 目录名: 创建文件夹(注意指令和目录名间的空格)
5.cd 目录名: 进入目录
使用mkdir命令创建一个目录code,再使用cd命令进入code。接下来的操作我们都将在创建的目录中进行,这样即使误操作导致严重失误,我们也可以直接删除该目录,再重新创建一个。
二、命令详解
0.命令和选项
命令后面可以接多个选项。
1.ls命令
常用选项:
- -l:显示文件的属性数据。
ls -l 可简写成 ll
拓:
文件 = 内容数据 + 属性数据
内容数据:文件里保存的内容
属性数据:文件的大小,修改日期,类型……
- -a:显示所有文件包括隐藏文件。
拓:Linux下是有隐藏文件和目录的,创建方式是创建时以 . 开头。
eg. 创建隐藏文件并查看
eg. 创建隐藏目录
隐藏文件的基本用途:隐藏一些配置文件。
- -i : 查看文件的inode编号。(inode编号相当于身份证号)
我们可以通过inode编号唯一标识文件和找到文件。
- -1 : 查看文件和目录,一行显示一个文件或目录
拓:连续输入多个选项
要输入多个选项时可以省去第一个选项外的选项的空格。
eg. 以下两种方法等价:
ls -lai
ls -l -a -i
2.cd命令
作用:跳转到指定路径。
拓1:当前路径 和 直接上级路径
当使用ls -a显示所有文件和目录时,会发现有不是被我们创建的 . 和 .. 且和目录的颜色一样这其实是当前路径 和 直接上级路径, . 是当前路径 ,..是直接上级路径。
- cd .. 的作用
我们可以使用cd .. (注意cd 和 ..间的空格)返回到上一级目录。(回退)
- cd . 的作用
在Linux下执行一个程序我们必须要先找到这个程序,也就是必须带上这个程序的路径。
所以 . 的用处在这时就体现了出来:
使用 . 可以限定我们要执行的可执行程序在什么位置。
拓2:/ 的概念
- / 是Linux下的路径分隔符。(windows下是 \ )
eg. Linux下的路径
eg. windows下的路径
- / 是Linux下的根目录。
eg. 使用ls命令查看根目录下的文件。
拓3:Linux下的目录结构
Linux下的目录结构,本质上是一颗多叉树。
拓4:为什么采用路径的方式来定位一个文件/目录?
因为靠路径我们能唯一确定一个文件/目录,如果把Linux下的目录结构看成是一颗多叉树,则文件/目录的父节点是唯一确定的,该父节点的父节点也是唯一确定的,直到根目录,所以可以顺着这条路径找到该文件。
拓5:绝对路径和相对路径
- 绝对路径:从根目录开始,到目标文件/目录所经过的所有目录组成的路径。(pwd目录显示的就是绝对路径)
- 相对路径:从当前路径开始,到目标文件/目录所经过的所有目录组成的路径。
eg. code 到 test.txt 的相对路径
拓6:家目录(当前用户的工作目录)
~ 就表示家目录,使用cd ~ 进入家目录。
- 对于普通用户而言:
/home/XXX 就叫做XXX用户的家目录(工作目录)
- 对于root用户而言:
/root 就是root用户的家目录
拓7:cd - 回到上一次所访问的路径
3.touch命令
- touch 文件名 :创建文件 和 更新文件的最近修改时间。
eg. 使用touch命令创建文件
eg. 使用touch命令更新文件最近修改时间。
- touch 文件名1 文件名2 文件名3:连续创建多个文件
- touch 绝对路径:在指定路径下创建文件
- touch .文件名 : 创建隐藏文件
4.mkdir命令
- 创建目录(文件夹)
- 创建隐藏目录:创建时在目录名前加上一个 .
- mkdir -p :创建一连串的目录
5.tree命令
作用:以树状图的形式打印目录,并显示目录和文件数量
注意:
1.tree命令不是Linux自带的命令需要用户自己安装
使用:yum install -y tree 命令安装。
在root账户下进行安装操作。
出现Complete! 提示才表示安装成功。
2. tree -a 才会显示出隐藏目录和文件,并在计算文件和目录数量时加上隐藏文件和目录。
6.rmdir
作用:删除目录
注意:
1.rmdir只能删除空目录
2.rmdir无法删除文件
7.rm命令
作用 : 删除文件 和 目录。
注意:不加选项的rm只能删除文件
1. rm -r :递归性的删除文件或目录
2. rm -i :在执行命令前进行询问
在执行比较危险的命令(如删除)时建议加上选项 -i。
输入y表示确定执行,n表示取消执行。
eg. 只有输入y才表示确定执行。
3. rm -f : 强制删除文件或目录,无需确认
4. 连续删除多个文件
rm 文件1 文件2
拓1:通配符 *
可以使用它来代替一个或多个真正字符;当不知道真正字符或者懒得输入完整名字时,常常使用通配符代替一个或多个真正的字符。
- rm *.txt :删除所有后缀是.txt的文件。
注:不会删除隐藏文件
- rm -r * : 删除所处目录下的所有信息,但不会删除隐藏文件。
该命令可用于清空文件夹。
拓2:通配符 ?
也是通配符,用法和 * 一样。
8. man
作用:在线操作手册,我们可以通过询问man,查找到指令的使用方法。
要了解更多按h,离开按q 。
man也是一个命令,也可以通过man来查看:
自带的man手册是精简版的,可以在root下使用命令 : yum install -y man-pages
(安装过程中,yum会询问用户是否安装,使用yum -y 选项,表示自动回答为yes。)
eg. 在root下安装man手册相对完整版。(出现Complete提示表示安装成功)
9.nano
作用:以记事本的形式打开文件(文本编辑器)
1.nano也不是Linux自带的,需要在root下通过yum install -y nano 命令来安装。
2. 使用nano编辑文本:nano 文件名
3.退出nano
编辑完成后,按住 Ctrl + x,选择退出编辑。
按y确定退出。
按下回车,退出nano。
eg. 经过nano编辑过的test.txt文件
10.cat命令
作用:猫一眼文件,即将文件中的内容打印出来。
(若文件非常非常长,有上万行,查看时,前面的数据滚动输出,只将末尾部分显示到屏幕上。也可使用ctrl+s,ctrl+q,停止和恢复屏幕。)
cat -n 文件名:打印文件内容时加上行号
拓:
tac指令:从下到上打印文件内容
tac命令没有 -n 选项
应用场景:查看成绩表文件中成绩倒数几名的同学
11. cp 命令
作用:拷贝
1. cp 文件a的路径 路径 : 以路径找到文件a,并将将文件a拷贝到指定路径下。
2. cp -r 目录b的路径 路径 : 以路径找到目录b,并将目录b和其中的文件拷贝到指定路径下。
拷贝目录时必须带上 -r 选项
eg. 拷贝目录不带上-r选项会报错
12. mv 命令
作用: 剪切 或 重命名
1.对文件进行剪切
mv 要剪切的文件的路径 目的地的路径
2.对目录进行剪切(不用加-r)
mv 要剪切的目录的路径 目的地的路径
3.对文件或目录进行重命名
后面是一个不存在的名字时就是进行重命名。
mv 要重命名的文件或目录 新名字
13.echo命令
作用:打印内容到屏幕上
原理:先把内容读入到缓冲区,再打印到屏幕上。
拓1:echo 可以和 >(输出重定向) ,>>(追加重定向)一起使用,用来修改文件内容。
1.echo "字符串" > 文件名 :(覆盖式写入)
如果没有该文件,创建该文件,并将内容写入到文件中。
如果存在该文件,将之前的内容删除,并将新内容写入文件中。
2.echo "字符串" >> 文件名 :(追加式写入)
如果没有该文件,创建该文件,并将内容写入到文件中。
如果存在该文件,保留之前的内容,并将新内容追加写入到之前内容的末尾。
拓2:< 输入重定向
使用cat指令可以将文件中的内容打印到屏幕上,它的原理是打开文件后,依次读取文件内容,然后再打印。
如果我们使用 < 输入重定向可以简化这个步骤,用指针指向文件头,然后依次打印,从而省略了打开文件,读取内容的步骤。
拓3:输入重定向 < 和 输出重定向 > 混合使用
将原来要打印到屏幕的内容直接输入到文件中。
这样可以达到到文件备份 或 文件拷贝的效果。
顺序是先把文件内容读出到缓冲区中,再写入到文件中。
拓4:输出重定向要保证要输出的内容在缓冲区中
而 echo 在把键盘输入的内容打印到屏幕 或 cat读取文件内容 的过程中就实现了这一点,所以可以使用 输出重定。
eg. 无法把键盘输入的内容直接输出重定向,因为要实现输出重定向必须先将内容先保存到缓冲区中。
拓5:在Linux中一切皆文件
显示器,键盘,普通文件,在Linux下,这一切都是文件。
14.more命令
作用: 逐行查看文件。
当文件较大时,我们使用cat命令打印会直接跳到最后面,要看中间的内容要不断往上翻,非常麻烦。这时可以使用more指令,逐行查看文件。
eg. 创建一个有一万行的文本,并用cat打印,会直接跳到最后面。
count=0; while [ $count -le 10000 ]; do echo "hello world ${count}"; let count++; done > file.txt
使用more命令来查看文件,首先会打印一页内容,然后我们每按一次回车,会打印后续一行内容。按q退出查看。
more命令适合用来检查自己的代码或查看别人的代码。适合用来查看需要逐行阅读的长文本。
缺点是只能向下翻,不能来回翻。
15.less指令
作用:和more指令类似,但解决了more指令只能向下查看的缺陷。
操作:
按回车 或 下 ,向下看。
按上 ,向上看。
按q ,退出。
more 和 less 的主要作用就是帮助我们逐行查看长文本。
16. Ctrl + C
作用: 终止执行命令或终止异常命令。
在遇到无法终止的命令时,使用Ctrl + C来退出执行。
17. head 命令
作用: 读取文件前若干行。
eg. head -5 file.txt : 读取file.txt文件的前5行。(注意数字前有一个 - )
不带数字则默认输出前10行。
18. tail 命令
作用: 读取文件后若干行。
eg. tail -5 file.txt : 读取file.txt文件的最后5行。
不带数字则默认输出后10行。
拓1:取出文件的中间部分
现在我们学会了拿取一个文件的头和尾,那有没有办法直接取出文件的中间部分呢?如取出500 ~ 510行的内容。
法1:创建临时文件。
将前550行内容重定向写入一个临时文件中,再打印临时文件的后50行。
法2:使用管道 |
好处是不需要显示的开辟临时文件。
![]()
拓2:| (管道符)
| : 管道 ,当在两个命令之间设置管道时,管道符 | 左边命令的输出就变成了右边命令的输入。
原理:生成一个内存级的管道文件,将左边命令的输出存入管道文件,并使管道文件成了右边命令的输入。
19. date命令
作用:显示时间
格式化输出时间:
字母前有一个%,%Y前有一个+
拓1、date +%s : 获取时间戳
Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。时间戳是单调递增的,具有唯一性。
拓2、选项-d : 时间戳转化为时间
也可以格式化输出:
拓3、cal指令:查看本月日历
eg. cal 2023: 查看2023年的日历
eg.cal -3:显示上个月,本月,下个月的日历
20. find命令
作用:查找
find 路径1 -name 文件a : 以路径1为起点查找所有名字是a的文件。
eg. find ~ -name file.txt :以家目录为起点查找所有名字是file.txt的文件。
eg. 查找所有文本文件。
21.which
作用: 查找指令所在的路径。(指令相当于一个可执行的程序,被放在特定的路径)
拓:whereis : 查找指令所在的路径。
22.alias 命令
作用: 给命令起别名。
alias 别名='要起别名的命令'
注意,本次登录所起的别名,只在本次登录时有效。
我们下一次使用Xsell登录Linux时,上次起的别名无效了。
23.grep命令
作用: 按行在文件查找指定内容
grep '要查找的内容str' 文件a : 在文件a中查找有str内容的行
eg. grep '111' file.txt : 在文件file.txt中查找有111的行。
选项 -n : 打印出在原始文件中的行号
grep -n '111' file.txt : 在文件file.txt在查找有111的行,并打印在原始文本中的行号。(在grep后面加上选项 -n)
选项 -v : 将条件之外的内容打印出来
选项 -i :查找内容时忽略大小写
eg. 使用以上所学的命令将文件中倒数三个含有111的行,倒序放入文件cope.txt中:
24.xagrs 指令
作用: 将管道的输出结果,作为命令行参数,交给后面的程序。
25. bc命令
Linux下的计算器
26. uname命令
- uname : 查看系统。
- uname -a : 查看Linux的体系结构 和 内核版本。
体系结构:用的是什么硬件,芯片。
- uname -r : 仅查看内核版本。
「拓」查看当前系统版本:cat /etc/redhat-release
「面试题 」如何在Linux下查看Linux的体系结构,以及内核版本?
27. history命令
作用:查看历史输入的指令。
从用户创建初至今输入的所有指令。
三、几个重要的热键
1.tab : 命令补全和档案补齐
2.Ctrl + r : 搜索历史命令
进入后,输入要搜索代码的一些片段,会自动匹配出历史代码。
3.Ctril + d: 还可以快速退出
回退到上一个用户;退出云服务器的登录,退出Xsell。可以代替exit。
4.Ctrl + c : 终止执行命令或终止异常命令。
5.关机
云服务一般不关机,可以使用halt, shutdowm将云服务器关机。
使用reboot 进行重启。
四、shell(命令行解释器)
1.shell的概念 :命令行解释器
2.我们在Linux下直接使用各种指令是在直接使用操作系统吗,或我们在Windows下的各种操作是在直接使用操作系统吗?都不是。以上方式都不是直接使用操作系统。
3.那我们是如何访问操作系统的呢?图形化界面 和 指令操作 究竟是什么东西呢?
用户靠shell外壳程序访问操作系统, 图形化界面 和 指令操作 都是操作系统提供的外壳程序。
人和外壳程序沟通,外壳程序和操作系统沟通。
4.外壳程序的意义:
a.是用户和操作系统交互中间软件层。
b.可以在一定程度上起到保护操作系统的作用。
5.shell 就是这样一款外壳程序,他是命令行解释器,将用户的命令翻译给操作系统处理。同时将,操作系统的处理结果翻译给用户。
6.我们可以通过 echo $BASH 来查看当前操作系统使用的外壳程序。
eg.使用echo $BASH 查看 shell
shell 就是对所有外壳程序的统称,上图中的 bash 就是一种 shell 。
五、结语
1.我们不但要知道这些指令怎么用,更应该知道它们的应用场景,这样才是真正知道这些“工具”该怎么使用。
2.在Linux中一切皆文件。
3.如何看待Linux下的各种指令?其实这些指令本质上就是可执行程序。执行可执行程序的过程就是找到它,运行它。
4.在Linux或Windows下安装软件其实就是在把相关文件拷贝到磁盘中,再显示一个.exe文件。
本文介绍了Linux系统中创建文件和目录的基本命令,如ls,cd,touch,mkdir等,并详细讲解了这些命令的使用方法和选项。此外,还涉及了文件操作如rm,cp,mv,cat,more,less等,以及shell命令行解释器的概念和重要快捷键。文章强调理解命令的应用场景和Linux中一切皆文件的理念。






















































按y确定退出。













如果存在该文件,将之前的内容删除,并将新内容写入文件中。




































常见指令和快捷键&spm=1001.2101.3001.5002&articleId=129331151&d=1&t=3&u=9d15995708634c288981351edcb63673)
2352

被折叠的 条评论
为什么被折叠?



