
//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 可以显示当前文件目录下的详细信息//当光标没有挑到正常输入区 可以输入ctrlc强制提出// ctrlshiftc 复制 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,IO可以进入插入模式// a,在光标之后插入内容 i,在光标之前插入内容 o,在当前行的下一行插入内容// A在当前行的行尾插入内容 I ,在当前行的行首插入内容 O,在当前行的上一行插入内容// 进入了编辑模式后 想回命令模式 按下ESC即可,如果想保存内容并提出文件则按下shift: 进入低行命令模式// 在低行命令模式下 输入wq即可保存并提出 w-保存 q-提出 q!-强制提出// 在命令模式下 快说指令 yy 复制光标所在行 p-黏贴 nyy(表示数字) 表示复制n行// np 表示粘贴n次 dd 删除光标所在行 ndd 删除n行 u 撤回 ctrlr 恢复撤回操作// 低行命令模式 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;// {// namepsbash// pid341// ppid// }//进程号一定连续 如果俩个进程号不连续 那么之间差的进程号被释放了//父进程和子进程是相对的关系并不是绝对的//sleep 数子 表示休眠多少秒//kill进程号 杀死进程无论前台还是后台 但是ctrlz之后 进程处于暂停状态 无法杀死 必须加上-9强制杀死//ps -ef | grep sleep 查看sleep进程的信息//ctrlC 结束在终端中在前台运行的进程//前台和后台//sleep 300 运行在前台//sleeo 300 运行在后台//jobs 查看后台的任务//ctrlz 可以暂停进程的运行//bg fg 可以切换前后台//bg %暂停进程时的序号任务号 切换后台//fg %暂停进程时的序号任务号切换前台//放置一个长时间运行的指令查看他的状态并将其切换到前台运行//拓展 while true;do date;sleep 2; done shell命令之中没有{}用do(开头) done结束//运行在后台的进程在命令行输入指令时 无论后台的任务显示如何 只有命令行未提交都可以算作正在输入指令//总线分为 地址总线 数据总线 控制总线//内存和硬盘的关联考点//写一个main.c文件保存在硬盘中 运行可执行文件时是装载并运行在内存上//只有运行某个程序的时候对应的执行程序才会被装载内存上//汇编语言 低级编程语言直接对应机器语言二进制指令但是使用了一些助记符来帮助人类记忆考点//特点//1 与硬件强关联 不同CPU架构下(X86,ARM)汇编指令集差异大//2 可以直接操作硬件直接访问寄存器内存地址cpu标志位//机器指令 汇编助记符 高级语言//0101 add ab;//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即可