Ubuntu在命令行下不能够切换字母的大小写,只能输入大写字母

欢迎大家关注笔者,你的关注是我持续更博的最大动力


原创文章,转载告知,盗版必究


Ubuntu在命令行下不能够切换字母的大小写,只能输入大写字母

文章目录:


系统环境:

  • Ubuntu:18.04

1 问题描述

不知道怎么搞的,在使用Ubuntu在命令下不能够切换字母的大小写,只能输入大写字母,即使键盘的CapsLock大写字母锁定键盘灯已经灭了,依旧只能输入大写字母,切换中英文输入法同样不好使,网上看了一些方法,有些不匹配,有些又臭又长,最后误打误撞解决了!

2 解决方法

按:Shift+CapsLock组合快捷键,然后就可以切换到小写的英文输入,同时这个快捷键还可以进行中英文输入法的切换


不明觉厉

在这里插入图片描述




在这里插入图片描述
♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠

<think>好的,我现在需要在Linux终端中创建多个普通用户,设置密码,分配到同的组,还要验证用户是否创建成功,以及切换用户验证。虽然我之前学过一些Linux命令,但具体步骤可能记太清楚,得仔细想想。 首先,用户创建应该用useradd或者adduser命令吧?过这两个命令好像有点区别,比如useradd是更底层的命令,而adduser可能是一个交互式的脚本。过一般在脚本里可能更常用useradd,因为可以批量处理。所以这里可能需要用useradd来创建用户。 接下来,用户需要设置密码。通常使用passwd命令,但是passwd是交互式的,如果要在脚本中自动设置密码,可能需要用到--stdin选项,或者用chpasswd命令。过有些系统可能支持--stdin,比如在Ubuntu中passwd可能没有这个选项,这时候可能需要用chpasswd。例如,echo "username:password" | chpasswd。这样就能非交互式设置密码了。 然后,关于组的分配。主组是xjtuse,而次级组是coding和testing。需要先确认这些组是否存在,如果存在的话,得先用groupadd创建。主组可以通过useradd的-g参数指定,而次级组通过-G参数指定,多个组用逗号分隔。例如,useradd -g xjtuse -G coding,testing username。但可能需要先创建这些组,否则会报错。 所以步骤大概是这样的: 1. 创建主组xjtuse和次级组coding、testing: groupadd xjtuse groupadd coding groupadd testing 2. 创建用户,设置主组和次级组: useradd -g xjtuse -G coding,testing tux 同样对bob、Alice、lily重复这个命令,注意用户名的大小写是否敏感,Linux系统下用户名一般是区分大小写的,所以Alice和alice是同的用户,这里用户是Alice,需要注意正确输入。 3. 为每个用户设置密码。假设密码统一设置为比如"123456",但实际生产环境应该用更复杂的密码。这里为了测试,可以这样做: echo "tux:123456" | chpasswd 对每个用户执行同样的命令。 4. 验证用户是否创建成功,可以通过查看/etc/passwd文件,或者使用id命令,比如id tux,查看用户的组信息是否正确。 5. 切换用户的话,用su命令,比如su - tux,然后输入密码,验证是否能登录。或者用sudo -u tux命令来执行某个命令,确认权限是否正确。 过可能需要注意,如果系统配置了sudo或者需要密码,可能需要调整。另外,root用户切换到普通用户需要密码,但普通用户切换到其他用户可能需要密码。 另外,创建用户的时候可能需要指定家目录,或者系统会自动创建。默认情况下useradd会创建家目录,但有些发行版可能需要加上-m选项,比如useradd -m。需要确认系统默认行为,或者显式加上-m参数以确保家目录被创建。 比如,在Debian/Ubuntu中,useradd默认创建家目录,除非加上-m。而其他发行版可能同。所以可能需要用useradd -m来确保家目录存在,否则用户登录可能会出现问题。 此外,用户密码的问题,如果使用echo和chpasswd,可能需要确保有足够的权限,通常需要以root用户执行这些命令。 现在把这些步骤整合成一个脚本,可能需要循环处理每个用户: 创建组: groupadd xjtuse groupadd coding groupadd testing 然后对每个用户执行: useradd -m -g xjtuse -G coding,testing username echo "username:password" | chpasswd 然后验证: id username 切换用户测试: su - username,然后输入密码,执行whoami确认当前用户。 另外,root用户切换到普通用户可以直接su - username,需要密码。但普通用户切换到其他用户需要输入目标用户的密码。 可能还需要检查/etc/group文件,确认用户是否被正确添加到各个组中。比如,查看coding组的成员是否包含这些用户。 需要注意的是,用户Alice的名字首字母大写,在Linux中用户名是区分大小写的,所以useradd Alice会创建一个名为Alice的用户,而alice是另一个用户。但通常习惯上用户名都是小写,这里用户可能要求的是Alice,所以需要严格按照要求创建。 另外,可能存在用户主组的问题,主组xjtuse需要在创建用户之前存在,否则useradd会报错。所以必须先创建xjtuse组。 总结步骤: 1. 创建所需组:xjtuse、coding、testing。 2. 使用useradd创建每个用户,指定主组和次级组。 3. 使用chpasswd为每个用户设置密码。 4. 验证用户信息(id、/etc/passwd、/etc/group)。 5. 切换用户测试,使用su或sudo。 现在,可能存在的一些问题: - 如果用户已经存在,useradd会报错,可能需要先删除已有用户,或者处理异常情况。但问题中没有提到需要处理已存在的用户,所以假设这些用户存在。 - 密码设置的兼容性问题,比如在有些系统中,chpasswd可能需要先安装,或者passwd --stdin的可用性。例如,在Ubuntu中,passwd支持--stdin,而chpasswd是可行的,但需要以root权限执行。 - 用户家目录的权限是否正确,如果家目录没有正确创建,可能导致用户无法登录。 - 用户是否被正确添加到所有次级组中,可以通过groups命令查看用户的组成员。 可能还需要注意,主组和次级组的区别,主组是用户创建文件时的默认组,而次级组则提供额外的权限。 现在,把这些步骤写成具体的命令: 创建组: sudo groupadd xjtuse sudo groupadd coding sudo groupadd testing 创建用户并设置组: sudo useradd -m -g xjtuse -G coding,testing tux sudo useradd -m -g xjtuse -G coding,testing bob sudo useradd -m -g xjtuse -G coding,testing Alice sudo useradd -m -g xjtuse -G coding,testing lily 设置密码: echo "tux:123456" | sudo chpasswd echo "bob:123456" | sudo chpasswd echo "Alice:123456" | sudo chpasswd echo "lily:123456" | sudo chpasswd 验证用户是否存在: id tux id bob id Alice id lily 查看组信息: getent group xjtuse getent group coding getent group testing 切换用户测试: su - tux 输入密码(123456),然后exit 或者使用sudo -u tux whoami 对于root切换到用户,直接su - username,需要密码。例如,作为root用户时,su - tux无需密码,但如果是普通用户切换,需要输入目标用户的密码。 验证完毕后,可以检查/home目录下是否有对应用户的家目录。 可能还需要注意,某些系统可能需要额外的选项,比如设置shell,默认可能是/bin/sh,而用户可能需要/bin/bash。可以在useradd时指定-s /bin/bash。 例如,useradd -m -g xjtuse -G coding,testing -s /bin/bash tux 这样可以确保用户登录后有合适的shell环境。 总结,整个流程应该包括创建组、创建用户并分配组、设置密码、验证用户信息、切换测试。确保每个步骤都正确执行,没有错误提示。</think>### 分步操作指南 1. **创建用户组** 先创建主组 `xjtuse` 和次级组 `coding`、`testing`: ```bash sudo groupadd xjtuse sudo groupadd coding sudo groupadd testing ``` 2. **创建用户并分配组** 使用 `useradd` 创建用户,并通过 `-g` 指定主组,`-G` 指定次级组(需逗号分隔),`-m` 确保创建家目录: ```bash sudo useradd -m -g xjtuse -G coding,testing tux sudo useradd -m -g xjtuse -G coding,testing bob sudo useradd -m -g xjtuse -G coding,testing Alice sudo useradd -m -g xjtuse -G coding,testing lily ``` 3. **设置用户密码** 通过 `chpasswd` 批量设置密码(此处以密码 `123456` 为例,实际应使用复杂密码): ```bash echo "tux:123456" | sudo chpasswd echo "bob:123456" | sudo chpasswd echo "Alice:123456" | sudo chpasswd echo "lily:123456" | sudo chpasswd ``` 4. **验证用户信息** 检查用户是否成功创建及组分配: ```bash id tux # 查看用户 tux 的组信息 getent group coding # 检查 coding 组成员 ``` 5. **用户切换与验证** - **从 root 切换到普通用户**(无需密码): ```bash su - tux # 切换输入 exit 返回 root ``` - **验证当前用户**: ```bash whoami # 输出当前用户名 ``` 6. **检查家目录** 确认家目录已生成: ```bash ls /home # 应包含 tux、bob、Alice、lily ``` --- ### 关键命令说明 - `useradd -m -g [主组] -G [次级组] [用户名]`: 创建用户并分配组[^1]。 - `echo "[用户名]:[密码]" | chpasswd`: 非交互式设置密码[^2]。 - `id [用户名]`: 查看用户的组信息。 ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值