Linux学习1

//linux体系

//分为 内存空间 用户空间

//对整体进行层次划分 4层

// 硬件层 内核层 系统调用层 用户空间层

//内核层 (类比前台) 进程管理 内存管理 设备驱动等(传输命令)

//Linux 目录结构

//只有一个根目录的倒状树结构

// linux 是文件系统的操作系统 所有的内容均以文件的形式出现,所以目录是目录文件

// 指令:

// 输入形式 指令 选项 参数

// cd .. 指令加参数 ..(表示上级文件)

// ls+ -a 可以显示当前目录下的所有的目录和文件包括隐藏文件 (-a是选项)

//目录说明

// /bin 存放常用命令(即二进制可执行程序)

// /etc 存放系统配置文件

// /home 所有普通用户的家目录

// /root 管理员用户的家目录 / 1oot

// /usr 存放系统应用程序及文档 / usr

// /proc 虚拟文件系统目录,以进程为单位存储内存的映射

// /dev 存放设备文件

// /mnt 临时挂载点

// /lib存放库文件 / lib

// /boot 系统内核及启动有关的文件

// /tmp 存放各种临时文件,是所有用户均可访问的地点

// /var 存放系统运行中常改变的文件,如系统日志

//绝对路径 cd /home/bai/2414

//相对路径 cd home cd bai cd 2414

//文件类型

//普通文件 '-'

//目录文件 'd'

//管道文件 'p'

//链接文件 'l'

//设备文件 (块文件'b' 字符文件 '')

//套接字文件 's'

//输入ls -l时会出现多行类似情况

//-rwxrwxr-x 1 zyg zyg 16968 11月 5 02:26 1(命令行)

//第一个字符表示该文件的类型 上述命令行的文件类型为普通文件

//从第二个字符开始表示该文件的权限信息 rwx rwx rwx(满权限)

//分为三组 创建者权限 组员权限 其他人权限 r 可读 w 可写 x 可执行 -表示该位置无权限

//rwx 111 111 111 101 775 满权限 777

//1 如果是文件 该数字表示包含几个链接文件 如果是目录 表示有几个子目录

//zyg zyg 分别表示创建者名称和当前文件在哪个组中

//16968 当前文件的大小

//11月 5 02:26 创建文件的时间

//1 文件名称

//命令

//cd 跳转 cd+.. 表示返回上一层目录(可以返回到根目录)

//cd 返回当前的用户目录

//ls 显示当前目录下的文件和目录

//~可以代指当前的用户目录 表示当前处于用户目录下

// 输入cd可以直接跳到用户目录下

//sudo su 该命令为临时进入管理员权限

// //home==/home;

//ls -l 可以显示当前文件目录下的详细信息

//当光标没有挑到正常输入区 可以输入ctrl+c强制提出

// ctrl+shift+c 复制 shift + v 黏贴

//mkdir+目录名 可以创建目录名

//mkdir -p 该选项可以连续的在目录中创建目录 必须加参数 such 4/5/6/7

//方向键可以改变你光标的位置 (翻找历史指令)

//mkdir -m+权限(8进制)目录名

//rmdir 删除空目录

//rm -r/-f 文件名 删除有内容的目录 (可以写成rm -rf:强制删除文件且不询问)

//rm -rf * (删库跑路文件)

//pwd 显示当前以绝对路径的方式显示当前路径

//man +指令 可以打开系统自带的指令帮助手册来查看指令的用法

//ls -r 按照文件名称逆序排列显示

// -R 递归的方式,将子目录中的所有文件显示

//clear 清屏

//touch 文件名(可以多个) 创建普通文件 若文件已经存在 则无法创建(创建的文件权限默认664)

//vi 文件名 创建并进入文件 若文件已经存在 则直接进去;

//使用vi编辑器的方式

//实现使用指令vi+文件名的方式进入 然后处于第一个模式 命令模式 该模式无法输入文本

// 按下a,i,o,A,I,O可以进入插入模式

// a,在光标之后插入内容 i,在光标之前插入内容 o,在当前行的下一行插入内容

// A在当前行的行尾插入内容 I ,在当前行的行首插入内容 O,在当前行的上一行插入内容

