* 重复前面的字符0次或者多次
. 匹配任意字符一次
+ 匹配前面的字符1次或者多次
? 匹配前面的字符0次或者1次
{m} 匹配其前面的字符m次
{m,n} 匹配前面的字符至少m次,至多n次
^ 匹配字符在行首
$ 匹配字符在行尾
^$ 匹配空白行。空格、0不算
< 匹配字符在词首
> 匹配字符在词尾
<string> 精准匹配string
(xy) xy表示一个分组
1 模式从左侧起,第一个左括号以及与之匹配的右括号之间的模式所匹配的字符
[:alpha:] 所有大小写字母 [:upper:] 所有大写字母 [:lower:] 所有小写字母 [:alnum:] 所有字母及数字 [:punct:] 所有标点符号 [:blank:] 空白键和TAB键 [:space:] 任意空白的字元,空格、tab、CR等 [:digit:] 任意数字,0-9 [:print:] 任何可以被打印出来的字符
grep, egrep, fgrep - print lines matching a pattern
【SYNOPSIS】
grep [OPTIONS] PATTERN [FILE...]
grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]
【OPTIONS】
--color=auto 对匹配到的内容进行高亮显示处理
-i,--ignore-case
Ignore case distinctions in both the PATTERN and the input
files. (-i is specified by POSIX.)忽略字符大小写匹配
-v,--invert-match
Invert the sense of matching, to select non-matching lines.
(-v is specified by POSIX.)显示没有匹配到的行
-o,--only-matching
Print only the matched (non-empty) parts of a matching line,
with each such part on a separate output line.只显示匹配到的部分
-q,--quiet,--silent静默模式,不列举任何内容
-w,--word-regexp 单词完整匹配所在的行
-d, --directories=ACTION how to handle directories; ACTION is 'read', 'recurse', or 'skip',目录表示方式:只读、递归、跳过
-r,-r, --recursive like --directories=recurse
-c,--count print only a count of matching lines per FILE匹配到的文件有多少行
-B,--before-context=NUM print NUM lines of leading context列出匹配到的前NUM行
-A,--after-context=NUM print NUM lines of trailing context列出匹配到的后NUM行
-C,--context=NUM print NUM lines of output context列出匹配到的前后几行
Print selected parts of lines from each FILE to standard output列举每行被选中的部分到标准输出,也就是提取行中的某个字段 【SYNOPSIS】 cut OPTION... [FILE]... 【OPTION】 -b,--bytes=LIST select only these bytes按字节分隔 -c,--characters=LIST select only these characters按字符分隔 -d,--delimiter=DELIM use DELIM instead of TAB for field delimiter 用TAB替换指定的分隔符来分区域 -f,--field=LIST 分区域后,根据区域位数来列出数据 -n with -b: don't split multibyte characters不分隔多字节字符 【FOR EXAMPLE】 [root@localhost ~]# cat /etc/passwd|cut -d: -f1 root bin daemon adm lp 提取/etc/passwd文件的第一个字段内容,也就是用户名 [root@localhost ~]# cat /tmp/ah2.txt |cut -nb 1,2,3 平凡的 [root@localhost ~]# cat /tmp/ah2.txt |cut -nb 1不分割字节 平 [root@localhost ~]# cat /tmp/ah2.txt |cut -b 1汉字属于多字节字符 [root@localhost ~]# cat /tmp/ah2.txt |cut -c 1 平
sort lines of text files文本文件的行排序
【SYNOPSIS】
sort [OPTION]... [FILE]...
sort [OPTION]... --files0-from=F
【OPTION】
-b,--ignore-leading-blanks
-f,--ignore-case
fold lower case to upper case characters 忽略大小写
-i,--ignore-nonprinting
consider only printable characters忽略空白
-M,--month-sort
按照三位数月份排序
-h,--human-numeric-sort compare human readable numbers
使用人类可读的单位排序
-g,--genaral-numeric-sort
使用通用数值排序,支持科学计数
-t,--field-separator=SEP
use SEP instead of non-blank to blank transition
指定分列的分隔符
-k,--key=KEYDEF
sort via a key;KEYDEF gives location and type
指定列排序,
-n,--numeric-sort
compare according to string numerical value
根据字符串中的数值排序
-r,--reverse
反序排列
-c,--check check from srot input;don't sort
排序检查,但不排序
-o,--output=FILE write result to FILE instead of standard output
将结果保存至文件中而不输出
-u,--unique with -c,check for strict ordering; without -c,output only the first of an equal run
与-c组合,执行严格的顺序检查;不与-c组合,仅输出第一个结果,剔除相邻重复的行,重复且相邻的无法剔除。
report or omit repeated lines记录或剔除重复行
【SYNOPSIS】
uniq [OPTION]... [INPUT [OUTPUT]]
【OPTION】
-c,--count prefix lines by the number of occurrences行计数(重复行列一行,前面有重复次数)
-d,--repeated only print duplicate lines, one for each group只打印有重复的行
-D,--all-repeated[=METHOD]
-f,--skip-fields=N
跳过前N个字段
-s,--skip-chars=N
跳过前几个字符
-i,--ignore-case 忽略大小写
-u,--unique only print unique lines仅打印不重复的行
-z,--zero-terminated end lines with 0 bytes,not newline
-w,--check-chars=N compare no more than N characters in lines
第N个字符之后不做匹配
#!/bin/sh find /tmp/homework -maxdepth 1 -type d | while read dir; do count=$(find "$dir" -type f | wc -l) echo "$dir : $count" done
[root@localhost ~]# cat /etc/passwd|head -3 root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin
[root@localhost ~]# cat /etc/shadow|head -3 root:$6$1RSlswAIVbmtwWM5$WLZxHXzkL7.PvHb2ghYqbGvj3Cz4AB5sGRr33TwCX1cwSqV.syv0q1eqcF3NGUJeNNspAOt5C1rWfdsgBllB1.::0:99999:7::: bin:*:16659:0:99999:7::: daemon:*:16659:0:99999:7:::
USERNAME:ENCRYPTED PASSWD:DATE OF LAST CHANGE:MINIMUM PASSWD AGE: MAXIMUM PASSWD AGE:PASSWD WARNING:PASSWORD INACTIVITY:EXPIRATION
USERNAME:也就是用户名 ENCRYPTED PASSWD:加密的密码 DATE OF LAST CHANGE:最后修改密码的日期(天数,是以1970-1-1起算的天数) MINIMUM PASSWD:最短可修改密码日期(天数,相对第三栏的最后修改日期) MAXIMUM PASSWD:最长可修改密码日期 PASSWD WARNING:密码过期前的警告天数(相对第四栏的日期之前的天数) PASSWD INACTIVITY:密码的闲置日期(密码过期之后还有一定的天数可以使用) EXPIRATION:备注
0:系统管理员,root的UID 1-999:系统用户,这些用户是系统后台的服务类程序的用户所用;用户也可以指定用户为系统用户 1000-2^32-1:普通用户
create a new user or update default new user information 【SYNOPSIS】 useradd [options] LOGIN useradd -D useradd -D [options] 【OPTIONS】 -D useradd命令的部分默认参数,可修改 -c,--comment 添加用户的描述信息,finger USERNAME查看更直观 -d,--home-dir 指定用户的家目录,必须为绝对路径 -e,--expiredate 用户账号失效日期,格式默认:YYYY-MM-DD -f,--inactive 指定用户密码是否失效(-1:永不失效,过期会强制修改密码;0:立刻失效) -g,--gid 用户主属组,该属组必须可用 -G,--groups 用户附加属组,该属组可设置多个 -M 强制不建立家目录 -m 强制建立家目录 -r,create system user 创建系统用户 -o,--non-unique 允许创建一个已存在的UID的用户(重复的UID) -s,--shell 指定该用户的shell环境 -u,--uid 指定用户的uid值
update user's authentication tokens 【SYNOPSIS】 passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [--stdin] [username] 【OPTIONS】 --stdin 结合管道符将标准输入直接赋值给用户密码 -l,--lock 锁定指定用户 -u,--unlock 解锁指定用户 -d,--delete 快速删除用户密码 -e,--expire 使用户密码失效 -n,--minimum 密码的最短修改天数 -x,--maximum 密码的最长修改天数 -w,--waring 密码过期前的通知天数 -i,--inactive 密码过期后的闲置天数 -S,--status 用户的密码状态
create a new group 【SYNOPSIS】 groupadd [options] group 【OPTION】 -g,--gid 创建一个指定gid的group -K,--key 修改/etc/login.defs的值,具体可参照此文件的内容 -o,--non-unique 创建一个已有的gid的组 -p,--password 创建组密码,现在基本用不到 -r,--system-group 创建一个系统组
log in to a new group 【SYNOPSIS】 newgrp [-] [group] 这个命令只是在用户的主属组更换的时候有用,例如USERNAME有主属组group1,附属组group2,group3;现在切换用户的主属组为group3则使用此命令
创建组distro,其GID为2016; [root@localhost ~]# groupadd -g 2016 distro [root@localhost ~]# tail -1 /etc/group distro:x:2016: 创建用户mandriva,其ID为1005;基本组位distro; [root@localhost ~]# useradd -g distro -u 1005 mandriva [root@localhost ~]# tail -1 /etc/passwd mandriva:x:1005:2016::/home/mandriva:/bin/bash 创建用户mageia,其ID位1100;家目录为/home/linux; [root@localhost ~]# useradd -u 1100 -d /home/linux mageia [root@localhost ~]# tail -1 /etc/passwd mageia:x:1100:1100::/home/linux:/bin/bash 给用户mageia添加密码,密码为mageedu; [root@localhost ~]# passwd mageia Changing password for user mageia. New password: Retype new password: passwd: all authentication tokens updated successfully. 删除用户mandriva但保留其家目录; [root@localhost ~]# tail -3 /etc/passwd mariadb:x:1000:1000::/home/mariadb:/sbin/nologin hadoop:x:1001:1001::/home/hadoop:/bin/bash mageia:x:1100:1100::/home/linux:/bin/bash [root@localhost ~]# ls /home/ hadoop linux mandriva 创建用户slackware,其ID为2002,基本组为distro,附属组为peguin; [root@localhost ~]# groupadd peguin [root@localhost ~]# useradd -u 2002 -g distro -Gpeguin slackware [root@localhost ~]# tail -2 /etc/passwd mageia:x:1100:1100::/home/linux:/bin/bash slackware:x:2002:2016::/home/slackware:/bin/bash [root@localhost ~]# tail -2 /etc/group mageia:x:1100: peguin:x:2017:slackware 修改slackware的默认shell为/bin/tcsh; [root@localhost ~]# usermod -s /bin/tcsh slackware [root@localhost ~]# tail -2 /etc/passwd mageia:x:1100:1100::/home/linux:/bin/bash slackware:x:2002:2016::/home/slackware:/bin/tcsh 为用户slackware新增附属组admins; [root@localhost ~]# usermod -aG admins slackware [root@localhost ~]# tail -4 /etc/group distro:x:2016: mageia:x:1100: peguin:x:2017:slackware admins:x:2018:slackware 为slackware添加密码,且要求密码最短使用期限为3天,最长为180天,警告为3天; [root@localhost ~]#passwd -n 3 -x 180 -w 3 slackware [root@localhost ~]# tail -1 /etc/shadow slackware:!!:16658:3:180:3::: [root@localhost ~]#echo 'Slackware'|passwd --stdin slackware 添加用户openstack,其ID号为3003,基本组为clouds,附加组为peguin和nova; [root@localhost ~]# groupadd clouds [root@localhost ~]# groupadd nova [root@localhost ~]# useradd openstack -u 3003 -g clouds -G peguin,nova [root@localhost ~]# tail -1 /etc/passwd openstack:x:3003:2019::/home/openstack:/bin/bash 添加系统用户mysql,要求其shell为/sbin/nologin; [root@localhost ~]# useradd -r mysql -s /sbin/nologin [root@localhost ~]# tail -1 /etc/passwd mysql:x:996:994::/home/mysql:/sbin/nologin 使用echo命令,非交互为openstack添加密码 [root@localhost ~]# echo 'Openstack'|passwd --stdin openstack Changing password for user openstack. passwd: all authentication tokens updated successfully.
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有