1、显示/etc目录下,以非字母开头,后面跟了一个字母以及其他任意长度字符的文件或目录。

[qiuhom@test ~]$ls -d /etc/[^[:alpha:]][[:alpha:]]*
ls: cannot access /etc/[^[:alpha:]][[:alpha:]]*: No such file or directory
[qiuhom@test ~]$ls
11ttest 2test 5aaa abc bcd _dd dir1 dir_3 _test
2abc 3test aaa bbb ccc ddd dir2 eeeff
[qiuhom@test ~]$ls -d ./[^[:alpha:]][[:alpha:]]*
./2abc ./2test ./3test ./5aaa ./_dd ./_test

  说明:在/etc下没有找到满足条件的文件或目录,为了验证命令的正确性,在当前所在目录下新建了一些测试文件。

2、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。

[qiuhom@test ~]$ls /tmp/mytest1
ls: cannot access /tmp/mytest1: No such file or directory
[qiuhom@test ~]$mkdir /tmp/mytest1
[qiuhom@test ~]$ls /tmp/mytest1
[qiuhom@test ~]$ls -d /etc/p*[^[:digit:]]
/etc/pam.d /etc/pki /etc/popt.d /etc/prelink.conf.d /etc/profile.d
/etc/passwd /etc/plymouth /etc/postfix /etc/printcap /etc/protocols
/etc/passwd- /etc/pm /etc/ppp /etc/profile /etc/python
[qiuhom@test ~]$sudo cp -a /etc/p*[^[:digit:]] /tmp/mytest1/
[qiuhom@test ~]$ls /tmp/mytest1/
pam.d passwd- plymouth popt.d ppp printcap profile.d python
passwd pki pm postfix prelink.conf.d profile protocols
[qiuhom@test ~]$

  说明:复制目录必须加-r选项。由于本人用的是普通用户,所有复制自己没有权限的文件需要加sudo临时用root身份来复制文件,-a表示复制时保留文件的属性,比如权限所有者所属组等。

3、将/etc/issue文件的内容转换为大写后保存至/tmp/issue.out文件中

[qiuhom@test ~]$cat /etc/issue
\S
Kernel \r on an \m [qiuhom@test ~]$cat /etc/issue|tr '[a-z]' '[A-Z]'
\S
KERNEL \R ON AN \M [qiuhom@test ~]$cat /etc/issue|tr '[a-z]' '[A-Z]' > /tmp/issue.out
[qiuhom@test ~]$cat /tmp/issue.out
\S
KERNEL \R ON AN \M [qiuhom@test ~]$ 

4、总结描述用户和组管理类命令的使用方法并完成以下练习:

  (1)、创建组distro,其GID为2019;

[root@test test]#groupadd -g 2019 distro
[root@test test]#tail -1 /etc/group
distro:x:2019:
[root@test test]#

  说明:-g指定创建组的gid

  (2)、创建用户mandriva,其ID号为1009;基本组为distro;

[root@test test]#useradd -u 1009 -g distro mandriva
[root@test test]#tail -1 /etc/passwd
mandriva:x:1009:2019::/home/mandriva:/bin/bash
[root@test test]#tail -1 /etc/group
distro:x:2019:
[root@test test]#id -u mandriva
1009
[root@test test]#id -g mandriva
2019
[root@test test]#id -ng mandriva
distro
[root@test test]#id -nu mandriva
mandriva
[root@test test]#

  说明:useradd -u 选项是指定创建用户的uid -g 是指定用户基本组(可以说组名或gid),如果不指定,则默认会创建一个和用户名同名的组,并将其组指定为该用户的基本组,id -u 查看指定用户的uid,id -g查看指定用户组id, -nu是显示用户名,-ng 显示用户组名 ,若不指定用户将查看当前用户的信息。

  (3)、创建用户megeia,其ID号为1100,家目录为/home/linux;

[root@test test]#useradd -u 1100 -d /home/linux megeia
[root@test test]#getent passwd megeia
megeia:x:1100:1100::/home/linux:/bin/bash
[root@test test]#

  说明:-d 指定用户家目录

  (4)、给用户megeia添加密码,密码为mageedu,并设置用户密码7天后过期;

