11.04笔试总结

今天做了两个笔试,都不是很难,自从不投AI算法岗之后,笔试难度直线下降....

但是还是有一些问题需要记录

关于Linux:

需要复习一些高级命令,比如网络,进程,查找,解压和压缩

网络命令:

ifconfig:用于查看和更改网络接口的地址和参数,包括IP地址、网络掩码、广播地址,使用权限是超级用户。 

netstat:主要用于Linux察看自身的网络状况,如开启的端口、在为哪些用户服务,以及服务的状态等。此外,它还显示系统路由表、网络接口状态等。可以说,它是一个综合性的网络状态的察看工具。在默认情况下,netstat只显示已建立连接的端口。如果要显示处于监听状态的所有端口,使用-a参数即可:

netstat -t :tcp 查看

netstat -u :udp

ping

进程命令:

ps -a

top 

文件命令:

更改一个文件的权限:chmod

查找文件:find

例子:

查找当前目录一个月(30天)以前大于 100M 的日志文件(.log)并删除

find . -name "*.log" -mtime +30 -type f -size +100M | xargs rm -rf {};

find 命令用于查找文件:
. 在当前目录查找
-name 指定文件名,*.log 表示后缀名为 .log,* 是通配符,表示匹配任意字符串
-mtime 指定修改时间(以天为单位),+xx 表示修改时间大于 xx 天, -xx 表示修改时间小于 xx 天
-type 是指定文件类型,b 表示块设备文件,d 表示目录,c 表示字符设备文件,p 表示管道文件,l 表示符号链接文件,f 表示普通文件
-size 指定文件大小,+xx 表示文件大小大于 xx,-xx 表示文件大小小于 xx

xargs 把前一命令输出当作后一命令输入,通常配合管道使用。

Linux匹配空行:

“^$" ,^匹配行首,awk中,^则是匹配字符串的开始,匹配行尾,awk中,$则是匹配字符串的结尾

grep

grep (global regular expression) 命令用于查找文件里符合条件的字符串或正则表达式。

grep  + option + 字符串/正则表达式 + 文件

grep -v 反向查找

从文件内容查找与正则表达式匹配的行:grep –e "正则表达式" 文件名

查找时不区分大小写:

grep –i "被查找的字符串" 文件名

关于Vim

vim编辑器可以分为三种模式:

1.命令模式:控制屏幕光标的移动,进行文本的删除,复制等文字编辑工作,不使用【del】和【backspace】键,以及进入插入模式或者回到底行模式;

2.插入模式:只有在插入模式下,才可以输入文字,按【esc】可以回到命令模式,vim编辑器一打开是不可以输入的,因为刚打开时候处于命令模式;

3.底行模式:保存文件或者退出vim,也可以设置编辑环境和一些编译工作。

关于MySQL:

DML和DDL:

DML主要包括增删改查:insert,delete,update,select。DML只是对表内部数据的操作,不涉及到表的定义,结构的修改,更不会涉及到其他对象。

DDL主要包括create,drop,alter等。DDL是对数据库内部的对象进行创建、删除、修改的操作语言。

还有一个DCL,数据控制语句,用于控制不同数据段直接的许可和访问级别的语句。这些语句定义了数据库、表、字段、用户的访问权限和安全级别。主要的语句关键字包括 grant、revoke 等。

事务
事务的四个特性:

原子性:整个事务的所有操作,要么全部成功,要么全部失败回滚

一致性:在事务开始之前和事务结束之后,数据库都保持一致的状态

隔离性:一个事务不会影响其他事务的运行,通过MVCC来实现

持久性:在事务完成后,该事务对数据库所做的更改将持久地保存在数据库中,并不会被回滚

关于事务的回滚需要注意:只能回滚 insert、delete 和 update 语句,不能回滚 select(回滚 select 没有任何意义),对于create、drop、alter 这些无法回滚.事务只对 DML 有效果。

注意:rollback,或者 commit 后事务就结束了。

自动提交模式

• 自动提交模式用于决定新事务如何及何时启动。
• 启用自动提交模式:
– 如果自动提交模式被启用,则单条 DML 语句将缺省地开始一个新的事务。
– 如果该语句执行成功,事务将自动提交,并永久地保存该语句的执行结果。
– 如果语句执行失败,事务将自动回滚,并取消该语句的结果。
– 在自动提交模式下,仍可使用 START TRANSACTION 语句来显式地启动事务。这时,一个事务仍可包含
多条语句,直到这些语句被统一提交或回滚。
• 禁用自动提交模式:
– 如果禁用自动提交,事务可以跨越多条语句。
– 在这种情况下,事务可以用 COMMIT 和 ROLLBACK 语句来显式地提交或回滚。
• 自动提交模式可以通过服务器变量 AUTOCOMMIT 来控制。
• 例如:
mysql> SET AUTOCOMMIT = OFF;
mysql> SET AUTOCOMMIT = ON;

mysql> SET SESSION AUTOCOMMIT = OFF;
mysql> SET SESSION AUTOCOMMIT = ON;
show variables like '%auto%'; -- 查看变量状态

MySQL默认字段值

对于MySql而言,如果不主动设置为NOT NULL的话,那么插入数据的时候默认值就是NULL。我们最好设定默认字段值为空值而不是NULL。这使得在插入新记录时,未指定具体值的字段将会被设置为空值。相较于NULL,空值不占用额外的存储空间,并且在查询和处理数据时不需要额外的判断和处理逻辑。

通过使用DEFAULT关键字,可以将字段的默认值设置为空值。在查询和处理数据时,可以使用IS NULL和IS NOT NULL来判断字段是否为空值。

这种设计选择可以提高数据库的存储效率,并简化数据的操作和处理过程。

Delete,Drop,Truncate的区别:

drop:删除表,并释放空间,删除的一干二净,表结构啥都没了

truncate:删除表里的数据,结构还在

delete:1.删除指定数据 delete from test where age='20p and country='US';

2.删除整个表,仅仅删除表里的所有内容,保留表的定义,不释放空间。 Delete from test;

关于TCP服务

TCP服务器端的处理流程通常如下:

  1. 创建套接字(Socket):服务器端需要先创建一个套接字来监听客户端的连接请求。通常使用socket()函数创建一个TCP套接字,并指定IP地址和端口号。

  2. 绑定套接字:服务器端需要将套接字和本地IP地址以及端口号进行绑定,这样才能监听客户端连接请求。通常使用bind()函数进行绑定。

  3. 监听连接请求:一旦服务器端绑定套接字,它就可以开始监听客户端连接请求。通常使用listen()函数开始监听连接请求,并指定连接队列的长度。

  4. 接受连接请求:一旦有客户端连接请求到达服务器端,服务器就会接受这个请求并创建一个新的套接字来处理与客户端的通信。通常使用accept()函数来接受连接请求,这个函数会返回一个新的套接字描述符。

  5. 与客户端通信:一旦服务器端接受了客户端连接请求并创建了一个新的套接字描述符,就可以使用这个套接字描述符来进行通信了。服务器端可以使用recv()函数接收客户端发送的数据,使用send()函数向客户端发送数据。

  6. 关闭连接:通信结束后,服务器端需要关闭与客户端的连接。通常使用close()函数关闭套接字描述符,释放资源

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值