小白的随堂笔记(重定向,管道,用户和组,文本工具)

  • 重定向 把输出和错误输出定向到新文件中
  • c 操作符号 /> 标准输出重定向 把标准输出重定向到文件(可覆盖原有文件)

    2> 错误输出重定向 把错误输出重定向到文件(可覆盖原有文件)

    &> 把所有输出重定向到文件

    >> 所有内容基础上,追加内容

    2>> 追加重定向错误输出数据流

    &>> 追加所有重定向

    2>&1 把错误输出 变成 标准输出 (跟在最后面)

    1>&2 把标准输出 变成 错误输出

    set -C 禁止重定向覆盖

    set -C 允许重定向覆盖

    俩个命令以上加括号。

    (asdal;hostname) > /app/abc 2> /app/zxc

  •  C > /path/to/file.out 2>&1 (顺序很重要)  C >> /path/to/file.out 2>&1标准输出和错误输出各自定向至不同位置 C > /path/to/file.out 2> /path/to/error.out
  • < 标准输入重定向
  • file + / 查看文件的类型-b 列出文件的辨识结果

    -f filelist 列出文件filelist中文名的文件类型

    -F 使用指点分隔符号替换输出文件名后默认的 “:” 分隔符

    -L 查看对应软链接对应文件的文件类型

  • ^d 结束(执行命令)^c 退出 (不执行)

    sz 把linux文件传到windows

  • tr 替换 或 删除字符tr ‘a-z’ ‘A-Z’ < 文件1 > 文件2

    (把文件1中的小写字母替换成大写字母,再输出到文件2)

    -s 把连续重复的字符以单独一个字符显示

    -d 删除 ‘.’ 删除.

    -c 取字符集的补集

    -t 将第一个字符集对应字符转化为第二字符集对应的字符

  • /n 换行
  • cat > 文件 <<Q (结束词) (或^d)(输出到文件)
  • 发邮件 mail -s ‘标题’ zhang(用户)<<Q(结束词)
  • 管道 | 用来连接命令 (前面必须标准输出,后面必须标准输入)输出 | 输入 命令 文件 筛选 替换
  • 错误命令默认不能通过管道转发,可利用2>&1 或 |&ls | tr ‘a-z’ ‘A-Z’ 结合多种命令使用
  • 1+2+3+..+100=?ehco {1..100} | tr ‘ ‘ ‘+’ | bc
  • tee 重定向到多个目标ls | tee /date/abc 输出到端口,且保存到文件

    ls | tee /date/abc |tr ‘a-z’ ‘A-Z’

    (ls输出到端口且保存到文件abc,再把小写字母替换为大写字母)

  • 用户组和权限管理
  • UID 是用户账号的ID号GID 是主组的ID号
  • useradd yang 创建新用户 yang-u 创建用户时更改uid (useradd -u 1234 zhang)

    -o 配合-u,不检查UID的唯一性

    -g GID指明用户所属基本组,可为组名,也可GID

    -c 用户注释信息

    -d 以指定的路径(不存在)为家目录

    -s 指明用户的默认shell程序

    可用列表在/etc/shells文件中

    -G 为用户指明附加组 组须事先存在

    -N 不创建私用组做主组,使用users组做主组

    -r 创建系统用户

    -m 创建家目录,用于系统用户

    -M 不创建家目录,用于非系统用户

    默认在 /etc/default/useradd 文件中

  • (LR、创建用户gentoo,附加组为bin和root,默认shell为/bin/csh,注释信息为 “hello”useradd -G bin,root -s /bin/csh -c’hello’ gentoo)
  • echo zhang. | passwd –stdin zhangpasswd zhang

    修改用户zhang密码为zhang.

  • id 用户名 查看用户额uid gid group
  • userdel 删除用户-r 删除用户家目录
  • usermod 修改用户属性-u 新UID

    -g 新主组

    -G 添加附属组

  • chfn 设置用户信息finger 查看用户名的信息
  • (root管理员账户可操作)cat /etc/shadow 查看用户密码及创建和过期时间

    nano /etc/shadow 更改用户密码及创建和过期时间

    cat /etc/passwd 查看用户及其属性信息(名称,UID,主组ID等)

    cat /etc/group 查看组及其属性信息

    cat /etc/gshadow 查看组密码及其属性信息

  • groupadd 创建组-g 指明GID号

    -r 创建系统组

    groupmod 修改组

    -n 新名字

    -g 新GID

    groupdel 删除组

  • gpasswd 组密码-a 将用户添加指定组中

    -d 从指定组中将用户移除

    -A 设置有管理权限的用户列表

    newgrp 临时切换基本组(如果用户不属于此组,则需要组密码)

  • chown 修改文件目录的 所有者 所属组chown 所有者 / 修改文件/ 的所有者

    chown :所属组 / 修改文件/ 的所属组

    -R 递归

  • 组解析库文件:/etc/groupGRPNAME:x:GID:user1, user2, …

    组名:密码点位符:GID:以此组为附加组的用户列表,以逗号分隔

  • getent group 查看组
  • getent passwd + 用户 查看用户信息
  • 用户解析库:/etc/passwdname:password:UID:GID:GECOS:directory:shell
  • useradd -D 选项:设置某默认选项;-e, –expiredate EXPIRE_DATE:用户账号的过期期限;过期后会被锁定;日期以 YYYY-MM-DD 格式指定

    -f, –inactive INACTIVE:密码过期后,账户被彻底禁用之前的天数。0 表示立即禁用,-1 表示禁用这个功能。

    为用户提供默认配置的配置文件:

    /etc/login.defs, /etc/default/useradd

  • (1) passwd:修改自己的密码;(2) passwd username:修改其它用户的密码,仅root有此权限;
  • 用户的权限普通用户是不能改所属组,普通用户无法修改所有者。

    一个用户对一个目录有一个读权限

    对目录来讲没有执行权限就不能cd进去,不能查看目录的详细信息和内容。

    文件能不能删除 取决于他所在的目录 x 基础权限

    修改文件的用户权限 所有者=用户

    +R 递归

    rwx rwx rwx chmod u+x /

    u g o chmod u+rwx,g+rwx,o+rwx /

    所有者 所属组 其他

  • umask 对应的权限(可自己设置) default(默认权限)
  • 对目录 777-umask=default (目录的最大权限是777)对文件 666-umask=default (文件的最大权限是666)

    对文件观察结果 有偶数 最终结果default

    有基数 最终结果是偶数不变,基数+1

  • stat -c %a / 以数字的形式显示文件权限二进制 r=4 w=2 x=1
  • 更改文件权限 ( -rw-rw-rw- chmod 666 / / )更改目录权限 ( drwxrwxrwx chmod 777 / / )
  • chown 修改文件目录的 所有者 所属组chown 所有者 / 修改文件/ 的所有者

    chown :所属组 / 修改文件/ 的所属组

    -R 递归

  • chgrp +所属组 修改文件的所属组 -R 递归
  • SUID 继承二进制程序所有者的权限(只适合运行在二进制的可执行程序)

    chmod u+s / u-s

    SGID 1继承二进制程序所属组的权限

    2作用于目录此目录新建的文件继承目录的所属组

    chmod g+s / g-s

    sticky 作用于目录,此目录文件只能被所有者删除

    chmod o+t 作用于目录 o-t

  • chattr 针对指定文件设定 属性 lsattr 显示特定属性+i 不能删除 更改 改名

    -i 解除

    +a 可以追加

  • ACL 访问控制列表 实现更加灵活的权限控制setfacl -m u:zhang:rw / 让zhang用户 对文件/可读可写

    setfacl -m g:yang:x / 让yang组 对文件/可执行

    setfacl -x …… 解除

    setfacl -b / 解除所有acl

    getfacl / 查看文件控制列表

  • 文本处理工具查看文件内容cat , less(一页一页查看)

    文件查看命令: cat tac rev

    cat -E 显示行结束符$

    -n 对显示出的每一行进行编号

    -A 显示所有控制符

    -b 非空行编号

    -s 压缩连续的空行成一排

  • head 显示文本前行内容-c# 指定获取前#字节

    -n# 指定获取前#行

    -# 指定行数

  • tail 显示文本后行内容-c# 指定获取后#字节

    -n# 指定获取后#行

    -# 指定行数

    -f 跟踪显示文件新追加的内容 用于日常监视

    cut 按列抽取文本

    -d 指明分隔符, 默认tab

    -f# 第#个字段

    -c 按字符切割

    显示文件或STDIN数据的指定列 cut -d: -f1 /etc/passw

  • ifconfig | head -n2 | tail -n1 | tr ‘ ‘ ‘!’ | cut -d! -f10       取IP地址
  • wc 文本数据统计 (行 单词 字符)

