1.linux发展历史
unix之父 肯 汤姆森 1973年
GNU计划 斯托曼 1984年
linux之父 莱纳斯 1991年
GNU=GNU Is Not Unix 是一个开源组织
GPL=General Public License 是一个开源产品协议 在我开源产品的基础上进行二次开发必须公开源代码
2.如何打开一个终端:
打开一个新终端:ctrl+alt+t
左右分屏打开同路径终端:ctrl+shift+t
打开一个同路径的新终端:ctrl+shift+n
放大字体:ctrl+shift+"+"('='这个键上边的'+'键)
缩小字体:ctrl+"-"(0这个键后边的那个键)
3.linux命令
3.1.whoami命令
whoami ----> 查看当前用户
3.2.pwd命令
pwd ----> 查看当前用户所在的绝对路径
3.3.ls命令
ls 路径名 ----> 列出指定路径下的所有文件
ls -l(小写的L) 路径名 ----> 列出指定路径下的所有文件,包含详细信息
ls -a 路径名 ----> 列出指定路径下的所有文件,包含隐藏文件
ls -lh(小写的L) 路径名 ----> 列出指定路径下的所有文件,包含详细信息并且文件大小以KB、MB、GB、TB显示
3.4.cd命令
cd 路径名 ----> 进入指定路径
cd / ----> 进入根目录
cd ~ ----> 进入用户的家目录(或者cd直接回车)
cd - ----> 进入上一次所在的路径
cd ./ ----> 进入当前所在的路径
cd ../ ----> 进入上一级所在的路径
3.5.mkdir命令
mkdir dir1 ----> 在当前路径下创建一个目录名为dir1的目录文件
mkdir dir1 dir2 dir3 ----> 在当前路径下同级创建三个目录名分别为dir1、dir2、dir3的目录文件
mkdir -p dir1/dir2/dir3 ----> 在当前路径下嵌套创建三个目录名分别为dir1/dir2/dir3的目录文件
3.6.rmdir命令
rmdir dir ----> 只能删除空目录(缺点)
3.7.touch命令
touch file1 ----> 如果file1不存在,则在当前路径下创建一个文件名为file1的普通文件
如果file1存在,则会更新file1文件的时间戳
3.8.rm命令
rm file1 ----> 删除名为file1的普通文件
rm -r dir1 ----> 删除名为dir1的目录文件
rm -rf dir1 ----> 忽略提示信息,强制删除名为dir1的目录文件
3.9.cp命令
cp file1 file2 ----> 如果file2不存在,则将file1复制一份并重命名为file2的普通文件
如果file2存在,则将file1复制一份命名file2为覆盖原来的file2文件
cp file1 dir1 ----> 表示将文件file1复制一份放到dir1目录里边
cp -r dir1 dir2 ----> 如果dir2不存在,则将dir1复制一份并重命名为dir2的目录文件
如果dir2存在,则将dir1复制一份放到dir2目录
3.10.mv命令
mv file1 file2 ----> 如果file2不存在,则将file1重命名为file2的普通文件
如果file2存在,则将file1重命名为file2并且覆盖原来的file2文件
mv file1 dir1 ----> 表示将文件file1移动到dir1目录里边
mv dir1 dir2 ----> 如果dir2不存在,则将目录文件dir1重命名目录文件dir2
如果dir2存在,则将目录文件dir1放到dir2目录文件里边
3.11.cat命令
cat 文件名 ----> 查看文件内容
cat -n 文件名 ----> 带行号查看文件内容
3.12.su命令
su 用户名 ----> 切换用户
3.13.exit命令 eg:最开始用户为linux 执行su root ---> 此时用户为root
exit ----> 退出root当前用户,到达最初用户linux时,再按一次就退出终端
exit ----> 退出终端
3.14.clear命令
等价于 ctrl+l(小写的L) ----> 清屏命令
3.15.tab键补齐
tab键补齐规则是直到补到唯一的一个字符开始在按一下就补全了
4.Vi编辑器的三种模式 vi 文件名 进来就是命令行模式(文件名必须是.c结尾,因为gcc编译器只能识别.c文件)
命令行模式: 用来复制粘贴的
yy 复制一行
nyy 复制n行
dd 剪切一行
ndd 剪切n行
p 粘贴到光标所在行的下一行
P 粘贴到光标所在行的上一行
gg 跳到首行
G 跳到尾行
shift+zz 保存并退出
u 撤销
ctrl+r 反撤销
插入模式:
六种进入插入模式的方法:
a: 在光标所在行的右侧插入
i: 在光标所在行的左侧插入
o: 在光标所在行的下一行插入
A: 在光标所在行的行尾插入
I: 在光标所在行的行首插入
O: 在光标所在行的上一行插入
底行模式:(命令行模式下按':'进入到底行模式)
:wq <---->:x 保存并退出
:w 保存
:q 退出
:q! 强制退出
:%s/aaa/hqyj/g 全文将aaa替换为hqyj
:%s/aaa/hqyj/gc 全文将aaa替换为hqyj,每替换一处都会询问一次是否替换
:m,ns/aaa/hqyj/g m,n行的aaa替换为hqyj
:m,ns/aaa/hqyj/gc m,n行的aaa替换为hqyj,每替换一处都会询问一次是否替换
:set noh 不显示高量
:set nu 显示行号
:set nonumber 不显示行号
:vsp 文件名.c 同时打开多个编辑文件
:wqa 全部保存并退出
注意:不能直接从插入模式进入到底行模式,需要先返回到命令行模式
5.gcc编译器
将一种语言(高级语言)编译成另一种语言(低级语言)的过程。
5.1编程语言包括编译型语言和解释型语言。
编译型语言:程序执行前都会有一个专门的编译过程,将我们人类能识别的编程语言编译成机器能识别的二进制语言
优点:执行前已经编译成功,无需重复编译,执行效率相对较高
缺点:因为编译器可能有所差异,比较依赖编译器,跨平台性较差
解释型语言:在程序执行之前没有一个专门的编译过程,而是在程序执行的过程中,由解释器来逐条的进行翻译
优点:因为是逐行执行和编译的,不依赖编译器,跨平台性较好
缺点:逐行进行编译,每次执行都需要重新编译,执行效率相对较差
5.2编译方法:
1.简化方式 (生成一个可执行文件a.out)
gcc xxx.c
2.自定义方式 (生成一个可执行文件hqyj)
gcc xxx.c -o hqyj
3.根据编译步骤,分步编译
1.预处理 (执行头文件的展开、宏定义的替换、注释的删除)
gcc -E xxx.c -o xxx.i
2.编译 (用来查错误的,词法分析、语法分析,生成一个汇编文件)
gcc -S xxx.i -o xxx.s
3.汇编 (将汇编文件编译成机器能识别的二进制文件)
gcc -c xxx.i -o xxx.o
4.链接 (链接所需的库函数,生成一个可执行文件)
gcc xxx.o -o a.out
Linux基础知识
最新推荐文章于 2025-05-14 23:36:13 发布