一、ls命令 查看文件信息
二、cd命令 切换路径
三、clear 命令
四、pwd 命令
五、目录文件和普通文件的创建和删除命令
六、*模糊匹配
七、man 命令
八、cp 命令
九、mv命令
十、wc命令
十一、 查看文本文件内容命令
十二、gcc 的安装及命令
十三、gdb 调试及命令
十四、makefile 文件
十五、find 和 grep 命令
十六、关机和重启命令
十七、文件的解压缩
查看当前路径下的所有非隐藏文件
查看当前路径下的所有非隐藏文件的详细信息,如权限,创建日期,大小等
查看当前路径下的所有包括隐藏文件的文件
查看当前路径下的所有非隐藏文件的inode节点号
查看指定路径下所有非隐藏文件
对于路径分为相对路径和绝对路径
相对路径:由于是相对的,所以必须有一个基准作为参照物来说明,./ 基准所在的当前目录。如下图中的mybin/cc就是相对路径,其基准为 ./ 。
绝对路径:就是完全路径,对于Linux系统,所有路径的绝对路径都以根目录(/)为起点
切换到该路径下
对于cd命令,其后面可以是相对路径也可以是绝对路径
特殊的,对于ls -a展示的文件中有 . 和 .. ,也是两个路径,分别是当前路径和上层路径。以及,对于家目录可以使用 ~ 符号。/ home / dy 和 ~ 代表相同路径即家目录。
用于清屏,也可使用快捷键 ctrl+l
查看当前路径的绝对路径
mkdir 目录文件名 在当前路径下创建一个目录文件
可以批量创建,如:
mkdir dir1 dir2 dir3 ...
rmdir 目录文件名 删除当前路径下的该目录文件(目录文件为空才可以删除,非空则不能删除)
可以批量删除,如:
rmdir dir1 dir2 dir3 ...
touch 普通文件名 在当前路径下创建一个普通文件
可以批量创建,如:
touch a.c b.c c.c ...
rm 普通文件名 删除当前路径下的该普通文件
可以批量删除,如:
rm a.c b.c c.c ...
rm -r 文件名 强制删除文件(目录文件是否为空都可以删除)
rm -rf 文件名 不展示提示(警告)信息,强制删除文件(目录文件是否为空都可以删除)
rmdir rm touch rm -r rm -rf 都可以如上述操作
rm *.c -> 删除当前目录下的以.c结尾的所有普通文件
rm * -> 删除当前目录下的所有普通文件
rmdir dir* -> 删除当前目录下的以 dir 开头的所有目录文件
rmdir * -> 删除当前目录下的所有目录文件
rm -r *.c 或者 dir * -> 强制删除当前目录下的以 .c 结尾或者以 dir 开头的的所有文件
rm -r * -> 强制删除当前目录下的所有普通文件
查看帮助手册
man 数字 内容
数字对应的内容类型:
1 —> 命令
2 —>系统调用函数
3 —>库函数
使用上下键进行翻页,按q键退出
数字的作用是,有些函数和命令的名字相同,如chmod既是系统调用又是命令,所以数字就可以进行区分要查的是命令还是系统调用
用于拷贝普通文件
cp a.c b.c 将a.c文件中的内容拷贝到b.c文件中(a.c文件必须存在,b.c文件可以不存在,若不存在,则该命令会创建一个b.c普通文件,再进行拷贝)
用于拷贝目录文件
cp dir1 dir2 将dir1文件中的内容拷贝到dir2文件中(dir1文件必须存在,dir2文件可以不存在,若不存在,则该命令会创建一个dir2目录文件,再进行拷贝)
上述拷贝操作中可以在文件名前加上路径,两个文件可以是不同路径,当为不同路径时,文件的名字也可以相同。
mv 命令有两种作用:重命名 和 文件移动(剪切)
mv 文件名1 文件名2 文件名1和文件名2要在相同的路径下才会进行重命名,若在不同路径下,则会变成文件移动
mv 路径1+文件名 路径2 路径1和路径2不相同才能进行剪切,否则会变成重命名
用来统计文件内容的个数
数字的含义从左往右依次为 行数 单词个数 总共占字节数(包含 \n 字符)
适用于内容少的文件
cat 文件名
cat > 文件名
ctrl + d 退出编辑
cat >> 文件名
ctrl + d 退出编辑
cat 文件名1 文件名2 ... > 文件名a (将文件1,文件2,...中的内容合并到 文件a中)
适用于内容多的文件
向下翻页按键:
回车 :一行一行往下翻页
空格 :一屏幕一屏幕往下翻页
向上翻页按键
b :一屏幕一屏幕往上翻页
还有 s d f 会不同比例往下翻页
退出(当文件内容浏览完会自动退出)
q :退出浏览
进入模式
在浏览过程中按 v 可进入命令模式
在命令模式下按a i o s 可进入插入模式
在插入模式下按Esc 可进入命令模式
向下翻页按键:
方向下键 :一行一行往下翻页
PGDN :一屏幕一屏幕往下翻页
向上翻页按键
方向上键 :一行一行往上翻页
PGUP :一屏幕一屏幕往上翻页
退出
内容展示完后不会自己退出,会出现(END) 的字样。此时仍然可以往上翻页
想退出按 q 即可
默认显示内容的前十行
显示文件内容 前 n 行
默认显示内容后十行
显示文件内容 后 n 行
一般用于跟踪日志文件,实时编写展示
安装 gcc(用来编译C语言程序)编译器命令:sudo apt install gcc
安装 g++(用来编译C++程序)编译器命令:sudo apt install g++
a.c —(预编译)> a.i —(编译)> a.s —(汇编)> a.o —(链接)> a
预编译命令: gcc -E a.c -o a.i 在a.c所在目录下会生成a.i文件
编译命令: gcc -S a.i -o a.s 在a.i所在目录下会生成a.s文件
汇编命令: gcc -C a.s -o a.o 在a.s所在目录下会生成a.o文件(a.o文件为可执行文件)
链接命令: gcc a.o -o a 在a.o所在目录下会生成a文件
gcc -c a.c b.c .... 生成a.o b.o .... 文件
gcc -o a a.c b.c ... 在a.c所在目录下会生成a文件
a为可执行程序 a.c b.c ...为可执行程序生成依赖的文件
// gcc a.c 在a.c所在目录下会生成a.out文件
上述生成的 a 为可执行文件,可使用命令:路径 / a 执行可执行文件
若想要想系统命令一样,在执行时不加路径,则需要将该可执行文件移动到 /bin 路径下。
使用 gcc -o main main.c -g 指令 生成的main文件为debug调试版本
使用 gcc -o main main.c 指令 生成的main文件为release发行版本(gcc默认是生成发行版本)
sudo apt install gdb
1.gcc -o main main.c -g 切换到Debug版本
2.启用调试:gdb main(main 必须是Debug版本,否则无法调试)
3.当出现 (gdb) 提示符时就可以输入命令
4.下断点:b 行号 或者 break 行号
5.运行:r 或者 run
6.退出调试:quit 或者 q 回车
l 行号 查看当前行号前后总共10行的代码内容
不加行号时默认从第一行开始展示10行代码内容
b 行号 或者 break 行号 在当前行号下断点
b 函数名 给该函数的第一个有效行下断点
info b 或者 info break 查看断点信息
r 或者 run 运行代码(碰到断点或者scanf,fgets需要输入的函数会自己阻塞住)
当想要执行带参数的命令时,需要在r后面加上参数即可
n 或者 next 一条语句逻辑运行
c 或者 continue 从当前位置直接执行到下一个断点处
s 进入要被调用的函数中执行
finish 跳出函数
delete 断点号(及上图中的Num) 删除指定的断点
disable 断点号 将该断点号处断点设为无效
disable 将所有断点设为无效
enable 断点号 将该断点号处断点设为有效
enable 将所有断点设为有效
p a 打印变量a的值
p &a 打印变量a的地址
p a+b 打印变量(a+b)表达式的值
p arr(数组名) 打印数组arr所有元素的值
p *p 用指向数组的指针打印数组所有元素的值
display a或者&a或者a+b(表达式) 自动显示a的值或者a的地址或者a+b表达式的值
执行一步操作就显示一次 a的值或者a的地址或者a+b表达式的值
info display 显示 ' 自动显示 ' 信息 和 info b 相同
undiaplay 编号 删除指定的自动显示
编号为上述图片中 1: a=3 或者 1: y a中的 1
ptype a 显示变量a的类型
bt 显示函数调用栈
#include
#include
#include
int main()
{
pid_t pid=fork();
if(pid==0)
{
printf("child\n");//语句一
}
else
{
printf("father\n");
}
exit(0);
}
在使用gdb调试时,断点下到语句一处,运行后不会在语句一处阻塞,因为调试时默认是跟父进程代码调试。
改成跟子进程代码调试:set follow-fork-mode child
如果想从子进程改到父进程使用:set follow-fork-mode parent
用于实现自动化编译
编辑好main.c add.c mul.c等文件
vim makefile 之后编辑格式如下:
all:要生成的文件名字(如main)
可以空一行也可以不空
要生成的文件名(如main):要生成该文件的所需的源文件的 .o 文件
必须以按tab空行,四个空格无法编译 gcc -o main add.o max.o main.o
add.o : add.c
必须以按tab空行,四个空格无法编译 gcc -c add.c
max.o : max.c
必须以按tab空行,四个空格无法编译 gcc -c max.c
min.o : min.c
必须以按tab空行,四个空格无法编译 gcc -c min.c
clean:
必须以按tab空行,四个空格无法编译 rm -r *.o(使用指令make clean后会删除当前路径下的.o文件)
make之后,在当前路径下会出现main可执行文件。若make执行失败,则可能是代码语法问题,或者makefile文件格式错误
终端执行:make clean命令
调用makefile文件中的clean
若该文件名不存在,则不会显示。若文件名为命令,则也不会显示
查看 /bin 路径下所有的文件,过滤条件是命令名包含man内容
该命令会显示该路径下所有含有man的文件
从文件中查找信息:grep "hello" 文件名 会将该文件中含有hello的一行显示出来
tar cf其他参数 生成的文件名要以.tar结尾 需要打包的文件名...
会在当前路径下生成.tar文件
gzip 第一步打包好的文件名
会将第一步生成的.tar文件更改为.tar.gz文件
tar zcf其他参数 生成的压缩文件要以.tar.gz结尾 需要压缩的文件...
会直接生成.tar.gz文件
gzip -d 压缩好的.tar.gz文件
会生成.tar文件
tar xf其他参数 上一步解压好的文件
会生成源文件
tar zxf其他参数 压缩好的.tar.gz文件
会直接生成源文件