Linux Basics
对于 Linux 初学者来说,先理解目录结构,再掌握常用命令,是入门的第一步。本文系统整理了 Linux 中最常见的目录含义,以及文件操作、查找命令、进程管理、压缩解压、系统状态查看、服务管理和 Debian 常用的 APT 包管理命令,适合作为一份快速上手的学习笔记与速查手册。
一、Linux 目录结构
Linux 的一切几乎都以文件的形式组织,因此理解目录结构非常重要。
/:根目录,Linux 文件系统的起点/root:root用户的家目录,用于存放超级管理员的相关文件/home:普通用户的家目录通常位于此处,例如/home/user1/bin:存放常用的用户命令,例如ls、cp、cat等/sbin:存放系统管理命令,通常需要较高权限才能执行,例如fdisk、iptables/etc:系统配置文件目录,很多服务的配置文件都保存在这里/var:存放经常变化的数据,例如日志、缓存、邮件、数据库文件等/boot:存放系统启动相关文件,例如内核和引导程序配置/usr:用户应用程序和共享资源目录,类似于 Windows 中的Program Files/proc:虚拟文件系统,用于映射内核和进程信息,可用来查看系统运行状态/sys:与内核、驱动和硬件设备相关的虚拟文件系统/dev:设备文件目录,硬件设备在 Linux 中通常以文件形式存在于此/tmp:临时文件目录,系统和程序运行时会在此存放临时数据/mnt:传统上用于手动挂载设备或文件系统的目录/media:常用于自动挂载可移动设备,例如 U 盘、光盘等/opt:通常用于安装第三方附加软件,例如商业软件或手动安装的软件包/srv:service的缩写,用于存放服务运行时所需的数据/selinux:与 SELinux 安全机制相关的目录,在部分发行版中存在
二、帮助命令
当你不确定某个命令如何使用时,帮助命令非常有用。
man
查看命令的手册页。
man ls
help
查看 Shell 内置命令的帮助信息。
help cd
man通常用于外部命令,help更常用于 Bash 内置命令。
三、Linux 常用快捷键
Ctrl + L:清屏,效果等同于clearCtrl + C:终止当前前台进程Ctrl + D:退出当前 Shell,或表示输入结束↑ / ↓:浏览历史命令Tab:命令或路径自动补全
有些资料会写
Ctrl + Q为退出,但它通常不是“退出终端”的常用快捷键。更常见的退出方式是Ctrl + D或输入exit。
四、目录相关命令
pwd
显示当前所在目录的绝对路径。
pwd
ls
列出目录内容。
ls
ls -a # 显示所有文件,包括隐藏文件
ls -l # 显示详细信息
很多系统中 ll 实际上是 ls -l 的别名,但并不是所有环境默认都有。
cd
切换目录。
cd /etc
cd ..
cd ~
cd .
常见路径写法:
.:当前目录..:上一级目录~:当前用户家目录
mkdir
创建目录。
mkdir test
mkdir -p a/b/c
rmdir
删除空目录。
rmdir test
rmdir -p a/b/c
cp
复制文件或目录。
cp file1 file2
cp -r dir1 dir2
mv
移动文件,或重命名文件 / 目录。
mv old.txt new.txt
mv file.txt /tmp/
rm
删除文件或目录。
rm file.txt
rm -r dir
rm -f file.txt
rm -rf dir
rm -rf非常危险,执行前一定要确认路径是否正确。
例如:rm -f *会删除当前目录下的所有普通文件。
五、文件相关命令
touch
创建空文件,或更新文件时间戳。
touch demo.txt
echo
输出字符串,也常与重定向配合写入文件。
echo "hello linux"
echo "hello linux" > a.txt
echo "append text" >> a.txt
cat
查看文件内容。
cat a.txt
cat -n a.txt # 显示行号
cat -b a.txt # 显示行号,空白行不编号
cat -A a.txt # 显示特殊字符
more
分页查看文件内容。
more large.log
常用操作:
空格:下一页Enter:下一行
head
查看文件开头内容。
head a.txt
head -n 20 a.txt
tail
查看文件末尾内容。
tail a.txt
tail -n 20 a.txt
tail -f app.log
其中:
-n:显示最后n行-f:实时追踪文件更新,常用于查看日志
wc
统计文本信息。
wc a.txt
可统计:
- 行数
- 单词数
- 字节数
stat
查看文件详细状态信息。
stat a.txt
file
查看文件类型。
file a.txt
file /bin/ls
wget
下载网络文件。
wget https://example.com/file.zip
wget -P /tmp https://example.com/file.zip
wget -O custom.zip https://example.com/file.zip
wget -c https://example.com/file.zip
wget --spider https://example.com/file.zip
常用参数:
-b:后台下载-P:指定下载目录-O:指定输出文件名-c:断点续传--spider:测试链接是否可用
六、查找命令
find
查找文件或目录。
find /tmp -name "*.log"
find /home -user root
find /var -size +100M
常用参数:
-name:按文件名查找-user:按属主查找-size:按大小查找+n:大于-n:小于n:等于
grep
在文件中搜索匹配字符串的行。
grep "error" app.log
grep -n "error" app.log
grep -c "error" app.log
常用参数:
-n:显示行号-c:仅统计匹配行数
which
查看命令所在路径及别名信息。
which python
which ls
七、日期命令
date
显示或设置系统时间。
date
date "+%Y%m%d"
date "+%Y-%m-%d %H:%M:%S"
date -s "2025-01-01 12:00:00"
八、进程管理命令
ps
查看进程信息。
ps
ps -aux
ps -aux | grep nginx
常用参数:
-a:显示当前终端下的进程-u:以用户格式显示-x:显示无控制终端的进程
top
动态查看系统进程和资源占用情况。
top
kill
终止指定 PID 的进程。
kill 1234
kill -9 1234
其中:
-9:强制终止进程
更推荐优先使用默认信号或
kill -15,只有进程无法正常退出时再使用kill -9。
九、打包与压缩命令
tar
打包和解压 .tar、.tar.gz 文件。
打包
tar -cvf archive.tar mydir/
tar -zcvf archive.tar.gz mydir/
解包
tar -xvf archive.tar
tar -zxvf archive.tar.gz
tar -zxvf archive.tar.gz -C /tmp/
常用参数:
-c:创建归档-x:解包-v:显示过程-f:指定文件名-z:通过 gzip 压缩或解压-C:指定解压目录
zip / unzip
压缩和解压 zip 文件。
zip -r archive.zip mydir/
unzip archive.zip
gzip / gunzip
压缩和解压单个文件。
gzip a.txt
gunzip a.txt.gz
十、系统状态检测命令
ip
查看和管理网络信息,是 Debian / Ubuntu 中更常用的网络命令。
ip addr # 查看网卡地址
ip link # 查看网卡状态
ip route # 查看路由信息
ss
查看网络连接和端口使用情况,常用于替代 netstat。
ss -tuln # 查看监听中的 TCP / UDP 端口
ss -nltp # 查看监听端口及对应进程
ifconfig
查看网卡配置和网络状态信息。
ifconfig
在很多新版本 Linux 中,
ifconfig可能默认未安装,通常更推荐使用ip addr。
netstat
查看网络连接和端口使用情况。
netstat -nplt
在 Debian 系统中,很多场景下更推荐使用
ss替代netstat。
uname
查看系统内核和版本信息。
uname -a
uptime
查看系统运行时长和负载信息。
uptime
free
查看内存使用情况。
free -h
who
查看当前登录用户信息。
who
last
查看系统登录历史。
last
history
查看历史命令。
history
十一、服务管理命令
在 Debian 中,很多系统服务都由 systemd 管理,因此 systemctl 非常常用。
systemctl status
查看服务状态。
systemctl status nginx
systemctl start
启动服务。
sudo systemctl start nginx
systemctl stop
停止服务。
sudo systemctl stop nginx
systemctl restart
重启服务。
sudo systemctl restart nginx
systemctl reload
重新加载服务配置。
sudo systemctl reload nginx
systemctl enable
设置服务开机自启。
sudo systemctl enable nginx
systemctl disable
取消服务开机自启。
sudo systemctl disable nginx
systemctl is-active
查看服务是否正在运行。
systemctl is-active nginx
systemctl list-units --type=service
查看当前系统中的服务。
systemctl list-units --type=service
如果你修改了某些服务的配置文件,通常需要配合
restart或reload才能生效。
十二、关机与重启命令
reboot
重启系统。
reboot
poweroff
关闭系统。
poweroff
shutdown
安全关机或重启。
shutdown -h now
shutdown -r now
shutdown -h 22:30
shutdown -h +10
常用参数:
-h:关机-r:重启hh:mm:指定时间执行+m:m分钟后执行
十三、APT 常用命令
在 Debian 及其衍生发行版中,apt 是最常用的软件包管理工具,用于安装、更新、删除和查询软件包。
更新软件包索引
apt update
用于从软件源同步最新的软件包列表,通常在安装或升级软件前先执行。
升级已安装的软件
apt upgrade
升级系统中已安装的软件包,但不会删除旧包,也不会自动处理依赖变化较大的包。
完整升级系统
apt full-upgrade
在升级软件的同时,允许删除旧的软件包或安装新的依赖包,适合系统整体升级。
安装指定软件包
apt install <package_name>
例如:
apt install nginx
删除软件包
apt remove <package_name>
删除软件包,但通常会保留配置文件。
彻底删除软件包及配置
apt purge <package_name>
不仅删除软件,还会删除对应的配置文件。
删除无用依赖
apt autoremove
清理那些因依赖关系安装、但现在已经不再需要的软件包。
清理下载缓存
apt clean
删除 /var/cache/apt/archives/ 中已下载的软件包缓存。
搜索软件包
apt search <keyword>
例如:
apt search mysql
查看软件包信息
apt show <package_name>
例如:
apt show curl
可查看软件包的版本、依赖和描述等详细信息。
列出已安装的软件包
apt list --installed
列出可升级的软件包
apt list --upgradeable
重新安装软件包
apt install --reinstall <package_name>
适用于某些软件损坏或缺失时重新安装。
常见使用流程
安装软件:
sudo apt update
sudo apt install <package_name>
升级系统:
sudo apt update
sudo apt upgrade
或:
sudo apt update
sudo apt full-upgrade
删除软件并清理:
sudo apt remove <package_name>
sudo apt autoremove
如果想连配置一起删掉:
sudo apt purge <package_name>
sudo apt autoremove
大多数安装、删除、升级操作都需要管理员权限,因此通常需要配合
sudo使用。