Linux

实际操作

  1. 在 /tmp/ 目录下创建 4个文件, 文件名分别为
  • honglian.txt
  • hl.txt
  • honglian1.txt
  • honglian2.txt
  1. 文件中的内容分别为

    honglian.txt 文件内容为 honglian hl.txt 的文件内容为 hl honglian honglian1.txt 文件内容为 hl honglian2.txt 文件内容为 honglian hl

  2. 查找所有文件名中包含 honglian 的文件的绝对路径。 ```sql find / -name “honglian

locate “honglian”

  1. 4. 查找/tmp 目录下后缀名为.txt 文件,且文件内容中包含 honglian 的文件的绝对路径。
  2. ```sql
  3. grep -r "honglian" /tmp/*.txt | awk -F: '{print $1}'

image.png
image.png

  • grep -r 显示文件路径。
  • awk 对内容进行进一步处理。

  1. 常用的查看文件命令 ```sql cat tac 从最后一行倒序查看 more 分页查看 less 比more 功能更多 vi 既可以查看,也可以编辑 grep 过滤内容 head 查看前n行 tail 查看后n 行 也可以实时查看 tail -f 实时追踪。 追踪多个文件 tail -f 文件1 文件2 文件3
  1. 2. 文件上传与下载命令有哪些?
  2. ```sql
  3. xshell 中使用rz sz
  4. 也可以使用 scp 命令
  5. scp 上传 scp 本机文件路径 远程文件路径(用户名@ip:/文件的绝对路径)
  6. scp 下载 scp 远程文件路径(用户名@ip:/文件的绝对路径) 本机文件路径
  1. 将/tmp 目录下所有的.log结尾的文件打包为 xxx.log.tar.gz

    1. tar -zcvf xxx.log.tar.gz /tmp/*.log
  2. 查看端口号为3306应用程序的使用情况 ```sql

  3. netstat -anpt |grep 3306 获取
    1. ![image.png](https://cdn.nlark.com/yuque/0/2022/png/87080/1647068271826-819be97d-ec45-48bd-b5e4-e292dfb9ece3.png#clientId=uaa929b01-de86-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=136&id=u9c6a574b&margin=%5Bobject%20Object%5D&name=image.png&originHeight=271&originWidth=1228&originalType=binary&ratio=1&rotation=0&showTitle=false&size=58435&status=done&style=none&taskId=u3c1ab7bf-4ff4-4c99-9974-a5773af7d86&title=&width=614)
    2. ```sql
    3. ps -ef | grep 27979 | grep -v grep
    image.png

  1. -- 获取进程号
  2. netstat -anpt | grep 3306 | head -1 | awk '{print $7}' | awk -F/ '{print $1}'
  1. ps -ef | grep ` netstat -anpt | grep 3306 | head -1 | awk '{print $7}' | awk -F/ '{print $1}' `

image.png

  1. 如何查看cpu,内存,磁盘使用情况

    1. cpu top / htop
    2. 内存 free
    3. 磁盘 df -h 磁盘使用情况
    4. du -h 每个文件的大小
  2. 默认从最后100行开始追踪日志文件

  3. 如何查找名字中包含log的文件
  4. 说说你在工作中主要使用到的Linux场景有哪些?
  5. 查看1.117.45.85 服务器的80端口是否开放?

Mysql 数据库

多表查询

设有关系emps 职工表(id,eno,ename,salary,dno)其中各属性的含义依次为
序号,工号,姓名,工资,所在部门号。
Linux git mysql 复习 - 图5
dept部门表(id,dno, dname,manager),其中各属性含义为
序号,部门号、部门名称、部门经理。
Linux git mysql 复习 - 图6

[

](https://gitee.com/fanmao-teach/database/blob/master/emp-dept.sql)

  1. 请通过SQL语句创建表

下载下面的文件,导入到数据库中
fanmao.sql

  1. 列出各部门中工资不低于10000的职工的平均工资。 ```sql

SELECT emp.dno, dept.dname, avg(salary) FROM emp INNER JOIN dept ON emp.dno = dept.dno WHERE salary >=10000 GROUP BY emp.dno,dept.dname;


3. 请用SQL语句将**销售部门**员工工资**低于10000**的职工的工资上调10%。
```sql
UPDATE emp 
SET salary = salary*1.1    -- 上涨10%
WHERE dno = (SELECT dno from dept WHERE dname = "销售部") and salary < 10000;  -- 销售部并低于10000
  1. 请用SQL语句查询销售部员工的数量。

    SELECT dno, COUNT(id) from emp
    WHERE dno=(SELECT dno from dept WHERE dname = "销售部")  -- 销售部
    group by dno;
    
  2. 查询 姓名,工号,部门名称。 ```sql

SELECT a.ename,a.eno,b.dname from emp as a INNER JOIN dept as b ON a.dno = b.dno;


6. 查询 客服 部门的人员 并按照工号 降序排序。
```sql
SELECT * FROM emp
WHERE dno = (SELECT dno from dept WHERE dname = "客服部")
order by eno desc;
  1. 统计 部门名称,部门人数。 ```sql select dno,count(id)+1 from emp GROUP BY dno;

8. 查询人数最多的部门, 输出 部门名称,部门人数。
```sql

select dname, count(ename) as 部门人数 from emp 
INNER JOIN dept
on dept.dno=emp.dno
GROUP BY dept.dname HAVING COUNT(ename) = (select count(ename) as 部门人数 from emp 
                                                                                        INNER JOIN dept
                                                                                        on dept.dno=emp.dno
                                                                                        GROUP BY dept.dname 
                                                                                        ORDER BY 部门人数 desc 
                                                                                        limit 1)

git 练习

  1. 将上面的操作保存到文件中,上传至自己的远程仓库。
  2. 思考:在使用git 提交代码的时候,如果出现文件内容冲突怎么解决?
    1. 先使用git pull 命令同步最新的文件内容image.png
    2. 手动修改文件image.png 改完之后保存
    3. 再次提交 image.png
    4. 另外一台机器上在 git pull 同步一下。