[root@test test]#echo "mageedu"|passwd --stdin megeia
Changing password for user megeia.
passwd: all authentication tokens updated successfully.
[root@test test]#chage -l megeia
Last password change : Oct 25, 2019
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
[root@test test]#chage -M 7 megeia
[root@test test]#chage -l megeia
Last password change : Oct 25, 2019
Password expires : Nov 01, 2019
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 7
Number of days of warning before password expires : 7
[root@test test]#

  说明:给用户添加密码的方式有两种,第一种就是用root身份 用命令passwd加用户名来修改或者切换到该用户下用passwd命令修改,这种修改方式是交互式修改。第二中就是非交换式修改,以上就是第二种。chage 命令是可以查看用户帐户信息,其中-l表示查看用户的账号详情,-M 指定最大修改密码天数,也就是说从修改密码当天算多少天后修改密码,若不修改那么密码将会过期。

  (5)、删除mandriva用户,但保留其家目录;

[root@test test]#getent passwd mandriva
mandriva:x:1009:2019::/home/mandriva:/bin/bash
[root@test test]#ll /home/mandriva -d
drwx------ 2 mandriva distro 4096 Oct 25 11:38 /home/mandriva
[root@test test]#userdel mandriva
[root@test test]#ll /home/mandriva -d
drwx------ 2 1009 distro 4096 Oct 25 11:38 /home/mandriva
[root@test test]#

  说明:getent 是一个查询工具,getent passwd mandriva 命令的作用是在/etc/passwd 文件中查找mandriva用户的信息,查到就显示出来,若不指定后面的用户,这打印显示/etc/passwd的全部内容。uesrdel 表示删除目录,该命令默认只删除用户的账号信息,不会去删除用户的家目录,和邮件目录。若要想删除可以用 -r选项。

  (6)、创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;

[root@test test]#getent group peguin
[root@test test]#groupadd peguin
[root@test test]#getent group peguin
peguin:x:2020:
[root@test test]#useradd -u 2002 -g distro -G peguin slackware
[root@test test]#id slackware
uid=2002(slackware) gid=2019(distro) groups=2019(distro),2020(peguin)

  说明:useradd -G 指定用户附加组列表

  (7)、修改slackware的默认shell为/bin/tcsh;

[root@test test]#getent passwd slackware
slackware:x:2002:2019::/home/slackware:/bin/bash
[root@test test]#usermod -s /bin/tcsh slackware
[root@test test]#getent passwd slackware
slackware:x:2002:2019::/home/slackware:/bin/tcsh

  说明:usermod 命令主要作用 是修改用户的信息 其中-s 表示修改其用户的登录shell

  (8)、为用户slakware新增附加组admins;

[root@test test]#getent group admins
[root@test test]#groupadd admins
[root@test test]#getent group admins
admins:x:2021:
[root@test test]#usermod -aG admins slackware
[root@test test]#id slackware
uid=2002(slackware) gid=2019(distro) groups=2019(distro),2020(peguin),2021(admins)

  说明:usermod -aG 命令等同于 usermod -a -G  其中-a 选项表示追加,-G的作用是指定新的附加组列表, 两者合着一起用就表示 将-G指定的附加组列表追加到当前已有的用户附加组后边,若不指定-a 那么-G指定的附加组列表将会覆盖原有用户的附加组列表。

以上用到了几个命令,这里常用选项做个总结:

useradd:添加用户

  用法:useradd [选项] 用户名

  常用选项:

    -d, --home-dir HOME_DIR 新账户的主目录

    -c, --comment COMMENT 新账户的 GECOS 字段

    -g, --gid GROUP 新账户主组的名称或 ID

    -G, --groups GROUPS 新账户的附加组列表   

    -m, --create-home 创建用户的主目录

    -M, --no-create-home 不创建用户的主目录

    -r, --system 创建一个系统账户  

    -s, --shell SHELL 新账户的登录 shell

    -u, --uid UID 新账户的用户 ID