-l 来只计数行数 

-w 来只计数单词总数 

-c 来只计数字节总数 

-m 来只计数字符总数

  • sort 整理文本

 -r 执行反方向(由上至下)整理 

-n 执行按数字大小整理 

-f 选项忽略(fold)字符串中的字符大小写 

-u 选项(独特,unique)删除输出中的重复行 

-t c 选项使用c做为字段界定符 

-k X 选项按照使用c字符分隔的X列来整理能够使用多次

diff,patch 比较文件

  • uniq 从输入中删除前后相接的重复的行

-c: 显示每行重复出现的次数

-d: 仅显示重复过的行

-u: 仅显示不曾重复的行

 

  • 文本处理工具grep 文本搜索工具,根据用户指定的“模式” 对目标文本逐行进行匹配检查,打印匹配到的行.

    -o 仅显示匹配到的字符串

    -v 显示不被模式匹配到的行

    -n 显示匹配的行数

    -c 统计匹配的行数

    -i 忽略字符大小写

    -q 静默模式,不输出任何信息

    -A# 后#行

    -B# 前#行

    -C# 前后各#行

    -e 实现多个选项间的逻辑or关系 grep -e ‘cat’ -e ‘dog’

    -w 匹配整个单词

    -E 使用ERE

    -F 相当于fgrep,不支持正则表达式

    正则表达式: 由一类特殊字符及文本字符所编写的模式,其中有些字符(元字符)不表示字符字面意义,而表示控制或通配的功能.

    两类: 基本正则表达式 ; 扩展正则表达式 (grep -e ; egrep)

    元字符分类: 字符匹配,匹配次数,位置锚定,分组

  • 基本正则表达式元字符:\. 转义 “.\..” \. 就是.的意思

    . 任意的单个字符 (在括号里就是 .)

    [] 匹配指定范围内的任意单个字符

    [^] 匹配指定范围外的任意单个字符

    匹配次数: 用在要指定次数字符后面,指定前面字符要出现的次数

    .* 任意长度的任意字符

    * 匹配前面字符任意次 包括0次

    \? 匹配前面字符的0或1次

    \+ 匹配前面字符1次或n次

    \{n\} 匹配前面字符n次

    \{n,\}匹配前面字符最少n次

    \{,n\}匹配前面字符最多n次

    \{m,n\} 匹配前面字符出现m-n次