// 进入了编辑模式后 想回命令模式 按下ESC即可,如果想保存内容并提出文件,则按下shift+: 进入低行命令模式

// 在低行命令模式下 输入wq即可保存并提出 w-保存 q-提出 q!-强制提出

// 在命令模式下 快说指令 yy 复制光标所在行 p-黏贴 nyy(表示数字) 表示复制n行

// np 表示粘贴n次 dd 删除光标所在行 ndd 删除n行 u 撤回 ctrl+r 恢复撤回操作

// 低行命令模式 set number 设置行号 set nonumber 取消行号

// 当编辑文本时 没有正确的保存并退出 会产生交换文件(后缀是.swp) 直接在编译器中删掉即可 eg, rm -rf .test.swp

// cp 拷贝文件 cp 原文件 拷贝文件 将原文件的内存拷贝到拷贝文件中 若拷贝文件没有就创建一个

// cp -r 目录名1 目录名2 将目录名1中的内容拷贝到目录2中 目录2不存在则创建 如果存在 将目录1的内容拷贝到目录2中

//mv +文件名 +目录名 将文件移动到对应的目录中

// mv +文件1+文件2 若文件1存在 将文件1中的内容放在文件2中 并且文件1删除 若文件2不存在 则创建一个并且将文件1中的内容复制进去,并·删除文件1 (也叫文件重命名)

// mv +目录1 +目录2 若目录2中有内容,则移动失败,如果目录2中没内容 则把目录1放到目录2中

// find + 路径 + -name + 文件名/目录名 查找逻辑下的名称为文件名/目录名的文件或目录

// grep +"字符串"+文件名 可以筛选出文件中对应的字符串的那一行

//grep + 字符+ 关键字 可以筛选出含有字符的名字带有关键字的文件或目录

//|:管道 可以将俩个指令进行链接,将前一个指令的输出结果给到后一个指令的输出前提

// cat +文件名 可以将文件的内容打印出来

// cat +文件名+文件名2 按文件名出现的先后顺序 输出文件的内容

// cat +文件名1>文件名2 将文件1的内容覆盖到文件2中(等价于cp)

//cat+文件1>>文件2 将文件1的内容追加到文件2中

//cat > 文件名 将屏幕上输入的内容覆盖到文件中,以crtl C结束

//cat >> 文件名 将屏幕上输入的内容追加到文件中,以crtl C结束

//wc 统计 单词个数(+ -w)字符个数(+ -c) 行数(+ -l)

//sudo su 暂时将权限切换成管理员权限

//通配符 ?:代表任意字符但仅仅只有一位

//* 代表任意字符但代表多位

//[abc] 表示从字符abc任取一个只代表一位

//[a-c] 表示从字符a到c任取一个

//[^abc] 表示除了abc外任取一个

//删除以a开头 第二个字符不为bcd的指令

//rm [a][^bcd]*

//shutdown -h now 立刻关机 halt 关机 init 0 关机

//shutdown -r now 立刻重启 reboot 重启 init 6 重启

//runlevel 查看系统运行级别 可以用int动态切换0^6共7个级别

//0 关机 1 单用户模式 2多用户无网络服务 3完全的多用户 文本结界

//tail + -n 文件名 表示查看该文件后N行的内容

//tar -cvf +包名.tar+打包的文件名 将文件打包到包中 文件不压缩

//tar -tvf +包名.tar 查看打包内容

//tar -xvf +包名.tar-C +目标地址 将包中内容解包到目标地址

//tar -rvf +包名.tar+文件名 可以将文件追加到包中

//tar -zcvf+包名.tar+打包的文件名 将文件打包到包中 压缩

//tar -zxvf +包名.tar-C +目标地址 将包中内容解包到目标地址

// ps 打印当前终端中的进程信息

// PID 表示进程号 TTY 表示终端号 CMD表示进程名称

// bash 命令行解释器

//ps -e 默认显示与当前系统有关的进程信息

//ps -f (UID用户ID) 打印当前终端中进程的详细信息

//ps -ef 打印当前系统中进程的详细信息

//执行文件的代码 gcc 文件名+.c -o 文件名2

// ./文件名2

//操作系统 uabntu 来管理进程

//生成进程 给进程分配pid号 int 0~上限

