前情回顾
1. 基本命令
chmod df date shutdown ln
2. vi 编辑器
i o esc :wq :q!
3. 创建用户
useradd -> passwd -> vi /etc/sudoers -> vi /etc/passwd
4. 软件安装
sudo apt update
sudo apt install
sudo apt remove
5. ssh 远程链接
ssh tarena@172.40.45.25
scp file.txt tarena@172.40.45.25:/home/..
ssh-keygen-> 公钥 私钥
服务器记录公钥 : ~/.ssh/authorized_keys
Linux操作系统环境使用
理论知识:
1. 操作系统的作用
2. Linux的操作系统特点和应用场景
掌握内容:
1. Linux 文件结构特点
2. Linux操作系统下文件位置的表达
实操内容:
1. Linux基础命令使用 (重点)
2. 常用Linux功能
压缩包处理 软件安装 用户创建 vi使用
3. 远程管理服务器
4. 服务端启动Python程序
熟练在Linux系统下进行开发工作和环境部署
《鸟哥私房菜 基础》
练习01:
使用dict.txt 完成
编写一个函数,参数传入一个单词,返回这个单词
的解释,如果单词不存在则返回 "Not Found"
注意: 每个单词一行
单词和解释之间有空格
单词按照从小到大排列
练习02:
编写一个函数,函数参数传入一个指定文件,执行
函数后,将该文件复制一份到当前程序运行目录下
注意:
指定文件: 可能是文本文件也可能是二进制文件
plus : 假设文件比较大,不要一次性读取
提示: 复制文件本质是从一个文件读取写入另一个文件
def copy(filename):
pass
练习03
编写一个程序,循环的向文件 my.log 中写入
内容: (每次写一行,每次写入间隔2秒)
1. Tue Jun 1 17:25:47 2021
2. Tue Jun 1 17:25:49 2021
3. Tue Jun 1 17:25:51 2021
4. Tue Jun 1 17:29:18 2021
5. Tue Jun 1 17:29:20 2021
要求: 每行要实时的显示出来
当程序终止后,如果重新启动继续往下写
序号能够衔接
提示 :import time -> sleep(2) ctime()
作业 : 1. 先熟悉今天的函数 open read write
有一个列表,里面每一项都是一个文本文件位置
如: ["../day01/1.txt","../day02/2.txt"..]
请编写一个程序,将列表中的文件合并为1个大文件
命名为 union.txt
"""
使用dict.txt 完成
编写一个函数,参数传入一个单词,返回这个单词
的解释,如果单词不存在则返回 "Not Found"
注意: 每个单词一行
单词和解释之间有空格
单词按照从小到大排列
"""
def query_word(word):
file = open("dict.txt") # r 打开
# 每次取一行进行比对
for line in file:
tmp = line.split(' ',1) # tmp->[word,xxx]
if tmp[0] > word:
break # 如果遍历的单词已经大于Word 就没必要找了
elif tmp[0] == word:
return tmp[1].strip() # 去除字符串两侧的空格
return "Not Found"
print(query_word("abc"))
"""
编写一个函数,函数参数传入一个指定文件,执行
函数后,将该文件复制一份到当前程序运行目录下
注意:
指定文件: 可能是文本文件也可能是二进制文件
plus : 假设文件比较大,不要一次性读取
提示: 复制文件本质是从一个文件读取写入另一个文件
"""
def copy(filename):
fr = open(filename,'rb') # 源文件
new = filename.split('/')[-1] # 取文件名
fw = open(new,'wb')
# 边读边写
while True:
data = fr.read(1024)
if not data:
break # 到了文件结尾
fw.write(data)
fr.close()
fw.close()
copy("/home/tarena/下载/gyy.png")
"""
练习03
编写一个程序,循环的向文件 my.log 中写入
内容: (每次写一行,每次写入间隔2秒)
1. Tue Jun 1 17:25:47 2021
2. Tue Jun 1 17:25:49 2021
3. Tue Jun 1 17:25:51 2021
4. Tue Jun 1 17:29:18 2021
5. Tue Jun 1 17:29:20 2021
要求: 每行要实时的显示出来
当程序终止后,如果重新启动继续往下写
序号能够衔接
提示 :import time -> sleep(2) ctime()
"""
import time
file = open("my.log",'a+',buffering=1)
file.seek(0,0) # 文件偏移量到开头
# 序号 初始 = 行数 + 1
n = len(file.readlines()) + 1
while True:
msg = "%d. %s\n"%(n,time.ctime())
file.write(msg)
n += 1 # 序号增加
time.sleep(2) # 间隔2s
"""
文件读写缓冲
"""
# 设置行缓冲
# file = open("file.txt",'w',buffering=1)
# 设置缓冲大小
file = open("file.txt",'wb',buffering=10)
while True:
msg = input(">>")
if not msg:
break
file.write(msg.encode())
# file.flush() # 刷新缓冲
file.close()
"""
字节串类型
是否所有字符串都能转换为字节串 是
是否所有字节串都能转换为字符串 不是
"""
# 纯英文字符字节串
bytes1 = b"Hello world"
print(type(bytes1))
# 非英文字符 使用encode()转换
bytes2 = "你好".encode()
print(bytes2)
# decode() 字节串--》字符串
print(bytes2.decode())
print(b'\xe4\xbd\xa1\xf3\xa3\xbd'.decode())
"""
打开文件 演示
"""
# 读方式打开文件
# file = open("../day02/2.txt",'r')
# 写打开
# file = open("file.txt",'w') # 自动创建/清空内容
# 追加方式
file = open("file.txt","a")
# 操作文件
# 关闭
file.close()
"""
文件读取操作 演示
* 如果读取到了文件结尾继续读会返回空字串
"""
# 读方式打开文件
# file = open("file.txt",'r')
# 二进制读
file = open("file.txt",'rb')
# 读取文件内容
data = file.read()
print(data.decode())
# 每次读取一个字符,将整个文件读完并按照原格式打印
# while True:
# data = file.read(1)
# if data == "":
# break
# print(data,end="")
# 按行读取
# line = file.readline()
# print(line)
# 读取多行内容
# lines = file.readlines(16)
# print(lines) # 列表 每项是一行内容
# 迭代获取每行
# for line in file:
# print(line)
file.close()
"""
文件偏移量
"""
# 打开文件 可读可写
file = open("file.txt","wb+")
file.write(b"Hello Kitty\n")
file.flush()
print("文件偏移量:",file.tell())
# 操作文件偏移量 0 开头 1 当前 2 结尾
file.seek(-3,2)
data = file.read()
print(data)
file.close()
"""
with 语句块简单示例
"""
with open("file.txt",'r') as file:
data = file.read()
print(data)
# 语句块结束 file也会销毁
"""
文件写操作演示
"""
# 写方式打开文件
file = open("file.txt",'wb')
# file = open("file.txt",'a') # 追加打开
# 写入内容
file.write("hello,死鬼\n".encode())
n = file.write("哎呀,干啥\n".encode())
print(n)
# data = [
# "六一快乐\n",
# "今日躺平\n"
# ]
# # 将列表中的每一项分别写入
# file.writelines(data)
file.close()