如: grep “go\{10\}gle” / o出现十次

go\?gle

“[a-z]\+” a-z 任意一个出现一次或多次

{1,5\} 1-5 个字符

  • 位置锚定: 定位出现的位置

^ 行首锚定,用于模式的行首 “^zhang”

$ 行尾锚定,用于模式的行尾 “zhang$”

^pattren$ 用于模式匹配整行

^$ 空行

^[[:space:]]*$ 空白行 (空格 Tab)

\<或\b 词首锚定,用于单词模式的行首

\>或\b 词尾锚定,用于单词模式的行尾

\<pattern\> 匹配整个单词

  • 分组 : \(\) 将一个或多个字符捆绑在一起,当作一个整体进行处理.如: \(root\)\+分组括号中的模式匹配到的内容会被正则表达式引擎记录于内部的变量中,这些变量的命名方式为:\1,\2,\3…

    \1 表示从行首起第一个左括号以及与之匹配右括号之间的模式所匹配到的字符

    如: \(zhang1\+\(zhang2\)*\) \1 : zhang1\+\(zhang2\)* \2 : zhang2

    后向引用:引用前面的分括号中的模式所匹配字符,而非模式本身

    或者:\| a\|b a或b \(C\|c\)at Cat或cat

    egrep及扩展正则表达式

    egrep = grep -E

    字符匹配:

    . 任意单个字符

    .* 任意长度的任意字符

    [] 指定范围的字符

    [^] 不在指定范围的字符

    * 匹配前面的字符任意次

    ? 0或1次

    + 1次或多次

    {m} 匹配m次

    {m,n} 匹配m-n次

    位置锚定:

    ^ :行首 $ :行尾 \<, \b :语首 \>, \b :语尾 

    分组:

    () 后向引用:\1, \2, … 

    或者:

    a|b: a或b C|cat: C或cat (C|c)at:Cat或cat

  • vim 文本编辑器行编辑器 sed 全屏编辑器 nano vim
  • 三种主要模式:命令(Normal)模式: 默认模式,移动光标,剪切/粘贴文本

    插入(Insert)或编辑模式: 修改文本 

    扩展命令(extended command )模式: 保存,退出等

    i–编辑模式

    :–扩展模式

    v–编辑模式

    Esc 退出当前模式, 总是返回到命令模式

  • vim +/ 打开文件-b 二进制方式打开文件

    -d 比较多个文件

    -m 只读打开文件

    -e 直接进入ex模式

    命令模式:

    i 在光标处输入

    I 在当前光标行首输入

    x 删除光标处的字符

    ~ 转化大小写

    r 替换光标所在处的字符

    dd 删除整行

    y 复制

    Y 复制整行

    p 粘贴

    扩展模式:

    :q 退出

    :q! 强制退出不做修改

    :wq 保存退出 / / 保存到新建文件下

    😡 保存退出

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/95556

发表评论

登录后才能评论

This site uses Akismet to reduce spam. Learn how your comment data is processed.

联系我们

400-080-6560

在线咨询:点击这里给我发消息

邮件:1823388528@qq.com

工作时间:周一至周五,9:30-18:30,节假日同时也值班