Linux
实际操作
- 在 /tmp/ 目录下创建 4个文件, 文件名分别为
- honglian.txt
- hl.txt
- honglian1.txt
- honglian2.txt
文件中的内容分别为
honglian.txt 文件内容为 honglian hl.txt 的文件内容为 hl honglian honglian1.txt 文件内容为 hl honglian2.txt 文件内容为 honglian hl
查找所有文件名中包含 honglian 的文件的绝对路径。 ```sql find / -name “honglian“
locate “honglian”
4. 查找/tmp 目录下后缀名为.txt 文件,且文件内容中包含 honglian 的文件的绝对路径。
```sql
grep -r "honglian" /tmp/*.txt | awk -F: '{print $1}'
- grep -r 显示文件路径。
- awk 对内容进行进一步处理。
- 常用的查看文件命令 ```sql cat tac 从最后一行倒序查看 more 分页查看 less 比more 功能更多 vi 既可以查看,也可以编辑 grep 过滤内容 head 查看前n行 tail 查看后n 行 也可以实时查看 tail -f 实时追踪。 追踪多个文件 tail -f 文件1 文件2 文件3
2. 文件上传与下载命令有哪些?
```sql
xshell 中使用rz sz
也可以使用 scp 命令
scp 上传 scp 本机文件路径 远程文件路径(用户名@ip:/文件的绝对路径)
scp 下载 scp 远程文件路径(用户名@ip:/文件的绝对路径) 本机文件路径
将/tmp 目录下所有的.log结尾的文件打包为 xxx.log.tar.gz
tar -zcvf xxx.log.tar.gz /tmp/*.log
查看端口号为3306应用程序的使用情况 ```sql
- netstat -anpt |grep 3306 获取
![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)
```sql
ps -ef | grep 27979 | grep -v grep
-- 获取进程号
netstat -anpt | grep 3306 | head -1 | awk '{print $7}' | awk -F/ '{print $1}'
ps -ef | grep ` netstat -anpt | grep 3306 | head -1 | awk '{print $7}' | awk -F/ '{print $1}' `
如何查看cpu,内存,磁盘使用情况
cpu top / htop
内存 free
磁盘 df -h 磁盘使用情况
du -h 每个文件的大小
默认从最后100行开始追踪日志文件
- 如何查找名字中包含log的文件
- 说说你在工作中主要使用到的Linux场景有哪些?
- 查看1.117.45.85 服务器的80端口是否开放?
Mysql 数据库
多表查询
设有关系emps 职工表(id,eno,ename,salary,dno)其中各属性的含义依次为
序号,工号,姓名,工资,所在部门号。
dept部门表(id,dno, dname,manager),其中各属性含义为
序号,部门号、部门名称、部门经理。
[
](https://gitee.com/fanmao-teach/database/blob/master/emp-dept.sql)
- 请通过SQL语句创建表
下载下面的文件,导入到数据库中
fanmao.sql
- 列出各部门中工资不低于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
请用SQL语句查询销售部员工的数量。
SELECT dno, COUNT(id) from emp WHERE dno=(SELECT dno from dept WHERE dname = "销售部") -- 销售部 group by dno;
查询 姓名,工号,部门名称。 ```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;
- 统计 部门名称,部门人数。 ```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 练习
- 将上面的操作保存到文件中,上传至自己的远程仓库。
- 思考:在使用git 提交代码的时候,如果出现文件内容冲突怎么解决?
- 先使用git pull 命令同步最新的文件内容
- 手动修改文件 改完之后保存
- 再次提交
- 另外一台机器上在 git pull 同步一下。