1、 问题描述:
在主目录下面创建/tmp文件夹,并且使其中包含 1/2/3/4/5 格式的文件夹,在第5个文件夹下创建一个test.txt文件,然后一次性删除1及其所有的子目录
具体实现:
[root@localhost tmp]# mkdir ~/tmp 在主目录下面创建/tmp文件夹
[root@localhost tmp]# mkdir ~/tmp/1 在/tmp文件夹下面创建1
[root@localhost tmp]# mkdir ~/tmp/1/2 在/tmp/1文件夹下面创建2
[root@localhost tmp]# mkdir ~/tmp/1/2/3 在/tmp/1/2文件夹下面创建3
[root@localhost tmp]# mkdir ~/tmp/1/2/3/4 在/tmp/1/2/3文件夹下面创建4
[root@localhost tmp]# mkdir ~/tmp/1/2/3/4/5 在/tmp/1/2/3/4文件夹下面创建5
[root@localhost tmp]# cd ~/tmp/1/2/3/4/5 进入~/tmp/1/2/3/4/5文件夹
[root@localhost 5]# touch test.txt 在第5个文件夹下创建一个test.txt文件
[root@localhost 5]# ls 查看test.txt是否存在
test.txt
[root@localhost 5]# cd ~/tmp 进入~/tmp文件夹
[root@localhost tmp]# ls 查看1是否存在
1
[root@localhost tmp]# rm -rf 1 删除1
[root@localhost tmp]# ls 查看1是否存在
具体实现:
[root@localhost tmp]# touch 1.txt 2.txt 3.txt 4.txt 5.txt
#创建5个文件分别是 1.txt 2.txt 3.txt 4.txt 5.txt
[root@localhost tmp]# ls
#查看是否创建成功
1.txt 2.txt 3.txt 4.txt 5.txt
[root@localhost tmp]# tar -zcvf test.tar.gz 1.txt 2.txt 3.txt 4.txt 5.txt
#打包并压缩这5个文件,取名test.tar.gz
1.txt
2.txt
3.txt
4.txt
5.txt
[root@localhost tmp]# ls
#查看是否成功
1.txt 2.txt 3.txt 4.txt 5.txt test.tar.gz
[root@localhost tmp]# mv test.tar.gz /root
#把压缩包移动到/root目录下
[root@localhost tmp]# cd /root
#转移到/root下
[root@localhost ~]# ls
#查看是否转移过来
anaconda-ks.cfg mysql-community-release-el7-5.noarch.rpm test.tar.gz 公共 视频 文档 音乐
initial-setup-ks.cfg mysql-test-8.0.18-linux-glibc2.12-x86_64.tar.xz tmp 模板 图片 下载 桌面
[root@localhost ~]# tar -zxvf test.tar.gz -C /root
#解压
1.txt
2.txt
3.txt
4.txt
5.txt
[root@localhost ~]# ls
#查看是否解压成功
1.txt 4.txt initial-setup-ks.cfg test.tar.gz 模板 文档 桌面
2.txt 5.txt mysql-community-release-el7-5.noarch.rpm tmp 视频 下载
3.txt anaconda-ks.cfg mysql-test-8.0.18-linux-glibc2.12-x86_64.tar.xz 公共 图片 音乐
3问题描述:
在/home/test下创建目录001、002、003,在001目录下创建文件011.c,在002目录创建文件021.c、022.c、023.txt、024,在003目录下创建文件031.htm 032.txt 033.htm 034.htm
修改011.c文件属性对拥有者、群组可读可写可执行
用一行命令修改002目录下所有文件属性对拥有者、群组可读可写可执行
003路径用一行命令修改所有*htm文件的属性对用户可读可写可执行,对群组可读可执行
具体实现:
[root@localhost ~]# cd /home 进入/home 目录下
[root@localhost home]# ls 查看是否存在test文件夹
wiseinsight
[root@localhost home]# mkdir test 不存在,则新建
[root@localhost home]# ls
test wiseinsight
[root@localhost home]# cd test 进入test
[root@localhost test]# mkdir 001 002 003 创建001 002 003目录
[root@localhost test]# ls 查看是否存在
001 002 003
[root@localhost test]# cd 001 进入001
[root@localhost 001]# touch 011.c 在001目录下创建文件011.c
[root@localhost 001]# cd /home/test/002
#在002目录创建文件021.c、022.c、023.txt、024
[root@localhost 002]# touch 021.c 022.c 023.txt 024
[root@localhost 002]# ls 查看是否存在
021.c 022.c 023.txt 024
[root@localhost 002]# cd /home/test/003
# 在003目录下创建文件031.htm 032.txt 033.htm 034.htm
[root@localhost 003]# touch 031.htm 032.txt 033.htm 034.htm
[root@localhost 003]# cd ..
[root@localhost test]# ll 返回上一级查看权限
总用量 0
drwxr-xr-x. 2 root root 19 10月 24 14:58 001
drwxr-xr-x. 2 root root 58 10月 24 14:59 002
drwxr-xr-x. 2 root root 66 10月 24 14:59 003
[root@localhost test]# cd 001
[root@localhost 001]# ll 查看011.c的权限
总用量 0
-rw-r--r--. 1 root root 0 10月 24 14:58 011.c
[root@localhost 001]# chmod 777 011.c
#修改011.c文件属性对拥有者、群组可读可写可执行
[root@localhost 001]# ll 查看权限
总用量 0
-rwxrwxrwx. 1 root root 0 10月 24 14:58 011.c
[root@localhost 002]# cd ..
[root@localhost test]# cd 002
[root@localhost 002]# chmod 777 *
#用一行命令修改002目录下所有文件属性对拥有者、群组可读可写可执行
[root@localhost 002]# ll 查看权限
总用量 0
-rwxrwxrwx. 1 root root 0 10月 24 14:59 021.c
-rwxrwxrwx. 1 root root 0 10月 24 14:59 022.c
-rwxrwxrwx. 1 root root 0 10月 24 14:59 023.txt
-rwxrwxrwx. 1 root root 0 10月 24 14:59 024
[root@localhost 002]# cd ..
[root@localhost test]# cd 003
[root@localhost 003]# chmod 757 *.htm
#003路径用一行命令修改所有*htm文件的属性对用户可读可写可执行,对群组可读可执行
[root@localhost 003]# ll 查看权限
总用量 0
-rwxr-xrwx. 1 root root 0 10月 24 14:59 031.htm
-rw-r--r--. 1 root root 0 10月 24 14:59 032.txt
-rwxr-xrwx. 1 root root 0 10月 24 14:59 033.htm
-rwxr-xrwx. 1 root root 0 10月 24 14:59 034.htm
问题描述:
ls -d /var/l*[[:digit:]]*[[:lower:]]
问题描述:
2. 显示/etc目录下以任意一位数字开头,且以非数字结尾的文件或目录
具体实现:
ls -d /etc/[[:digit:]]*[^[:digit:]]
问题描述:
3. 显示/etc/目录下以非字母开头,后面跟了一个字母及其它任意长度任意字符的文件或目录
具体实现:
ls -d /etc/[^[:alpha:]][[:alpha:]]*[[:alnum:]]
问题描述:
4. 显示/etc/目录下所有以rc开头,并后面是0-6之间的数字,其它为任意字符的文件或目录
具体实现:
ls -d /etc/rc*[0-6]*[[:alnum:]]
问题描述:
5. 显示/etc目录下,所有以.d结尾的文件或目录
具体实现:
ls -d /etc/*.d
问题描述:
6. 显示/etc目录下,所有.conf结尾,且以m,n,r,p开头的文件或目录
具体实现:
ls -d /etc/[mnrp]*.conf7.只显示/root下的隐藏文件和目录///只显示etc下的目录
问题描述:
7. 只显示/root下的隐藏文件和目录///只显示etc下的目录
具体实现:
ls -d /root/.*
ls -d /etc/*/
问题描述:
8. 只显示/etc下的非隐藏目录
具体实现:
ls -d /etc/[^.]*/
问题描述:
具体实现:
[root@localhost /]# mkdir testdir 创建testdir文件夹
[root@localhost /]# alias "baketc=cp -vr /etc/ /testdir/backup`date +%F`"
#定义别名命令baketc,每天将/etc/目录下所有文件,备份到/testdir独立的子目录下,并要求子目录格式为 backupYYYY-mm-dd
[root@localhost /]# baketc
问题描述:
10.创建/testdir/rootdir目录,并复制/root下所有文件到该目录内,要求保留原有权限
具体实现:
[root@localhost /]# mkdir /testdir/rootdir 创建/testdir/rootdir目录
[root@localhost /]# cp -a /root/ /testdir/rootdir/
#复制/root下所有文件到该目录内,要求保留原有权限
问题描述:
11.如何创建/testdir/dir1/x,
/testdir/dir1/y,/testdir/dir1/x/a, /testdir/dir1/x/b,/testdir/dir1/y/a,
/testdir/dir1/y/b
具体实现:
mkdir -p /testdir/dir1/{x,y}/{a,b}
问题描述:
12.如何创建/testdir/dir2/x, /testdir/dir2/y,/testdir/dir2/x/a, /testdir/dir2/x/b
具体实现:
mkdir -p /testdir/dir2/{x/{a,b},y}
问题描述:
具体实现:
df -h
问题描述:
具体实现:
cp -pdf /etc/issue /etc/issue.bak
问题描述:
具体实现:
ls -d /root/.*
问题描述:
具体实现:
ls -d /root/.*/
问题描述:
具体实现:
useradd gentoo -G bin,root -s /bin/csh -c "Gentoo Distribution"
[root@localhost etc]# groupadd admins 名字为admins 的组
[root@localhost etc]# useradd -G admins natash 用户natasha,使用admins 作为附属组
[root@localhost etc]# useradd -G admins harry 用户harry,也使用admins 作为附属组
[root@localhost etc]# useradd -G admins -s /sbin/nologin sarsh
#用户sarah,不可登录系统,且不是admins 的成员
[root@localhost etc]# echo centos | passwd --stdin natash
更改用户 natash 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@localhost etc]# echo centos | passwd --stdin harry
更改用户 harry 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@localhost etc]# echo centos | passwd --stdin sarsh
更改用户 sarsh 的密码 。
passwd:所有的身份验证令牌已经成功更新。
#natasha,harry,sarah密码都是centos
vim /etc/login.defs#vim 查看并修改
cat /etc/default/useradd#cat 查看
[root@localhost /]# groupadd -g 5005 apache
[root@localhost /]# useradd -d /www -G apache -u 666 -o aubin1
##关于useradd的某些参数:
-u UID:指定 UID,这个 UID 必须是大于等于500,并没有其他用户占用的 UID
-g GID/GROUPNAME:指定默认组,可以是 GID 或者 GROUPNAME,同样也必须真实存在
-G GROUPS:指定额外组
-c COMMENT:指定用户的注释信息
-d PATH:指定用户的家目录
-b, --base-dir BASE_DIR 新账户的主目录的基目录
-c, --comment COMMENT 新账户的 GECOS 字段
-d, --home-dir HOME_DIR 新账户的主目录
-D, --defaults 显示或更改默认的 useradd 配置
-e, --expiredate EXPIRE_DATE 新账户的过期日期
-f, --inactive INACTIVE 新账户的密码不活动期
-g, --gid GROUP 新账户主组的名称或 ID
-G, --groups GROUPS 新账户的附加组列表
-h, --help 显示此帮助信息并推出
-k, --skel SKEL_DIR 使用此目录作为骨架目录
-K, --key KEY=VALUE 不使用 /etc/login.defs 中的默认值
-l, --no-log-init 不要将此用户添加到最近登录和登录失败数据库
-m, --create-home 创建用户的主目录
-M, --no-create-home 不创建用户的主目录
-N, --no-user-group 不创建同名的组
-o, --non-unique 允许使用重复的 UID 创建用户
-p, --password PASSWORD 加密后的新账户密码
-r, --system 创建一个系统账户
-R, --root CHROOT_DIR chroot 到的目录
-s, --shell SHELL 新账户的登录 shell
-u, --uid UID 新账户的用户 ID
-U, --user-group 创建与用户同名的组
-Z, --selinux-user SEUSER 为 SELinux 用户映射使用指定 SEUSER
#关于groupadd的某些参数:
-f,--force 如果指定的组已经存在,此选项将失明了仅以成功状态退出。当与-g一起使用,并且指定的GID_MIN已经存在时,选择另一个唯一的GID(即-g关闭)。
-g,--gid GID 这个值必须是唯一的,除非使用-o选项。但必须是非负的。默认值是使用大于或等于GID_MIN的最小值,并且大于每个其他组。
-K,--key KEY=VALUE 重写/etc/login.defs默认值(GID_MIN,GID_MAX和其他)。可以指定多个K选项。示例:-K GID_MIN=100 –KGID_MAX=499。注意:-K GID_MIN=10,GID_MAX=499不能工作。
-o,--non-unique 此选项允许添加一个非唯一的GID值。
-p,--password PASSWORD 为新组使用此加密过的密码。默认为禁用密码。注意:不推荐使用这个选项,因为密码(或加密过的密码)会被用户通过列出这个过程而看到。您应该确保密码符合系统的密码政策。
-r,--system 创建一个系统组。新的系统组数字标识符在SYS_GID_MIN到SYS_GID_MAX范围内选择,定义在login.defs中而不是GID_MIN到GID_MAX。
-R,--root CHROOT_DIR 将修改应用到CHROOT_DIR目录,并使用配置。
useradd -Db /www -s /bin/csh
[root@localhost /]# vim user
aubin2:X:555:555::/home/aubin2:/sbin/nolog/
aubin3:X:556:556::/home/aubin3:/sbin/nolog/
[root@localhost /]# vim passwd
aubin2:root
aubin3:root
[root@localhost /]# newusers user
[root@localhost /]# chpasswd < passwd
[root@localhost /]# getent passwd aubin2 aubin3
aubin2:x:555:555::/home/aubin2:/sbin/nolog/
aubin3:x:556:556::/home/aubin3:/sbin/nolog/
###查询zabbix用户组下面的所有成员
getent group zabbix
相当于cat /etc/group|grep zabbix
#查询用户zabbix的passwd信息
getent passwd zabbix
相当于cat /etc/passwd|grep zabbix
#getent命令可以用来察看系统的数据库中的相关记录,例如:
查看hostid对应的IP、域名
[root@linux ~]# getent hosts linux-david
192.168.88.88 linux-david.com linux-david
查看用户passwd里面的内容
[root@linux ~]# getent passwd david
david:x:500:500:david:/home/david:/bin/bash
#即使这些数据库不是在本地,比如ldap或者nis中的数据库, 也可以使用getent察看
\25. 修改aubin2用户UID672、主组root、添加新的附加组admins且保留旧的附加组。然后锁定用户
[root@localhost /]# usermod -u 672 -g root -G admins -a aubin2
[root@localhost /]# usermod -L aubin2
[root@localhost /]# passwd -l aubin2
锁定用户 aubin2 的密码 。
passwd: 操作成功
#关于usrmod的某些参数:
-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 中提到的附加组中,
并不从其它组中删除此用户
-h, --help 显示此帮助信息并推出
-l, --login LOGIN 新的登录名称
-L, --lock 锁定用户帐号
-m, --move-home 将家目录内容移至新位置 (仅于 -d 一起使用)
-o, --non-unique 允许使用重复的(非唯一的) UID
-p, --password PASSWORD 将加密过的密码 (PASSWORD) 设为新密码
-R, --root CHROOT_DIR chroot 到的目录
-s, --shell SHELL 该用户帐号的新登录 shell
-u, --uid UID 用户帐号的新 UID
-U, --unlock 解锁用户帐号
-Z, --selinux-user SEUSER 用户账户的新 SELinux 用户映射
usermod -l curry -e 2020-02-02 aubin2
#-l, --login LOGIN 新的登录名称
#-e, --expiredate EXPIRE_DATE 设定帐户过期的日期为 EXPIRE_DATE
[root@localhost /]# usermod -d /home/aubin1 -m aubin1
[root@localhost /]# echo hello | passwd --stdin aubin1
更改用户 aubin1 的密码 。
passwd:所有的身份验证令牌已经成功更新。
#-d, --home HOME_DIR 用户的新主目录
#-m, --move-home 将家目录内容移至新位置 (仅于 -d 一起使用)
[root@localhost /]# id -u curry
672
[root@localhost /]# id -g curry
0
[root@localhost /]# id -un curry
curry
[root@localhost /]# id -gn curry
root
#id选项
-g或--group 显示用户所属群组的ID。
-G或--groups 显示用户所属附加群组的ID。
-n或--name 显示用户,所属群组或附加群组的名称。
-r或--real 显示实际ID。
-u或--user 显示用户ID。
-help 显示帮助。
-version 显示版本信息。
[root@localhost /]# passwd -l curry
锁定用户 curry 的密码 。
passwd: 操作成功
[root@localhost /]# usermod -L curry
chage -m 10 -M 20 -W 7 aubin3
#用法:chage [选项] 登录
选项:
-d, --lastday 最近日期 将最近一次密码设置时间设为“最近日期”
-E, --expiredate 过期日期 将帐户过期时间设为“过期日期”
-h, --help 显示此帮助信息并推出
-I, --inactive INACITVE 过期 INACTIVE 天数后,设定密码为失效状态
-l, --list 显示帐户年龄信息
-m, --mindays 最小天数 将两次改变密码之间相距的最小天数设为“最小天数”
-M, --maxdays 最大天数 将两次改变密码之间相距的最大天数设为“最大天数”
-R, --root CHROOT_DIR chroot 到的目录
-W, --warndays 警告天数 将过期警告天数设为“警告天数”
echo hello | passwd --stdin aubin3
groupadd -r -g 66 liuliansha
groupmod -n six -g 67 liuliansha
#用法:groupmod [选项] 组
选项:
-g, --gid GID 将组 ID 改为 GID
-h, --help 显示此帮助信息并推出
-n, --new-name NEW_GROUP 改名为 NEW_GROUP
-o, --non-unique 允许使用重复的 GID
-p, --password PASSWORD 将密码更改为(加密过的) PASSWORD
-R, --root CHROOT_DIR chroot 到的目录
groupdel six
chfn curry
finger curry
[root@localhost /]# userdel -r aubin1
[root@localhost /]# userdel -r aubin2
[root@localhost /]# userdel -r sarah
[root@localhost /]# userdel -r gentoo
[root@localhost /]# userdel -r natasha
[root@localhost /]# userdel -r harry
[root@localhost /]# userdel -r sarsh
[root@localhost /]# userdel -r aubin1
[root@localhost /]# userdel -r curry
[root@localhost /]# userdel -r aubin3
[root@localhost /]# groupdel admins
\38. 添加用户a、b、c,创建组e、f,把用户a和b添加到e组,把c添加到f组在
[root@localhost ~]# useradd a
[root@localhost ~]# useradd b
[root@localhost ~]# useradd -Db /home
[root@localhost ~]# useradd c
[root@localhost ~]# groupadd e
[root@localhost ~]# groupadd f
[root@localhost ~]# usermod -G e a
[root@localhost ~]# usermod -G e b
[root@localhost ~]# usermod -G f c
\39. 在linux系统里安装mysql,使用wget到mysql官网下载mysql5.x安装文件,解压进行安装
[root@localhost ~]# wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
[root@localhost ~]# service mysqld restart
[root@localhost ~]# systemctl start mysqld.service
[root@localhost ~]# yum repolist enabled | grep mysql.*
[root@localhost ~]# yum install mysql-community-server
[root@localhost ~]# systemctl status mysqld.service
[root@localhost ~]# grep "password" /var/log/mysqld.log
[root@localhost ~]# mysql -uroot -p