手撕代码和笔试题

1.linux  统计 字符串个数

grep   -o  hello  |wc -l  

2. linux 权限复习

赋予权限 chmod 

Linux/Unix 的文件调用权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)。rwx顺序

答案:555  r+x  r+x r+x 4+1 4+1 4+1

3.chown 

原理: fiel :   owner usergroup ---------

 /var/run/httpd.pid 的所有者设置 root:

chown root /var/run/httpd.pid

将文件 file1.txt 的拥有者设为 runoob,群体的使用者 runoobgroup :

chown runoob:runoobgroup file1.txt

将当前前目录下的所有文件与子目录的拥有者皆设为 runoob,群体的使用者 runoobgroup:

chown -R runoob:runoobgroup ./*

把 /home/runoob 的关联组设置为 512 (关联组ID),不改变所有者:

chown :512 /home/runoob

4.网段知识

一个网段的ip地址个数为2^(32-x)个,x为子网掩码位数。因为全是零和全是一的不可用,所以主机地址个数为2^(32-x)-2个。

A类子网掩码为255.0.0.0,8位。主机个数为2^(32-8)-2=16777214个。

B类子网掩码为255.255.0.0,16位,主机个数为2^(32-16)-2=65534个

C类子网掩码为255.255.255.0,24位。主机个数为2^(32-24)-2=254个

5. linux 排除文件含有hello 行
 grep -v hello test.txt
 
6.cpu 100%排查
1.top 
2.找到cpu100的 线程id  top -Hp  pid 
3. jstack  tid |grep  printf '%xtid'
4.根据3堆栈分析代码调用的行、
耗时分析
 
7.正则复习
正则匹配
8. python  进制运算
二进制0b、八进制0o和十六进制0x转换为十进制的方法
# 进制转10
int(0x1111,16)
int(0b1111,2)
int(0o1111,8)
# 10转进其他制
oct()  // 8进制
bin()   // 2进制
hex()   //16 进制
 
9.索引失效场景:
 

table: sql所查询的表名

type: 结果值从好到坏依次是:

system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL

一般来说,得保证查询至少达到range级别,最好能达到ref,否则就可能会出现性能问题

possible_keys: sql可能用到的索引

key: sql实际用到的索引,如果是Null,说明没有用到索引

rows: MySQL认为执行查询时必须检查的行数

 
 
 
 
 
 
 
 
 
原文地址:https://www.cnblogs.com/SunshineKimi/p/15119794.html