1. Linux基础操作入门指南
"Linux基操勿六"这个标题在技术圈里流传甚广,它生动地表达了Linux基础操作的重要性——就像篮球运动中的基本功一样,看似简单却至关重要。作为一个从Windows转战Linux多年的老用户,我深刻体会到掌握这些基础命令和操作习惯,往往比追求各种花哨技巧更能提升工作效率。
Linux操作系统以其稳定性、安全性和开源特性,已经成为服务器领域的主流选择,近年来在桌面端也获得了越来越多用户的青睐。无论是系统管理员、开发人员,还是普通技术爱好者,都需要从这些"基操"开始建立对Linux系统的认知框架。下面我就结合自己多年的使用经验,为大家梳理Linux系统中最核心的基础操作。
2. 终端操作基础
2.1 文件与目录管理
Linux系统中一切皆文件,因此文件操作是最基础的技能。以下是我日常使用频率最高的几个命令:
# 查看当前目录内容 ls -alh # -a显示隐藏文件,-l详细列表,-h人性化显示文件大小 # 切换目录 cd /path/to/directory # 绝对路径 cd ../parent_directory # 相对路径 cd ~ # 返回用户主目录 # 创建目录 mkdir -p project/{src,doc,test} # -p参数允许创建多级目录,{}可以批量创建 # 复制文件 cp -r source_dir destination_dir # -r参数递归复制目录 # 移动/重命名 mv old_name new_name # 在同一目录下就是重命名 # 删除 rm -rf target # 谨慎使用!-r递归删除,-f强制不提示重要提示:rm -rf命令极其危险,特别是在root权限下。建议新手先使用rm -i交互模式,或者给rm设置别名alias rm='rm -i'。
2.2 文件查看与编辑
查看文件内容有多种方式,各有用处:
# 查看完整文件 cat filename # 分页查看(推荐) less filename # 支持搜索(/keyword)和翻页 # 查看头部/尾部 head -n 20 filename # 前20行 tail -f logfile # 实时追踪日志更新 # 使用nano简单编辑 nano filename # Ctrl+O保存,Ctrl+X退出对于专业用户,vim是更强大的选择。虽然学习曲线陡峭,但掌握后编辑效率极高。建议从vimtutor开始练习。
3. 系统信息查询
3.1 硬件与系统状态
了解系统状态是排查问题的第一步:
# CPU信息 lscpu cat /proc/cpuinfo # 内存使用 free -h # -h人性化显示 top # 动态查看进程资源占用 # 磁盘空间 df -h # 文件系统使用情况 du -sh * # 查看当前目录各文件/目录大小 # 系统版本 uname -a # 内核信息 lsb_release -a # 发行版信息3.2 网络配置
网络问题是Linux系统中常见的故障点:
# IP地址信息 ip addr show # 新版推荐 ifconfig # 传统命令,部分系统可能未安装 # 网络连通性测试 ping google.com traceroute google.com # 端口检查 netstat -tulnp # 查看监听端口 ss -tulnp # netstat的现代替代 # DNS解析 dig google.com # 详细DNS查询 nslookup google.com # 基础查询4. 用户与权限管理
4.1 用户账户操作
Linux是多用户系统,良好的用户管理习惯很重要:
# 添加用户 sudo useradd -m -s /bin/bash username # -m创建家目录,-s指定shell sudo passwd username # 设置密码 # 删除用户 sudo userdel -r username # -r同时删除家目录 # 切换用户 su - username # -加载目标用户环境 sudo -i # 切换到root # 查看用户 id # 当前用户信息 whoami # 当前用户名4.2 文件权限详解
Linux的权限系统是其安全基石:
# 查看权限 ls -l filename # 输出类似-rw-r--r-- # 修改权限 chmod 755 script.sh # 数字模式 chmod u+x,g-w,o=r filename # 符号模式 # 修改所有者 chown user:group filename # 特殊权限 chmod +s executable # 设置SUID chmod +t directory # 设置粘滞位权限数字表示法:r=4, w=2, x=1。755表示所有者rwx,组和其他rx。
5. 软件包管理
不同Linux发行版使用不同的包管理系统,这里以Debian/Ubuntu系的apt为例:
# 更新软件源 sudo apt update # 不更新软件,只更新可用包列表 # 升级已安装包 sudo apt upgrade # 常规升级 sudo apt dist-upgrade # 处理依赖关系变更 # 搜索软件 apt search keyword # 安装软件 sudo apt install package_name # 移除软件 sudo apt remove package_name # 移除软件但保留配置 sudo apt purge package_name # 完全移除 # 清理无用包 sudo apt autoremove # 删除自动安装的依赖对于RPM系的CentOS/Fedora,主要命令为yum或dnf,基本逻辑类似。
6. 进程管理
6.1 基本进程操作
# 查看进程 ps aux # 显示所有进程 ps -ef # 另一种格式 pstree # 树状显示 # 终止进程 kill -9 PID # 强制终止 killall process_name # 按名称终止 pkill pattern # 按模式终止 # 后台/前台 command & # 后台运行 jobs # 查看后台作业 fg %1 # 将作业1调到前台6.2 系统服务管理
现代Linux系统多使用systemd:
# 服务状态 systemctl status service_name # 启停服务 sudo systemctl start service_name sudo systemctl stop service_name # 开机自启 sudo systemctl enable service_name sudo systemctl disable service_name # 日志查看 journalctl -u service_name -f # -f实时追踪7. 实用技巧与小工具
7.1 提高效率的技巧
# 命令历史 history # 查看历史命令 !number # 执行历史中第number条命令 !! # 上一条命令 !$ # 上条命令的最后一个参数 # 别名设置 alias ll='ls -alh' # 添加到~/.bashrc永久生效 # 输出重定向 command > file # 标准输出重定向 command 2> file # 错误输出重定向 command &> file # 全部输出重定向 # 管道 command1 | command2 # 将command1输出作为command2输入7.2 实用小工具
# 查找文件 find /path -name "*.log" -mtime -7 # 7天内修改过的log文件 locate filename # 更快但需要updatedb更新数据库 # 文本处理 grep "error" logfile # 搜索文本 awk '{print $1}' file # 提取第一列 sort file | uniq -c # 统计出现次数 # 压缩解压 tar -czvf archive.tar.gz dir/ # 创建gzip压缩包 tar -xzvf archive.tar.gz # 解压 # 下载工具 wget -c http://example.com/file # -c支持断点续传 curl -O http://example.com/file # 另一常用下载工具8. 常见问题排查
8.1 典型问题与解决
命令找不到
- 检查命令是否安装:which command
- 检查PATH变量:echo $PATH
- 可能需要全路径执行:/usr/sbin/command
权限被拒绝
- 检查文件权限:ls -l
- 可能需要sudo执行
- 也可能是SELinux导致:getenforce查看状态
磁盘空间不足
- 查找大文件:du -h --max-depth=1 /
- 清理日志:journalctl --vacuum-size=100M
网络连接问题
- 检查物理连接
- 测试基本连通:ping 8.8.8.8
- 检查DNS:nslookup example.com
8.2 系统日志分析
# 通用系统日志 tail -f /var/log/syslog # Debian系 tail -f /var/log/messages # RHEL系 # 认证日志 tail -f /var/log/auth.log # 使用journalctl(systemd系统) journalctl -xe # 查看详细错误 journalctl --since "1 hour ago"9. 学习资源推荐
在线文档
- man命令:man ls查看ls手册
- tldr:简化的命令示例(需安装)
交互式学习
- Linux Journey(网站)
- OverTheWire Bandit(游戏式学习)
进阶书籍
- 《Linux命令行与shell脚本编程大全》
- 《鸟哥的Linux私房菜》
社区支持
- Stack Overflow
- 各发行版官方论坛
10. 个人使用心得
经过多年Linux使用,我认为最重要的不是记住所有命令,而是掌握几个核心原则:
善用帮助系统:几乎所有命令都有--help选项,man手册更是宝库。遇到不熟悉的命令先看文档。
建立自己的备忘系统:我维护了一个个人wiki,记录各种有用的命令和解决方案。推荐使用cheat.sh或keepnote等工具。
理解而非死记:Linux命令大多设计得很合理,比如cp复制、mv移动,理解了命名逻辑更容易记忆。
安全第一:特别是在使用rm、chmod等可能造成严重后果的命令时,一定要确认目标路径正确。我习惯在执行前先用echo测试命令效果。
版本控制习惯:对重要配置文件修改前,先备份或使用版本控制。我习惯把/etc/下的重要文件用git管理。
最后提醒初学者:Linux的学习曲线前期可能比较陡峭,但一旦掌握了这些基础操作,你会发现它比图形界面更高效、更强大。遇到问题时,记住你几乎不可能是第一个遇到的人,善用搜索引擎和社区资源。