YJ.AL

Notes on tech, learning, and life.

Linux Basics

对于 Linux 初学者来说,先理解目录结构,再掌握常用命令,是入门的第一步。本文系统整理了 Linux 中最常见的目录含义,以及文件操作、查找命令、进程管理、压缩解压、系统状态查看、服务管理和 Debian 常用的 APT 包管理命令,适合作为一份快速上手的学习笔记与速查手册。


一、Linux 目录结构

Linux 的一切几乎都以文件的形式组织,因此理解目录结构非常重要。


二、帮助命令

当你不确定某个命令如何使用时,帮助命令非常有用。

man

查看命令的手册页。

man ls

help

查看 Shell 内置命令的帮助信息。

help cd

man 通常用于外部命令,help 更常用于 Bash 内置命令。


三、Linux 常用快捷键

有些资料会写 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

常用操作:

head

查看文件开头内容。

head a.txt
head -n 20 a.txt

tail

查看文件末尾内容。

tail a.txt
tail -n 20 a.txt
tail -f app.log

其中:

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

常用参数:


六、查找命令

find

查找文件或目录。

find /tmp -name "*.log"
find /home -user root
find /var -size +100M

常用参数:

grep

在文件中搜索匹配字符串的行。

grep "error" app.log
grep -n "error" app.log
grep -c "error" app.log

常用参数:

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

常用参数:

top

动态查看系统进程和资源占用情况。

top

kill

终止指定 PID 的进程。

kill 1234
kill -9 1234

其中:

更推荐优先使用默认信号或 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/

常用参数:

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

如果你修改了某些服务的配置文件,通常需要配合 restartreload 才能生效。


十二、关机与重启命令

reboot

重启系统。

reboot

poweroff

关闭系统。

poweroff

shutdown

安全关机或重启。

shutdown -h now
shutdown -r now
shutdown -h 22:30
shutdown -h +10

常用参数:


十三、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 使用。

Linux, Shell, Dev

⬅ Previous post
Markdown Guide