当前位置: 首页 > news >正文

中山网站设计公司移动网站怎么登录

中山网站设计公司,移动网站怎么登录,施工企业在编制施工组织设计时,找人做网站需要花多少钱1. yum ——软件包管理器 yum 是我们 Linux 预装的一个指令#xff0c;搜索、下载、、安装对应的软件 yum 相当于 Linux 的应用商店#xff01; 安装与卸载 yum list | grep command 通过 yum list 命令可以罗列出当前一共有哪些软件包. 由于包的数目可能非常之多, 这里我…1. yum ——软件包管理器 yum 是我们 Linux 预装的一个指令搜索、下载、、安装对应的软件 yum 相当于 Linux 的应用商店 安装与卸载 yum list | grep command 通过 yum list 命令可以罗列出当前一共有哪些软件包. 由于包的数目可能非常之多, 这里我们需要使用 grep 命令只 筛选出我们关注的包.yum install [-y] command // sudo or root 安装直至出现 completeyum remove command // sudo or root 卸载 2. vim——Linux 编辑器 vim 是一款多模式的编辑器vim 里面有很多子命令来进行代码的编写操作。 2.1 三种模式 普通模式/命令模式Normal mode用 vim 命令打开文件就是默认为命令模式。控制屏幕光标移动字符或行的删除移动复制某区段及进入插入模式或末行模式下插入/输入模式Insert mode在命令模式下按 i进入命令模式。只有在此模式下才能进行文字编写。按下 esc 键回到命令行模式末行模式Last line mode文件保存或退出也可以进行文件替换查找字符串显示行号等操作。 基本操作 命令模式-插入模式键入a、i、o;插入模式-命令模式按下esc命令模式-末行模式键入 一开始用 vim 就是命令模式无论处于哪种模式你都可以按 Esc 就进入命令模式 2.2 命令模式指令集 以下的 n 代表数字 num 移动光标 shift$光标定位在当前行的最右侧结尾处锚点 shift^光标定位在当前行的最左侧开头处锚点 shiftg光标定位到文本的最结尾的开头 nshiftg光标定位到第 n 行 gg光标定位到文本的最开始 h左最左侧左 j下 k上 king l右最右侧右 w按照”单词”在行内进行移动后 b按照”单词“在行内进行移动前 修改操作 n yy复制当前行/多行复制从光标起n 行 np在下一行进行粘贴/可以多次粘贴 粘贴 n 次 u撤销编辑操作undo ctrlr对撤销进行撤销 n dd删除/剪切当前行 shift~大小写快速切换 替换模式 nr替换当前光标所在字符 替换 n 个 shiftrR替换模式 nx删除光标所在字符 往后删 n 个 nshirtxX向左侧进行局部删除 往前删 n 个 小写 x 是光标往后包括自身。 大写 X 是光标往前 shift3#高亮要查找的函数名 n下一个查找到的函数/字符串名 2.3 末行模式指令集 列出行号 :set nu 保存与退出 :w/q/wq/!/q!/wq! w 是保存文件q 是退出wq 是保存并退出! 是强制执行 多窗口模式 vs filename 光标在哪一个界面我们就正在编辑哪一个界面底行也是一样 光标多终端切换 ctrlww 可以切换文件,进行不同的操作 可以在 A 文件复制内容并且拷贝到 B 文件 跳到文件中的某一行 :n再按回车就跳到该行 检索字符 「/关键字」先按「/」键再输入您想寻找的字符如果第一次找的关键字不是您想要的可以一直按「n」会往后寻找到您要的关键字为止 「? 关键字」先按「?」键再输入您想寻找的字符如果第一次找的关键字不是您想要的可以一直按「N」会往前寻找到您要的关键字为止。 区别前者向下查找后者向前查找。 前者搭配 n 使用后者搭配 N 使用。 2.4 视图模式 在正常模式下输入 ctrl v 批量注释 用 j、k 选中要注释的行选好后按 shifti 进入插入模式再输入 // 后按 ESC 退出,此时代码就被注释掉了 批量去注释 进入视图模式,使用 hjkl 选中要取消注释的区域,注意这里要选中前两列,否则只会删除 // 的第一个 /,选好后输入 d,即可删除 实例 3. gcc/g的使用——Linux 编译器 补充扩展 语言和编译器的自举过程 3.1 编译的过程 3.1.1 预处理 头文件包含 在此过程中将头文件内容拷贝至源文件。将 #include 包含的头文件内容直接插入到源代码中。 宏替换 在此过程中将用 #define 定义的宏替换为相应的值。 条件编译 根据条件编译指令如 #ifdef、#ifndef来选择性地编译代码段。 比如我们在 code.h #ifdef _CODE_H_#define CODE_H #endif 只有在定义了 code. h 的情况下这段代码才会编。 这也就是为什么可以防止头文件被重复包含的原因。 删除注释 预处理器会将所有的注释删除以简化代码。 输出 预处理后的结果是一个纯文本文件它是原始源代码经过宏替换、头文件展开、条件编译后的结果通常以 .i 文件形式保存。 gcc -E code.c -o code.i-E 选项告诉编译器只进行预处理不进行进一步的编译步骤 -o 选项是指目标文件 .i 文件为已经过预处理的C原始程序。 3.1.2 编译 编译 是将预处理后的源代码(如 C 语言) 转换为目标机器的汇编代码的过程。编译器会将高级语言C/C的语法结构翻译为与特定处理器架构相关的汇编指令。 编译步骤 语法检查编译器会对预处理后的代码进行语法和语义分析确保代码符合语言规范。生成中间代码编译器会将代码转化为中间形式这种形式与平台无关可以优化。优化编译器可能会进行一些优化比如减少不必要的代码、优化循环和条件语句等。生成汇编代码最后编译器会生成与目标架构相关的汇编代码。汇编代码是一种低级别的、人类可读的机器语言。 输出 编译的结果是汇编代码通常保存为 .s 文件。 gcc -S code.i -o code.s-S 选项让编译器停止在生成汇编代码的步骤不继续到汇编和链接阶段。 3.1.3 汇编 汇编 是将汇编代码转换为目标机器可以直接理解的机器指令机器码的过程。汇编器会将汇编语言转化为二进制形式的机器码这个过程是将低级别的汇编指令直接映射为 CPU 可以执行的指令。 汇编步骤 指令翻译每条汇编指令被转化为对应的机器码。符号解析将汇编代码中的符号如变量和函数名转化为具体的内存地址或偏移量。 输出 汇编后的输出是目标文件即可重定位目标二进制文件是不能执行的通常以 .o在 Linux 上或 .obj在 Windows 上为后缀。目标文件包含了编译后的二进制代码但尚未与其他库或文件链接。 gcc -c code.s -o code.o-c 选项指示编译器只进行到汇编阶段不进行链接。 3.1.4 链接 链接 是将多个目标文件和库文件合并为一个最终的可执行文件的过程。程序通常由多个源文件组成编译器会单独编译这些文件生成各自的目标文件最后由链接器将它们链接在一起生成最终的可执行文件。 链接步骤 符号解析链接器会解析所有目标文件中的符号将各个文件中引用的函数和变量正确地连接起来。比如如果 main.c 调用了 foo.c 中的一个函数链接器会找到 foo.c 中对应的函数定义并将它们链接起来。库的链接如果程序使用了外部库如标准 C 库 libc 或用户自定义的库链接器会把这些库中的符号与程序中的引用进行匹配。可以是静态链接库代码被复制到可执行文件中或动态链接在运行时加载库。生成可执行文件最后链接器会将所有解析后的二进制代码合并为一个可执行文件。 输出 链接的输出是最终的可执行文件通常没有文件扩展名如 a.out或有 .exe在 Windows 上。 gcc hello.o -o hello默认的指令就可以了。 3.2 动、静态函数库 动态库动态链接 在程序执行时由运行时链接文件加载库这样可以节省系统的开销。动态库一般后缀名为 .so如 libc.so.6 就是动态库。gcc 在编译时默认使用动态库。完成了链接之后gcc 就可以生成可执行文件。gcc code.c -o codegcc 默认生成的二进制程序是动态链接可用 file 指令验证 优点比较节省资源不会出现太多的重复代码 资源磁盘、内存、网络等。 缺点对库的依赖性比较强一旦库丢失所有使用这个库的程序无法运行 静态库静态链接 静态库是指编译链接时, 把库文件的代码全部拷贝到可执行文件中, 因此生成的文件比较大, 但在运行时也就不再需要库文件了。其后缀名一般为“. a” 优点不依赖库同类型平台中都可以直接运行使用 缺点可执行程序体积比较大比较浪费资源资源同上 总结 允许你拷贝的库就是静态库 允许你关联的库就是动态库 4. makefile ——Linux项目自动化构建工具 gcc 一条指令只能编译删除一个或多个源文件而面对不计其数的项目文件根据类型、功能等分散在各处就显得十分低效所以就有了 makefile 定义了一系列的规则指定文件的编译先后顺序等甚至更复杂的功能操作。 为了提高效率人们把gcc、g这些指令都集合在一个文件 Makefile 中只需编辑一次有新需求再对其修改通过工具 make自动化执行指令。——一键自动化构建 4.1 make、依赖关系及方法 make 是一条命令makefile 是一个特定格式的文件需要自己创建两个搭配使用完成项目自动化构建。 target: dependenciescommandtarget表示需要构建的目标文件。dependencies表示构建目标文件所需要的依赖文件。command表示构建目标文件的命令。 你创建了一个 mytest.c然后下面你创建了 Makefile 或者 makefile 文件 mybin: mytest.c #这就是依赖关系。gcc -o mybin mytest.c #这就是依赖方法.PHONY: clean # 修饰 clean 目标为伪目标总是被执行 clean:rm -f mybin4.1.1 依赖关系与依赖方法、自动化构建 目标 mybin 第一行定义了一个名为 mybin 的目标它依赖于 mytest.c 文件。 这就是依赖关系。当你运行 make 命令时make 会找到第一个目标 mybin并检查其依赖项即 mytest.c。如果 mytest.c 发生了改变make 会执行 gcc -o mybin mytest.c 来编译生成可执行文件 mybin。 这就是依赖方法 依赖关系 Makefile 中的依赖关系表示了目标文件和依赖文件之间的关系。如果依赖文件发生更改或者目标文件不存在make 将执行规则中的构建命令以确保目标文件是最新的。 即如果文件是最新的make 就不会执行。 那么怎么判断文件是否最新呢详见第五节。[[03 Linux环境基础开发工具使用#4.3. 文件的三个属性]] 自动化构建make 工具的一个主要优势是它能够自动检测哪些文件需要重新构建以减少不必要的编译和链接操作。它只会重新构建已更改或丢失的文件而不是整个项目。 4.1.2 默认行为 默认行为——默认形成的是第一个目标文件且默认只形成一个 默认情况下执行 make 时从上到下扫描 Makefile构建第一个目标 mybin 。如果没有其他目标的指定make 只会创建 mybin即使 Makefile 中有多个目标比如 clean。 当我们将 clean 和 mybin 的位置颠倒使用 make不会执行 gcc但却直接执行 clean 4.2、make clean 和 .PHONY 伪目标 clean 使用 .PHONY: clean 指定 clean 是一个伪目标这意味着它不会与文件系统中的实际文件冲突。无论何时你运行 make clean都会执行其下的命令。clean 目标用于清理生成的可执行文件通过运行 make clean 来删除 mybin 文件。 .PHONY 是一个特殊的目标用于告诉 make 哪些目标是伪目标不表示实际的文件以防止 make 误解这些目标。通常伪目标在 Makefile 中不会表示实际的文件而是用于执行特定的操作或任务比如clean清理数据。 伪对象的作用有两个 1. 使目标对象无论如何都要重新生成。 2. 并不生成目标文件而是为了执行一些指令。 4.3. 文件的三个属性 那么系统怎么判断文件是否最新呢 文件第一次编写、编译代码后此时源文件的修改时间一定是早于生成的可执行文件的修改时间。所以第二次 make 时系统会提示我们 mybin is up to date。 当我们修改文件后此时源文件修改时间晚于可执行程序文件的修改时间所以系统会执行 make 查看文件的属性 stat 文件名Access 是最近访问文件的时间 看文件是最频繁的所以 access 时间并不是实时更新 Modify 是最近对文件内容做修改的时间 Change 是最近对文件属性做修改的时间 总结: 文件 内容 属性 修改文件的内容可能会影响文件属性 ,因为增加或减少代码会影响文件的大小 然而修改文件的属性不会影响文件内容,比如修改文件的拥有者,修改文件权限等 4.4 makefile推导能力和变量 这段代码的意思就是 首先,mybin依赖的是.o文件但是系统中此时没有.o文件就会执行下一条指令,但是.o文件依赖的是.s文件,系统中此时没有.s文件又会跳到下一条指令,以此往复直到找到系统中存在的.c文件,再倒推回去 这就是 makefile 的推导能力。简单了解 makefile 中可以定义变量 #原来的代码 mybin:mytest.cgcc -o mybin mytest.c .PHONY:clean # 修饰mybin目标文件成为一个伪目标,总是被执行 clean: rm -f mybin在要替换的内容前加上 $ 和 () 即可 像C语言定义变量一样编辑代码 #定义变量的代码 target mybin cc gcc src mytest.c $(target):$(src) $(cc) $(src) -o $(target) .PHONY:clean clean: rm -rf $(target)并且,可以用$^代表依赖关系的左边 可以用 $ 代表依赖关系的右边 有种关键字 auto 的感觉 mybin:mytest.cgcc $ -o $^ .PHONY:clean clean: rm -rf mybin5. Linux第一个小程序——进度条 #include stdio.h #includeunistd.hint main() {printf(you can see me.);//注意这里没有\nsleep(3);return 0; }该程序在三秒后才显示出you can see me.——缓冲区5.1 缓冲区 是临时存储输出数据的内存区域数据在输出时会先存储在缓冲区中。 在 I/O 操作中数据一般不会立即直接写入目标。 类型 全缓冲在数据达到一定量时才会进行输出如大文件输出到文件。行缓冲每当遇到换行符\n时会将缓冲区的数据输出。 如果加了 \n —— printf(you can see me.\n); 便会立刻输出在显示屏上。 由于标准输出是行缓冲的字符串会被存储在缓冲区中直到遇到换行符或缓冲区满时才会被输出到终端。无缓冲数据会立即写入目标没有缓冲行为。 5.2 回车 \r 定义回车符是 ASCII 控制字符其值为 13十进制表示将光标移动到当前行的开头。表现在终端中回车符的效果是将光标移到行首而不换行。例如printf(Hello\rWorld); 会输出 World覆盖 Hello结果只显示 World。 5.3 换行 \n 定义换行符是 ASCII 控制字符其值为 10十进制表示将光标移动到下一行的开头。即并换行表现在终端中换行符的效果是将光标移到下一行。例如printf(Hello\nWorld); 会在 Hello 后换行接着输出 World结果显示为 根据以上的知识点写出的 #include stdio.h #includeunistd.hint main() {int cnt 10; while(cnt 0){printf(%-2d\r,cnt);//不满2位数就打印出一位数fflush(stdout);// 强制输出到终端cnt--;sleep(1);//停顿}printf(\n);return 0; }fflush(stdout) 确保数字 cnt 会立即显示在终端上而不是等待程序结束或缓冲区满时才显示。 5.4 进度条 5.4.1 Version 1 (死板固定的进度条) #pragma once #include stdio.h#define NUM 102 #define S # //version1 void process(); #include processbar.h #include string.h #include unistd.hconst char *label |/-\\; //version 1 void process() {char buffer[NUM];memset(buffer,\0,sizeof(buffer));int cnt 0;int n strlen(label);while(cnt 100){printf([%-100s][%3d%%][%c]\r,buffer,cnt,label[cnt%n]); fflush(stdout);buffer[cnt] S;usleep(50000);}printf(\n); }#include processbar.h int main() {process();return 0; }5.4.2 Version 2 (模拟真实情况) #pragma once #include stdio.h#define NUM 103 #define Body #define Head typedef void (*callback_t)(double)//回调函数void process_flush(double rate) #include processbar.h #include string.h #include unistd.hconst char *label |/-\\;char buffer[NUM] {0}; void process_flush(double rate) {static int cnt 0; int n strlen(label);if(rate 1.0) buffer[0] Head;printf([\033[4;37;41m%-100s\033[0m][%.1f%%][%c]\r, buffer, rate, label[cnt%n]);//只是增添了颜色。printf([%-100s][%3d%%][%c]\r,buffer,cnt,label[cnt%n]);fflush(stdout);buffer[(int)rate] Body;if((int)rate1 100) buffer[(int)(rate1)] Head;if(rate100.0) printf(\n);cnt;cnt%n; } #include processbar.h #include time.h #include stdlib.h #include unistd.h#define FILESIZE 1024*1024*1024//模拟一种场景,表示一种下载的任务 void download(callback_t cb) // 回调函数的形式 {srand(time(NULL)^1023);//- 首先调用 srand 来初始化随机数生成器。//在下载循环中rand() 用于生成一个随机下载量one使得每次循环下载的量都是不固定的模拟真实下载情况。 int total FILESIZE;while(total){usleep(10000); //下载动作int one rand()%(1024*1024*10);total - one;if(total 0) total 0;// 当前的进度是多少int download FILESIZE - total;double rate (download*1.0/(FILESIZE))*100.0; // 0 23.4 35.6, 56.6cb(rate);//process_flush(rate);//printf(download: %f\n, rate); // rate出来了应该让进度条刷新} }int main() {//process();download(process_flush);return 0; }6. 版本管理工具——git Git 是一个强大的版本控制系统通过一系列指令和操作可以轻松管理项目的历史、协作开发和代码发布。 Git 工作流程 克隆或初始化项目使用 git clone 克隆远程仓库或使用 git init 创建本地仓库。创建分支创建新分支进行开发git branch branch_name。修改代码并提交在分支中修改代码使用 git add 暂存更改使用 git commit 提交更改。推送更改将本地分支的更改推送到远程仓库git push。合并分支当开发完成后将分支合并到主分支git merge 6.1 常用指令 sudo yum install git 记得在系统里安装 git 工具。 git clone 下载项目到本地创建好一个放置代码的目录。 git clone [url]这里的 url 就是刚刚建立好的仓库链接git add git add file将指定文件的更改添加到暂存区。git add .将当前目录下的所有更改添加到暂存区。 git status 显示当前工作目录中已修改但未提交的文件以及与远程仓库的不同步情况。 git commit git commit -m Commit message提交暂存区中的文件到本地仓库-m 后面跟提交的描述信息。 git log 显示当前仓库的提交历史包含提交 ID、作者、日期和提交信息。 git push 将本地分支的提交推送到远程仓库。 用户名是你 gitee 主页后面的字符串 6.2 .gitignore 文件 git 仓库只要管理源代码源文件头文件配置文件等 本地仓库提交的文件进行过滤的文件后缀在 ign 文件列表中不会被本地和远端托管 注意 不要忽略 *.xxx修改是及时生效的 7. gdb——Linux 调试器 程序的发布方式有两种debug模式和release模式 前者较于后者形成的可执行程序会给我们添加调试信息 gcc/g编译时默认是 release 模式。 要使用gdb调试必须在源代码生成二进制程序的时候, 加上 -g 选项 mybin:mytest.cgcc -o $ $^ -g .PHONY:clean clean: rm -rf mybin7.1 调试的目的 只有知道代码逻辑调试起来才会相对容易。 找到问题通过查找范围查找局部逐行查找等解决问题联系上下文代码 7.2 调试过程及 gdb指令 尽管各平台如微软的visual studio 调试的形式不同但本质是相似的。 Windows 基本的调试功能 运行起来才能调试要看得到代码打断点局部调试如函数内看到局部变量的内容和地址看到调用栈单步进入函数 l 行号显示指定行之后的代码gdb 自动记录最近一条指令 b 行号/函数名/file行号对指定位置打断点 info b査看我们所打的断点 d 断点编号删除断点 disable/enable 断点编号使能禁用/开启断点 n逐过程–F10 s逐语句–F11进入函数 p显示变量的内容和地址 display 变量名/取地址常显示变量的内容和地址 undisplay 编号取消常显示变量的内容和地址 c从一个断点运行到下一个断点可用于问题范围查找 finish将一个函数运行结束就停下来可用于问题范围查找 until在一个范围内直接运行到指定行可用于问题范围查找不能跳过函数调用一般用于跳过循环 bt查看调用堆栈
http://www.dnsts.com.cn/news/20839.html

