周末作业,基本都是讲过的知识,以及做过的题,部分没讲过的题目,再给大家补充下。

1.关于压缩题,理解tar和gz

http://yuchaoit.cn/all_nginx.tgz

[root@yuanlai-0224 test_tar]# # 看到此tgz,就得记住,它是2个打包+压缩步骤,tar + gz
[root@yuanlai-0224 test_tar]# 
[root@yuanlai-0224 test_tar]# 
[root@yuanlai-0224 test_tar]# # 万能解压命令 tar -zxvf 
[root@yuanlai-0224 test_tar]# 
[root@yuanlai-0224 test_tar]# tar -zxvf all_nginx.tgz 

# 第二条命令,分别进行先解压缩gz后缀,再拆包tar归档操作,最终得到,原本的零散文件
gzip -d all_nginx.tgz 
tar -xvf all_nginx.tar


http://yuchaoit.cn/all_nginx.tar
tar -xf all_nginx.tar

http://yuchaoit.cn/all_nginx.tar.gz
tar -zxvf all_nginx.tar.gz


http://yuchaoit.cn/nginx-logo.png.gz

[root@yuanlai-0224 test_tar]# gzip -d nginx-logo.png.gz 
[root@yuanlai-0224 test_tar]# ll
总用量 4
-rw-r--r--. 1 root root 368 10月 19 07:55 nginx-logo.png
[root@yuanlai-0224 test_tar]# 
[root@yuanlai-0224 test_tar]# 
[root@yuanlai-0224 test_tar]# file nginx-logo.png 
nginx-logo.png: PNG image data, 121 x 32, 1-bit colormap, non-interlaced






文件操作,测试数据
[root@yuanlai-0224 test_tar]# cat  t1.txt 
20
26
13
18
28
7
14
30
8
15
3
18
10
25
25
7
30
28
28
23
0
4
30
14
32
3
9
20
31
5


生成20个随机数
for i in {1..30};do echo $(expr $RANDOM / 1000 ) ;done> t1.txt


2.读取文件内容且倒叙排序,从小到大,从大到小, 
# sort是对文本排序的,默认是以第一位字符进行大小比较
[root@yuanlai-0224 test_tar]# cat t1.txt  | sort -n -r




3.读取文件内容,排序,再统计重复行的次数
[root@yuanlai-0224 test_tar]# cat t1.txt  | sort -n | uniq -c
      1 0
      2 3
      1 4
      1 5
      2 7
      1 8
      1 9
      1 10
      1 13
      2 14
      1 15
      2 18
      2 20
      1 23
      2 25
      1 26
      3 28
      3 30
      1 31
      1 32




4.统计文件一共有多少行
cat t1.txt |wc -l
统计文件字符数
cat t1.txt |wc -m
统计文件字节数
cat t1.txt |wc -c





5.如何查看文件的详细信息。

file t1.txt



6.给启动django的命令做一个简单的别名(alias)

alias stdj='python3 manage.py runserver 0.0.0.0:8000'

取消别名
unalias stdj 

永久好使,并且别影响到被人,怎么永久添加
写入到自己的用户环境变量文件中
~/.bash_profile



7.进程查找、进程杀死
linux 可以进程找出所有进程信息的组合命令
1. ps -ef  |  grep '你要找的进程名'   # 找到的结果,去看它的pid进程号,然后kill干掉即可
2.   kill 进程pid





8.linux解析dns的命令,解析,就是将域名,解析到ip的一个操作

1. linux能正确进行互联网dns解析的文件是什么
/etc/resolov.conf ,在这里头写入域名服务器地址
(114.114.114.114   223.5.5.5  115.115.115.115 223.6.6.6 119.29.29.29)



(超哥的机器 192.168.0.140 搭建dns服务端,以及有我的域名数据库)
你们所有人

/etc/resolv.conf ,写入 192.168.0.140 域名服务器地址
就可以享有,超哥的dns服务器里面,数据库中的记录了。


192.168.0.170   yjy.top    # 只想在自己本地,测一测这个域名,(/etc/hosts)


如果yjy想让全班同学,咱们这个局域网内(比如在公司的集团,局域网内,也能够实现某域名的解析)






2. 如何查看域名,对应的ip是多少?
ping 会自动帮你去做域名查找
ping baidu.com
(ping 在你本机,去测一测,你和对方的机器,是否通信,ping命令会不断的发送数据包,给对方服务器,对方如果存活,会给你响应)

