1.ls:列出目录中的内容(文件和子目录)
ls 文件路径 列出该路径的文件的目录内容
(1)-l列表形式显示所有内容

(2)-h人性化显示内容
(3)-R递归显示路径上的文件

(4)-d显示该目录自身信息而不是目录中的内容
2.pwd(Print Working Directory):显示当前工作目录
3.cd(Change Directory):切换工作目录
cd是“设定一个参考点”,从cd位置寻找某某文件
cd+ls相当于Windows系统打开文件夹
如何打开文件:
补充cat
(1)可执行文件:文件路径 直接向终端输入文件路径(ps:cat 可执行文件 会显示乱码 因为可执行文件是给cpu“看”的,是二进制机器码,而cat会尝试把文件中的原始二进制数据当作文本打印到你的终端上。)
(2)文本文件:cat 文件路径
(3)直接在终端显示内容:chco “字符串” 直接在屏幕上显示字符串信息
(4)相对路径与绝对路径
绝对路径:从根目录 / 开始,完整描述目标位置
相对路径:以当前目录为起点,使用 .(当前目录)、..(上级目录)或目录名描述路径。
~:特殊绝对路径:直接切换到当前用户的家目录(/home/用户名)

4.sudo(Super User DO):以超级用户(root)身份执行命令。
sudo 命令 会以授予用户以root用户身份执行操作
sudo su(switch user):用于切换用户身份,默认切换到 root 用户
5.mkdir(make directory): 创建新目录(文件夹)
(1)mkdir 目录名:创建单个目录 例如mkdir new_folder 在当前工作目录下创建一个名为 new_folder 的新目录。
(2)mkdir 目录名1,目录名2,目录名3:创建多个目录 例如mkdir dir1 dir2 dir3 在当前工作目录下同时创建 dir1, dir2, dir3 三个目录。
(3)mkdir -p 目录名1/目录名2/目录名3:一次性创建多级嵌套的目录,即使中间路径的目录还不存在,mkdir 也会自动创建它们。例如mkdir -p project/docs/images命令执行会发生下面事情:
创建 project/ 目录(如果它还不存在)
在 project/ 里面创建 docs/ 目录(如果它还不存在)。
在 project/docs/ 里面创建 images/ 目录。
6.touch:创建新文件
ps:注意:目录!=文件
Linux 不强制要求后缀,但推荐添加合理后缀
(1)touch 文件名:创建新文件 例如touch filename.txt如果filename.txt不存在,则创建它。
(2)touch 文件名1,文件名2,文件名3:创建多个文件 例如touch file1.txt file2.txt file3.jpg。
7.which:查看命令所在目录位置
which 命令 例如which ls
![]()
(bin中存放可执行文件)
8.rm(remove):删除目录或文件
(1)-r(递归嘛重复的感觉re所以是r(未考证的个人感觉)):递归删除。删除目录及其所有内容(子目录和文件)。删除目录时必须使用。
(2)-f(force):强制删除。不会提示。
9.cp(copy):复制命令
cp 源文件 to 目的目录(目的文件)
cp [选项] 源文件或目录 目标文件或目录 cp [选项] 源文件1 源文件2 ... 目标目录
(1)cp 源文件 目标文件:复制一份文件到当前目录并更名为目标文件名
(2)cp 源文件 目标目录:复制一份文件到目标目录里并保持原名
(3)cp 文件1 文件2 ... 目标目录:复制多份文件到目标目录
(4)cp -r 目录1 目录2:将目录1及其包含的所有子目录和文件递归复制到目录2下。注意目录1也会被复制同时保证目录2存在
(5)cp -r 目录1/* 目录2:使用通配符*。将目录1下的所有文件和子目录(但不包括目录1本身)复制到目录2下。
(6)对于(4)(5)常用-a选项,-a会将所有属性也复制过来,包括时间,权限等等。
10.cat:读取文件内容并将其输出到终端
(1)cat 文件路径:读取内容输出到终端上
(2)tac 文件路径:会倒着写(读日志的时候可以这个命令)
(3)cat 文件1 > 文件2:文件1 会覆盖文件2
(4)cat 文件1>>文件2:文件1 会续写在文件2后面
more:分页读文件
less:分页读文件,功能更强大更推荐
head -数字 -文件:指定查看前几行
11.ln(link) :创建连接
(1)软连接:ln -s 绝对路径 自己起的文件名:在当前目录创建名为自己起的文件名的符号链接,指向绝对路径。 ps:一定要写绝对路径,不然移动后无法正常打开。

(2)硬链接:ln 原文件名 硬链接自己起的文件名
原理:目录文件中存的是同一个inode


12.chmod(change mode):改变文件或目录的访问权限
chmod [ugoa][+-=][rwxX] 文件或目录名
chmod [ugoa][+-=][rwxX], [ugoa][+-=][rwxX], ... 文件或目录名


13.sudo adduser 新用户名:新建用户。sudo add group 新组名:新建组。sudo chown 用户名 文件路径 :修改文件所有人。sudo chgrp 组名 文件路径:修改文件所有组。sudo deluser 用户名:删除用户。sudo delgroup:删除用户组。
su(switch user):切换用户 ps:cd /home/zhangsan 只是在zhangyuzhou用户下切换到zhangsan文件夹而不是切换成了用户zhangsan。
14.sudo apt-get install 软件名 :安装软件 sudo apt-get remove 软件名:卸载软件
15.gcc命令使用
(1).gcc编译4步骤:预处理 -> 编译 -> 汇编 -> 链接。

| 文件类型 | 生成阶段 | 主要作用 | |
|---|---|---|---|
.c | C 源代码文件 | 初始输入 | 程序员编写的原始 C 语言源代码。 |
.i | 预处理后的源代码文件 | 预处理 | 经过宏展开、头文件包含、条件编译等处理后的“纯净”C 代码。 |
.s | 汇编语言文件 | 编译 | 编译器将预处理后的 C 代码翻译成的平台相关的汇编语言代码(人类可读的文本格式)。 |
.o | 目标文件 (Object File) | 汇编 | 汇编器将汇编代码 .s 翻译成的机器指令(二进制格式),包含代码、数据、符号表等。 |
.out | 可执行文件 | 链接 | 链接器将一个或多个 .o 目标文件及库文件合并、解析地址后生成的可直接运行的程序。 |
(简单了解下,重点还是怎么使用吧,等熟练应用后再了解这些底层的东西)
(2).gcc命令使用
基本命令格式:gcc [选项] <源文件名>
选项参数:
-o (output)指定输出文件名,注意只起到一个命名作用:例如 gcc -o hello hello_a.c hello_b.c 作用是将hello_a.c hello_b.c等等源文件编译汇编成可执行文件并重新命名为hello,这里之所以会编译汇编链接只是因为gcc默认行为是这么做的。
-I (大写i:include)指定头文件搜索路径:当使用头文件时,编译器会去找头文件。默认会去当前目录和系统标准路径中找,当我们使用自己的头文件时,需要-I选项告诉系统去哪个目录里找头文件。例如 gcc -I ./index hello.c -o hello 作用是告诉编译器去./index目录下寻找头文件(.h 文件)。
-L 和 -l(大写l和小写l:lib)-L 指定库函数的搜索路径:目前可以简单的将库函数理解为:库函数就是你自己编写的工具函数被放在几个.c文件里。而-L就是去指定路径搜索这些库函数。-l 后面跟指定的库函数名。 -L -l 配合使用就是去具体哪个文件目录下(用-L)搜索指定的库函数(用-l)。
-c 只汇编不链接形成二进制代码机器语言。
(3).makefile编写
先上图:

这是一个简单的makefile,首先这个文件的文件名一定叫Makefile或者makefile,进去编辑
简单来看就是把gcc命令中的文件换成变量,就像写程序时用变量就方便修改了
像变量一样:
对于这条编译指令:gcc -o kvstore kvstore.c kvstore_array.c epollentry.c -I ./
cc = gcc
app = kvstore
srcs = kvstore.c kvstore_array.c epollentry.c
flags = -I ./
可以把左边这些看作变量。
$()作用:就是make这个软件在遇到$()时会将里面的东西换成=右边的东西
kvstore作用:就是系统会找kvstore:这个标记,下一行一定要缩进,这个格式表示这句是编译指令。
特殊符号:
^就等于全体依赖文件,即kvstore:,冒号后面的所有文件
@专指目标文件,即kvstore:,冒号前面的目标文件名
所以编译指令还能写成下面这种格式
kvstore:kvstore.c kvstore_array.c epollentry.c
$(cc) -o $^$@$(flags)
Linux根目录中的几个文件夹存储的内容

Linux系统文件类型

14万+

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



