Linux 的"难"往往不在命令本身,而在于你是否有一张清晰的系统地图:它为什么适合服务器、它的多用户多任务与权限模型在日常运维里意味着什么、不同发行版的包管理与目录布局有哪些共性与差异、第一次登录之后应该做什么。本篇是整个 Linux 系列的入口导览,会先把核心理念搭起来,然后用一组最常用的命令带你走过"文件导航—查看与编辑—远程连接—权限与用户基础"的基础操作链路。目标不是堆一堆指令表,而是让你从"会登录"走到"有基本方向感"——每个主题都点到为止,然后引导你去看对应的专题深入文章(磁盘管理、文件权限、用户管理、服务管理、进程管理、软件包管理、文件操作深入解析),后续再学任何细分主题都会顺很多。
Linux 核心理念:为什么要学、为什么这么设计
为什么选择 Linux(尤其是服务器场景)
- 高可定制:开源、可免费使用,所有组件都能根据需要进行修改或定制。如果需要精简系统、定制内核、或者针对特定硬件优化, Linux 是最灵活的选择。
- 稳定可靠: Linux 在服务器、嵌入式等场合使用广泛,拥有较强的稳定性和容错能力。很多关键系统(金融、电信、云平台)跑的都是 Linux, uptime 可以达到数年不重启。
- 强大生态:内置强大的包管理器,丰富的开源软件资源,如常见的
apt( Debian/Ubuntu)、yum/dnf( RHEL/CentOS)等。需要的大部分工具(数据库、 Web 服务器、监控工具、开发语言)都能直接通过包管理器安装,不需要到处下载安装包。 - 一切皆文件:文件系统抽象了各种设备,可以统一方式访问硬盘、网络设备、外设。这个设计理念让 Linux 的接口非常一致:无论是读取磁盘数据、查看进程信息、还是配置网络,都是在"读写文件"。这种一致性让自动化脚本变得很简单。
- 命令行优先,但图形界面也有:大量操作更习惯于 CLI( Command Line Interface)完成,这让远程管理和批量操作非常高效。服务器环境多以命令行为主,但如果你想要图形界面(比如桌面 Linux),很多发行版也提供开箱即用的 GNOME/KDE 桌面。
常见发行版简要对比(选哪个?)
- Ubuntu/Debian 系:软件包管理器为
apt,社区活跃,文档丰富,适合初学者和开发者。 Ubuntu LTS(长期支持版)是云服务器的常见选择。 - CentOS/RHEL 系:软件包管理器为
yum或dnf( CentOS 8+ / RHEL 8+),适合生产环境,稳定性好,企业支持强。 CentOS Stream 是 RHEL 的上游, AlmaLinux / Rocky Linux 是 CentOS 的社区替代品。 - SUSE 系:使用
zypper,在企业级环境及 SAP 相关部署中常见,欧洲企业用得比较多。 - Arch Linux:滚动更新模型,软件版本最新,但对运维人员要求更高(需要手动配置很多东西)。适合喜欢折腾、追求最新软件的用户。
实际选择建议:
- 如果是学习或开发,推荐 Ubuntu LTS(文档多、社区活跃)。
- 如果是企业生产环境,推荐 RHEL 系( RHEL / AlmaLinux / Rocky Linux,稳定且有商业支持)。
- 如果是云服务器,看云厂商推荐什么( AWS 推 Amazon Linux,阿里云推 Alibaba Cloud Linux,但 Ubuntu 和 CentOS 系也都支持得很好)。
Linux 的三大核心理念(理解了这三点,很多设计就不会觉得奇怪)
1. 多用户、多任务
同一时间允许多个用户同时登录(通过 SSH 、 tty 等),每个用户可并行运行多个任务(进程)。这与 Windows 的"一般只有一个用户在用"的场景不同—— Linux 服务器上可能同时有几十个用户在跑不同的任务,系统需要隔离他们的权限、资源、和文件。
这就是为什么 Linux 的权限模型这么严格:你不能随便看别人的文件,也不能随便杀别人的进程。
2. 权限机制:以文件为核心
Linux 的权限管理以文件(含目录)为核心,通过读( r)、写( w)、执行( x)三种权限和所有者( owner)/ 用户组( group)/ 其他人( others)的组合来管理访问控制。
每个文件都有三组权限( owner / group / others),每组权限都有 rwx 三个位,决定了"谁能干什么"。比如:
rwxr-xr-x: owner 可读写执行, group 和 others 可读可执行但不能写。rw-------: owner 可读写, group 和 others 什么都不能做(常见于私钥文件~/.ssh/id_rsa)。
为什么要这么设计?因为 Linux 是多用户系统,如果没有权限控制,任何人都能删除别人的文件、修改系统配置,那就乱套了。
权限的深入内容(如 SUID/SGID/Sticky bit 、 ACL 、 umask 等)会在 《 Linux 文件权限》 专题里详细讲,这里只需要知道基本概念。
3. 一切皆文件(统一的抽象接口)
在 Linux 里,几乎所有东西都被抽象成"文件",包括:
- 普通文件(文本、二进制、脚本)
- 目录(也是一种特殊文件)
- 设备(
/dev/sda是第一块硬盘,/dev/tty是终端) - 进程信息(
/proc/<pid>/目录下能看到进程的各种信息) - 系统信息(
/sys/目录下能看到硬件设备树) - 管道、套接字(进程间通信也可以通过"文件")
好处:接口一致。可以用同样的命令(cat、echo、>、<
等)来操作文件、设备、进程信息。比如:
cat /proc/cpuinfo查看 CPU 信息echo 1 > /sys/class/leds/led0/brightness控制 LED 灯亮度cat /dev/urandom | head -c 16 > random.bin生成随机数
这种一致性让 Linux 的自动化脚本非常强大。
第一次登录:建议先做什么
假设你拿到了一台 Linux 服务器的 SSH 登录信息( IP 、用户名、密码),第一次登录之后,建议:
1. 确认你的身份和权限
登录后,看看命令提示符:
root@hostname ~ #:你是 root 用户(超级用户,权限无限大),提示符是#。user@hostname ~ $:你是普通用户,提示符是$。
安全建议:不要直接用 root
登录做日常操作。应该用普通用户登录,需要权限时再用
sudo。原因:
- root 权限太大,一个
rm -rf /就能删光整个系统(虽然现在很多系统会拦截这种危险命令,但仍然风险很高)。 - 日志里能看到是哪个用户执行了哪个
sudo命令,但如果都用 root 登录,就分不清是谁干的。
2. 看看你在哪里( pwd / ls)
1 | pwd # 显示当前目录( Print Working Directory) |
3. 看看系统信息
1 | uname -a # 查看内核版本、主机名、硬件架构 |
4. 看看网络配置
1 | ip addr show # 查看网卡 IP 、 MAC 、子网掩码(替代老的 ifconfig) |
5. 看看有哪些用户、哪些进程在跑
1 | who # 查看当前登录的用户 |
第一次登录的核心目标:搞清楚"我在哪、我是谁、系统状态如何、网络通不通、有哪些进程在跑"。
最基础的文件与目录操作(日常必备)
这部分是"肌肉记忆"级别的命令,用得最频繁。深入的文件操作(管道、重定向、高级过滤)会在《 Linux 文件操作深入解析》专题里讲,这里只保留最基础的部分。
1. 导航(在目录间移动)
1 | pwd # 显示当前目录 |
2. 查看目录内容
1 | ls # 列出当前目录下的文件和目录 |
权限列解读(以 drwxr-xr-x 为例):
- 第一位
d表示目录;-表示普通文件;l表示软链接 - 后面 9 位分三组( owner / group / others),每组 3 位( rwx)
rwx: owner 可读写执行r-x: group 可读可执行,不可写r-x: others 可读可执行,不可写
权限的详细解读、数字表示法(如
chmod 755)、 SUID/SGID 等高级内容,请看 《 Linux 文件权限》 专题。
3. 创建与删除
1 | mkdir mydir # 创建目录 |
安全提示:rm -rf 是危险命令,尤其是
rm -rf /(删除整个系统根目录)。现代 Linux
会拦截这种命令,但仍然要小心。删除前先 ls
确认一下删除的是什么。
注意:
rm删除的文件其实可以恢复(文件系统是日志型的,有备份和恢复机制)。如果要彻底粉碎文件(随机写入数据覆盖),可以用shred filename,但这很危险,不推荐日常使用。
4. 复制与移动
1 | cp source.txt dest.txt # 复制文件 |
Tips:
- 复制文件夹到目标路径时,如果目标路径不存在该文件夹,会给原文件夹改名复制过去;如果存在该文件夹,则将原文件夹复制到目标路径文件夹下。
mv相当于 Windows 的"剪切粘贴"。
5. 查看文件内容
1 | cat file.txt # 输出整个文件到屏幕(适合短文件) |
Tips:
cat适合短文件;长文件用less(可以上下翻页、搜索)。tail -f是运维必备技能,用于实时监控日志(比如 Web 服务器访问日志、应用日志)。
6. 创建/编辑文件(快速写入内容)
1 | echo "Hello World" > file.txt # 覆盖写入(文件存在会被清空) |
重定向符说明:
>:覆盖写入(相当于"新建或清空文件,然后写入")>>:追加写入(在文件末尾追加,不清空原内容)
更复杂的重定向、管道、 stdin/stdout/stderr 的深入用法,请看 《 Linux 文件操作深入解析》 专题。
7. 文件信息查看
1 | stat file.txt # 查看文件的详细信息(时间戳、 inode 、权限等) |
stat vs
ls:ls -l
只显示基本信息(权限、大小、修改时间),stat
显示更详细的信息(访问时间 atime 、修改时间 mtime 、状态改变时间 ctime
、 inode 号等)。
远程连接入门: SSH 是怎么用的
SSH( Secure Shell)是远程登录 Linux
服务器的标准方式,通过加密的方式传输数据,默认端口 22。
1. 基本用法
1 | ssh user@host # 用 user 账号登录到 host( IP 或域名) |
示例: 1
2ssh root@192.168.1.100 # 用 root 登录到 192.168.1.100
ssh -p 22222 admin@example.com # 用 admin 登录到 example.com,端口 22222
2. 退出连接
1 | exit # 退出当前会话(或直接关闭 SSH 客户端窗口) |
Tips:
- 如果你在 SSH 会话里又
ssh到了另一台机器(嵌套 SSH),exit只退出当前层级,需要多次exit才能退到本地。 - 如果网络断了, SSH 会话会挂起,可以用
~.(波浪号 + 点)强制断开(需要在新行开头输入)。
3. 免密登录(密钥认证)
为什么要用密钥登录?
- 更安全(密钥长度通常 2048 位或 4096 位,比密码难破解得多)
- 更方便(不用每次输密码)
- 可以配合自动化脚本(如 Ansible 、 Fabric)
步骤: 1. 在本地生成密钥对(公钥 + 私钥):
1
ssh-keygen -t rsa -b 4096 # 生成 4096 位 RSA 密钥对
~/.ssh/id_rsa(私钥)和
~/.ssh/id_rsa.pub(公钥)。
把公钥复制到服务器:
或者手动复制:1
ssh-copy-id user@host # 自动把公钥追加到服务器的 ~/.ssh/authorized_keys
1
cat ~/.ssh/id_rsa.pub | ssh user@host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
下次登录就不需要密码了:
1
ssh user@host # 直接用密钥认证,不需要输密码
4. 常见 SSH 客户端工具
- 命令行:
ssh命令( Linux / macOS 自带) - Windows:
- PuTTY(老牌,但界面比较简陋)
- Xshell(功能强大,但免费版有限制)
- MobaXterm(自带 X11 转发、 SFTP 、串口等功能)
- Windows Terminal + OpenSSH( Windows 10/11 自带 OpenSSH 客户端)
5. 修改 SSH 端口(安全加固)
默认端口 22
是黑客扫描的重点目标,改端口可以减少被扫描的概率(但不是绝对安全)。
步骤: 1. 编辑配置文件: 1
sudo vi /etc/ssh/sshd_config
#Port 22,取消注释并改成其他端口(如
Port 22222) 3. 重启 SSH 服务: 1
2
3sudo systemctl restart sshd # Systemd 系统
# 或
sudo service sshd restart # SysV 系统1
ssh -p 22222 user@host
安全建议:
- 改端口只能减少被扫描的概率,不能防止有针对性的攻击。
- 更重要的安全措施:禁用密码登录,只允许密钥登录、配置防火墙(只允许特定 IP 连接 SSH)、安装 fail2ban(自动封禁暴力破解的 IP)。
权限与用户基础(点到为止,深入看专题)
1. 权限基础: rwx 是什么意思
每个文件/目录都有三组权限( owner / group / others),每组权限有三个位( rwx):
- r( read):可读
- w( write):可写
- x( execute):可执行(对目录来说, x 表示可以进入该目录)
示例:-rw-r--r--
- 第一位
-表示普通文件(d表示目录,l表示符号链接) rw-: owner 可读可写,不可执行r--: group 可读,不可写不可执行r--: others 可读,不可写不可执行
2. 修改权限( chmod)
1 | chmod 755 script.sh # 用数字表示法修改权限 |
数字表示法(最常用):
7 = rwx( 4+2+1)6 = rw-( 4+2)5 = r-x( 4+1)4 = r--0 = ---
所以 chmod 755 script.sh 表示: owner=rwx, group=r-x,
others=r-x 。
深入内容( SUID/SGID/Sticky bit 、 ACL 、 umask 等)请看 《 Linux 文件权限》 专题。
3. 切换用户( su / sudo)
1 | su # 切换到 root(需要 root 密码) |
su vs sudo:
su:切换用户( Switch User),需要目标用户的密码。sudo:以 root 身份执行命令( Super User Do),只需要当前用户的密码(前提是当前用户在 sudo 组里)。
安全建议:日常操作用普通用户,需要权限时用
sudo,不要直接用 root 登录。
深入内容(用户管理、组管理、
/etc/passwd、/etc/shadow、useradd/usermod/userdel等)请看 《 Linux 用户管理》 专题。
常用目录结构( Linux 的"地图")
Linux 的目录结构是固定的( FHS 标准),不像 Windows 有
C:\、D:\ 等盘符。所有东西都挂在根目录
/ 下。
核心目录及其作用
/:根目录,所有东西的起点/etc:系统配置文件主目录。几乎所有服务的配置都在这里(如/etc/ssh/sshd_config、/etc/fstab、/etc/hosts)/var:可变数据目录/var/log:系统和服务的日志文件(如/var/log/syslog、/var/log/auth.log)/var/www: Web 服务器的网站根目录( Apache/Nginx 默认)
/home:普通用户的家目录(如/home/alice、/home/bob)/root: root 用户的家目录(不在/home下)/usr:系统软件和库文件( User Software Resources)/usr/bin:大部分命令的二进制文件/usr/lib:库文件/usr/local:用户手动编译安装的软件(不被包管理器管理)
/opt:第三方大型软件包(如 Oracle 、 Google Chrome)/tmp:临时文件(重启后会被清空)/dev:设备文件(如/dev/sda是第一块硬盘,/dev/tty是终端)/proc:虚拟文件系统,提供进程和内核信息(如/proc/cpuinfo、/proc/meminfo)/sys:虚拟文件系统,提供硬件设备信息(如/sys/class/net/eth0)/boot:启动相关文件(内核、引导加载程序)/lib:系统库文件(如动态链接库.so)/mnt:临时挂载点(如挂载 U 盘、移动硬盘)/media:可移动设备的自动挂载点(如光盘、 U 盘)
记住这些目录,以后定位问题会很快:
- 配置出问题了?去
/etc找配置文件。 - 服务起不来?去
/var/log看日志。 - 磁盘满了?用
du -sh /*看哪个目录占用最大。
包管理入门(点到为止,深入看专题)
Linux 的软件安装不像 Windows 那样下载 .exe
安装包,而是通过包管理器统一管理。
常见包管理器
Debian/Ubuntu 系:
apt(或老版本的apt-get)1
2
3
4sudo apt update # 更新软件源信息
sudo apt install nginx # 安装 nginx
sudo apt remove nginx # 卸载 nginx
sudo apt search keyword # 搜索软件包RHEL/CentOS 系:
yum( CentOS 7)或dnf( CentOS 8+ / RHEL 8+)1
2
3
4sudo yum update # 更新软件源信息
sudo yum install nginx # 安装 nginx
sudo yum remove nginx # 卸载 nginx
sudo yum search keyword # 搜索软件包Arch Linux:
pacman1
2
3sudo pacman -Syu # 更新系统
sudo pacman -S nginx # 安装 nginx
sudo pacman -R nginx # 卸载 nginx
优点:
- 依赖关系自动解决( A 依赖 B, B 依赖 C,安装 A 时会自动安装 B 和 C)
- 版本统一管理(一个命令更新所有软件)
- 安全性高(软件包都经过签名验证)
深入内容(编译安装、
.rpm/.deb手动安装、snap/flatpak、软件源配置等)请看 《 Linux 软件包管理》 专题。
进程与资源管理基础(点到为止,深入看专题)
1. 查看进程
1 | ps aux # 查看所有进程( a=all users, u=user format, x=包括没有终端的进程) |
2. 结束进程
1 | kill <PID> # 发送 SIGTERM 信号(温和地结束进程) |
kill vs kill -9:
kill:发送SIGTERM信号,进程可以捕获这个信号,做一些清理工作(如保存数据、关闭连接)再退出。kill -9:发送SIGKILL信号,进程无法捕获,立即被强制结束(可能导致数据丢失或资源泄漏)。
建议:先用 kill,如果进程不响应再用
kill -9。
3. 后台运行
1 | command & # 在后台运行 command |
深入内容( CPU/内存/磁盘 IO 监控、
cgroup、nice/renice、systemd服务管理等)请看 《 Linux 进程与资源管理》 和 《 Linux 系统服务管理》 专题。
安全运维基础习惯(新手容易踩的坑)
1. 修改关键配置前先备份
1 | sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak # 备份配置文件 |
如果改错了,可以
sudo cp /etc/ssh/sshd_config.bak /etc/ssh/sshd_config
恢复。
2. 修改网络/SSH 配置时保持一个备用连接
如果你在 SSH 会话里修改了网络配置或 SSH 配置,改错了可能会把自己锁在外面。正确做法:
- 保持一个 SSH 会话不关闭(用来恢复配置)
- 开一个新的 SSH 会话测试修改是否生效
- 如果新会话连不上,立刻在旧会话里恢复配置
3. 危险命令三思而后行
rm -rf /:删除整个系统根目录(现代 Linux 会拦截,但仍要小心)dd if=/dev/zero of=/dev/sda:把硬盘全部写入零(数据无法恢复)chmod -R 777 /:把整个系统的权限改成任何人可读可写可执行(安全灾难)
建议:
- 删除前先
ls确认要删的是什么 - 涉及磁盘操作(
dd、fdisk、mkfs)前先确认设备名(lsblk) - 修改权限前先想清楚为什么要改、改成什么
4. 日志是你的朋友
出问题了先看日志:
/var/log/syslog( Debian/Ubuntu)或/var/log/messages( RHEL/CentOS):系统日志/var/log/auth.log( Debian/Ubuntu)或/var/log/secure( RHEL/CentOS):认证日志( SSH 登录、 sudo 操作)/var/log/<服务名>/:各个服务的日志(如/var/log/nginx/、/var/log/mysql/)
1 | sudo tail -f /var/log/syslog # 实时查看系统日志 |
下一步:去哪里深入学习
这篇文章是整个 Linux 系列的入口导览,每个主题都只是"点到为止"。如果你想深入学习某个主题,可以看对应的专题文章:
- 《 Linux 文件权限》: SUID/SGID/Sticky bit 、 ACL 、 umask 、权限继承等
- 《 Linux
用户管理》:
useradd/usermod/userdel、组管理、/etc/passwd、/etc/shadow、 sudo 配置等 - 《 Linux 磁盘管理》:分区( MBR/GPT
、
fdisk/gdisk)、格式化(mkfs)、挂载(mount、/etc/fstab)、 LVM 、 RAID 等 - 《 Linux 系统服务管理》:
Systemd(
systemctl)、 SysV(service、chkconfig)、自定义服务、开机自启等 - 《 Linux
软件包管理》:
apt/yum/dnf深入用法、编译安装、.rpm/.deb手动安装、软件源配置等 - 《 Linux 进程与资源管理》: CPU/内存/磁盘 IO
监控、
top/htop/iotop、nice/renice、cgroup、 OOM killer 等 - 《 Linux
文件操作深入解析》:管道(
|)、重定向(>、>>、<、2>)、 stdin/stdout/stderr 、xargs、tee等
学习建议: 1. 先把这篇"使用基础"看完,建立整体认知。 2. 根据你的实际需求,选择对应的专题深入学习(比如你要配磁盘就看《磁盘管理》,要配服务就看《系统服务管理》)。 3. 边学边做,最好有一台虚拟机或云服务器练手(推荐 VirtualBox + Ubuntu 或 阿里云/腾讯云的学生机)。
参考资料与扩展阅读
- Linux Documentation Project:经典的 Linux 文档库
- Arch Linux Wiki:质量极高的 Linux 文档(不只适用于 Arch)
- The Linux Command Line (书):免费的 Linux 命令行入门书
- Linux Performance:性能分析大师 Brendan Gregg 的资源页
到这里,建议已经从"会登录"走到了"有基本方向感"。接下来就是根据实际需求,选择对应的专题深入学习。记住: Linux 不是一次性学完的,而是在实践中不断积累的。
- 本文标题:Linux 使用基础
- 本文作者:Chen Kai
- 创建时间:2019-11-08 10:00:00
- 本文链接:https://www.chenk.top/Linux-%E4%BD%BF%E7%94%A8%E5%9F%BA%E7%A1%80/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!