usermod:修改用户

  用法:usermod [选项] 用户名

  常用选项:

    -c, --comment 注释 GECOS 字段的新值

    -d, --home HOME_DIR 用户的新主目录
    -e, --expiredate EXPIRE_DATE 设定帐户过期的日期为 EXPIRE_DATE
    -f, --inactive INACTIVE 过期 INACTIVE 天数后,设定密码为失效状态
    -g, --gid GROUP 强制使用 GROUP 为新主组
    -G, --groups GROUPS 新的附加组列表 GROUPS
    -a, --append GROUP 将用户追加至上边 -G 中提到的附加组中,并不从其它组中删除此用户
    -l, --login LOGIN 新的登录名称
    -L, --lock 锁定用户帐号
    -m, --move-home  将家目录内容移至新位置 (仅与 -d 一起使用)
    -o, --non-unique 允许使用重复的(非唯一的) UID
    -p, --password PASSWORD 将加密过的密码 (PASSWORD) 设为新密码
    -s, --shell SHELL 该用户帐号的新登录 shell
    -u, --uid UID 用户帐号的新 UID
    -U, --unlock 解锁用户帐号

usersdel:删除用户

  用法:userdel [选项] 用户名

  常用选项:

    -r:连同用户家目录,邮件目录一并删除

groupadd:添加用户组

  用法:groupadd [选项] 组名

  常用选项:

    -g, --gid GID 指定组ID

    -p, --password PASSWORD 给组设置密码

    -r, --system 指定组为系统组

passwd:设置用户密码或修改用户密码

  用法:passwd [选项] 用户名

  常用选项:

    --stdin  从标准输入读取令牌(只有root才能进行此操作)

    -l,--lock 锁定用户(有root才能进行此操作)

    -u, --unlock 解锁用户(有root才能进行此操作)
    -S, --status            报告已命名帐号的密码状态(有root才能进行此操作)

chage:修改账号和密码都有效期限

  用法:chage [选项] 用户名

  常用选项:

    -d, --lastday 最近日期 将最近一次密码设置时间设为“最近日期”

    -E, --expiredate 过期日期 将帐户过期时间设为“过期日期”

    -I, --inactive INACITVE 过期 INACTIVE 天数后,设定密码为失效状态(大写i)

    -l, --list 显示帐户年龄信息(小写L)

    -m, --mindays 最小天数 将两次改变密码之间相距的最小天数设为“最小天数”

    -M, --maxdays 最大天数 将两次改变密码之间相距的最大天数设为“最大天数”

    -R, --root CHROOT_DIR chroot 到的目录

    -W, --warndays 警告天数 将过期警告天数设为“警告天数

更多用户和用户组管理类命令总结请看:https://www.cnblogs.com/qiuhom-1874/p/11638122.html

