切换目录命令的使用
命令 | 说明 |
cd目录 | 切换到指定目录 |
cd~ | 切换到当前用户的主目录 |
cd .. | 切换到上一级目录 |
cd . | 切换到当前目录 |
cd - | 切换到上一次目录 |
复制、移动文件及目录命令的使用
cp | 拷贝文件、拷贝目录(拷贝的原文件依旧存在) |
mv | 移动文件、移动目录、重命名 |
例:将AA文件夹下的1.txt文件拷贝到BB文件夹的DD文件夹下:
cp AA/1.txt BB/DD
mkdir 命令选项-p : 创建所依赖的文件夹
重定向的应用:ls AA > CC/info.txt 将AA文件夹中的内容CC文件夹的info.txt文件中(覆盖)
不覆盖:>>在原有的数据上进行追加
cat :只查询文件
gedit:可读可写文件
链接命令的介绍:
ln -s源文件路径(使用绝对路径) | 创建软链接 |
ln | 创建硬链接 |
软链接:
1.如果软链接和源文件不在同一个目录,源文件要使用绝对路径,不能使用相对路径
2.删除源文件则软链接失效
3.可以给目录创建软链接
grep命令选项的使用:
-i | 忽略大小写 |
-n | 显示匹配行号 |
-v | 显示不包含匹配文本的所有行 |
grep结合正则表达式的使用
^ | 以指定字符串开头 |
$ | 以指定字符串结尾 |
. | 匹配一个非换行符的字符 |
进程相关知识点:
1.多进程的使用
#1.导入进程包
import multiprocessing
import time
#跳舞任务
def dance():
for i in range(3):
print('跳舞中...')
time.sleep(0.2)
#唱歌任务
def sing():
for i in range(3):
print('唱歌中...')
time.sleep(0.2)
#2.创建子进程(自己手动创建)
#1.group:进程组,目前只能使用None,一般不需要设置
#2.target:进程执行的目标任务
if __name__ == '__main__':
dance_process = multiprocessing.Process(target=dance)
sing_process = multiprocessing.Process(target=sing)
#3.启动进程执行对应的任务
dance_process.start()
sing_process.start()
#主进程执行唱歌任务
2.获取进程编号
#1.导入进程包
import multiprocessing
import time
import os
#跳舞任务
def dance():
#获取当前进程(子进程)的编号
dance_process_id = os.getpid()
#获取当前进程对象,查看当前代码是由哪个进程执行的:
print("dance_process_id:", dance_process_id, multiprocessing.current_process())
#获取当前进程的父进程编号
dance_process_parent_id = os.getppid()
print("dance_process的父进程编号是:", dance_process_parent_id)
for i in range(3):
print('跳舞中...')
time.sleep(0.2)
#扩展:根据进程编号强制杀死指定进程
os.kill(dance_process_id, 9)
#唱歌任务
def sing():
sing_process_parent_id = os.getppid()
print("sing_process的父进程编号是:", sing_process_parent_id)
for i in range(3):
print('唱歌中...')
time.sleep(0.2)
#获取当前进程的编号
main_process_id = os.getpid()
#获取当前进程对象,查看当前代码是由哪个进程执行的:
print("main_process_id:", main_process_id, multiprocessing.current_process())
#2.创建子进程(自己手动创建)
#1.group:进程组,目前只能使用None,一般不需要设置
#2.target:进程执行的目标任务
dance_process = multiprocessing.Process(target = dance)
print("dance_process:", dance_process)
sing_process = multiprocessing.Process(target = sing)
print("sing_process:", sing_process)
if __name__ == '__main__':
dance_process = multiprocessing.Process(target=dance)
sing_process = multiprocessing.Process(target=sing)
#3.启动进程执行对应的任务
dance_process.start()
sing_process.start()
#主进程执行唱歌任务
3.进程执行带有参数的任务
import multiprocessing
#显示信息的任务
def show_info(name, age):
print(name, age)
if __name__ == '__main__':
# #创建子进程
# #以元组方式传参,元组里的元素顺序要和函数的参数顺序保持一致
#sub_process = multiprocessing.Process(target=show_info, args=("李四", 20))
# #启动进程
#sub_process.start()
#
# 以字典方式传参,字典里面的key要和函数里面的参数名保持一致,没有顺序要求
#sub_process = multiprocessing.Process(target=show_info, kwargs={"age": 20, "name": '王五'})
#启动进程
#sub_process.start()
sub_process = multiprocessing.Process(target=show_info, args=('冯七',), kwargs={'age': 20, })
sub_process.start()
4.进程之间不共享变量
import multiprocessing
import time
#定义全局变量列表
g_list = list()
#添加数据的任务
def add_data():
for i in range(3):
#因为列表是可变类型,可以在原有内存的基础上修改数据,并且修改后内存地址不变
g_list.append(i)
print('add:', i)
time.sleep(0.2)
#读取数据的任务
def read_data():
print("read:", g_list)
if __name__ == '__main__':
#添加数据的子进程
add_process = multiprocessing.Process(target=add_data)
#读取数据的子进程
read_process = multiprocessing.Process(target=read_data)
#启动进程执行对应的任务
add_process.start()
#当前进程等待添加数据的进程执行完成以后代码再继续往下执行
add_process.join()
print("main:", g_list)
read_process.start()
5.主进程会等待所有子进程执行结束后再结束
import multiprocessing
import time
#定义全局变量列表
g_list = list()
#添加数据的任务
def add_data():
for i in range(3):
#因为列表是可变类型,可以在原有内存的基础上修改数据,并且修改后内存地址不变
g_list.append(i)
print('add:', i)
time.sleep(0.2)
#读取数据的任务
def read_data():
print("read:", g_list)
if __name__ == '__main__':
#添加数据的子进程
add_process = multiprocessing.Process(target=add_data)
#读取数据的子进程
read_process = multiprocessing.Process(target=read_data)
#启动进程执行对应的任务
add_process.start()
#当前进程等待添加数据的进程执行完成以后代码再继续往下执行
add_process.join()
print("main:", g_list)
read_process.start()import multiprocessing
import time
#定义全局变量列表
g_list = list()
#添加数据的任务
def add_data():
for i in range(3):
#因为列表是可变类型,可以在原有内存的基础上修改数据,并且修改后内存地址不变
g_list.append(i)
print('add:', i)
time.sleep(0.2)
#读取数据的任务
def read_data():
print("read:", g_list)
if __name__ == '__main__':
#添加数据的子进程
add_process = multiprocessing.Process(target=add_data)
#读取数据的子进程
read_process = multiprocessing.Process(target=read_data)
#启动进程执行对应的任务
add_process.start()
#当前进程等待添加数据的进程执行完成以后代码再继续往下执行
add_process.join()
print("main:", g_list)
read_process.start()