0%

正则和文件目录权限记录

正则

1
/ ...  / 包裹内容

匹配模式

1
2
3
4
. 表示通配符
^表示开始符
$ 表示结束符
\ 表示转义符

字符集(用于表示可能包含某种字符)

1
2
3
4
5
6
7
8
[] 表示字符集,字符集中的字符,除了[]外,都不用转义
[^] 表示否定字符集

例子:
[\d] 所有数字 反例[\D]
[\w]数字,字母,下划线 反例[\W]
[\s]空白内容(空格,回车,换行,tab) 等用于[ \r\n\t] 反例[\S]

重复

1
2
3
4
?表示之前的字符或字符集,至多出现一次,或者可以不出现
* 表示之前的字符或字符集,可以不出现,或者可以出现多次
+ 表示之前的字符或字符集,至少出现一次,或者可以出现多次
{} 设置出现的次数

群组

1
2
3
4
5
() 表示群组匹配

例子:
/[\w]+\.(jpg|png|gif)/
匹配到了: logo.png sunrise.jpg smile.gif

替换

1
2
3
4
5
6
在上个例子中
/([\w]+)\.(jpg|png|gif)/

我们使用$1 可以得到:logo sunrise smile
我们使用$2 可以得到:png jpg gif
我们使用$& 可以得到: logo png sunrise jpg smile gif

文件目录权限

1
2
3
4
5
6
7
8
9
Permissions 权限

owner -> u
group -> g
others -> o

read -> r -> 4
write -> w -> 2
execute -> x ->1

root

1
2
3
su  -> switch user 切换到root用户
exit -> 退出root用户
sudo 不切换root用户,执行系统命令

user

1
2
3
4
5
sudo useradd zhangsan  创建用户张三
sudo passwd zhangsanpwd 创建密码
sudo userdel zhangsan 删除张三
sudo userdel zhangsan -r 删除张三及其主目录

sudo

1
2
3
4
5
6
7
8
9
1. 添加用户到wheel群组,就可以使用sudo命令了
sudo gpasswd -a zhangsan wheel

groups zhangsan 查看其所在用户组

sudo lid -g wheel 查看群组下的所有用户

2. 更改/etc/sudoers.d 下的同名文件,写入
%zhangsan ALL=(ALL) NOPASSWD: ALL

rwx

1
2
3
4
5
6
7
8
9
10
11
12
13
1. 创建一个txt文件
touch hello.txt

2. 权限为
ls -l
-rw-rw-r--

3. 尝试写入内容
echo 'hello world' > hello.txt

4. 尝试读取内容
cat hello.txt

chmod(操作文件)

1
2
3
4
5
6
7
8
9
10
11
1. chomod(change mod)  数字方式改变权限
chmod 660 hello.txt

2. 查看权限
ls -l
-rw-rw----

3. 字母方式改变权限
chmod o+r hello.txt
chood g-w hello.txt

chmod(操作目录)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1. 创建一个目录查看其权限,为775

mkdir app
ls -l
drwxrwxr-x

2. 切换用户,并捎带查询命令,会提示没有权限

su zhangsan -c 'ls app'
此时的目录laowang的权限为700
drwx------

3. 切换到app目录,执行查询命令就可以成功,写入命令失败

su zhangsan -c 'ls' 成功
su zhangsan -c 'toucu file.txt' 失败

4. 此时我们需要使用 laowang 用户,修改权限, zhangsan 就可以正常写入

chmod o+w app

管理用户所属的用户组

1
2
3
4
5
管理用户组需要用到 sudo 权限,并使用新的命令usermod

sudo usermod -aG vagrant zhangsan

解释:-a -> append G -> groups

文件的执行权限

1
2
3
4
5
6
7
直接创建一个文件的时候,任何人都没有执行权限的
echo 'hello world' > say-hello.sh
./say-hello.sh
-rw-rw-r--

修改权限
chmod u+x say-hello.sh

读取写入执行总结

1
2
3
4
5
6
7
8
读取 
决定了能否查看目录,具体的内容是查看不到的

执行
决定了能否看到具体内容,能否编辑具体内容,决定了你能否进入这个目录

写入
可以创建目录,创建文件

chown(更改目录拥有者)

1
2
-R 表示递归
sudo chown -R zhangsan:vagrant files