Linux命令实战(五)的更多相关文章

  1. Linux命令实战(一)

    1.pwd(printing working directory)打印当前工作目录路径 [root@test sysconfig]# pwd /etc/sysconfig 2.ls(list)列出当前 ...

  2. Linux命令(五)创建文件或修改文件时间 touch

    Linux中 touch 命令可以改变文档或目录时间, 包括存取时间或更改时间, 也可以用于创建新文件. 命令格式: touch [选项] [参数] 选项: -a   只更改文件的读取时间. -m   ...

  3. Linux命令(五)——磁盘操作及文件系统的管理

    文件系统是所有文件夹和文件的基础,磁盘是文件系统的基础,文件系统以磁盘为基础存储文件. 一.linux文件系统类型 1.ext扩展文件系统/ext2二级扩展文件系统/ext3日志式文件系统(默认) 2 ...

  4. Linux命令实战(四)

    1.Linux上的文件管理类命令都有哪些,其常用的使用方法及相关示例演示. 文件或目录的新建 touch :将每个文件的访问时间和修改时间修改为当前时间.若文件不存在将会创建为空文件,除非使用-c或- ...

  5. Linux命令实战(三)

    1.file检查并显示文件类型(determine file type) 一般用法就是file 后面接要查看的文件 可以一个或多个 [root@test test]# ll total 140 -rw ...

  6. Linux命令实战(二)

    1.printf格式化输出(format and print data) 语法:printf(选项)(参数) 参数 输出格式:指定数据输出时的格式: 输出字符串:指定要输出的数据. 格式替代符 %c ...

  7. Linux 命令实战

    命令登录 ssh  UserName@RemoteIP ssh  seemmo@192.168.0.1 统计文件.目录的数量 统计当前目录下文件数量:ls  -l  |  grep  "^- ...

  8. Linux命令(五)之service服务查找、启动/停止等相关操作

    .personSunflowerP { background: rgba(51, 153, 0, 0.66); border-bottom: 1px solid rgba(0, 102, 0, 1); ...

  9. Linux命令(五)免密码远程登录和配置别名

    1. ssh-keygen 2. ssh-copy-id -p port user@remote .ssh中建立并编辑config文件 原来需要 ssh -p ubuntu@xxx.xxx.xxx 现 ...

随机推荐

  1. 基于Spark的电影推荐系统(推荐系统~2)

    第四部分-推荐系统-数据ETL 本模块完成数据清洗,并将清洗后的数据load到Hive数据表里面去 前置准备: spark +hive vim $SPARK_HOME/conf/hive-site.x ...

  2. HelloWin详解

    (注意:遇到程序在弄懂之后一定要自己去敲,一定要自己去敲,一定要自己去敲) (注意:遇到程序在弄懂之后一定要自己去敲,一定要自己去敲,一定要自己去敲) (注意:遇到程序在弄懂之后一定要自己去敲,一定要 ...

  3. Hadoop和YARN :map+shuffle+reduce走读

    今天做了一个hadoop分享,总结下来,包括mapreduce,及shuffle深度讲解,还有YARN框架的详细说明等. v\:* {behavior:url(#default#VML);} o\:* ...

  4. 解决连接oracle报错 尝试加载Oracle客户端库时引发BadImageFomatException。如果在安装64位Oracle客户端组件的情况下以32位模式运行,将出现此问题的报错。

    最近遇到一个.NET连接Oracle的一个错误,其主要原因是换了一台电脑,在新电脑上运行以前的项目出现了的一个错误,工作环境为vs2017+Oracle 64位,win10系统 这个错误头疼了一天,找 ...

  5. 特征真的越多越好吗?从特征工程角度看“garbage in,garbage out”

    1. 从朴素贝叶斯在医疗诊断中的迷思说起 这个模型最早被应用于医疗诊断,其中,类变量的不同值用于表示患者可能患的不同疾病.证据变量用于表示不同症状.化验结果等.在简单的疾病诊断上,朴素贝叶斯模型确实发 ...

  6. sqlserver 查看最耗时的前10个存储过程

    SELECT TOP OBJECT_NAME(a.object_id,database_id) SP_Name, DB_NAME(a.database_id) Database_Name, a.cac ...

  7. i春秋DMZ大型靶场实验(一)内网拓展

    更具提示 先下载工具包 ip  172.16.12.226  打开bp 进行代理发现 整个页面 没有请求 没有其页面通过 御剑,dir ,hscan   进行目录爆破未发现有用信息    对当前页面进 ...

  8. selenium驱动chrome浏览器问题

    selenium是一个浏览器自动化测试框架,以下介绍其如何驱动chrome浏览器? 1.下载与本地chrome版本对应的chromedriver.exe ,下载地址为http://npm.taobao ...

  9. linux+jenkins+postman持续集成

    环境搭建:linux上安装newman,部署好jenkins linux上war包方式安装Jenkins 以下实现jenkins上执行postman测试脚本: 1.新建一个自动风格的job 2.构建- ...

  10. ThingJS和传统3D开发的区别

    物联网3D可视化开发已经辐射到各行各业,无论车间还是消防,城市还是粮仓,亦或是地铁.科技园,物联网可视化是科技的进步,也是行业的进步.而传统的3D可视化开发实施起来并不那么乐观.如果使用ThingJS ...