相关文章:

  • 软文网站外包外贸推广系统
  • 自建网站平台的页面功能网站空间 域名
  • 电脑手机网站制作万维定制平台
  • 苏州区建设局网站首页专门做相声的网站
  • 门户网站建设请示报告慈溪市网站开发
  • 做商城的网站程序正规网站建设公司多少钱
  • 手机网站智能管理系统河北省建设项目环保备案网站
  • 企业的品牌宣传策划seo快速排名培训
  • 江苏建筑网站建设wordpress导航不固定
  • 定制产品网站网站建设服务哪家
  • 做版权保护的网站国际域名网站
  • 长沙网站se0推广优化公司产品网站用什么软件做
  • 大众点评怎么做团购网站怎么制作图片和文字一起
  • 网站js聊天代码远程教育网站建设方案
  • 可以做任务挣钱的网站不是做有网站都叫狠狠
  • 做电影网站算侵权吗小程序界面设计模板
  • 网站开发如何共用菜单栏require刚做的网站怎么才能搜索到
  • 江苏省城乡建设厅网站湖人最新消息
  • 电商网站管理小型局域网组建方案
  • 做物流网站的公司哪家好租赁商城手机网站开发
  • tp5企业网站开发视频建筑业资质查询网站
  • 基于django电商网站开发课设报告网站做新浪图床
  • 做网站二级页面的关于自行建设门户网站的请示
  • 找it工作有什么好的招聘网站nginx wordpress 伪静态
  • 建设外贸国外站点网站电子商务专业有什么用
  • 电子商务的网站建设的可用性广州app开发外包
  • 内蒙古网站建站ui设计网站建设是什么
  • 百度不收录新网站php网站开发工具有哪些
  • 网站标题的优化如何选择编程培训机构
  • 免费wap网站推荐做视频网站 买带宽