Linux命令实战(五)
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才能进行此操作)
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命令实战(五)的更多相关文章
- Linux命令实战(一)
1.pwd(printing working directory)打印当前工作目录路径 [root@test sysconfig]# pwd /etc/sysconfig 2.ls(list)列出当前 ...
- Linux命令(五)创建文件或修改文件时间 touch
Linux中 touch 命令可以改变文档或目录时间, 包括存取时间或更改时间, 也可以用于创建新文件. 命令格式: touch [选项] [参数] 选项: -a 只更改文件的读取时间. -m ...
- Linux命令(五)——磁盘操作及文件系统的管理
文件系统是所有文件夹和文件的基础,磁盘是文件系统的基础,文件系统以磁盘为基础存储文件. 一.linux文件系统类型 1.ext扩展文件系统/ext2二级扩展文件系统/ext3日志式文件系统(默认) 2 ...
- Linux命令实战(四)
1.Linux上的文件管理类命令都有哪些,其常用的使用方法及相关示例演示. 文件或目录的新建 touch :将每个文件的访问时间和修改时间修改为当前时间.若文件不存在将会创建为空文件,除非使用-c或- ...
- Linux命令实战(三)
1.file检查并显示文件类型(determine file type) 一般用法就是file 后面接要查看的文件 可以一个或多个 [root@test test]# ll total 140 -rw ...
- Linux命令实战(二)
1.printf格式化输出(format and print data) 语法:printf(选项)(参数) 参数 输出格式:指定数据输出时的格式: 输出字符串:指定要输出的数据. 格式替代符 %c ...
- Linux 命令实战
命令登录 ssh UserName@RemoteIP ssh seemmo@192.168.0.1 统计文件.目录的数量 统计当前目录下文件数量:ls -l | grep "^- ...
- Linux命令(五)之service服务查找、启动/停止等相关操作
.personSunflowerP { background: rgba(51, 153, 0, 0.66); border-bottom: 1px solid rgba(0, 102, 0, 1); ...
- Linux命令(五)免密码远程登录和配置别名
1. ssh-keygen 2. ssh-copy-id -p port user@remote .ssh中建立并编辑config文件 原来需要 ssh -p ubuntu@xxx.xxx.xxx 现 ...
随机推荐
- 基于Spark的电影推荐系统(推荐系统~2)
第四部分-推荐系统-数据ETL 本模块完成数据清洗,并将清洗后的数据load到Hive数据表里面去 前置准备: spark +hive vim $SPARK_HOME/conf/hive-site.x ...
- HelloWin详解
(注意:遇到程序在弄懂之后一定要自己去敲,一定要自己去敲,一定要自己去敲) (注意:遇到程序在弄懂之后一定要自己去敲,一定要自己去敲,一定要自己去敲) (注意:遇到程序在弄懂之后一定要自己去敲,一定要 ...
- Hadoop和YARN :map+shuffle+reduce走读
今天做了一个hadoop分享,总结下来,包括mapreduce,及shuffle深度讲解,还有YARN框架的详细说明等. v\:* {behavior:url(#default#VML);} o\:* ...
- 解决连接oracle报错 尝试加载Oracle客户端库时引发BadImageFomatException。如果在安装64位Oracle客户端组件的情况下以32位模式运行,将出现此问题的报错。
最近遇到一个.NET连接Oracle的一个错误,其主要原因是换了一台电脑,在新电脑上运行以前的项目出现了的一个错误,工作环境为vs2017+Oracle 64位,win10系统 这个错误头疼了一天,找 ...
- 特征真的越多越好吗?从特征工程角度看“garbage in,garbage out”
1. 从朴素贝叶斯在医疗诊断中的迷思说起 这个模型最早被应用于医疗诊断,其中,类变量的不同值用于表示患者可能患的不同疾病.证据变量用于表示不同症状.化验结果等.在简单的疾病诊断上,朴素贝叶斯模型确实发 ...
- sqlserver 查看最耗时的前10个存储过程
SELECT TOP OBJECT_NAME(a.object_id,database_id) SP_Name, DB_NAME(a.database_id) Database_Name, a.cac ...
- i春秋DMZ大型靶场实验(一)内网拓展
更具提示 先下载工具包 ip 172.16.12.226 打开bp 进行代理发现 整个页面 没有请求 没有其页面通过 御剑,dir ,hscan 进行目录爆破未发现有用信息 对当前页面进 ...
- selenium驱动chrome浏览器问题
selenium是一个浏览器自动化测试框架,以下介绍其如何驱动chrome浏览器? 1.下载与本地chrome版本对应的chromedriver.exe ,下载地址为http://npm.taobao ...
- linux+jenkins+postman持续集成
环境搭建:linux上安装newman,部署好jenkins linux上war包方式安装Jenkins 以下实现jenkins上执行postman测试脚本: 1.新建一个自动风格的job 2.构建- ...
- ThingJS和传统3D开发的区别
物联网3D可视化开发已经辐射到各行各业,无论车间还是消防,城市还是粮仓,亦或是地铁.科技园,物联网可视化是科技的进步,也是行业的进步.而传统的3D可视化开发实施起来并不那么乐观.如果使用ThingJS ...