linux 笔记--管理,权限管理,重定向,正则表达式

  • 用户管理:useradd userdel usermod passwd chsh chfn finger id chage

  • useradd:-u:UID -g:GID -G:附加组(可以有多个) -c:注释信息 -d:指定某个目录为家目录 -s:指定shell的路径(/etc/shells 文件中的某一行) -m:强制为用户创建家目录 -k:不复制/etc/skel(用户个人的环境配置文件)中的文件到家目录与-m:联合使用 -M:不创建家目录 -r:添加系统用户(不能登录,没有家目录) (/etc/login.defs为默认参数的配置文件) (/etc/shells中指定了系统用户的安装shell)

  • userdel:删除用户,默认是不删除家目录的,-r:与家目录同时删除

  • usermod:-u:修改UID -g:修改GID -G:覆盖添加附加组(-a -G 追加附加组) -s:修改shell -c:修改注释信息 -d:修改家目录 -l:修改loginname -e:指定过期时间(YYYY-MM-DD) -d -m:即指定家目录位置又可将数据移动到修改的目录 -f:非活动时间 -L:锁定帐号 -u:解锁

  • id:查看用户的帐号属性信息 -u:UID -g:GID -G:所有组的ID

  • finger:查看用户的帐号信息

  • chsh:修改shell

  • chfn:修改注释信息

  • passwd:-l:锁定用户 -u:解锁 -d:删除用户密码 --stdin=用于脚本创建帐号并同时指定密码(echo '123456' | passwd --stdin 密码就设定为123456)

  • pwck:检查用户帐号完整性

  • 组管理:groupadd groupdel groupmod gpasswd

  • groupadd:创建组,-g:GID -r:添加系统组

  • groupmod:-g:修改GID -n:修改组名

  • groupdel:删除组

  • gpasswd:给组加密码,用于组之间的切换(newgrp 其他组名:提示输入密码)但是附加组是不需要密码的,exit:回到原来组

  • chage:-b:修改最近一次修改时间 -E:修改过期时间 -I:修改非活动时间 -m:修改最近使用时间 -M:修改最长使用时间 -w:修改警告时间

  • 权限管理:chown chgrp chmod umask

  • chown:改变文件属主,可以同时改变多个文件 -R:递归修改(目录及其子目录和文件) --reference=指定文件 要修改的文件,可以有多个(将后面的文件属性修改为前面的文件属性) (chown root:root或root 或:root 可以同时修改组也可以单独修改组和用户)

  • chgrp:修改组,-R:递归修改 --reference=指定文件 要修改的文件,可以有多个

  • chmod:修改文件的权限属性,--reference=指定文件 要修改的文件,可以有多个,chmod 数字(八进制) file....  chmod u=rwx,g=w,o-wx

  • 手动添加用户(test):

  • nano /etc/group   test:x:5000(GID)

  • nano /etc/passwd  test:x:5000:5000:TEST(注释信息):/home/test:/bin/bash

  • nano /etc/shadow  test:!!:15765:0:99999:7:::

  • cp -r /etc/skel/ /home/test

  • chown -R test:test /home/test

  • chmod -r go=  /home/test

  • (!!出为MD5密码编码,也可以写:openssl passwd -1(数字1) -salt `12345678` 提示输入密码 然后得到加密的密码MD5码复制替换!!即可)

  • umask:遮罩码(默认权限),666-umask  777-umask (root用户umask为022,普通用户umask为002),文件默认不能拥有执行权限的,如果算得结果中有执行权限则将其权限加1,如:3(wx)+1(x)=4(r)

  • 用户登录的shell类型:

  • 登录式shell:

  • su -

  • su -l

  • 非登录式shell:

  • su username

  • 图形界面终端下执行的登录

  • 自动执行的

  • bash的配置文件:
    全局配置文件:/etc/profile  /etc/profile.d/*.sh  /etc/bashrc

  • 个人配置文件:~/.bash_profile  ~/.bashrc

  • profile类的文件:设定环境变量,运行命令或脚本

  • bashrc类的文件:设定本地用户环境变量,定义命令别名

  • (若全局和个人配置文件中有部分有同类但不相同的定义,以个人用户为准,作用范围越小的越容易生效)

  • 登录式shell如何读取配置文件:

  • /etc/profile--/etc/profile.d/*.sh--~/.bash_profile--~/.bashrc--/etc/bashrc

  • 非登录式shell如何读取配置文件:

  • ~/.bashrc--/etc/bashrc--/etc/profile.d/*.sh

  • (~/.bashrc:用户定义别名的地方,~/.bash_profile:定义运行命令或脚本(echo 'Hello word ')(alias cl='clear')(定义umask:~/bash_profile--加入 umask 027))

  • 管道和重点向:>  <  >>  <<

  • 系统设定:

  • 默认输入设备(标准输入)  STDOUT  0

  • 默认输出设备(标准输出)  STDIN   1

  • 标准错误输出  SIDERR  2

  • 标准输入:键盘 标准输出和错误输出:显示器

  • I/O重定向:改变数据的输入输出来源,需要使用符号来完成

  • 例:ls / > ~/test1.out(ls运行显示出来的内容就会写入test1.out文件中)(注:使用>会覆盖文件中原有内容,可以使用>>追加输出内容)

  • 2>:重定向错误输出  2>>:追加错误输出内容

  • &>:重定向标准输出或错误输出,输出到同一个文件

  • <:输入重定向 例:tr ‘a-z’‘A-Z’ < ~/test1.out(test1.out中的文件内容都会变成大写)

  • 例:cat << END(结束标记)

  • >.........

  • >!!!!!!!!

  • >END

  • (会显示前两行内容,也可以把前两行添加到文件:cat >> ~/test1.out << END)

  • tee: 既能在屏幕上显示又能同时写入文件 tee 文件名

  • 管道:命令 | 命令 | 命令 (把前一个命令的执行结果输出作为后一个命令的输入)

  • 例:取出~/test1.out文件的第6行

  • head -6 ~/test1.out | tail -1

  • 文本查找:

  • grep:根据模式搜索文件,部分匹配:有部分字符匹配都将符合模式的文本行显示出来

  • 模式:pattern 是由文本字符和正则表达式的源字符组合而成的匹配条件

  • grep [options] pattern [file....]

  • -i:忽略大小写 --color:符合模式的行加颜色 -v:反向(只显示没有被匹配到的字符串)

  • 正则表达式:regular expression--REGEXP

  • . :匹配任意单个字符 *:匹配其前面的字符任意次 .*:任意长度的任意字符 \?:匹配其前面的字符1次或0次 \{m,n\}:匹配其前面的字符至少m次最多n次  ^$:空白行  \<:其后面的任意字符必须作为单词首部出现(如roo4 只要没有特殊字符都会被认为是单词)  \>:其后前面的任意字符必须作为单词尾部出现(\<roo4\>:只能是roo4这个单词单独出现 \<roo4    roo4\>)  \(\):后向引用(如:\(ab\)* ab至少出现1次或任意次) \(root\).*\1  \([0-9]\).*\1

  • 位置规定 :

  • ^:行首  (此字符后面的任意内容必须出现在行首) $:行尾  []:匹配指定范围内的任意单个字符  [^]:匹配指定范围外的任意单个字符

  • 字符集合:[:digit:][:upper:][:punct:][:space:][:alpha:][:alnum:]


你可能感兴趣的:(linux)