非贪婪匹配
给定一个字符串表示的数字,判断该数字末尾0的个数。例如:
"123000":3个0
"10100":2个0
"1001":0个0
可以很容易地写出该正则表达式:(\d+)(0*)
这是因为正则表达式默认使用贪婪匹配:任何一个规则,它总是尽可能多地向后匹配,因此,\d+总是会把后面的0包含进来。
12(\\d+?)(0*)
这样就代表非贪婪匹配,不会让\d少匹配,0*多匹配
1(\d??)(9*)
我们再来看这个正则表达式(\d??)(9*),注意\d?表示匹配0个或1个数字,后面第二个?表示非贪婪匹配,因此,给定字符串"9999",匹配到的两个子串分别是""和"9999",因为对于\d?来说,可以匹配1个9,也可以匹配0个9,但是因为后面的?表示非贪婪匹配,它就会尽可能少的匹配,结果是匹配了0个9
搜索和替换
使用正则表达式分割字符串可以实现更加灵活的功能。String.split()方法传入的正是正则表达式。我们来看下面的代码:
123"a ...
简介
是重要的系统信息文件,记录了重要的系统事件
一般保存在/var/log目录下
12345678910vmware-vmsvc-root.1.log.rw------- root root 4.9 KB Sat Oct 5 08:53:43 2024 vmware-vmsvc-root.2.log.rw------- root root 3.6 KB Fri Oct 4 21:03:05 2024 vmware-vmsvc-root.3.log.rw------- root root 3.4 KB Sat Oct 5 09:15:19 2024 vmware-vmsvc-root.log.rw------- root hadoop 1.1 KB Sun Sep 29 19:47:23 2024 vmware-vmtoolsd-hadoop.log.rw------- ...
简介
一个正则表达式就是一个描述规则的字符串,所以,只需要编写正确的规则,我们就可以让正则表达式引擎去判断目标字符串是否符合规则。
正则表达式是一套标准,它可以用于任何语言。Java标准库的java.util.regex包内置了正则表达式引擎,在Java程序中使用正则表达式非常简单。
举个例子:要判断用户输入的年份是否是20##年,我们先写出规则如下:
一共有4个字符,分别是:2,0,0~9任意数字,0~9任意数字。
对应的正则表达式就是:20\d\d,其中\d表示任意一个数字。
在java中就是
120\\d\\d
注意Java字符串用\\表示\。
匹配规则
正则表达式的匹配规则是从左到右按规则匹配
&
正则表达式
1a\&c
它能精确匹配字符串"a&c"
但不能匹配"ac"、"a-c"、"a&&c"等
如果想匹配非ASCII字符,例如中文,那就用\u####的十六进制表示,例如:a\u548cc匹配字符串"a和c",中文字符和的Unicode编 ...
1.批量修改文件的前缀和后缀
123456789101112131415161718192021222324252627282930#!/bin/zshecho "请输入重命名文件夹所在的目录"read dirif [ !-d "$dir" ]then echo "目录不存在" exit 1fiecho "前缀"read prefixecho "后缀"read suffixcd "$dir"for file in * do if [ -d "$file" ] then continue fi ext="${file##*.}" base="${file%.*}" new_name="${prefix}${base}${suffix:+.$suffix}" mv "$fi ...
zsh
基础配置
zsh是bash的升级版可以说是
可以使用
1bat /etc/shells
来查看本系统可以支持的shell有哪些
123456789101112131415☁ clash bat /etc/shells ───────┬──────────────────────────────────────────────────────────────────────── │ File: /etc/shells───────┼──────────────────────────────────────────────────────────────────────── 1 │ # /etc/shells: valid login shells 2 │ /bin/sh 3 │ /bin/bash 4 │ /usr/bin/bash 5 │ /bin/rbash 6 │ /usr/bin/rbash 7 │ /usr/bin/sh 8 │ /bin/dash 9 │ /usr/bin/das ...
shell简介
shell是一个命令行解释器,就是给Linux内核发送一个请求,然后返回某些东西。可以用来编写命令脚本等
shell脚本的格式要求
bash脚本开头要以#!/bin/bash开头
脚本要有可执行的权限
而zsh就要以zsh开头了
脚本启动可以./test.sh启动,或者是
1sh test.sh
shell变量
shell变量分为系统变量和用户变量
系统变量是$HOME/$PWD等等
1set
显示当前shell的所有变量
1234567891011status=0sysparamstermcapterminfouserdirsusergroupswatch=( )widgetszle_bracketed_paste=( $'\C-[[?2004h' $'\C-[[?2004l' )zsh_eval_context=( toplevel )zsh_scheduled_events
我的zsh Shell中一部分变量
1234567☁ ~ echo $HOME/home/mengnankk☁ ~ echo $PWD /ho ...
dust(du)
123456789101112131415161718192021222324☁ ~ dustDid not have permissions for all directories (add --print-errors to see errors)101M ┌── libhdfspp.a │██▓░░░░░░░░░░░░░░░░ │ 7%167M ┌─┴ native │███░░░░░░░░░░░░░░░░ │ 12%167M ┌─┴ lib │███░░░░░░░░░░░░░░░░ │ 12% 99M │ ┌── hadoop-project-dist │██▓▓▓▓▒▒▒▒▒▒▒▒▒▒▒░░ │ 7% 91M │ │ ┌── apidocs ...
进程
每一个运行的程序都是一个进程,每个进程都会分配一个pid号(进程号)
在windows中一个程序有多个线程
程序run到内存里面就是一个进程
每个进程都可能有两种方式:
前台和后台
后台的进程一般是守护进行,一般的系统服务就是以后台进程的方式进行的
比如mysql进程
ps命令用来查看系统中有哪些进程在运行
-a 显示所以
-u以用户的形式
-x显示后台进程运行的参数
ps命令会显示
pid tty time cmd 四种信息选项
tty是终端机号,终端名称
time是 进程所消耗cpu的时间
cmd 是正在执行的命令或进程的名字,执行指令
一般来说组合使用**再加上|more分页查看
我的部分进程
123456789101112131415root 106193 0.0 0.0 0 0 ? I 18:27 0:00 [kworker/u259root 106371 1.8 0.2 302928 9088 ? Ssl 18:27 0:00 /usr/libexec/root ...
队列
队列是一种线性数据结构,先进先出,队列常用于各种需要顺序处理的场景,如任务调度、资源分配、广度优先搜索等
简单的链式队列实现
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657public class Linkedqueue { private Node front; private Node rear; private int size; public Linkedqueue(Node front, Node rear, int size) { this.front = front; this.rear = rear; this.size = size; } public boolean isEmpty() { return front == null; } publi ...
English
未读单词遗忘背诵表9.7
cliff 悬崖
credit 贷款 借款
horizon 地平线
vice 恶习
pail 桶 bucket
dairy 奶制品|和daily区分开
adept 熟练的
单词遗忘背诵表9.12
absorb 吸收
abolish 废除
accelerate 加速
above 超过
abundant 富足
accountable 责任
accumulate积累
accuse积累
ace 高手
acquaint 使熟悉
单词遗忘表9.18
accompany 陪伴
accordingly 相应的
accorddance 适应
advocate 建议,主张
aerial 空中的
affair 事务
affluent 富裕的
acre 地产,土地
acquaint 告知
单词遗忘表9.20
agenda 议题
agent 代理人
aid 帮助
air-conditioning 空调
单词遗忘表9.21
aisle 走廊
alert 警告
alley 小巷
allowance 津贴
ally 同盟
单词遗忘表9.22
alphabet 字母
alte ...
组
每一个用户必须属于一个组,不能独立与组外。每个文件有所有者,所在组,其他组的概念
修改文件的所有者
1chown 用户名 文件名
创建组,加入用户
12groupadd groupuseradd -g group username
谁创建了文件,文件就属于这个用户所在的组
修改用户的Uid
1uermod -u 1500
一般1000以内是系统用户
用户信息
1id name
改变文件的用户不会改变文件所在的组
改变文件所在的组
1chgrp 组名 文件名
改变用户的组
1usermod -g 组名 用户名
1usermod -d 目录名 用户名
修改组的UId
1groupmod -g 2000 name
查看在哪个组
1groups name
改变用户初始登录的目录,用户需要有进入该目录的权限才行
权限
文件操作组和其他组分别对文件有不同的操作权限
1drwxrwxrwx 2 mengnankk mengnankk 4096 9月 4 17:04 smbshare/
第0位代表文件类型
l表示链接,相当于快捷方式
d表示目录
c表示字符设备,相当于文件鼠标键盘
...