170810
来源:互联网 发布:upchina是什么软件 编辑:程序博客网 时间:2024/05/29 19:46
普通用户是 1-65535
系统用户是 1~499 (centos6) 1~999(centos7)
普通登入用户500~60000 1000~60000
su - user 切换了env 登录式切换
su user 不会切换env 非登录式切换
env 环境变量
su - user -c “命令” 切换user用户来执行它的命令
用户
useradd 用户的添加
-u 指定uid
-g 指定gid
-G 指定附加组
-M 不创建家目录
-m 移动目录内容到路径里和-d一起使用
-d 指定用户的家目录
-s 指定用户的默认shell
-c 注释说明
-L 锁定用户的密码
-U 解锁用户
-r 创建系统用户
usermod 修改用户属性
userdel 删除用户信息
组
groupadd
groupmod
groupdel
权限
chmod 修改权限
r 对应数字4 读
w 对应数字2 写
x 对应数字1 执行
umask 权限遮罩码
粗俗点就是临时修改权限,后面再深入了解
可查看当前的umask 有的系统有4位 默认读后3位
install 复制文件并设置文件属性
install 相当于 cp 可指定文件属组属主 权限 文件属性
install abc.old -m 633 abc.new 复制abc.old 为文件adc.new 并设置权限为633
-o 指定属主
-g指定属组
-d创建目录 类似于mkdir
chwon修改文件属主 属组 (属性)
通配符
通配符是模糊匹配的基础,用于方便查找文件
* : 匹配任意长度的任意字符 可以是0个或多个
? :匹配任意单个字符,必须有一个
[ ] :匹配指定范围内的单个字符
[^] :匹配指定范围外的任意单个字符
[^[0-9]] :或[^0-9] 表示匹配数字外的任意字符
[^[:upper:]] : 表示匹配大写字母外的任意字符
pa[0-9] :pa后面匹配一个数字
[[:punct:]] :表示所有的标点符号
[[:space:]] :表示所有的空白字符
[[:alnum:]]:表示所有的字母和数字
[[:digit:]] :表示所有数字
[[:alpha:]] :表示所有字母
[[:lower:]] :表示所有小写字母
[[:upper:]] :表示所有大写字母
重定向
> 覆盖
>> 追加
&>,&>> 错误正确一起重定向
0标准输入
1正确输出 > 与 1> 相同
2错误输出 2>
grep
grep是一款文本过滤工具,基于正则表达式进行模式匹配
/*(三大文本处理器 :grep sed awk)
sed :stream editor 流编辑器
awk :linux上实现为gawk ,文本报告生成器(格式化文本)
*/
格式:grep [选项] 匹配模式 filename 匹配模式:指匹配的东西
grep “abc” /home/passwd 查找/home/passwd 中 包含abd所在行的内容
grep -e ==egroup 表示使用扩展的正则表达式
-A(after) 显示匹配到的行和其它后面的行,给一个数字
grep -A 1 root /etc/passwd
-B(before)显示匹配到的行和其前面的行,给一个数字
-C(center)显示匹配到的行和其前后的行,给一个数字
字符匹配
. : 匹配任意字符
[ ]:匹配指定范围内的单个字符
[^] :匹配指定范围外的任意单个字符
与通配符结合使用
[[:digit:]] [[:lower:]] [[:upper:]] [[:alpha:]] [[:alnum:]] [[:punct:]] [[:space:]]
匹配次数
用在要指定器出现的次数的字符后面,用于限制其前面字符出现的次数,默认是贪婪模式(.*)
.* :匹配任意长度的字符
\?:匹配其前面的字符0次或一次,即其前面的字符是可有可无的\+:匹配其前面的字符一次或多次,即其前面的字符要出现至少一次\{m\}:精确匹配到其前面字符的m次\{m,n\}:匹配其前面的字符至少m次,至多n次 \{0,n\}:至多n次\{m,\}:至少m次
位置锚定
^: 行首锚定,用于模式的最左边$: 行尾锚定,用于模式的最右边^pattern$:用于pattern来匹配整行 (pattern:模式) ^$:空白行 (什么都没匹配所有是空白行)^[[:space:]]$:空行或空白字符的行单词:非特殊字符组成的连续字符都称为单词\< 或 \b:词首锚定,用于单词模式的左侧\> 或 \b:词尾锚定,用于单词模式的右侧 (对于egrep来说 只有 > < 才用转译符"\" 其他都可以不用转译符)\<pattern\>:匹配完整单词
egrep
egrep == grep -e 基于扩展的正则表达式做模式匹配
与grep用法类似 只不过大部分不用加“\”转译符(除了 ">" " <")
1:字符匹配 . :匹配任意单个字符[ ]:匹配指定范围内的任意单个字符[^ ]:匹配指定范围外的任意当个字符 [[:digit:]] [[:lower:]] [[:upper:]] [[:alpha:]] [[:alnum:]] [[:punct:]] [[:space:]] 次数匹配 *:任意次,0,1或多次?:0次或1次,其前的字符是可有可无的+:其前字符至少1次{m}:其前的字符m次{m,n}:至少m次,至多n次 {0,n}{m,}位置锚定 ^:行首锚定$:行尾锚定\< 或 \b:词首锚定,用于单词模式的左侧\> 或 \b:词尾锚定,用于单词模式的右侧
分组及引用
() :分组 括号内的模式匹配到的字符会被记录到正则表达式引擎的内部变量
后向引用:/1,/2 分别是取第一组和第二组
a | b 表示 a或b C|cat表示 C或cat (C|c)at表示 Cat或cat
sort 排序
格式 : sort [选项] 文件名
用法同cut相同
sort /etc/passwd 表示将所有的用户从a到z进行排序(文件中每行第一个字母排序)
diff 和patch命令-t:指定字段分隔符,便于指定排序的字段-k:用于排序比较的字段 sort -t: -k3 -n /etc/passwd 基于用户的uid的大小进行排序-n:基于数值大小排序 cut -d: -f3 /etc/passwd | sort 按字符进行排序 cut -d: -f3 /etc/passwd | sort -n 按数值大小进行排序-r:逆序进行排序 sort -t: -k3 -n -r /etc/passwd-f:忽略字符大小写 这里是由于ASCII码的原因,因为A的ASCII码为:65,a的ASCII码为97 -u:重复的行只保留一份
sort -t: -k7 -u /etc/passwd
diff:比较文件的不同(逐行的比较)显示出来
举个例子来说文件A和文件B,经过diff之后生成了补丁文件C,那么着个过程相当于A -B = C ,那么patch的过程就是B+C= A或A-C =B。
patch; 打补丁工具 将补丁打到老文件中 使得老文件和新文件一样
格式:diff [选项] 老文件 新文件
格式:patch [选项] 老文件
vim编辑器
底行模式
1)地址定界 :start_pos[,end_pos] #: 特定的第#行,例如5 为第五行 .: 当前行 $:最后一行 #,#:指定行范围,左侧为起始行 #,#+:指定行范围,右侧为左侧行的偏移量 ,例如:3,+7 %:全文 /pattern/:第一次被模式所匹配到的行2:可实现编辑操作 ,同编辑命令一同使用 d:表示直接删除,要求直接跟在地址定界符号的后面, 例如::.,$d 表示当前行到最后一行删除。 y:用来复制地址定界匹配到的行 c:用来修改地址定界匹配到的行 w /path/to/file :将范围内的文本保存至文件中 r /path/to/file:将指定的文件的文本插入指定位置3:查找 /pattern:查找模式匹配到的所有字符串,向下查找, 然后在键盘上按n键会继续向下匹配 ?pattern: 查找模式匹配到的所有字符串,向上查找,然后在键盘上按n键会继续向上匹配4:查找并替换(极其重要) (1)格式:地址地接符s/要查找的内容/替换为的内容/修饰符 要查找的内容:可以使用正则表达式 替换为的内容:不能使用正则表达式,但是可以引用 如果使用了分组,也就是在要查找的内容中使用了( )话,可以使用后向引用, \1表示引用第一个括号匹配的内容, \2表示第二个括号匹配的内容, \3表示第三个括号匹配的内容 也可以直接引用查找模式匹配到的整个文本,直接使用匹配模式的全部文本:用&符号引用整个模式匹配到的文本(2)修饰符 i:忽略大小写 g:全局替换,也就是如果不加g的话,那么只是一行匹配一个,如果第二个被匹配了也不会被替换,如果加了g,那么一行中无论匹配到多少个都会被替换(3)可把分隔符替换为非常用的字符 例如:s@@@ s###
有关例子
用查找替换命令为/tmp/functions文件的每一个空白字符开头的行的首行加上#
:%s/^[[:space:]]/\#&/g
将/etc/yum.repos.d/CentOS-Base.repo文件中所有的enabled=0替换为ennabled=1,所有的gpgcheck=0替换为gpgcheck=1
:%s/\(enabled\|gpgcheck\)=0/\1=1/g
- 170810
- 170810 Python-封装RouterScan的DLL
- FATAL :170810:1613:29.0 MAKEXP/lib/reade: Error decoding 8th nav line brdc3190.16n ERROR -1
- Tornado之json api开发
- Vue实现tab切换
- 进度事件
- Python函数 extend()和append()的区别
- LeetCode 95 Unique Binary Search Tree II(Python详解及实现)
- 170810
- OC和C++混编造成其它类错误的问题(Compile Sources As Objective-C++)
- linux 多个shell命令一起执行
- vue.js学习笔记-7
- FZU 2191 完美的数字 <数学找规律>
- SparseArray ArrayMap HashMap
- Robberies||HDU2955
- golang fmt格式“占位符”
- nginx-1.13.x源码安装