Linux 学习笔记 #2 文件权限

作者: 时间: 2019-08-23 评论: 暂无评论

1.Linux 文件基本属性
Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。
Linux中我们可以使用 ll 或者 ls –l

[root@localhost /]# ll
总用量 16
lrwxrwxrwx.   1 root root    7 8月  21 02:17 bin -> usr/bin
dr-xr-xr-x.   5 root root 4096 8月  21 02:38 boot
drwxr-xr-x.   2 root root    6 4月  11 2018 home

在Linux中第一个字符代表这个文件是目录、文件或链接文件等等。

当为[ d ]则是目录
当为[ - ]则是文件;
若是[ l ]则表示为链接文档(link file);
若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
接下来的字符中,以三个为一组,且均为『rwx』 的三个参数的组合。其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。

每个文件的属性由左边第一部分的10个字符来确定。类型+主+组+其它(如下图)。
363003_1227493859FdXT.png

2.Linux文件属主和属组
对于文件来说,它都有一个特定的所有者,也就是对该文件具有所有权的用户。
同时,在Linux系统中,用户是按组分类的,一个用户属于一个或多个组。
文件所有者以外的用户又可以分为文件所有者的同组用户和其他用户。

3.更改文件属性
① 变更文件或目录的所属群组 chgrp [-R] 所属组 文件名(目录名)

[root@localhost ~]# ll
-rw-r--r--. 1 root root    0 8月  23 19:19 test.txt
[root@localhost ~]# groupadd test
[root@localhost ~]# chgrp test test.txt
[root@localhost ~]# ll
-rw-r--r--. 1 root test    0 8月  23 19:19 test.txt

② chown:更改文件属主,也可以同时更改文件属组

chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名

[root@localhost ~]# chown root:root test.txt
[root@localhost ~]# ll
-rw-r--r--. 1 root root    0 8月  23 19:19 test.txt

③ chmod:更改权限
chmod [-R] xyz 文件或目录
xyz 是3位数数字,分别代表 属主 属组 其它 权限
比如:

属主是 rwx => 二进制 111=>十进制 4+2+1=7 => x=7
属组是 r-x => 二进制 100=>十进制 4+0+1=5 => y=5
其它是 r-x->  二进制 001=>十进制 4+0+1=1 => z=>5 

得到权限应该是 755

  root@localhost ~]# chmod 755 test.txt
  [root@localhost ~]# ll
  -rwxr-xr-x. 1 root test    0 8月  23 19:19 test.txt

还有一种写法:
chmod u|g|o|a[r|w|x] 文件
u|g|o|a (1)user (2)group (3)others(4)all 所有人 4种身份
+|-|= 增加 减去 设定
r|w|x 读,写,执行

[root@localhost ~]# ll
-rwxr-xr-x. 1 root test    0 8月  23 19:19 test.txt

[root@localhost ~]# chmod a=w test.txt
[root@localhost ~]# ll
--w--w--w-. 1 root test    0 8月  23 19:19 test.txt

[root@localhost ~]# chmod u=rwx,g=rx,o=x test.txt
[root@localhost ~]# ll
-rwxr-x--x. 1 root test    0 8月  23 19:19 test.txt

Python学习笔记 #4 迭代器与生成器

作者: 时间: 2019-08-22 评论: 暂无评论

1.迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。

迭代器有两个基本的方法:iter() 和 next()。

字符串,列表或元组对象都可用于创建迭代器:

import sys;
list = [2, 3, 4, 'kkk']
it=iter(list);
for item in it:
    print(item)
# 或者

it=iter(list);
while True:
    try:
        print(next(it))
    except StopIteration:  #next完成的时候,会触发StopIteration异常
        sys.exit()

2.把一个类作为一个迭代器使用需要在类中实现两个方法 __iter__() 与 __next__()

class MyNumber:
    def __iter__(self):
        self.a = 1
        return self

    def __next__(self):
        if (self.a <=2):
            x = self.a
            self.a += 1
            return x
        else:
            return StopIteration


my = MyNumber()
my_it = iter(my)
print(next(my_it))
print(next(my_it))
print(next(my_it))

'''
结果:
1
2
<class 'StopIteration'>
'''

3.生成器
使用了 yield 的函数被称为生成器(generator)
跟普通函数不同的是,生成器是一个返回迭代器的函数
在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回 yield 的值, 并在下一次执行 next() 方法时从当前位置继续运行。
调用一个生成器函数,返回的是一个迭代器对象。

import sys


def fibonacci(n):  # 生成器函数 - 斐波那契
    a, b, counter = 0, 1, 0
    while True:
        if (counter > n):
            return
        yield a  # 返回了a值,暂停,并保留了 a, b, counter,第二次从这里执行,有点像步进机
        a, b = b, a + b
        counter += 1


f = fibonacci(10)  # f 是一个迭代器,由生成器返回生成
print(f)  # 并不是数组,而是一个 generator [ˈdʒenəreɪtə(r)]对象

while True:
    try:
        print(next(f), end=" ")
    except StopIteration:
        sys.exit()

'''
<generator object fibonacci at 0x00FE4DF0>
0 test 2 
'''

Promise简单用法

作者: 时间: 2019-04-12 评论: 暂无评论
//当异步代码执行成功时,我们才会调用resolve(...), 当异步代码失败时就会调用reject(...)
//在本例中,我们使用setTimeout(...)来模拟异步代码,
let myFirstPromise = new Promise(function (resolve, reject) {
    setTimeout(function () {
        Math.random() > 0.5 ? resolve("成功!") : reject("失败!");
    }, 500);

});

//success的值是上面调用resolve(...)方法传入的值.
myFirstPromise.then(function (success) {
    console.log("success! " + success);
}, function (error) {
    console.log("error! " + error);
});

phpstrom 10 永久激活

作者: 时间: 2018-12-10 评论: 暂无评论

1.将JetbrainsCrack.jar放到phpstorm安装目录下的lib文件夹
2.找到phpstorm 的安装路径, 在bin目录下有两个文件 PhpStorm.exe.vmoptions ,PhpStorm64.exe.vmoptions 打开文件

3.最后面加入 一行
-javaagent:C:Program Files (x86)JetBrainsPhpStorm 2016.3.2libJetbrainsCrack.jar
后面的路径,根据自己放的位置修改
保存文件
关闭并重新打开phpstorm 

4.打开http://idea.lanyus.com/getkey?userName=Allen
userName可以改
生成一个激活码
菜单 help >>>>Register
选择Activation Code
将验证码粘贴进去
激活...

转至:https://blog.csdn.net/alen_xiaoxin/article/details/54906510
文件下载:https://pan.baidu.com/s/1_U-cfVfKr5dfyHFR1oP3zA 提取码: q4re

docker安装gitlab

作者: 时间: 2018-04-09 评论: 暂无评论
docker pull twang2218/gitlab-ce-zh  #在阿里云的公共gitlab 仓库找到的

docker run  --detach --restart=always  --publish 10443:443 --publish 8080:80 --publish 10022:22 --name gitlab --volume /home/gitlab/etc:/etc/gitlab --volume /home/gitlab/log:/var/log/gitlab --volume /home/gitlab/data:/var/opt/gitlab twang2218/gitlab-ce-zh

配置http协议所使用的访问地址 外面8080指向里面的80

external_url 'http://10.200.0.100:8080'
nginx['listen_port'] = 80

配置ssh协议所使用的访问地址和端口

gitlab_rails['gitlab_ssh_host'] = '10.200.0.100'
gitlab_rails['gitlab_shell_ssh_port'] = 2222