chenogeの日志


  • 首页

  • 归档

  • 搜索

linux中su和sudo命令

发表于 2019-03-07

su命令

Linux su命令用于变更为其他使用者的身份,除 root 外,需要键入该使用者的密码。

1
su [-fmp] [-c command] [-s shell] [--help] [--version] [-] [USER [ARG]]
  • -f或--fast 不必读启动档(如 csh.cshrc 等),仅用于 csh 或 tcsh
  • -m -p 或 --preserve-environment 执行 su 时不改变环境变数
  • -c command 或--command=command
    • 变更帐号为 USER 的使用者,并执行指令(command)后再变回原来使用者
  • -s shell 或 --shell=shell
    • 指定要执行的 shell (bash csh tcsh 等)
    • 预设值为/etc/passwd 内的该使用者(USER) shell
  • --help 显示说明文件
  • --version 显示版本资讯
  • - 、-l或--login
    • 这个参数加了之后,就好像是重新 login 为该使用者一样
    • 大部份环境变数都是以该使用者(USER)为主,并且工作目录也会改变
    • 如果没有指定 USER ,内定是 root
  • USER 欲变更的使用者帐号
  • ARG 传入新的 shell 参数
1
2
3
su -c ls root # 变更帐号为 root 并在执行 ls 指令后退出变回原使用者
su root -f # 变更帐号为 root 并传入 -f 参数给新执行的 shell
su - nginx # 变更帐号为 nginx 并改变工作目录至 nginx 的家目录(home dir)
阅读全文 »

linux用户账号相关操作

发表于 2019-03-06

useradd | adduser命令

useradd | adduser命令用来建立用户帐号和创建用户的起始目录,使用权限是超级用户。

1
2
useradd  [-d home] [-s shell] [-c comment] [-m [-k template]] 
[-f inactive] [-e expire ] [-p passwd] [-r] name

-c:加上备注文字,备注文字保存在passwd的备注栏中

-d:指定用户登入时的主目录,替换系统默认值/home/<用户名>

-D:变更预设值

-e:指定账号的失效日期,日期格式为MM/DD/YY,例如06/30/12。缺省表示永久有效

-f:指定在密码过期后多少天即关闭该账号。

  • 默认值为-1

  • 如果为0账号立即被停用

  • 如果为-1则账号一直可用

-g:指定用户所属的群组。值可以使组名也可以是GID

  • 用户组必须已经存在的,期默认值为100,即users

-G:指定用户所属的附加群组

-m:自动建立用户的登入目录

-M:不要自动建立用户的登入目录

-n:取消建立以用户名称为名的群组

-r:建立系统账号

-s:指定用户登入后所使用的shell。默认值为/bin/bash

-u:指定用户ID号。该值在系统中必须是唯一的

  • 0~499默认是保留给系统用户账号使用的,所以该值必须大于499

注:账号建好之后,再用passwd命令设定账号的密码

阅读全文 »

遍历器Iterator

发表于 2019-03-06

可遍历

JavaScript中表示集合的数据结构,主要有数组(Array)、对象(Object)、Map、Set 等四种数据集合。一种数据结构只要部署了Iterator 接口,我们就称这种数据结构是可遍历的(iterable)。


Iterator的遍历过程是这样的:

(1)创建一个指针对象,指向当前数据结构的起始位置。也就是说,遍历器对象本质上,就是一个指针对象。

(2)第一次调用指针对象的next方法,可以将指针指向数据结构的第一个成员。

(3)第二次调用指针对象的next方法,指针就指向数据结构的第二个成员。

(4)不断调用指针对象的next方法,直到它指向数据结构的结束位置。


每一次调用next方法,都会返回数据结构的当前成员的信息。具体来说,就是返回一个包含value和done两个属性的对象。其中,value属性是当前成员的值,done属性是一个布尔值,表示遍历是否结束。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// 模拟next方法返回值的例子

var it = makeIterator(['a', 'b']);

it.next() // { value: "a", done: false }
it.next() // { value: "b", done: false }
it.next() // { value: undefined, done: true }

function makeIterator(array) {
var nextIndex = 0;
return {
next: function() {
return nextIndex < array.length ?
{value: array[nextIndex++], done: false} :
{value: undefined, done: true};
}
};
}
阅读全文 »

数组的空位

发表于 2019-03-06

数组的空位

数组的空位指,数组的某一个位置没有任何值。比如,Array构造函数返回的数组都是空位。

1
Array(3) // [, , ,]

in运算符:如果指定的属性名在指定的对象或其原型链中,则in运算符返回true。

