目录
[Part1. Linux 文件系统基础逻辑](#Part1. Linux 文件系统基础逻辑)
[Part1.1. 文件结构规则](#Part1.1. 文件结构规则)
[Part1.2. 路径两大分类](#Part1.2. 路径两大分类)
[Part1.3. 家目录与波浪号 ~](#Part1.3. 家目录与波浪号 ~)
[Part2. 最常用基础目录操作命令](#Part2. 最常用基础目录操作命令)
[Part2.1. 基础查看类命令](#Part2.1. 基础查看类命令)
[Part2.2. 目录切换、创建命令](#Part2.2. 目录切换、创建命令)
[Part2.3. 文件创建、删除命令](#Part2.3. 文件创建、删除命令)
[Part3. 文件读写、查看与编辑命令](#Part3. 文件读写、查看与编辑命令)
[Part4. 拷贝、别名、编译相关命令](#Part4. 拷贝、别名、编译相关命令)
[Part4.1. 拷贝命令 cp](#Part4.1. 拷贝命令 cp)
[Part4.2. 命令别名 alias](#Part4.2. 命令别名 alias)
[Part4.3. C语言编译命令 gcc](#Part4.3. C语言编译命令 gcc)
[Part5. 手册查看、系统时间](#Part5. 手册查看、系统时间)
[Part5.1. man 手册](#Part5.1. man 手册)
[Part5.2. 文件时间 stat](#Part5.2. 文件时间 stat)
[Part6. 其他知识](#Part6. 其他知识)
[Part7. 结语](#Part7. 结语)
前言
Linux作为当代最重要的操作系统之一,了解他是必要的,所以接下来跟随小编的视角来看看吧。
let's go!!!!!!!!
Part1. Linux 文件系统基础逻辑
Part1.1. 文件结构规则
<1> Linux 一切皆文件:硬件、目录、普通文件、设备都被抽象为文件。
<2> 命名规则:文件名可以使用 x、y、数字等;. 开头的文件是隐藏文件。
<3> 文件两大组成:文件内容 + 文件属性,我们操作文件本质就是操作内容或者属性。
<4> 文件类型判断:ls -l 列出的第一字符标识类型
◦ -:普通文件(文本、可执行程序等)
◦ d:目录(文件夹)
Part1.2. 路径两大分类
<1> 绝对路径:从根目录 / 开始写完整路径,配置文件、脚本里优先使用,保证路径永远不会出错。
示例:/home/ubuntu/test.c<2> 相对路径:从当前所在目录开始书写,日常手动敲命令最常用。
◦ . 代表当前目录
◦ .. 代表上一级目录
◦ ../../ 可以跨多层目录向上跳转
P.S. Linux 路径分隔符是 /,Windows 是 \,不要混用。
Part1.3. 家目录与波浪号 ~
<1> ~ 是当前登录用户的家目录缩写,普通用户一般是 /home/用户名,root 用户家目录是 /root。
<2> 登录终端默认会处在自己的家目录下。
<3> cd -:可以在最近两个访问过的目录之间快速来回跳转。
Part2. 最常用基础目录操作命令
Part2.1. 基础查看类命令
<1> clear 清空终端屏幕 快捷键 Alt+Enter 可以切换全屏
<2> pwd 打印当前所在目录的绝对路径 看自己现在在哪
<3> whoami 查看当前登录的用户名 判断是普通用户还是root
<4> ls 列出当前目录下的文件名 默认只显示名称
<5> ls -l 列出文件+完整属性(权限、大小、时间、所有者) 最常用参数
<6> ls -a 显示所有文件,包含隐藏文件(.开头) 可以组合:ls -al / ls -la
<7> ls -d 只查看目录本身属性,不打开目录看内部文件 ls -ld /etc 查看目录属性
Part2.2. 目录切换、创建命令
<1> cd 目录名:切换进入指定目录
<2> cd .. 回到上级目录
<3> cd / 直接进入 Linux 根目录
<4> cd ~ 回到自己的家目录
<5> mkdir 目录名:创建单层目录
<6> mkdir -p a/b/c/d:递归创建多级嵌套目录,不用逐层手动创建
Part2.3. 文件创建、删除命令
<1> touch 文件名:创建一个空普通文件(哪怕是空文件也会拥有属性)
<2> rm 文件名:删除普通文件(会有确认提示)
<3> rm -f 文件名:强制删除文件,不弹出确认询问
<4> rm -r 目录名:删除目录(目录是树形结构,必须加-r递归删除)
!!!高危警告:rm -rf * 会清空当前目录所有内容,不要在根目录随便执行!
Part3. 文件读写、查看与编辑命令
<1> cat 文件名:查看文件内部文本内容(不能用来打开目录)
<2> vim 文件名:调用 Vim 编辑器编写/修改代码文本(C语言写代码必备)
<3> ./可执行文件名:运行当前目录下的编译好的程序(C/C++编译后的程序用这个运行)
->前提:文件拥有可执行权限,并且系统能检索到这个文件
Part4. 拷贝、别名、编译相关命令
Part4.1. 拷贝命令 cp
<1> cp 源文件 目标位置:拷贝文件,目标不存在则自动创建,支持绝对/相对路径
<2> cp -r 源目录 目标位置:拷贝文件夹,目录是递归结构,必须加 -r 参数递归拷贝
<3> cp -f:强制覆盖已有文件,不询问
Part4.2. 命令别名 alias
<1> 作用:给长命令起一个简短别名,简化输入
<2> 示例:alias ll='ls -l --color=auto',之后输入 ll 就等价于 ls -l
<3> 缺点:临时生效,系统重启/重新登录后别名会消失,想要永久生效需要写入配置文件
Part4.3. C语言编译命令 gcc
gcc code.c -o mycmd
<1> 作用:把 .c 源代码编译成 Linux 可执行程序 mycmd(类似Windows的exe)<2> 编译完成后可以用 ./mycmd 运行程序
<3> 进阶用法:cp mycmd /usr/bin/,把自制程序放到系统命令目录,全局任意目录都能直接输入名字运行(相当于自制系统命令)
Part5. 手册查看、系统时间
Part5.1. man 手册
<1> man 命令名:查看该命令的官方完整文档、参数、用法(按 q 退出手册页面)
<2> man x y:可以在手册页里交叉查阅其他命令,相当于C语言的函数调用查阅
<3> 区分两个容易混淆的 printf:
◦ C语言代码里的 printf:标准库函数(man 3 printf)
◦ shell 终端命令里的 printf:系统shell命令(man 1 printf)
Part5.2. 文件时间 stat
stat 文件名:查看文件三个核心时间戳
<1> Access(atime):文件最后一次被读取访问的时间
<2> Modify(mtime):文件内容最后一次被修改的时间
<3> Change(ctime):文件属性最后一次被修改的时间(权限、所有者、链接数改变都会更新ctime,改内容也会顺带改ctime)
Part6. 其他知识
<1> 通配符 *:模糊匹配,test* 匹配所有以 test 开头的文件
<2> Ctrl + c:终止当前卡住、死循环、异常运行的命令/程序
<3> 目录不能直接 rm 删除,必须加 -r;强制删除加 -f
Part7. 结语
这篇文章我们认识到了Linux命令相关知识,接下来,小编还会带来更多有关的知识,敬请期待~
最后,祝大家可以:春风得意马蹄疾,一日看尽长安花!最后的最后,要是觉得本文还可以的话,可以点点赞,关注小编一波,谢谢大家!~
