Ubuntu纯命令行操作是Linux系统管理中的核心技能,尤其适用于服务器环境、自动化脚本开发以及追求高效操作的高级用户,以下将从基础命令、系统管理、网络配置、软件安装、Shell脚本编写及故障排查六个方面详细展开,帮助用户全面掌握Ubuntu纯命令行的使用方法。

基础命令操作
在Ubuntu纯命令行环境中,首先需要熟悉文件和目录的基本操作。ls命令用于列出当前目录下的文件和子目录,结合-l参数可显示详细信息(如权限、所有者、大小等),-a参数则显示包括隐藏文件在内的所有内容。cd命令用于切换目录,例如cd /home切换至/home目录,cd ..返回上一级目录。mkdir用于创建目录,如mkdir newdir创建名为newdir的目录,-p参数可递归创建多级目录(如mkdir -p parent/child),文件操作中,touch用于创建空文件(如touch file.txt),cp用于复制文件或目录(cp source.txt dest.txt),mv用于移动或重命名(mv oldname.txt newname.txt),rm则用于删除(rm file.txt,-r参数递归删除目录),查看文件内容时,cat适合查看小文件(cat file.txt),less支持分页浏览大文件(less largefile.txt),head和tail分别查看文件开头和末尾内容(head -n 10 file.txt显示前10行)。
系统管理命令
Ubuntu的系统管理主要通过systemd和systemctl命令实现,系统状态查看使用systemctl status,例如systemctl status ssh查看SSH服务状态,启动、停止、重启服务分别对应systemctl start/stop/restart service_name,设置开机自启则使用systemctl enable service_name,用户和权限管理方面,sudo用于以管理员权限执行命令,adduser username创建新用户,userdel -r username删除用户及其主目录,文件权限通过chmod修改(如chmod 755 script.sh设置所有者可读写执行,组和其他用户可读执行),chown修改文件所有者(chown user:group file.txt),系统资源监控中,top动态显示进程和资源占用,htop是其增强版(需安装),free -h查看内存使用情况,df -h查看磁盘空间占用。
网络配置与诊断
网络配置是服务器管理的重点。ip addr show或ifconfig查看网络接口信息,ip addr add 192.168.1.100/24 dev eth0为eth0接口配置IP地址(需管理员权限)。ping测试网络连通性(如ping google.com),traceroute追踪数据包路径(traceroute google.com),netstat -tuln查看监听端口,ss -tuln是其替代工具(更高效),防火墙管理中,Ubuntu默认使用ufw(Uncomplicated Firewall),sudo ufw enable启用防火墙,sudo ufw allow 22/tcp允许22端口访问,sudo ufw deny拒绝特定规则,网络服务配置如SSH,编辑/etc/ssh/sshd_config文件(使用nano或vim),修改后通过systemctl restart ssh重启服务。
软件包管理
Ubuntu使用apt作为包管理工具,需先更新软件源列表:sudo apt update,安装软件包使用sudo apt install package_name(如sudo apt install nginx),卸载软件包用sudo apt remove package_name,完全删除配置文件则用purge(sudo apt purge package_name),清理缓存使用sudo apt autoremove(删除无用依赖包)和sudo apt clean(清理下载的缓存文件),源码编译安装时,需先安装构建工具(sudo apt install build-essential),然后通过./configure、make、sudo make install三步完成安装。

Shell脚本编写
Shell脚本可自动化重复任务,脚本以#!/bin/bash开头,保存为.sh文件(如backup.sh),变量赋值直接使用name="value"(无需),调用时加(如echo $name),条件判断通过if-else实现,
if [ $age -ge 18 ]; then
echo "Adult"
else
echo "Minor"
fi
循环语句包括for(遍历列表)和while(条件循环),
for file in *.txt; do
echo "Processing $file"
done
函数定义使用function_name() { commands; },调用时直接写函数名,执行脚本需先赋予执行权限(chmod +x backup.sh),然后通过./backup.sh运行。
故障排查与日志分析
故障排查需结合日志和诊断工具,系统日志位于/var/log/,其中syslog记录系统服务日志,auth.log记录认证日志,使用grep过滤关键信息(如grep "error" /var/log/syslog)。journalctl查看systemd日志,journalctl -u ssh查看SSH服务日志,-f参数实时跟踪日志,磁盘故障排查使用fsck(sudo fsck /dev/sda1),文件系统错误检查用dmesg查看内核日志,网络问题可通过tcpdump抓包(tcpdump -i eth0 -n),分析数据包传输情况。

相关问答FAQs
Q1: 如何在Ubuntu纯命令行中修改主机名?
A1: 修改主机名需执行以下步骤:
- 临时修改:使用
sudo hostnamectl set-hostname new_hostname(立即生效,重启后失效)。 - 永久修改:编辑
/etc/hostname文件(sudo nano /etc/hostname替换为新主机名,保存后重启系统或运行sudo systemctl restart systemd-hostnamed刷新。 - 同时检查
/etc/hosts文件,确保0.1.1对应的新主机名正确。
Q2: Ubuntu命令行中如何查找包含特定文本的文件?
A2: 可使用grep命令结合find或locate工具:
- 使用
find:find /path/to/search -type f -exec grep "text" {} +,在/path/to/search目录下递归查找包含"text"的文件,-type f限定文件类型。 - 使用
locate:先运行sudo updatedb更新文件数据库,再执行locate -r ".*text.*"(正则表达式匹配),速度更快但可能不包含实时修改的文件。 - 更简单的
grep递归搜索:grep -r "text" /path/to/search,直接在指定目录下搜索。
