一、任务拆解:先搞懂每一步要做什么

先把需求拆成可执行的小目标,避免操作混乱:

  1. 创建专属用户:用useradd新建以自己名字命名的用户,用passwd设置密码,完成用户基础配置
  2. 编写欢迎脚本:用 Shell 脚本整合系统信息,实现登录自动展示自定义欢迎语、系统版本、内存等核心信息
  3. 配置自动执行:修改用户的.bash_profile文件,让脚本在用户登录时自动运行
  4. 赋予执行权限:用chmod给脚本添加可执行权限,解决 “权限不足” 的常见报错
  5. 效果验证:切换用户登录,确认欢迎信息完整展示

二、分步实操:每一行代码都给你讲明白

步骤 1:创建新用户(root 权限操作)

首先用 root 身份登录服务器,执行以下命令创建用户(以示例用户LiShi为例,实际替换为自己的名字):

bash

运行

# 1. 新建用户LiShi
useradd LiShi

# 2. 为用户设置密码(执行后会提示输入两次密码,建议用复杂度足够的密码)
passwd LiShi

💡 小提示:如果需要给用户添加 sudo 权限,可以执行usermod -aG wheel LiShi(CentOS/RHEL)或usermod -aG sudo LiShi(Ubuntu/Debian),方便后续操作。

步骤 2:编写 welcome.sh 欢迎脚本

这是整个任务的核心,我们先看完整脚本,再逐行解析:

bash

运行

#!/bin/bash
# welcome.sh - Linux用户登录欢迎脚本

# 1. 自定义欢迎语(可根据需求修改)
echo "====================================="
echo "          欢迎登录系统               "
echo "====================================="
echo "欢迎语:你好,欢迎使用本系统!"
echo ""

# 2. 操作系统信息(uname -o)
echo "操作系统信息:$(uname -o)"

# 3. 内核版本信息(uname -r)
echo "内核版本信息:$(uname -r)"

# 4. 内核发行号(uname -v)
echo "内核发行号:$(uname -v)"

# 5. 系统硬件平台(uname -i)
echo "系统硬件平台:$(uname -i)"
echo ""

# 6. 系统当前用户(who命令)
echo "当前登录用户:"
who
echo ""

# 7. 系统内存使用情况(free -h,-h参数以人类可读格式展示)
echo "内存使用情况:"
free -h
echo "====================================="
脚本逐行解析:
  • #!/bin/bash:脚本声明,指定用 Bash 解释器执行,是 Shell 脚本的标准开头
  • echo "内容":输出文本到终端,""包裹自定义内容,$(命令)是命令替换,会执行括号内的命令并把结果输出
  • uname系列命令:
    • uname -o:获取操作系统名称(如 GNU/Linux)
    • uname -r:获取内核版本(如 3.10.0-1127.el7.x86_64)
    • uname -v:获取内核发行号(编译时间等信息)
    • uname -i:获取硬件平台(如 x86_64)
  • who:展示当前系统所有登录用户、登录时间、来源 IP
  • free -h-h参数让内存大小以 GB/MB 为单位展示,比默认的 KB 更易读
脚本创建方法:

vivim编辑器创建脚本(建议放在/usr/local/bin/或用户家目录,这里以/home/wcf/welcome.sh为例,对应图中用户wcf):

bash

运行

# 1. 进入用户家目录(以wcf用户为例)
cd /home/wcf/

# 2. 创建并编辑welcome.sh脚本
vi welcome.sh

i进入编辑模式,粘贴上面的完整脚本,按Esc,输入:wq保存退出。

步骤 3:给脚本添加执行权限

脚本创建后默认没有执行权限,直接运行会报错Permission denied,执行以下命令赋予权限:

bash

运行

# 给所有用户添加执行权限(也可以用chmod 755,仅所有者可写,其他用户可读可执行)
chmod +x /home/wcf/welcome.sh

# 验证权限(执行后会看到-rwxr-xr-x,说明权限配置成功)
ls -l /home/wcf/welcome.sh

💡 权限说明:chmod +x是给脚本添加可执行权限,755对应rwxr-xr-x,是 Linux 脚本的标准权限配置,既保证所有者可修改,又不影响其他用户执行。

步骤 4:配置.bash_profile,实现登录自动执行

.bash_profile是 Bash shell 的用户登录配置文件,用户登录时会自动执行文件中的命令,我们只需要在文件末尾添加脚本路径即可:

bash

运行

# 编辑用户的.bash_profile文件(以wcf用户为例)
vi /home/wcf/.bash_profile

在文件最后一行添加脚本的绝对路径:

bash

运行

# 自动执行welcome.sh欢迎脚本
/home/wcf/welcome.sh

保存退出后,执行以下命令让配置立即生效(也可以重新登录生效):

bash

运行

