23k 21 分钟

# Shell 编程 # 正则表达式(基础) 正则表达式与通配符 正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配。grep、awk、sed 等命令可以支持正则表达式。 通配符用来匹配符合条件的文件名,通配符是完全匹配。ls、find、cp 这些命令不支持正则表达式,所以只能使用 shell 自己的通配符来进行匹配了。(通配符不多,有 * ? [] ) 基础正则表达式(不包含扩展正则表达式) | 元字符 | 作用 | |---|---| | * | 前一个字符匹配 0 次或任意多次 | | . | 匹配除了换行符外任意一个字符 | | ^ | 匹配行首。例如:^hello...
21k 19 分钟

# Shell 概述 # Shell 是什么? shell 是一个命令行解释器,它为用户提供了一个向 linux 内核发送请求以便运行程序的界面系统级程序,用户可以用 shell 来启动、挂起、停止甚至是编写一些程序。 硬件 -> 内核 ->shell 命令解释器 -> 外层应用程序 shell 还是一个功能相当强大的编程语言,易编写,容易调试,灵活性较强。shell 是解释执行的脚本语言,在 shell 中可以直接调用 linux 系统命令。 # Shell 的分类 Bourne Shell:1979 年起 unix 开始使用 Bourne...
8.1k 7 分钟

# 简介 # 软件包分类 源码包(含脚本安装包):大部分都是 c 语言编写,安装比较慢,容易报错。 二进制包(含 rpm 包、系统默认包):目前 linux 主要安装方式,源代码包经过编译后的二进制机器语言包(0101),好处是安装时间比较慢,节约时间,一般厂家预先编译,无法阅读源代码 redhat 系列和 debian 系列最大的不同就是软件包管理不同:redhat-rpm,debian-deb 脚本安装包:不多见,类似 windows 中的安装程序,有窗口界面,点击下一步下一步,其实就是给源码包写入一个安装程序 # 源码包优点 开源,linux 比 windows...
1.7k 2 分钟

# 简介 snowflake 是一家搞云计算仓库的公司,我们这里使用的 snowflake 类似于一个数据仓库,或者类似于一个 database,一种网络 db,不是 twitter 的 snowflake 算法。 申请(30 天试用期):https://signup.snowflake.com/ 登录:https://app.snowflake.com/learn 点击左侧菜单中 Classic Console 进入 worksheet: 我的会跳转到: 简单查询: select * from snowflake.account_usage.access_historycreate or...
21k 19 分钟

# 文件搜索命令 find:文件搜索,生产环境慎用,-iname 忽略大小写,find ./-name xxxx locate:文件搜索,updatedb,/tmp 目录不收录 whereis:可执行文件搜索,查配置文件,帮助文档,可执行文件路径, 1 - 命令的帮助,5 - 胚子和文件的帮助,whereis passwd 首先显示命令的帮助 which:可执行文件搜索 grep:文件内容搜索,类似还有 cat,tac(逆转显示),more,less(区别于 more,可以往回翻页) # 帮助命令 查看命令作用,选项; 查看配置文件 name,存放信息,文件格式 man services...
1.6k 1 分钟

# 二维数组中的查找 题目描述:有多根打乱的绳子,绳子长度为正整数,现将他们分组,每组有几根绳子,现将每组绳子横向拼接并排放置,问从中间切一刀,尽可能不切断单根绳子的最佳选择。参考下图,比如有 3 组绳子:[[1, 2, 7], [4, 5, 1], [2, 2, 3, 3]],第一组和第二组都是 3 根,第三组是 4 根。 # 方法 def cut_lines1(input_list): maintenance_list = [] for ls in input_list: cut_list = [] for i in range(len(ls)): if i != 0:...
469 1 分钟

# 二维数组中的查找 题目描述:判断下面输出。主要考察全局变量的变化情况。 # 题目 name = '123'def func2(): print(name)def func1(): name = '456' func2()func1()# 答案 输出 '123' # 分析 python 中对于全局变量的修改需要先将变量名用 global 修饰,具体如下,输出为 '456',这样就能改变全局变量的值了。而上面的情况是因为当我们将 456 分配给名称 name 时,Python 会创建一个局部变量来隐藏同名的全局变量。 name...
1.2k 1 分钟

# 二维数组中的查找 题目描述:讲述一下 python 中正则 re 模块下 search 和 match 区别。 # 练习 if __name__ == '__main__': import re string = 'cat like fish, rabbit like carrot.' sub_string = re.sub('like', 'hate', string, flags=re.I) print(sub_string) # 输出:cat hate fish, rabbit hate carrot....
222 1 分钟

# 二维数组中的查找 题目描述:判断下面输出。主要考察异常处理时执行顺序。 # 题目 def divide(a, b): try: return a/b except Exception: return -2 finally: return -1print(divide(2, 1), divide(2, 0))# 答案 输出 - 1,-1 # 分析 try-finally 语句 是 无论是否发生异常都将执行最后的代码。也就是如果发生异常,会先走异常处理分支,走完异常处理分支后会走 finally 分支。
1.3k 1 分钟

# 二维数组中的查找 题目描述:简述 python 中深浅拷贝的区别。 # 练习 # 下面改变 b 的第一个元素后,a 的第一个元素也变化了,使用 id 查看两对象是一个a = [1, 2, 3]b = ab[0] = 4print(b, id(b)) # [4, 2, 3] 1722827161800print(a, id(a)) # [4, 2, 3] 1722827161800# 改变 b 的第一个元素后 a 不影响,id 查看是两个对象import copya = [1, 2, 3]b = copy.copy(a)b[0] = 4print(b, id(b)) # [4, 2,...