空位不是undefined,一个位置的值等于undefined,依然是有值的。空位是没有任何值。

1
2
0 in [undefined, undefined, undefined] // true
0 in [, , ,] // false
阅读全文 »

active伪类的LVHA顺序

发表于 2019-03-05

层叠样式表

CSS(Cascading Style Sheets )层叠样式表,所谓层叠就是后面的样式会覆盖前面的样式。所以在样式表中,各样式排列的顺序很有讲究。


:active

:active伪类匹配被用户激活的元素,让页面能在浏览器监测到激活时给出反馈。

  • 当用鼠标交互时,它代表的是用户按下按键和松开按键之间的时间。

  • :active 伪类通常用来匹配tab键交互。

注:通常用于但并不限于 a 和 buttonHTML元素

阅读全文 »

SimHash与汉明距离

发表于 2019-03-01

SimHash

SimHash是Google处理海量网页采用的文本相似判定方法。算法的主要思想是降维,将高维的特征向量映射成一个f-bit的指纹(fingerprint),通过比较两篇文章的f-bit指纹的Hamming Distance来确定文章是否重复或者高度近似。

阅读全文 »

余弦相似性

发表于 2019-03-01

余弦相似性

余弦相似性大家都非常熟悉,它是定义在向量空间模型(VSM)中的,定义如下:

其中,A、B为向量中间中的两个向量。


在使用它来做字符串相似性度量的时候,需要先将字符串向量化,通常使用词袋模型(BOW)来向量化。

举个例子如下: String1 = 'apple' String2 = 'app' ,则词包为{'a','e','l','p'},若使用0,1判断元素是否在词包中,字符串1、2可以转化为:

StringA = [1111] StringB = [1001] 。根据余弦公式,可以计算字符串相似性为:0.707

词袋模型工具


字符串的相似度

发表于 2019-03-01

Levenshtein Distance算法

Levenshtein Distance 算法,又叫编辑距离算法,是指两个字符串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括:

  • 替换一个字符

  • 插入一个字符

  • 删除一个字符

一般来说,编辑距离越小,两个串的相似度越大。相似度计算方式为:1 - (distance / maxLen)

注:distance 是所需的最少操作次数,maxLen是两个字符串长度的最大值。

阅读全文 »

git常用命令

发表于 2019-02-28

1、查看历史

  • git log:查看提交历史,以便确定要回退到哪个版本
  • git reflog:查看命令历史,以便确定要回到未来的哪个版本


2、分支操作

  • 查看分支:git branch
  • 创建分支:git branch <name>
  • 克隆特定分支:git clone -b 分支名 仓库地址
  • 切换分支:git checkout <name>
  • 创建+切换分支:git checkout -b <name>
  • 创建+切换+关联远程分支:git checkout -b 本地分支名 origin/远程分支名
  • 根据特定提交,创建切换分支:git checkout -b <name> commitId
  • 合并某分支到当前分支:git merge <name>
  • 删除分支:git branch -d <name>


3、关联远程仓库

  • 查看关联的远程仓库的名称:git remote
  • 查看关联的远程仓库的详细信息 :git remote -v
  • 添加远程仓库的关联:git remote add origin <url>
  • 删除远程仓库的关联:git remote remove <name>
  • 更新远程仓库的url :git remote set-url origin <newurl>
阅读全文 »

linux权限系统

发表于 2019-02-27

一、权限

权限是操作系统用来限制资源访问的机制,权限一般分为读、写、执行。

系统中每个文件都拥有特定的权限、所属用户及所属组,通过这样的机制来限制哪些用户、哪些组可以对特定的文件进行什么样的操作。

每个进程都是以某个用户的身份运行,所以进程的权限与该用户的权限一样,用户的权限越大,该进程所拥有的权限也就越大。


二、文件权限

Linux 中,每个文件拥有以下三种权限:

权限 对文件的影响 对目录的影响
r(读取) 可读取文件内容 可列出目录内容
w(写入) 可以修改文件内容 可在目录创建、删除文件
x(执行) 可以作为命令执行 可进入目录

所以,目录必须拥有 x 权限才可查看其内容。很多时候,执行权限 x 对于目录而言也叫浏览权限。仅有 r 权限是无法查看目录内容的(因为连访问都做不到)。


阅读全文 »
1…567…27

chenoge

一个程序猿和一支笔的故事

267 日志
438 标签
© 2020 chenoge
由 Hexo 强力驱动
|
主题 — NexT.Muse v5.1.4