Linux 环境的搭建方式
主要有三种
1. 直接安装在物理机上. 但是 Linux 桌面使用起来非常不友好。
2.使用虚拟机软件, 将 Linux 搭建在虚拟机上. 但是由于当前的虚拟机软件(如 VMWare 之类的)存在一些 bug , 会导致环境上出现各种莫名其妙的问题, 比较折腾.
3. 使用云服务器, 可以直接在 腾讯云, 阿里云或华为云等服务器厂商处直接购买一个云服务器. 使用云服务器搭建linux环境(简单推荐)。
购买了云服务器,有了服务器ip地址后,用xshell登录使用。
Xshell是一个强大的安全终端模拟软件,可以帮助用户通过互联网建立到远程主机的安全连接,从而进行远程操作和管理。适用于Linux或Unix服务器的远程管理。
登录指令
登录root账号成功
Linux下有两种用户:超级用户(root)、普通用户。
超级用户:可以再linux系统下做任何事情,不受限制。
普通用户:在linux下做有限的事情。
创建新用户
在root账号下 cd 进 /home 目录下就能看到创建的用户
超级用户的命令提示符是“#”
普通用户的命令提示符是“$”。
用户切换
命令:su [用户名]
功能:切换用户。
例如,要从root用户切换到普通用户user,则使用su user。要从普通用户user切换到root用户则使用su root(root可以省略),此时系统会提示输入root用户的口令。
常用基本指令
ls
语法: ls [选项][目录或文件]
功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。
常用选项:
-a 列出目录下的所有文件,包括以 . 开头的隐含文件。
-l 列出文件的详细信息。
pwd
语法:pwd
功能:显示用户当前所在的目录
cd
语法:cd 路径
功能:改变工作目录。将当前工作目录改变到指定的目录下。
cd .. : 返回上级目录
cd /home/litao/linux/ : 绝对路径
cd ../day02/ : 相对路径
touch
语法:touch [选项] 文件名
功能:touch命令参数新建一个不存在的文件。(或者可更改文档或目录的日期时间,包括存取时间和更改时间)
mkdir
语法:mkdir [选项] dirname.
功能:在当前目录下创建一个名为 “dirname”的目录
常用选项:
-p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录。
mkdir -p test/test1 :递归创建多个目录
rm
语法:rm [选项] [文件或目录名]
功能:删除文件或目录
常用选项:
-f 即使文件属性为只读(即写保护),亦直接删除
-i 删除前逐一询问确认
-r 删除目录及其下所有文件
man
语法: man [选项] 命令
Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问Linux手册页的命令是man
面手册分为8章
1 是普通的命令
2 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)
3 是库函数,如printf,fread4是特殊文件,也就是/dev下的各种设备文件
.......
mv
语法: mv [选项] 源文件或目录A 目标文件或目录B
功能: 把源文件或目录A移动到目标文件或目录B
常用选项:
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖
Vim 文本编辑器
Vim 是一款高度可配置的文本编辑器,用于有效地创建和修改任何类型的文本文件。
Vim的工作模式分为三种:正常模式、插入模式和末行模式。
在正常模式下,用户可以输入各种命令来操作文本,如移动光标、删除文本、复制粘贴等。当需要输入文本时,可以切换到插入模式,此时Vim就像是一个普通的文本编辑器一样。而末行模式则主要用于执行一些更高级的命令,如查找替换、保存文件等。
[正常模式]切换至[插入模式] 输入a或i 或o
[正常模式]切换至[末行模式] shift + :
ESC 从[插入模式] 、[末行模式] 退出到 [正常模式]
正常模式常用快捷键:
hjkl:左下上右 gg:定位代码的第一行 shift+g:定位代码的最后一行yy:复制当前行 p:粘贴内容到当前行之后 dd:剪切/删除
u :对刚刚的操作进行撤销 ctrl+r :如果对撤销后悔 x:向后删除一个字符
w:以单词为单位向后移动,支持跨行 b:以单词为单位向前移动,支持跨行
末行模式常用指令:
w 保存 q 退出 !强制
多行注释:ctrl+v进入视图模式 ---> j 多行选中 ----> shift + i ----> // -----> esc
gcc/g++ 编译器
gcc和g++都是编译器,其中gcc主要用于编译C语言代码,而g++则专门用于编译C++语言代码
格式:gcc [选项] 要编译的文件 [选项] [目标文件]
可执行程序要经过源文件和库文件链接形成
Makefile 自动化构建工具
Makefile 是一个用于自动化构建(包括编译和链接)程序的文本文件,它包含了构建过程中所需的各种指令和依赖关系。makefile有推理能力。
# 定义目标
hello: hello.c
gcc -o $@ $^ -std=c99
# 伪目标,用于清理
.PHONY: clean
clean:
rm -f hello
.PHONY 伪目标 总是被执行的 不会被任何情况拦截