source /home/wcf/.bash_profile

💡 避坑指南:

  • 必须用绝对路径,不能用相对路径,否则登录时可能找不到脚本
  • 如果是 CentOS 系统,部分版本默认没有.bash_profile,可以手动创建,或修改.bashrc文件(效果一致)
  • 注意文件权限,确保用户对.bash_profile有读权限,否则配置不生效

步骤 5:效果验证:切换用户登录

执行su命令切换到新建用户,验证欢迎信息:

bash

运行

# 切换到wcf用户(替换为自己的用户名)
su - wcf

正常情况下,会自动输出完整的欢迎信息,包含:

  • 自定义欢迎语
  • 操作系统、内核版本、硬件平台等系统信息
  • 当前登录用户列表
  • 内存使用情况(总内存、已用、空闲等)

三、图中案例解析:新手常见问题与优化

从图中用户的操作来看,整体流程是正确的,但有几个可以优化的细节:

1. 脚本优化点

  • 图中脚本用了$(uname -o)等命令替换,语法正确,但可以添加-h参数让free命令输出更易读(图中用了free -h,符合要求)
  • 欢迎语的分隔线可以更美观,比如用echo "====================================="统一格式,提升视觉效果
  • 可以添加系统时间、主机名等信息,让欢迎内容更丰富,比如添加echo "当前系统时间:$(date)"

2. 操作中的小问题

  • 图中执行chmod命令时,路径书写略有笔误(chmod/home/x应为chmod +x),实际操作中要注意空格,正确命令是chmod +x /home/wcf/welcome.sh
  • 编辑.bash_profile时,要确保文件末尾添加的是绝对路径,避免登录时脚本无法执行
  • 切换用户时要用su - 用户名(带-),会完全加载用户的环境变量,确保.bash_profile生效,而不是su 用户名

3. 常见报错与解决方案

表格

报错现象 原因 解决方案
登录时无欢迎信息 1. 脚本无执行权限;2. .bash_profile 路径错误;3. 用了相对路径 1. 执行chmod +x 脚本路径;2. 检查.bash_profile 中的绝对路径;3. 替换为绝对路径
脚本执行报错command not found 1. 命令拼写错误;2. 脚本开头未加#!/bin/bash 1. 检查unamefree等命令拼写;2. 脚本第一行添加#!/bin/bash
切换用户后无欢迎信息 未用su -,未加载用户环境变量 su - 用户名切换,完全加载用户配置
内存信息显示为 KB,不易读 未加-h参数 free改为free -h

四、进阶拓展:让欢迎脚本更实用

完成基础任务后,我们可以给脚本添加更多实用功能,让它成为运维小工具:

1. 添加系统负载、磁盘使用情况

bash

运行

# 系统负载(1分钟、5分钟、15分钟负载)
echo "系统负载情况:"
uptime
echo ""

# 磁盘使用情况
echo "磁盘使用情况:"
df -h

2. 添加登录 IP、登录时间

bash

运行

# 获取登录IP(从who命令中提取)
echo "登录IP:$(who am i | awk '{print $NF}' | sed 's/[()]//g')"
# 当前登录时间
echo "登录时间:$(date "+%Y-%m-%d %H:%M:%S")"

3. 给所有用户添加欢迎脚本

如果需要给系统所有用户添加欢迎脚本,可以修改全局配置文件/etc/profile,在文件末尾添加脚本路径,这样所有用户登录时都会执行脚本。


五、总结:从这个任务学到的 Linux 核心知识

这个看似简单的小任务,其实覆盖了 Linux 运维的多个核心知识点:

  1. 用户管理useraddpasswd命令,理解 Linux 用户与权限的基础
  2. Shell 脚本基础:命令替换、echo输出、脚本声明,入门 Shell 编程
  3. 环境变量配置.bash_profile的作用,理解用户登录时的环境加载流程
  4. 权限管理chmod命令,掌握 Linux 文件权限的核心逻辑
  5. 系统信息查询unamewhofree等常用系统命令,快速获取系统状态

对于 Linux 新手来说,这个任务是从 “会敲命令” 到 “理解系统” 的关键一步,不仅能完成作业要求,更能为后续的运维工作打下坚实基础。


六、完整操作命令汇总

# 1. 创建用户(替换LiShi为自己的名字)
useradd LiShi
passwd LiShi

# 2. 创建welcome.sh脚本
vi /home/LiShi/welcome.sh
# 粘贴完整脚本内容,保存退出

# 3. 赋予执行权限
chmod +x /home/LiShi/welcome.sh

# 4. 配置.bash_profile
vi /home/LiShi/.bash_profile
# 末尾添加 /home/LiShi/welcome.sh,保存退出

# 5. 生效配置
source /home/LiShi/.bash_profile

# 6. 验证效果
su - LiShi
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