2.认识Linux文件系统及相关命令
前言
上节课到现在已经过了好久了,因为上个月才入职新单位,转了下技术栈,一直在学golang及k8s那些东西,所以就没有更新视频,所幸到现在基本已经能参与到项目团队的项目开发中了,就继续给大家录教程
我发现之前录的教程太乱了,第一课的安装倒无所谓,但第二节的命令讲的太乱了,我希望这个文档可以在大家学完之后查看什么资料直接翻文档就能很快的找到,所以第二节就录新录制下
文档位置
之前文档一直在我博客放着,本来我的博客只是写写文章,偶尔发一些技术帖,加上这些教程的文档后难免显的有些乱了,我专门用hexo搭建了一个静态站点用于放课件,大家如果感兴趣了也可以网上搜搜,比较简单,站点地址:study.kevinlu98.cn
Linux文件结构
在Linux中,文件系统是一棵树,/
为其根结点,形状大致如下:
常见的二级目录
- /bin:存放二进制可执行命令目录
- /home:用户主目录的基点目录,默认情况每个用户主目录都设在该目录下,如默认:用户user01的主目录是/home/user01,可用~/user01表示
- /lib:存放标准程序设计库目录,又叫动态链接共享库目录,目录中文件类似windows里的后缀名为dll的文件
- /etc:存放系统管理和配置文件目录
- /dev:存放设备特殊文件目录,如声卡文件,磁盘文件等
- /usr:最庞大的目录,存放应用程序和文件目录
- /proc:虚拟目录,是系统内存的映射,可直接访问这个目录来获取系统信息
- /root:系统管理员的主目录(特权阶级)
- /var:存放系统产生的经常变化文件的目录,例如打印机、邮件等假脱机目录、日志文件、格式化后的手册页以及一些应用程序的数据文件等
- /tmp:存放公用临时文件目录
- /sbin 系统管理命令,这里存放的是系统管理员使用的管理程序
- /mnt 系统提供这个目录是让用户临时挂载其他的文件系统
- /lost+found 这个目录平时是空的,用于存放系统非正常关机而留下未保存的文件
Linux文件路径(重要)
-
路径相关的概念:
-
.
:代表当前目录 -
..
:代表父级目录 -
/
:linux中文件分隔或根目录 -
~
:当前用户的家目录
-
-
绝对路径:从根(/)一直到目标文件的路径
-
相对路径:相对于当前文件的父目录的路径
大家可以做个类比,以我们现在生活中的地址为例
这个大家第一次听可能有些陌生,这点不用担心,根据我的教程来,大家会在使用Linux过程中不知不觉的把这个知识撑握
Linux行提示符
我们右键打开终端,可以看到如下的行提示符
[lengwen@localhost ~]$
名称 | 含义 |
---|---|
lengwen | 表示当前打开shell的用户 |
@ | 分隔符 |
localhost | 主机名 |
~ | 当前据目录(在Linux中~ 可以快捷的代替当前用户的家目录) |
$ | 身份提示符(# 表示超级用户;$ 表示普通用户) |
认识命令
命令的执行
- 命令必须在行提示符之后输入
- 命令格式:命令 参数名 参数值
- Ctrl + C:撤销命名的执行
- 命令参数
- -参数:单词缩写
- –参数:单词的全拼
命令的帮助
--help
通常情况下,我们在linux中可以使用命令名称 --help
来查看一个命令的帮助信息,当然也有些开发着没有为命令写对应的帮助信息,但我们用到的系统命令都是有很标准的命令,都是有帮助信息的
name --help
# 例
vim --help
帮助文档中的一些符号解释
符号 | 含义 |
---|---|
[ ] | 选择加入的内容,可加可不加 |
… | 加入的内容个数任意 |
man命令
linux下的man命令是一个帮助命令,掌握这个命令可以让我们更好的学习linux,通过man指令可以查看Linux中的指令帮助、配置文件帮助和编程帮助等信息。
man [name]
man vim
文件目录相关命令
这节课在给大家讲一些常用的命令,主要是让大家对linux命令有个大概的认识,我整理的这些命令的参数并不是所有的,只是些最常用的参数,但日常使用是绝对够了;大家也可以输出命令名 --help
或man 命令
可来查看其它参数,但这些大部分情况下都用不到
pwd命令
pwd命令:全称Print Working Directory,也就是打印目前所在目录,这里是以全绝对路径打印
pwd
cd命令
cd命令:全称是Change Directory,用于改变当前所在目录
cd [path]
ls命令
ls命令:全称list directory contents,显示文件的文件名与相关属性。(目前工作目录所含之文件及子目录)
ls [-options] [name...]
参数 | 含义 |
---|---|
-a | all, 显示所有文件及目录 (. 开头的隐藏文件也会列出) |
-A | 同-a ,但不列出 . (目前目录) 及 .. (父目录) |
-l | 以长格式显示目录下的内容列表,包括文件的权限、链接数、所有者名称和组所有者、文件大小、最后修改日期时间和文件/目录名称 |
-d | 仅列出目录本身,而不是列出目录内的文件数据 |
-R | 若目录下有文件,则以下之文件亦皆依序列出 |
有时候我们可以看到别人用ll命令,这个的输出等同于ls -l
touch命令
touch命令用于修改文件或者目录的时间属性,包括访问时间和修改时间,若文件不存在,系统会建立一个新的文件
touch [options] name...
参数 | 含义 |
---|---|
-a | 若文件存在时只修改访问时间为当前时间 |
-d | 使用指定字符串表示时间而非当前时间 |
-m | 若文件存在时只修改更新时间为当前时间 |
不过我们用这个命令基本都不会操作文件的这些时间,都是用它创建一个空文件
mkdir命令
mkdir:全称make directory,用于创建一个新的目录
mkdir [options] name...
参数 | 含义 |
---|---|
-p | 帮助你直接将所需要的目录(包含上一级目录)递归创建起来! |
cp命令
cp命令:全称copy,命令主要用于复制文件或目录。
# source 可以使用通配符*,如*.txt,aa*等
cp [options] source dest #source与dest要么都文件,要么都目录
cp [options] source... directory # source... 一个或多个文件
参数 | 含义 |
---|---|
-f | force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖; |
-i | 与 -f 选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答 y 时目标文件将被覆盖 |
-r | 若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。 |
rm命令
rm命令:全称remove,用于移除文件或目录
rm [options] name... #这里的name可以是文件,也可以是目录
参数 | 含义 |
---|---|
-f | 就是 force 的意思,也不会出现警告信息 |
-i | 互动模式,在删除前会询问使用者是否动作 |
-r | 递归删除,会删除目标目录及目录下的文件及子目录及子目录下的文件... |
mv命令
mv命令:全称move,主要用于移动文件与目录,或修改名称,对这里的移动解释一下,如果源文件(目录)与目标(目录)在同一块磁盘,则命令只是做了一个重命名的操作,反之则先复制再删除
mv [options] source dest #source与dest要么都文件,要么都目录
mv [options] source... directory # 将所有source移动到directory目录下
参数 | 含义 |
---|---|
-f | force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖; |
-i | 与 -f 选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答 y 时目标文件将被覆盖 |
cat命令
cat命令:由第一行开始显示文件内容
cat [options] name...
参数 | 含义 |
---|---|
-b | 列出行号,仅针对非空白行做行号显示,空白行不标行号 |
-E | 将结尾的断行字节 $ 显示出来 |
-n | 列印出行号,连同空白行也会有行号,与 -b 的选项不同 |
less命令
less命令:一页一页的查看文件
less name
less这里没有常用参数,但在less运行时有一些按键大家在知道
按键 | 作用 |
---|---|
空格 | 向下翻动一页 |
b | 向上翻动一页 |
pagedown | 向下翻动一页 |
pageup | 向上翻动一页 |
/字串 | 向下搜寻『字串』的功能 |
?字串 | 向上搜寻『字串』的功能 |
n | 重复前一个搜寻 |
N | 反向的重复前一个搜寻 |
q | 关闭 less |
head命令
head命令:取出文件前面几行
head [options] name...
参数 | 含义 |
---|---|
-n | 后面接数字,代表显示几行的意思 |
tail命令
tail命令:取出文件后面几行,该命令有一个重要的功能就是可以观察打到文件中的日志
tail [options] name...
参数 | 含义 |
---|---|
-n | 后面接数字,代表显示几行的意思 |
-f | 表示持续侦测后面所接的档名,要等到按下[ctrl]-c才会结束tail的侦测 |
shell中的一些快捷键
快捷键 | 作用 |
---|---|
Tab | 在系统中table键可以自动补齐存在的命令,文件名称和某些命令的参数 |
上下 | 历史的上一条命令,下一条命令 |
左右 | 一个字符一个字符移动 |
Ctrl + a | 光标移动到行首 |
Ctrl + e | 光标移动到行尾 |
Ctrl + u | 光标所在位置删除到行首 |
Ctrl + k | 光标所在位置删除到行尾 |
Ctrl + c | 撤销以输入的命令 |
Ctrl + d | 退出当前用户环境 |
Ctrl + L | 清空屏幕 |
Ctrl + Shift + c | 复制 |
Ctrl + Shift + v | 粘贴 |
Ctrl + shift + t | 在现有shell中重新打开一个table |
Ctrl + shift + n | 在shell中打 |
Ctrl + r + 关键字 | 调出最近一条含有关键字的命令 |
小结
这节我们学习了一些Linux上常用的文件目录操作的命令,最后又给大家说了些快捷键,这些都是很基础的东西,在后续教程中会频繁的使用,大家学完一定多多练习,自己动手多写几遍感受一下比看我教程好几遍更有用