Ubuntu命令行操作基础与实用技巧

1. Ubuntu命令行操作基础认知

作为Linux发行版中最受欢迎的桌面系统之一,Ubuntu的命令行操作是每位用户必须掌握的技能。与图形界面相比,命令行提供了更高效、更灵活的系统控制方式。在终端中输入命令时,需要注意以下几点:

  • 命令区分大小写
  • 命令和参数之间需要用空格分隔
  • 多数命令都支持--help参数查看帮助
  • 按Tab键可以自动补全命令或文件名

提示:Ubuntu默认使用bash作为命令行解释器,可以通过echo $SHELL命令查看当前使用的shell类型。

2. 文件与目录管理命令

2.1 基础导航与查看命令

pwd命令显示当前工作目录的完整路径,这是定位自己位置的最基本命令。例如:

/home/user/Documents

ls命令可能是使用频率最高的命令之一,它有多个常用参数组合:

ls # 简单列出当前目录内容 ls -l # 长格式显示,包含权限、所有者、大小等信息 ls -a # 显示所有文件,包括隐藏文件(以.开头) ls -lh # 人类可读的文件大小显示(如K、M、G) ls -t # 按修改时间排序,最新的排在最前

cd命令用于切换工作目录,有几个特殊用法值得记住:

cd ~ # 返回用户主目录 cd - # 返回上一个工作目录 cd .. # 返回上级目录

2.2 文件操作命令

cp命令用于复制文件或目录:

cp file1 file2 # 复制文件 cp -r dir1 dir2 # 递归复制目录 cp -v *.txt /backup/ # 详细模式复制所有txt文件

mv命令兼具移动和重命名功能:

mv oldname newname # 重命名文件 mv file /target/path/ # 移动文件

rm命令删除文件需谨慎使用:

rm file # 删除单个文件 rm -f file # 强制删除,不提示 rm -r directory # 递归删除目录 rm -rf directory # 强制递归删除(危险命令)

警告:rm -rf /这样的命令会删除系统所有文件,务必避免使用。

2.3 文件查看与搜索

cat命令适合查看小文件:

cat filename # 显示文件全部内容 cat -n filename # 显示行号

lessmore命令更适合查看大文件:

less filename # 可上下翻页查看 more filename # 只能向下翻页

find命令是强大的文件搜索工具:

find / -name "*.conf" # 全盘搜索.conf文件 find . -type f -size +1M # 查找当前目录下大于1MB的文件 find /var/log -mtime -7 # 查找/var/log下7天内修改过的文件

grep命令用于文本搜索:

grep "error" logfile # 在文件中搜索error关键词 grep -r "function" /code/ # 递归搜索目录中的内容 grep -i "warning" file # 忽略大小写搜索

3. 系统管理与监控命令

3.1 系统信息查询

uname命令查看系统内核信息:

uname -a # 显示所有系统信息 uname -r # 只显示内核版本

dfdu命令监控磁盘使用情况:

df -h # 人类可读的磁盘空间显示 du -sh * # 显示当前目录各文件/目录大小 du -h --max-depth=1 / # 查看根目录下各文件夹大小

free命令查看内存使用:

free -h # 以GB/MB为单位显示内存情况

tophtop命令实时监控系统状态:

top # 经典系统监控工具 htop # 增强版top(需额外安装)

3.2 进程管理

ps命令查看进程信息:

ps aux # 查看所有运行中的进程 ps -ef | grep nginx # 查找nginx相关进程

kill命令终止进程:

kill 1234 # 终止PID为1234的进程 kill -9 1234 # 强制终止进程 pkill nginx # 按进程名终止

nicerenice调整进程优先级:

nice -n 10 command # 以较低优先级启动命令 renice 15 -p 1234 # 调整已运行进程的优先级

3.3 用户与权限管理

sudo命令以超级用户权限执行命令:

sudo apt update # 以root权限更新软件列表

用户管理命令:

sudo adduser newuser # 创建新用户 sudo deluser olduser # 删除用户 sudo passwd username # 修改用户密码

权限管理命令:

chmod 755 script.sh # 修改文件权限 chown user:group file # 修改文件所有者和组

4. 网络相关命令

4.1 网络配置与诊断

ifconfigip命令查看网络接口:

ifconfig # 显示网络接口信息(较老) ip addr show # 新版IP查看命令

