一、文件查找
1.按照名字查找
find 查找目录 -name 文件名字
2.通配符
*匹配多个字符
?匹配单个字符
3.文件大小查找
find 文件目录 -size [+,-]长度
查找当前目录以及子目录下大于4K的文件
find . -size +4k
查找当前目录以及子目录下小于4K的文件
find . -size -4k
二、压缩和打包
1.zip
zip
unzip
2.gzip
gzip使用
解压
gzip -d
3.tar命令
常用
打包
tar cvf
压缩
所以说压缩一个文件分两步,先打包,后压缩
tar命令也可以一步到位
tar zcvf
相应的解包也可以一步到位
tar xcvf
或者tart xvf先解压,-C执行解压到的目录
三、权限管理
rwx-rwx-rwx
四、多进程
1.创建进程
import multiprocessing import time def task1(): for i in range(10): print('A -- ',i + 1) time.sleep(1) def task2(): for i in range(10): print('B -- ',i + 1) time.sleep(1) if __name__ == '__main__': p1 = multiprocessing.Process(target=task1) p2 = multiprocessing.Process(target=task2) p1.start() p2.start()
2.获取进程id
获取进程ID和进程的父ID,进程名
这两个进程都是同一个父进程拉起来的
import multiprocessing import time import os def task1(): mp = multiprocessing.current_process() print("task1: ", mp) print(f"任务1的PID:{os.getpid()} 父进程的PID是{os.getppid()}") time.sleep(1) def task2(): mp = multiprocessing.current_process() print("task2: ", mp) print(f"任务2的PID:{os.getpid()} 父进程的PID是{os.getppid()}") time.sleep(1) if __name__ == '__main__': print(f"主进程的PID:{os.getpid()} 父进程的PID是{os.getppid()}") #获取当前进程对象 mp = multiprocessing.current_process() print("main: ",mp) p1 = multiprocessing.Process(target=task1,name='p1') p2 = multiprocessing.Process(target=task2,name='p2') print(p1) print(p2) p1.start() p2.start() print(p1) print(p2)
3.进程传参
必须要传入可迭代参数
import multiprocessing import time def task(count): for i in range(count): print("任务执行中。。。") time.sleep(0.2) else: print("任务执行完成") if __name__ == '__main__': #因为参数 sub_process = multiprocessing.Process(target=task,args=5) sub_process.start()
import multiprocessing import time def task(count): for i in range(count): print("任务执行中。。。") time.sleep(0.2) else: print("任务执行完成") if __name__ == '__main__': sub_process = multiprocessing.Process(target=task,kwargs={"count": 4}) sub_process.start()
字典必须要要与参数名相同
import multiprocessing import time def task(count): for i in range(count): print("任务执行中。。。") time.sleep(0.2) else: print("任务执行完成") if __name__ == '__main__': #因为参数 sub_process = multiprocessing.Process(target=task,kwargs={'a':2}) sub_process.start()
4.进程不共享全局变量
import multiprocessing import time g_list = list() def add_data(): for i in range(6): g_list.append(i) print("add: ",i) time.sleep(0.2) print("add_data: ",g_list) def read_data(): print("read_data",g_list) if __name__ == '__main__': # 创建添加数据的子进程 add_data_process = multiprocessing.Process(target=add_data) # 创建读取数据的子进程 read_data_process = multiprocessing.Process(target=read_data) #启动子进程执行对应的任务 add_data_process.start() #阻塞函数,add_data_process执行完才会继续向下执行 add_data_process.join() #全局变量不共享 read_data_process.start()
5.守护进程
5.1.方式1
import multiprocessing import time g_list = list() def add_data(): for i in range(6): g_list.append(i) print("add: ",i) time.sleep(0.2) print("add_data: ",g_list) def read_data(): print("read_data",g_list) if __name__ == '__main__': # 创建添加数据的子进程 add_data_process = multiprocessing.Process(target=add_data) # 创建读取数据的子进程 read_data_process = multiprocessing.Process(target=read_data) #启动子进程执行对应的任务 add_data_process.start() #阻塞函数,add_data_process执行完才会继续向下执行 add_data_process.join() #主进程结束之前,手动调用方法结束子进程 add_data_process.terminate() print("add_data terminate") #全局变量不共享 read_data_process.start()