【Notes8】Linux开发环境,Linux命令,vi命令,/正则,Hash,iNode,文件查找与读取,Linux开机自启动
文章目录
- 1.VMware和CentOS安装:两个网络适配器是虚拟机的,Linux抄袭unix,Mac os是unix的皮肤
- 2.CRT安装:netstat -nal | grep 22,改注册信息要打开CRT客户端在最上端Help栏中Enter License Data
- 3.CRT配置:SSH2。Hostname:192....。Port:22。Username:root
- 4.Linux命令:linux组成:内核(就是操作系统,和硬件打交道,驱动)。shell(和用户打交道,用户指令翻译成机器码给内核)。文件系统(文件组织方式,linux没有盘符,有目录/文件/链接link)。应用程序
- 4.1 关机/重启/注销
- 4.2 系统信息和性能
- 4.3 磁盘和分区
- 4.4 用户和用户组
- 4.5 网络和进程管理
- 4.6 系统服务
- 4.7 文件和目录
- 4.8 文件查看和处理
- 4.9 打包和解压
- 4.10 RPM包管理
- 4.11 YUM包管理
- 4.12 DPKG包管理
- 4.13 APT软件工具
- 4.14 用户管理及权限
- 4.15 系统与硬件相关
- 4.16 sed:管道过滤(替换,删除)
- 4.17 awk:-F指定分隔符,-V设置变量,NF列数,$NF是一行数据最后一列的值,多用于对字段(像数据库中的字段)
- 4.18 grep:元字符即\d,\D这些是Perl正则-P,扩展正则-E
- 5.vi命令:三种(命令行[Esc],编辑[i],底行[:wq])模式切换
- 6.正则:\d,?* +这些是[a-z]{m,n}这些的简写
- 6.1 组group:如上只想获取@前面的用户名,上面中括号,大括号都出现了,就差小括号
- 7.Hash:传统/一致性
- 8.iNode:磁盘中块和扇区
- 9.文件查找与读取命令:C语言中‘\0’(对应的ASCLL码值为0)表示的空字符
- 9.1 find:找文件
- 9.2 grep:找文件中内容
- 9.3 cat/more:查看文件全部内容
- 9.4 head/tail:查看文件部分内容
- 10.Linux下开机自动重启脚本:/etc/rc.local,Crontab,Systemd
1.VMware和CentOS安装:两个网络适配器是虚拟机的,Linux抄袭unix,Mac os是unix的皮肤
VMware15和CentOS6.9:
链接:https://pan.baidu.com/s/1HV6WqUTAwlOSjWkLXVrCRw ,提取码:1x8e 。VMware15【CG392-4PX5J-H816Z-HYZNG-PQRG2】直接下一步安装。右击图标属性-
兼容性-
更改所有用户的设置-
勾上以管理员身份运行此程序。仅主机模式(Host-only)网卡默认192.168.56…,NAT网卡默认10.0.2…。
1.点击创建新的虚拟机
:自定义(高级)-
稍后安装操作系统-
linux-
版本centos6 64位-
D:\vm.\cent0s6-
使用仅主机模式网络-
将虚拟磁盘存储为单个文件(动态分配20G硬盘)。
2.编辑虚拟机设置
:选中网络适配器添加-
CD/DVD使用CentOS6的iso文件(开启此虚拟机出问题:控制面板-卸载程序-Microsoft Visual C++的两个x64和x86文件右击卸载,不点卸载,点修复再重启计算机)。
3.开启虚拟机安装操系
:默认第一个install,方向键选择红色的Skip(跳过)回车。两个网卡注意要配置网络
自动连接。使用所有空间-
将修改写入磁盘-
Basic Server。鼠标退出虚拟机用ctrl+alt,将一个小窗口移至虚拟机前就可以用QQ截图。
NAT网络模式
:多台虚拟机和宿主组成一个小局域网,之间都可互相通信,虚拟机也可访问外网,如搭建hadoop 集群,分布式服务。桥接网络模式
:只需要一台虚拟机可以和宿主互通,并可以访问外网。如果不需要锁定静态IP(如hadoop不锁定IP很麻烦),那跳过下面步骤。如下同理本地回环配置文件 /etc/sysconfig/network-scriptis/ifcfg-lo。ifdown/ifup关闭/启动etho网卡。
2.CRT安装:netstat -nal | grep 22,改注册信息要打开CRT客户端在最上端Help栏中Enter License Data
ssh客户端软件SecureCRT8.5
:链接:https://pan.baidu.com/s/1Y74YVz2ysQ3rFjGjnthb1Q ,提取码:l8gb 。解压后如下所示:
右击以管理员身份运行上图的scrt…exe文件,安装完后桌面出现图标先不要点击运行,将上图注册机文件夹
里的keygen.exe复制到下图默认安装路径文件夹中,并右击以管理员
打开keygen.exe出现如下图黄色窗口。
在如下License中不用去除中括号,写入SecureCRT.exe中去除,Patch连到SecureCRT.exe和LicenseHelper.exe。
第一次打开下图进行填写注册信息按照上图黄色窗口对应写入,上面patch到就是下面这个.exe文件。
免安装版直接发送到桌面快捷方式:链接:https://pan.baidu.com/s/1QJ01ZByyQheFllLHy6ugAw 提取码:awa2 。如下图红框就是很多的session。
3.CRT配置:SSH2。Hostname:192…。Port:22。Username:root
配置会话的属性,在会话上点击属标右键,选择Properties的Terminal。每30秒向服务器发送一次心跳。
分清Hostname,Username,Name
。
修改Centos的字符集,增加对中文的支持: 登录服务器,输入 su – root 回车后再输入密码,切换到root用户(超级用户,有的远程服务器没权限)。修改字符集:echo LANG="zh_CN.gbk" > /etc/sysconfig/i18n
。export LANG="en_US";export LANGUAGE="en_US";export LC_ALL="en_US";
。
修改时区为亚州上海时间,在root下执行并输入y:
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
。date (不是data)查看系统时间:date -s
修改时间,date -s 2019/07/31,date -s 10:24:00 。date -s ‘2020-01-01 11:11:11’。
4.Linux命令:linux组成:内核(就是操作系统,和硬件打交道,驱动)。shell(和用户打交道,用户指令翻译成机器码给内核)。文件系统(文件组织方式,linux没有盘符,有目录/文件/链接link)。应用程序
win下任务管理器中explorer.exe进程(是Windows程序管理器或文件资源管理器,它用于管理Windows图形壳,包括桌面和文件管理。删除该程序会导致Windows图形界面无法使用)kill掉就不用重启安装软件时,cmd重新explorer.exe执行。
/usr/bin
里是系统预装的可执行程序,会随着系统升级而改变。/usr/local/bin
是给用户放置自己的可执行程序的地方,推荐放在这里,不会被系统升级而覆盖同名文件。/etc
存放的是管理文件用的相关配置文件,比较重要的 /etc/rc,用户信息文件/etc/passwd:
/usr
(Unix System Resource,不是User)放的是应用程序和文件,如果在安装软件的时候,选择默认安装的位置,通常就会默认在这个位置:
/var
用来存放系统运行的日志文件:
/dev
包含所有的设备文件。/proc
是虚拟目录,主要存放的是内存的映射,通过这个目录和内核的数据结构打交道比如修改内核参数,获取进程的相关信息:
/boot
存放了启动 Linux 的核心文件,包含镜像文件和链接文件,破坏后系统基本上就不能启动。/mnt
是移动设备文件系统的挂点。
/bin/sbin
当你装相关的软件或者安装包后,很多时候都会链接在这个目录下面,另外这里也存放了平时我们用的各种shell命令如 cp,ls,dd等。对于sbin,这里的s是super 的意思,意味着需要超级用户才能执行的命令。常见磁盘分区fdisk,创建文件系统的mkfs就在这里。
/lib
开发过程中,共享库文件等很多放在这里,这个目录会包含引导进程所需要的静态库文件,对于用户和系统来说“必需”的库(二进制文件)。/usr/lib一般存放的只是对用户和系统来说“不是必需的”库(二进制文件)。
/lost+found
保存丢失的文件。什么意思,如果我们不恰当的关机操作,可能导致一些文件丢失,这些丢失的临时文件可能就会存放在这里。当重新启动的时候,引导程序就会运行 fsck程序并发现这个文件。
4.1 关机/重启/注销
4.2 系统信息和性能
4.3 磁盘和分区
/home# du -sh * > ./a.log &
,lsblk,看挂载那一列。
4.4 用户和用户组
4.5 网络和进程管理
4.6 系统服务
4.7 文件和目录
4.8 文件查看和处理
4.9 打包和解压
tar只是打包,并不压缩或解压。
-c: 建立压缩档案
-x:解压
-t:查看内容
-j, --bzip2
-z, --gzip, --gunzip --ungzip
-v, --verbose 详细列出处理过的文件
-f, --file ARCHIVE 使用存档文件或设备存档(指定存档文件),切记,这个参数是最后一个参数,后面只能接档案名。tar命令必须和-f命令连用, 在选项f之后的文件档名是自己取的,习惯用.tar 来作为辨识。 如果加z选项,则以.tar.gz或.tgz来代表gzip压缩过的tar包。
4.10 RPM包管理
4.11 YUM包管理
4.12 DPKG包管理
4.13 APT软件工具
4.14 用户管理及权限
如下文件类型p是指管道文件。
4.15 系统与硬件相关
lspci 命令可以查看所有的 PCI 设备,比如主板,声卡等。查看CPU个数,可通过下面的命令:
查看系统所有的逻辑CPU个数:
查看几个文件的内容差异:diff -c file1 file2
。将a.txt每5行分割为一个文件:split -5 a.txt
。free -h
看内存中available容量是否足够。df -lh
查看磁盘空间是否足够。nohup java -jar a.jar & ( jobs命令查看这个后台任务的编号 )。which java。netstat -ntlp查看运行程序的端口。kill -9 %1(这个1就是jobs命令的1编号)。
4.16 sed:管道过滤(替换,删除)
如下将逗号
替换为空格
。s表示替换,g表示全局,即行中所有匹配项都被替换。sed -i ‘s/sys_led/sys_url/g’ /home/sysfs1/s3ip_sysfs_frame/sysurl_sysfs.c。
^匹配行首,$匹配行尾,如下d删除空行或只包含空格的行(因为行首行尾中间为空)。
sed常用于管道过滤,如下把x替换成y。
如下-r打开扩展正则,将逗号换成TAB。
4.17 awk:-F指定分隔符,-V设置变量,NF列数,$NF是一行数据最后一列的值,多用于对字段(像数据库中的字段)
如下按逗号分隔并打印分割后的第三列和第四列。
如下BEGIN指定了处理文本之前需要执行的操作。END指定了处理完所有行之后所需要执行的操作。
如下按逗号分隔并打印最后一列内容。
对比上面,如下一行一行读取并打印,列数>0打印。
如下-c统计个数。
2是个数,不是序号。
4.18 grep:元字符即\d,\D这些是Perl正则-P,扩展正则-E
如下.中的\是转义符,.168
这样重复3次(注意168前面有.
)。
5.vi命令:三种(命令行[Esc],编辑[i],底行[:wq])模式切换
1.插入
:前后上下,以下命令都在命令行模式下。
2.上下左右
:j下,k上,h左,l右。
3.翻页
:
4.跳光标
:
5.删字符和行
:
6.复制粘贴
:
7.替换
:
8.撤,接
:
9.行,找
:
10.重复,大小写
:
11.存盘
:
12.列操作
:
6.正则:\d,?* +这些是[a-z]{m,n}这些的简写
^
:整段字符串开头。$
:整段字符串结束。^[]$
:中括号内部可匹配一个字符。
如下自己输入1,1的蓝色阴影则匹配。
\d
:相等于[0- 9]
,中括号里是什么或什么。
\D
:相等于[^0- 9]
,除了0到9外的任意字符。如下匹配 数字\d 或
数字外任意字符\D,也就是匹配任意字符。
\w
:字母,数字或下划线,常用于互联网用户名的命名上。
如下两个等价。
如下两个等价。
如下两个等价。
如下是邮箱的匹配规则。
6.1 组group:如上只想获取@前面的用户名,上面中括号,大括号都出现了,就差小括号
如下1就是组1。
如下first就是组名,右边是js语法,groups显示underfined因为没命名。
如上只是匹配到组,把组里内容拿出来,组还有一个用法是可以在当前正则中进行引用。
如下为什么不从下标0开始?
如下同上。
1.
如下是组的特殊结构:把组写后面。
2.
如下全是把组写前面。如下要找foo,但foo要在bar后面。
2.1
如下对AABC类型进行限定。
如上没有对后两个进行限定,需要后面两个
不能和前面两个
一样且后面两个
不能互相一样。
7.Hash:传统/一致性
Hash(散列、杂凑)算法(应用于哈希表和摘要密码学),是把任意长度的输入通过特定的算法变换成固定长度的输出,输出的值就是hash值。这个特定的算法就叫hash算法,hash算法并不是一个固定不变的算法。只要是能达到这个目的的算法都可以说hash算法
。例如MD5,SHA,String.hashcode()都是hash算法。
不同的输入可能会得出相同的hash值,那么这种现象称为hash碰撞
,无论是采用那种hash算法,hash碰撞都是不可避免的,我们只能通过改进hash算法,把出现碰撞的概率降低。hash英语中的意思是剁碎的食物,反应在计算机领域大概就是把任意数据切割打碎,输出固定长度的数据。
如下三台缓存服务器S0,S1,S2
,有三万张图片进行缓存,最好能均匀缓存到服务器上分担缓存压力。简单做法对缓存下来的键key哈希计算得到整数,再用缓存服务器数量对这个值取模
,用取模产生的余数来决定数据应该缓存在哪台服务器上。对同一个图片名称即key编号做相同哈希计算时得到hash值不变的,所以当需要访问图片时再次对图片名称进行hash计算和取模计算就能知道图片存放在哪台服务器上。
增加服务器时,图片之前存在S0上,S2服务器读不到,大量缓存失效导致缓存雪崩。所以要用到一致性哈希
。
如下的圆有2的32次方个点组成,称为hash环。A,B,C三台缓存服务器的编号做hash计算即用2的32次方取模,得出的结果一定在0到2的32次方之间的整数对应hash环上一点。a.jpg找到图片的key,相同方法映射到hash环上。缓存服务器和图片
都映射到了hash环上了,现在要确定图片应该被缓存在哪台服务器上?
沿顺时针方向。。。加入新服务器D时,c.jpg会缓存到D上,不会到A上,但其他不变。
一致性hash算法有个问题就是hash偏斜
即A,B,C三台服务器太靠一起,导致大量图会缓存到一台服务器上。解决:还是三台物理服务器,多加点虚拟节点进行分布。
8.iNode:磁盘中块和扇区
linux文件系统中iNode用来存储文件原数据信息
,不存储文件内容
,原数据信息
包括:
类型
:这个文件是个目录还是普通文件。
拥有者
:这个文件是owner还是group owner。
时间
:ctime
:上次inode变动时间。atime
:上次访问时间。mtime
:上次文件内容发生变动时间。
连接数
:有多少文件名同时指向inode。一个文件名只对应一个inode
,但一个inode可能被多个文件名同时指向。
文件内容所在的位置
:文件真正内容所在磁盘块的标号。
1.
文件系统fs在格式化好后,inode以什么样格式存储的呢?整个inode以数组形式存储,每个元素是一个inode
,每个inode大小根据当前文件系统以及整个磁盘大小,inode会有一个固定128或256字节
大小。
2.
除了inode数组,fs初始化好后还会生成一个Map映射关系表
(存储filename和inode index)。现在要读取/ect/1.txt,整个过程怎么样?
先根据文件名到Map中找到inode index,找到下标为假如是3的inode后拿出来如下图左边整个框。当前在读取/ect/1.txt,所以查看是否有读权限,如果有读权限就继续往下,找到文件内容
所在位置(磁盘上块的下标)。
文件内容在磁盘中存储区域如下:以块
进行分隔,每个块大小
也是根据当前fs和整个磁盘大小决定,并不是一个特定大小【扇区在磁盘生产时
有多少个扇区,每个大小是定的,早期扇区512byte,现在4k】。文件系统fs在文件访问过程中不可能直接使用扇区,扇区是硬件
的概念,所以抽象出一个概念:fs角度去看最小文件存储单元就是块
,一个块可以有一个或多个扇区组成(2的幂次方即1,2,4…个扇区)。
一个块采用多少扇区也是有权衡的,比如一个块有好几兆,存一个1k文件也要占一个文件块,造成磁盘空间浪费。块选择过小的话也不好,如果一个块大小1bit,导致一个文件假如是1kb,它所在的块由1千个块组成
,在inode中存储文件内容所在位置这个字段时候造成存1千个块信息(1千个块下标),一个inode(存1千个块下标)不可能128/256字节大小了
,一个inode会很大,进而导致inode数组会很大,整个inode区大,这样导致磁盘损耗大量空间存储inode信息,较少的空间存储真正文件内容。
即使进行权衡,目前存在问题,如经常听到inode用完了即inode数组初始化大小用完了
,声明完数组大小后不能增加或减少了。inode数组用完了即使磁盘还有额外空间也不能存储文件了,常见特别零碎文件数量又特别多占据磁盘大量inode导致整个inode用完。如早期docker采用overlay文件存储格式导致镜像的碎文件很多,导致inode用尽这样问题,后面采用overlay2文件存储格式一定程度上解决了这问题。
查看linux系统中inode数组以及每个文件所对应inode标号:df -i(inode)
,查看当前文件夹下文件所在的inode标号是什么ls -il
。访问1.txt先查文件名和inode标号映射即Map,1.txt能找到270306
这个标号。根据这个标号到1183200这个数组中拿取第270306个
标号的inode。根据这个inode信息查看权限,最终找到1.txt在磁盘中存储位置,最后把这些磁盘块进行读取,最终读取到1.txt这个文件。
如果是一块移动硬盘,在其他设备上创建了文件 把这个移动硬盘拿到linux上面,有没有inode呢?
1.
os可以支持多种fs。2.
inode是在ext2/3/4等linux支持的文件系统(fs)有的。所以移动硬盘看是什么文件系统
了,如果是ntfs或者exfat、fat32等等就是另一种访问形式了,inode其实是文件系统里的概念,而不是linux的概念。
9.文件查找与读取命令:C语言中‘\0’(对应的ASCLL码值为0)表示的空字符
9.1 find:找文件
过滤一下看文件大小:-print0将如上三行打印为1行并用null即‘\0’隔开,再用xargs -0即用‘\0’再分开(原因是默认管道到下一个里面空格会出错)。
如上/是整个系统搜索慢,如下是当前路径搜索快。
日志文件没清空非常大,要找到删除,如下找系统中大文件,超过10M。
如下查找文件夹,文件夹有相应名字或大小属性。
如下基于修改时间,time是天。-1
:今天一天之内。1
:1天前这一天。+1
:1天前。
如下指定最大文件深度。
如下是find指令总结。
9.2 grep:找文件中内容
echo “aa” >> 1.txt,追加内容。cat -n 1.txt(行号:number)。grep “a” 1.txt。
如下*
可换成 * .txt
。
-r:递归子路径,-n:显示行号。-i:忽略大小写。
如下用于java日志文件非常大,要grep出某个异常如ioexception,且需要打印出exception下面几行看什么出了错。
9.3 cat/more:查看文件全部内容
cat的文件非常大,非常占用cpu和内存,这时候可以每次读取一小部分。
如下通过空格往后翻页。
如下指定从第四行开始读。
如下查看前后10行。
9.4 head/tail:查看文件部分内容
如下打印文件最后两行,tail -f 阻塞监控。
df -h查看磁盘使用,占用率太高就需要使用前面find,grep指令并进行删除。
如上找出占空间的文件夹再去里面找。
题目:输出当前路径及当前路径子路径下所有.txt文件,要求大小超过1M,并且按照从大到小
顺序进行排序输出前10个?
先通过find . -name '*.txt' -size +1M -type f
查看是否有大于1M的txt文件,没有的话就不用继续了。
再通过find . -name '*.txt' -size +1M -type f -print0|xargs -0 du -m|sort -nr|head -10
。
10.Linux下开机自动重启脚本:/etc/rc.local,Crontab,Systemd
$ crontab -e:@reboot sleep 300 && /home/wwwjobs/clean-static-cache.sh
(在启动 5 分钟后运行指定脚本)
update-rc.d管理: mv new_service.sh /etc/init.d/,cd /etc/init.d/,sudo update-rc.d new_service.sh defaults 90(90表明一个优先级,越高表示执行的越晚)。在/etc/init.d目录下的可执行程序的优先级会高于/etc/systemd/system/下的.service文件(如果同时存在)。serivice xxxx start|stop|restart
相当于是对/etc/init.d下的xxxx的封装,相当于是一个管理命令,实际执行的是/etc/init.d下的可执行程序。如果/etc/init.d下没有该服务的可执行程序,则使用.service文件。
【Notes8】Linux开发环境,Linux命令,vi命令,/正则,Hash,iNode,文件查找与读取,Linux开机自启动相关推荐
- 关于Linux vi命令 vi命令一览表
vi是所有UNIX系统都会提供的屏幕编辑器,它提供了一个视窗设备,通过它可以编辑文件.当然,对UNIX系统略有所知的人,或多或少都觉得vi超级难用,但vi是最基本的编辑器,学好了vi,以后在UNIX世 ...
- 【Note4】网络,并发/IO,内存,linux/vi命令,正则,Hash,iNode,文件查找与读取
文章目录 1.局域网:CSMA/CD 2.互联网:ARP,DHCP,NAT 3.TCP协议:telnet,tcpdump,syn/accept队列 4.HTTPS协议:摘要(sha.md5.crc). ...
- linux vi de ce,linux下vi命令Vi命令集
linux下vi命令Vi命令集 熟悉VI 是学习UNIX 系统的一个关口 (feming) vi 是visual edit 的缩写 文本编辑器是所有计算机系统中最常用的一种工具.UNIX下的编辑器有e ...
- 使用linux配置环境变量后发现命令不能用问题
使用linux配置环境后发现命令不能用问题 问题 今天刚配置hadoop环境变量,用sourc /etc/profie保存文件之后发现大部分linux命令不能用了,当时很慌,打算reboot一下,发现 ...
- linux查看当前环境信息,Linux查看环境变量当前信息命令
Linux是一个多用户的操作系统.每个用户登录系统后,都会有一个专用的运行环境.通常每个用户默认的环境都是相同的,这个默认环境实际上就是一组环境变量的定义. 在Windows下,查看环境变量的命令是: ...
- linux vi命令的查询,关于Linux vi命令 vi命令一览表
vi的基本概念 基本上vi可分为三种操作状态,分别是命令模式(Command mode).插入模式(Insert mode)和底线命令模式(Last line mode),各模式的功能区分如下: 1. ...
- linux命令--VI命令详解(一)
进入VI命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后一 ...
- Linux 开发环境工具 下载网址大全
Linux 开发环境工具 下载网址大全 package: download from: 软件集成开发环境(代码编辑.浏览.编译.调试) Emacs http:// ...
- 嵌入式linux开发环境搭建(VMware16.0.0+Ubuntu16.04.3_X64)
目录 一.安装VMware 1.VMware介绍 2.安装VMware16.0.0 二.安装ubuntu16.04.3 LTS 1.Ubuntu介绍 2.下载安装包iso 3.安装 四.新安装Ubun ...
最新文章
- 最强六大开源轻量级人脸检测项目分析
- 某程序员总结大厂程序员性格:阿里出来的是人精!百度出来的脾气好!美图出来的一根筋!头条出来的心高气傲!京东出来的满嘴是兄弟!...
- 优先队列 堆实现 java
- java 从mysql 导出到excel_JAVA实现在数据库导出到EXCEL并下载
- Android Studio开发RecyclerView遇到的各种问题以及解决(一)
- 记一次synchronized锁字符串引发的坑兼再谈Java字符串
- HttpURLConnection解析
- java get properties_Java.lang.System之getProperties()方法
- html5伪类触发机制,HTML5表单验证
- Android 系统(255)---dump解码所得图片方法
- 1333和1600能双通道吗_波音797何时到来?会成为A321XLR的竞争对手吗?
- 八个方便C#开发的省时的国外工具
- Hls之Hls.js源码解析
- 一种使用16QAM的OFDM系统MATLAB仿真
- 从入门到入土:Python实现爬取网易云歌词|评论生成词云图
- 《Xenogears》(异度装甲)隐含的原型与密码
- 一周电子取证行业热点简讯
- ITPUB SQL大赛之BUG(二)
- 在后台管理系统中如何设计账户管理?
- 09-Httprunner-生成测试报告
热门文章
- size_t和ssie_t的区别
- EXP的flashback_scn和flashback_time
- 2010世界杯主题曲夏奇拉献唱《Waka Waka》
- string转换bigdecimal_使用MapStruct处理恼人的bean转换
- Java黑皮书课后题第10章:*10.13(几何:MyRectangle2D类)定义MyRectangle2D类
- 程序员面试100题之六:最长公共子序列
- Luogu_2774 方格取数问题
- Git Push 免输 用户名和密码
- .NET Core ConfigureServices
- git学习之时光机穿梭(四)