3. linux也提供了更专业化的,域名查找,解析的命令

- dig

dig @223.5.5.5   你的域名





- nslookup (name server look up 名称服务器查找,简称,域名查找 )
如何用,提供了交互式(等待你输入,然后等待给结果),非交互式(命令下去,直接出结果)的2个操作

# 交互式,直接输入该命令
[root@yuanlai-0224 test_tar]# nslookup 
> www.yuchaoit.cn


Server:		114.114.114.114
Address:	114.114.114.114#53

Non-authoritative answer:
Name:	www.yuchaoit.cn
Address: 123.206.16.61



# 非交互式
[root@yuanlai-0224 test_tar]# nslookup apecome.com
Server:		114.114.114.114
Address:	114.114.114.114#53

Non-authoritative answer:
Name:	apecome.com
Address: 123.57.242.10



9.scp远程传输

windows 和linux如何传递呀
lrzsz一个
xftp一个

你的windows,你的虚机,(互相传文件,有什么限制吗?,比如穿不过去,网络不通等限制)
有,如何理解
    王仁刚说
        lrzsz,不支持直接传输零散文件,需要打包为单个文件,即可传输
    超弟说
        linux打开了防火墙,禁止文件传输
	

正常情况下
	win,linux之间互传,没什么影响
	

你的linux虚拟机,和你同桌的linux虚拟机,传文件,有什么影响吗?
有
	1. 同桌不给你密码
	2. 你和同桌不在一个网段 (每个人都是NAT网段,都是自己的私有局域网)(改为桥接,在同一个网段下即可)


你的linux虚拟机(自己本地的局域网),和你的阿里云(互联网中的公网),有什么限制吗?


1.虚拟机,能找到 阿里云 
	你的虚拟机(192.168.0.xx)
	↓
	宿主机windows
	↓
	交换机,路由器(有绑定的中国移动的公网宽带ip)
	↓
	阿里云(购买阿里云时候,人家绑定了一个固定的公网ip,全世界都可以访问到的)
	
	

2. 阿里云找不到你的虚拟机 

	阿里云(购买阿里云时候,人家绑定了一个固定的公网ip,全世界都可以访问到的)
	×
	你们家,你的学校的路由器的公网ip(这里就没有)
	×
	你的虚拟机
	


先玩简单的,两个linux机器之间,传递文件
systemctl restart network # 重启network,读取网卡配置文件再生效吧!
准备虚拟机1 192.168.0.240

虚拟机2     192.168.0.158



# scp的语法(安装的,远程传输,基于ssh协议认证的传输,机器1,要传文件给机器2,需要进行ssh的账户密码认证
# 好比ssh去登录其他人的机器

# scp的语法
1. 我登录了192.168.0.240 这个机器A,把机器A的/etc/passwd文件,发给机器B  192.168.0.158,放到/opt下

语法
scp  源数据的机器   远程机器

# 把当前登录的机器的 /etc/passwd文件发给别人  
scp /etc/passwd    root@192.168.0.158:/opt

# 把自己的 /var/log/整个目录,全发过去到 /tmp/
scp -r   /var/log/     root@192.168.0.158:/tmp/


# 以登录的机器是 192.168.0.240这台
# 需求是, 把远程的数据 拿过来

把192.168.0.158上的/etc/passwd 拿到自己的 /opt目录下


scp 你想要的数据机器   放到那

scp   root@192.168.0.158:/etc/passwd      /opt/


# 递归的远程 拿别人的文件夹数据

scp  -r  root@192.168.0.158:/var/log      /opt/


# 课件,准备好2个linux机器(安装2个虚机,和同桌互传,改为 桥接模式)

10.45上课 

# 练习1
# 把机器1的 /var/log/messages ,远程拷贝到机器2的/opt/下
# 把机器1的 /var/log/,远程拷贝到机器2的/opt/下

# 把机器2的 /home文件夹,全部拷贝到机器1 的 /tmp目录下。





10.粉碎文件
# rm命令,删除文件,其实还是可以恢复的,现在的文件系统,都是日志型系统(你的操作,其实被系统监控,录制,做了个备份)
# rm删除数据后,磁盘其实还未立即彻底删除,根据磁盘恢复数据手段,还是可以把数据拿回来的

shred 文件名
这个命令之所以叫粉碎文件,是随机写入一堆二进制数据,导致原文件无法使用

随机写入二进制数据到文件中,比较危险,不推荐使用
[root@yuanlai-0224 test_tar]# shred gushi.txt