linux练习

基础题

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是否存在
  1. 问题描述
    在/tmp目录下,创建5个文件分别是 1.txt 2.txt 3.txt 4.txt 5.txt,打包并压缩这5个文件,取名为test.tar.gz。把压缩包移动到/root目录下,并解压

具体实现

[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

问题描述:

  1. 显示/var目录下所有以l开头,以一个小写字母结尾,且中间出现至少位数字的文件或目录
    具体实现
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/[^.]*/

问题描述:

  1. 定义别名命令baketc,每天将/etc/目录下所有文件,备份到/testdir独立的子目录下,并要求子目录格式为 backupYYYY-mm-dd,备份过程可见

具体实现

[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}

问题描述:

  1. 以G、M、K为单位的形式查看分区

具体实现

df -h

问题描述:

  1. 将/etc/issue文件备份到备份/etc/issue.bak

具体实现

cp -pdf /etc/issue /etc/issue.bak

问题描述:

  1. 只显示/root隐藏的文文件或者目录

具体实现

ls -d /root/.*

问题描述:

  1. 只显示/root下隐藏的目录

具体实现

ls -d /root/.*/

问题描述:

  1. 创建用户gentoo,附加组为bin和root,默认shell为/bin/csh,注释信息为"Gentoo Distribution"

具体实现

useradd gentoo -G bin,root -s /bin/csh -c "Gentoo Distribution"
  1. 创建下面的用户、组和组成员关系
    名字为admins 的组
    用户natasha,使用admins 作为附属组
    用户harry,也使用admins 作为附属组
    用户sarah,不可登录系统,且不是admins 的成员,
    natasha,harry,sarah密码都是centos
[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

  1. 查看UID、GID范围的配置文件,修改为501-60000。
vim /etc/login.defs#vim 查看并修改
  1. 查看创建用户时的模板配置文件
cat /etc/default/useradd#cat 查看
  1. 创建一个新用户 aubin1,指定登录时起始目录 /www,同时加入 apache 附加组中,指定UID为666且不检查uid唯一性
[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目录,并使用配置。
  1. 修改创建用户时的默认设置,家目录/www,默认shell csh。
    查看创建用户的配置文件是否更改,若更改则恢复默认值
 useradd  -Db /www -s /bin/csh 
  1. 批量创建用户aubin2、aubin3
[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
  1. 只查看用户aubin2、aubin3在/etc/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 用户映射
  1. 修改用户aubin2用户名为curry,设置账号过期时间为2020-02-02
usermod -l curry -e 2020-02-02 aubin2   
#-l, --login LOGIN             新的登录名称
#-e, --expiredate EXPIRE_DATE  设定帐户过期的日期为 EXPIRE_DATE
  1. 用标准输入给aubin1设置密码hello,
    然后指定新的用户家目录并把旧目录移动过去。
[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 一起使用)

  1. 显示curry用户UID、GID、显示用户名、显示用户所属组ID
[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      显示版本信息。
  1. 锁定curry用两种方法
[root@localhost /]# passwd -l curry
锁定用户 curry 的密码 。
passwd: 操作成功
[root@localhost /]# usermod -L curry
  1. 指定aubin3的密码最短使用日期为10天,最常使用日期为20天,提前7天提示修改密码
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 警告天数       将过期警告天数设为“警告天数”

  1. 从标准输入设置aubin3的密码
echo hello | passwd --stdin aubin3
  1. 创建系统组liuliansha 指定GID为66
groupadd -r -g 66 liuliansha
  1. 修改liuliansha组名为six 修改GID为67
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 到的目录

  1. 将用户aubin1添加进组six,将aubin从six组中删除。
groupdel six
  1. 设置curry用户的详细描述,然后用finger查看
chfn curry
finger curry
  1. 删除用户aubin1、aubin2并删除家目录
[root@localhost /]# userdel -r aubin1
[root@localhost /]# userdel -r aubin2

  1. 删除练习创建的用户并删除家目录,删除创建的组
[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

你可能感兴趣的:(linux练习)