//进程控制块 struct mask_struct;

// {

// name="ps""bash"

// pid=341

// ppid

// }

//进程号一定连续 如果俩个进程号不连续 那么之间差的进程号被释放了

//父进程和子进程是相对的关系,并不是绝对的

//sleep + 数子 表示休眠多少秒

//kill+进程号 杀死进程(无论前台还是后台) 但是ctrl+z之后 进程处于暂停状态 无法杀死 必须加上-9(强制杀死);

//ps -ef | grep sleep 查看sleep进程的信息

//ctrl+C 结束在终端中在前台运行的进程

//前台和后台

//sleep 300 运行在前台

//sleeo 300& 运行在后台

//jobs 查看后台的任务

//ctrl+z 可以暂停进程的运行

//bg fg 可以切换前后台

//bg %暂停进程时的序号(任务号) 切换后台

//fg %暂停进程时的序号(任务号)切换前台

//放置一个长时间运行的指令,查看他的状态并将其切换到前台运行

//拓展 while true;do date;sleep 2; done & shell命令(之中没有{},用do(开头) done(结束))

//运行在后台的进程在命令行输入指令时 无论后台的任务显示如何 只有命令行未提交,都可以算作正在输入指令

//总线分为 地址总线 数据总线 控制总线

//内存和硬盘的关联(考点)

//写一个main.c文件保存在硬盘中 运行可执行文件时,是装载并运行在内存上

//只有运行某个程序的时候,对应的执行程序才会被装载内存上

//汇编语言 低级编程语言(直接对应机器语言(二进制指令)),但是使用了一些助记符来帮助人类记忆(考点)

//特点

//1 与硬件强关联 不同CPU架构下(X86,ARM),汇编指令集差异大

//2 可以直接操作硬件,直接访问寄存器,内存地址,cpu标志位

//机器指令 汇编助记符 高级语言

//0101 add a+b;

//gcc编译器

//Linux系统上可执行程序的格式为ELF

//Windows系统上可执行程序的格式为PE

//分布编译程序(重点)

//1 预编译阶段

// gcc -E main.c -o main.i .i 预处理文件

//2 编译阶段

//gcc -S main.i -o main.s .s 汇编文件

//3 汇编阶段

//gcc -c mian.s -o main.o .o 二进制文件

//4 链接阶段

//gcc main.o -o main .exe 可执行文件(windows下) 无固定后缀 (Linux下)

//多文件的编译过程(练习)

//add.h

//add.c

//max.h

//max.c

//多文件编译核心,将对应文件的.o文件集中编译即可生成可执行文件

//makefile 用于自动化构建过程的配置文件 用于定义如何编译代码,连接程序,清理中间文件的操作

//用于多文件,大模块的大型项目编译

//all : 生成文件名

//

//main : add.o max.o main.o

// gcc -o main add.o max.o main.o

//

//add.o : add.c

// gcc -c add.c

//

//max.o : max.c

// gcc -c max.c

//

//main.o : main.c

// gcc -c main.c

//

//clean(没有限制,写啥都行):

// rm -rf * .o

//用make可以运行makefile文件 生成一个最终的使用文件

//如何想要删除多余文件 输入 make clean即可

相关推荐
阿梦Anmory1 小时前
保姆级教程:Flask应用实现后台常驻运行(Linux服务器)
linux·服务器·flask
小生不才yz1 小时前
【Makefile 专家之路 | 函数篇】10. 逻辑增强:逻辑函数(if/and/or)与环境断言(info/error)
linux
朗迹 - 张伟2 小时前
UE5 C++学习笔记
c++·学习·ue5
今天减肥吗2 小时前
前端面试学习流程
学习
123过去2 小时前
sslyze使用教程
linux·网络·安全
arvin_xiaoting2 小时前
OpenClaw学习总结_I_核心架构系列_AgentLoop详解
java·学习·架构·llm·ai-agent·飞书机器人·openclaw
闫记康2 小时前
Linux ip基础
linux·网络·tcp/ip
2501_918126912 小时前
学习所有用c语言定义stm32的语句
c语言·stm32·嵌入式硬件·学习·个人开发
思麟呀2 小时前
应用层自定义协议与序列化
linux·运维·服务器·网络·c++