03 2018 档案
读书笔记_Effective_C++_条款三:尽可能使用const
摘要:const是常量的意思,它可以定义一个不可改变的量,主要用于以下几个地方: 1. 修饰变量,使之不可改变 举个例子: 此时var的值就不能改变了。也正是因为const的变量不能轻易修改存储的值,所以在声明的时候就要初始化,这样就是不行的: 编译器就会报错。 2. 修饰指针 指针是特殊的变量,有时我们
阅读全文
读书笔记_Effective_C++_条款二:尽量以const, enum, inline替换#define
摘要:其实这个条款分成两部分介绍会比较好,第一部分是用const和enum替换不带参的宏,第二部分是用inline替换带参的宏。 第一部分:用const和enum替换不带参宏 宏定义#define发生在预编译期,而const,enum定义的常量发生在编译期,两者的重要差别在于编译期里的变量是进符号表的,而
阅读全文
读书笔记_Effective C++_条款一:将C++视为一个语言联邦
摘要:C++起源于C,最初的名称为C with Classes,意为带类的C语言,然而,随着C++的不断发展和壮大,在很多功能上已经远远超越了C,甚至一些C++程序员反过来看C代码会觉得不习惯。 C++可以看成由四个部分组成,分别是: (1) C。C++从语法和代码风格上以C为基础,这也正是C++命名的由
阅读全文
第二章:文法和语言
摘要:符号就是字符对吗? 答案是错误的,比如 if while for else等关键字。 关于编译原理 语法树 句柄 简单短语 短语 的区分,通过两个例子来理解概念以及方法: 例子1——语法树 S -> a|b|(T) T -> TdS|S Vt={a,b,d,(,)}.Vn={S,T},S是开始符 句
阅读全文
linux如何查看端口状态
摘要:在Linux使用过程中,需要了解当前系统开放了哪些端口,并且要查看开放这些端口的具体进程和用户,可以通过netstat命令进行简单查询 在Linux使用过程中,需要了解当前系统开放了哪些端口,并且要查看开放这些端口的具体进程和用户,可以通过netstat命令进行简单查询 netstat命令各个参数说
阅读全文
读书笔记_Effective_C++_条款四十九:了解new_handler的行为
摘要:https://www.cnblogs.com/jerry19880126/p/3722531.html 本章开始讨论内存分配的一些用法,C/C++内存分配采用new和delete。在new申请内存时,可能会遇到的一种情况就是,内存不够了,这时候会抛出out of memory的异常。有的时候,我们
阅读全文
shell基础:输入输出重定向
摘要:输出重定向将命令输出存入到文件,类似日志。便于查看。2和>>间没空格。但这种方法没用 ,命令执行时并不知道对错。 /dev/null下的null就是一个垃圾箱,脚本中的一些命令并不需要保存输出,应该丢到垃圾箱。 输入重定向用的不多,用在给源码打包时。
阅读全文
shell基础:1.1脚本执行方式
摘要:echo 后边跟的东西有空格,那么需要加上单引号或双引号。!是有特殊含义的,用单引号原意。 尽管linux不区分文件的后缀,但还是要写上以便于区分。 #!Bash 这行不是注释,也不能省略,他的意思是告诉shell以下写的是shell脚本。 2,3行是注释 4行是脚本。
阅读全文
用户用户组管理:用户管理命令-passwd
摘要:passwd直接回车就是给root设密码。或加root。 普通用户只能改自己的密码。改时直接敲passwd,回车。否则报错。 因为只有root可以在passwd后加用户名。其实最常见的就是不加选项。 锁定其实局势在shadow的密码部分前加了!!,其实就是操作!! 这种做法其实就是在shell编程时
阅读全文
用户用户组管理:用户管理相关文件
摘要:恢复内容开始 添加用户,目录自动创建 如果把其他用户改为root,用户目录不变,权限变化。改权限只需改变/etc/passwd下UID改为0, 恢复内容结束 添加用户,目录自动创建 在创建一个新用户时,目录会自动创建,同时该目录下有许多隐藏的文件,这些文件就是从模板目录中拷贝的。 在模板目录下,自己
阅读全文
用户用户组管理:用户配置文件-组信息文件
摘要:linux每添加一个用户那么就会默认生成一个和用户名相同的组,作为这个用户的初始组。 默认组名和用户名一样。 只有root可以将用户加入其他组。组密码一般不推荐使用。会有安全问题。 判断组也是用组ID
阅读全文
第一章:编译程序概论
摘要:只要有软件,软件要运行,那么就离不开编译。正是有了编译,才有了各种程序设计语言,再有了操作系统,以及各种软件。软件世界的基础就是编译。 编译时软件运行在硬件上的必要手段。
阅读全文
软件包管理:源码包管理-源码包安装过程
摘要:确认gcc已经安装 安装过程其实就是源代码的编译过程。 INSTALL和README是安装说明和使用说明,基本所有的源码包都有这样的两个文件。 INSTALL里有安装步骤。 make就是调用gcc,编译成二进制包 在make install前生成的是临时文件,不会像目标目录写东西,出错执行make
阅读全文
软件包管理:源码包管理-源码包与RPM包的区别
摘要:RPM会安装在默认位置,源码包会安装在指定位置。 绝大多数ROM包遵循此规范。写软件包是就固定好了。 主要影响体现在对服务的管理方法,服务的管理分三种:启动,重启动,停止。 启动时使用绝对路径来启动。归根结底,linux启动一个执行文件,就要用到绝对路径。 rpm包安装的服务的执行文件都安装在了/e
阅读全文
软件包管理:yum在线管理-yum命令
摘要:只要我们的电脑可以接入互联网,那么yum源就是配好的,yum命令可以直接使用。 列出的是服务器上全部的rpm包。 包名,包全名的概念只在rpm手动管理时有用。 关键字主要指包名,只要知道了关键字就可以在服务器上找到。 例如:yum -y install gcc 在安装gcc后才可以安装源码包。 不接
阅读全文
软件包管理:rpm包管理-yum在线管理-IP地址配置和网络yum源
摘要:只需告诉系统你想安装那个包,剩下的所有依赖问题yum都会解决。 有些情况下不能上网,但可以使用光盘。 centos的yum是免费的。redhatyum付费。 yum管理的其实同样是rpm包。并没有yum包一说。 IP地址配置和yum源
阅读全文
JVM、Java编译器和Java解释器
摘要:作用: JVM:JVM有自己完善的硬件架构,如处理器、堆栈(Stack)、寄存器等,还具有相应的指令系统(字节码就是一种指令格式)。JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需要生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。JVM是Java平台无
阅读全文
软件包管理:rpm命令管理-校验和文件提取
摘要:校验主要用于判断文件是否做了更改 修改标志: 会用-V,会看输出结果即可。 当有误操作,比如删了某一个文件,只需知道他属于哪一个rpm包,可用提取找回覆盖就行。并不把整个rpm包安装,而是提取其中的某个指定文件。 2 等同于 to 首先将rpm格式转化为cpio格式以便于提取,之后使用cpio命令。
阅读全文
软件包管理:rpm命令管理-查询
摘要:yum没有rpm查询的多。 使用包名时无所谓使用位置。因为查询是在后台数据库中查询的。 记忆是只需知道安装和升级时要加包全名,其余加包名。其实未安装的加包全名。 rpm包可以手工指定安装路径,但不建议这么做,应该使用自带的默认位置。安装位置其实包存在时就决定了。 系统文件名必须是通过包装出来的。才可
阅读全文
软件包管理:rpm命令管理-包命名与依赖性
摘要:rpm包的管理主要有两种方法:一种是rpm命令管理另一种是yum在线管理 注意软件包没有扩展名,写上只是为了好看,便于识别而已。 注意区别包名,包全名。之所以要区分,就是因为有些命令十分挑剔,需要跟正确对应的名字。 树形依赖挨个安装可解决,环形依赖使用命令同时安装。模块依赖使用网站。 模块依赖就是依
阅读全文
软件包管理:简介
摘要:软件包分类: 源码包(绝大多数是c语言写的),安得慢,容易报错。好处是可以直接看到源代码。 脚本安装包:事先写好安装界面,在进行安装。十分简单。问题是不多,其实就是原码包,加了一个界面。 二进制包(RPM包,系统默认包),是经过编译后的。0101的机器码包。windows下是exe格式,linux(
阅读全文
linux命令:用户管理命令
摘要:用户管理命令:useradd 命令所在路径:/usr/sbin/useradd 执行权限:root 语法:useradd 用户名 功能描述:添加新用户 范例:$useradd yangmi 命令名称:passwd 命令所在路径:/usr/bin/passwd 执行权限:所有用户 语法:passwd
阅读全文