ping命令测试网络连通性:

ping google.com # 测试到Google的网络连接 ping -c 4 8.8.8.8 # 只发送4个ping包

traceroute命令追踪网络路径:

traceroute google.com # 显示到目标的路由路径

netstat命令查看网络状态:

netstat -tulnp # 查看所有监听端口和对应程序 netstat -rn # 查看路由表

4.2 网络工具

wgetcurl命令用于网络下载:

wget http://example.com/file.zip # 下载文件 curl -O http://example.com/file.zip # 同样下载文件 curl -I http://example.com # 只显示HTTP头信息

ssh命令远程连接:

ssh user@remote.server.com # 连接到远程服务器 ssh -p 2222 user@host # 指定非标准端口连接

scp命令安全复制文件:

scp file.txt user@remote:/path/ # 上传文件 scp user@remote:/path/file.txt . # 下载文件

5. 软件包管理命令

5.1 APT基础命令

apt是Ubuntu的包管理工具,常用命令包括:

sudo apt update # 更新软件包列表 sudo apt upgrade # 升级所有可升级软件包 sudo apt install nginx # 安装软件包 sudo apt remove nginx # 卸载软件包(保留配置) sudo apt purge nginx # 完全卸载(包括配置) sudo apt autoremove # 自动移除不需要的包

5.2 软件包查询

apt search keyword # 搜索软件包 apt show package # 显示软件包详细信息 apt list --installed # 列出已安装的软件包 apt depends package # 查看软件包依赖关系

5.3 源码编译安装

虽然APT很方便,但有时需要从源码安装:

./configure # 配置编译选项 make # 编译源代码 sudo make install # 安装到系统

6. 文本处理与脚本命令

6.1 文本处理工具

grep的高级用法:

grep -v "pattern" file # 反向匹配,显示不包含pattern的行 grep -A 3 -B 2 "error" log # 显示匹配行及前后几行

awk命令处理结构化文本:

awk '{print $1}' file # 打印每行第一个字段 awk -F: '{print $1}' /etc/passwd # 以:为分隔符

sed流编辑器:

sed 's/old/new/g' file # 替换文本 sed -i.bak 's/old/new/' file # 直接修改文件并备份

6.2 压缩与归档

tar命令处理归档文件:

tar -cvf archive.tar files/ # 创建tar归档 tar -xvf archive.tar # 解压tar文件 tar -czvf archive.tar.gz files/ # 创建gzip压缩包 tar -xzvf archive.tar.gz # 解压gzip包

zipunzip命令:

zip -r archive.zip folder/ # 递归压缩目录 unzip archive.zip # 解压zip文件

7. 系统服务管理

Ubuntu使用systemd作为初始化系统,相关命令包括:

sudo systemctl start nginx # 启动服务 sudo systemctl stop nginx # 停止服务 sudo systemctl restart nginx # 重启服务 sudo systemctl status nginx # 查看服务状态 sudo systemctl enable nginx # 设置开机启动 sudo systemctl disable nginx # 禁用开机启动

查看系统日志:

journalctl -xe # 查看系统日志 journalctl -u nginx --since "1 hour ago" # 查看特定服务的日志

8. 实用技巧与快捷命令

8.1 命令组合与重定向

命令组合:

command1 && command2 # command1成功才执行command2 command1 || command2 # command1失败才执行command2

重定向:

command > file # 标准输出重定向到文件(覆盖) command >> file # 追加到文件 command 2> error.log # 错误输出重定向 command &> logfile # 所有输出重定向

管道:

ls -l | grep "Dec" # 将ls输出传递给grep处理

8.2 历史命令与别名

历史命令操作:

history # 查看命令历史 !number # 执行历史中第number条命令 !! # 执行上一条命令

设置别名简化常用命令:

alias ll='ls -alF' # 设置别名 unalias ll # 取消别名

8.3 定时任务

cron定时任务:

crontab -e # 编辑当前用户的cron任务 crontab -l # 列出当前用户的cron任务

示例cron任务格式:

* * * * * command | | | | | | | | | +----- 星期几 (0 - 6) (星期天=0) | | | +------- 月份 (1 - 12) | | +--------- 日 (1 - 31) | +----------- 小时 (0 - 23) +------------- 分钟 (0 - 59)