
对于刚接触 Linux 的用户来说,尽管像 Ubuntu 和 Mint 这样的发行版非常友好,使用起来仍然可能会感到有些挑战。
虽然这些发行版简化了许多任务,但在某些情况下,仍然需要进行手动配置。要充分发挥 Linux 的强大功能,理解并掌握基本命令是非常重要的。
在 Linux 中,命令是与系统交互的主要方式,用户通过命令来执行任务、配置设置和高效管理系统。
本文将介绍 50 个必备的Linux命令,为初学者打下基础,同时为成为一名熟练的系统管理员提供指导。这些命令涵盖了从目录浏览、文件管理到执行高级系统操作的广泛功能。
无论你是刚刚入门,还是希望深入掌握,掌握这些命令都能帮助你释放 Linux 的全部潜力。
新手必备的基础 Linux
无论你是 Linux 新手还是高级用户,掌握基础命令对于浏览系统和控制操作系统至关重要。
下面是一些常用的 Linux 命令,包括它们的说明和使用示例:
1. 查看目录内容
– `ls` 命令用于查看指定目录中的文件和子目录。它可以显示可见和隐藏文件(以 `.` 开头的文件默认是隐藏的)。
ls -la
2. 查看硬盘分区和外部硬盘
– `lsblk` 命令以树状结构显示有关硬盘、分区和外部驱动器的信息。
lsblk
3. 检查已下载或传输包的完整性
– `sha256sum` 或 `md5sum` 命令用于生成和验证文件的加密哈希值,确保文件在下载或传输后的完整性。
sha256sum file.tar.gz
4. 转换并复制文件
– `dd` 命令用于低级别的文件复制和转换,常用于创建启动盘或克隆磁盘映像。
dd if=input.img of=output.img bs=4M status=progress
5. 查看机器名、操作系统和内核信息
– `uname` 命令提供系统信息,包括内核版本、系统架构和主机名。
uname -a
6. 查看命令历史
– `history` 命令列出以前执行过的命令,方便回顾或重复使用。
history
7. 以 root 用户身份执行命令
– `sudo` 命令允许用户以管理员权限执行命令。使用 `sudo -i` 切换到 root 用户的 shell。
sudo -i
8. 创建新目录
– `mkdir` 命令在当前路径下创建一个新的目录。
mkdir my_folder
9. 创建或更新时间戳
– `touch` 命令创建空文件或更新时间戳。
touch my_file.txt
10. 更改文件权限
– `chmod` 命令更改文件权限,控制谁可以读取、写入或执行文件。
chmod 644 my_file.txt
11. 更改文件所有者
– `chown` 命令更改文件的所有者和所属组。
sudo chown user:group my_file.txt
12. 安装、更新和维护软件包
– `apt` 命令用于管理 Debian 系统上的软件包。
sudo apt update && sudo apt install package_name
13. 解压缩 Tar 文件
– `tar` 命令用于提取压缩文件。
tar -xvzf file.tar.gz
14. 查看当前日期、时间和日历
– `date` 和 `cal` 命令显示当前日期、时间和日历。
date
cal
15. 打印文件内容
– `cat` 命令将文件内容打印到终端。
cat my_file.txt
16. 复制和移动文件
– `cp` 和 `mv` 命令分别用于复制和移动文件。
cp source.txt destination.txt
mv old_name.txt new_name.txt
17. 查看当前工作目录
– `pwd` 命令打印当前目录的路径。
pwd
18. 切换工作目录
– `cd` 命令在目录之间导航。
cd /path/to/directory
中级 Linux 命令
掌握了基础命令之后,你可以深入学习一些更高级的命令,这将帮助你更高效地管理和优化系统。
19. 在指定目录中查找文件
– `find` 命令用于在指定目录或整个文件系统中查找文件和目录。
find /path/to/directory -name "filename"
20. 查找包含指定关键词的文件
– `grep` 命令用于搜索文件中包含特定模式(关键词)的内容。
grep "keyword" filename
21. 查看命令的在线文档
– `man` 命令用于显示特定命令的帮助文档,提供如何使用该命令、选项和语法的详细信息。
man ls
22. 列出当前正在运行的进程
– `ps` 命令显示当前正在运行的进程的快照,包括进程 ID(PID)、内存使用情况和 CPU 使用情况。
ps aux
23. 结束一个正在运行的进程
– `kill` 命令用于终止正在运行的进程,需要指定进程 ID(PID)。
kill 1234
24. 查看已安装二进制文件的位置
– `which` 命令帮助你找到系统中可执行文件的位置。
which python3
25. 启动、停止、重启服务
– `systemctl` 命令用于管理使用 systemd 的系统服务(守护进程)。
systemctl start service_name
systemctl stop service_name
systemctl restart service_name
26. 创建和删除命令别名
– `alias` 命令用于创建命令的快捷方式,而 `unalias` 命令删除已创建的别名。
alias ll='ls -l'
unalias ll
27. 查看磁盘和空间使用情况
– `df` 命令显示所有挂载文件系统的磁盘空间使用情况。
df -h
28. 删除文件和/或目录
– `rm` 命令用于删除文件和目录。可以使用 `-r` 选项递归删除目录及其内容。
rm filename
rm -r directory_name
29. 打印自定义输出
– `echo` 命令用于将文本或变量值打印到终端。
echo "Custom Message"
30. 更改 Linux 密码
– `passwd` 命令用于更改当前用户或其他用户的密码(如果你是 root 用户)。
passwd username
31. 查看打印队列
– `lpq` 命令显示打印队列的状态,包括待处理和已完成的打印任务。
lpq
32. 比较两个文件
– `diff` 命令逐行比较两个文件并显示它们的不同之处。
diff file1 file2
33. 通过 wget 下载文件
– `wget` 命令用于从互联网上下载文件,支持 HTTP、HTTPS 和 FTP 协议。
wget https://example.com/file.zip
34. 挂载块设备/分区/外部硬盘
– `mount` 命令用于将块设备(例如硬盘或 USB 驱动器)挂载到文件系统中的某个目录。
mount /dev/sdX /mnt
35. 编译和运行 C、C++ 和 Java 代码
– 使用相应的编译器和运行时来编译和运行 C、C++ 和 Java 代码。
C: gcc用于编译C程序。
C++:g++用于编译C++程序。
Java:javac用于编译Java程序,Java用于运行它们。
编译并运行C代码:
gcc -o outputfile sourcefile.c
./outputfile
编译并运行C++代码:
g++ -o outputfile sourcefile.cpp
./outputfile
编译并运行Java代码:
javac filename.java
java filename
高级 Linux 命令
在本系列的最后一节中,我们将介绍管理Linux服务器所需的命令。
36. 查看网络连接和端口
– `netstat` 命令显示有关网络连接、路由表和接口的详细信息。
netstat -tuln
37. 查看网络活动和带宽使用
– `iftop` 命令实时显示网络带宽的使用情况。
sudo iftop
38. 查找系统中占用资源的进程
– `top` 命令显示系统的实时资源使用情况,包含 CPU 和内存的占用。
top
39. 定时任务调度
– `cron` 和 `at` 命令用于安排定期执行的任务(如每天、每周等)。
crontab -e
40. 压缩文件
– `gzip` 命令用于压缩文件。
gzip file.txt
41. 修复磁盘坏道
– `fsck` 命令用于检查并修复磁盘上的文件系统错误。
sudo fsck /dev/sdX
42. 通过 ssh 连接到远程主机
– `ssh` 命令用于通过加密连接远程服务器。
ssh user@remote_host
43. 使用 scp 传输文件
– `scp` 命令用于通过 SSH 协议安全地复制文件。
scp file.txt user@remote_host:/path/to/destination
44. 查看日志文件
– `journalctl` 命令用于查看 systemd 日志,`tail` 命令查看日志的最新条目。
journalctl
tail -f /var/log/syslog
45. 管理 Docker 容器
– `docker` 命令用于管理 Docker 容器和镜像。
docker ps
docker run -d --name my_container my_image
46. 管理 LVM(逻辑卷管理)
– `lvcreate`、`lvextend` 和 `lvremove` 命令用于创建、扩展和删除 LVM 逻辑卷。
lvcreate -L 10G -n my_volume my_volume_group
47. 生成随机密码
– `openssl` 命令用于生成加密密钥和随机密码。
openssl rand -base64 12
48. 查找内存使用情况
– `free` 命令显示系统的内存使用情况。
free -h
49. 查看 TCP 连接
– `ss` 命令提供有关系统网络套接字的详细信息,比 `netstat` 更快速和高效。
ss -tuln
50. 查看文件系统使用情况
– `du` 命令显示文件和目录占用磁盘空间的情况。
du -sh /path/to/directory
这些 Linux 命令是系统管理员和普通用户的必备工具。通过熟悉它们的基本功能和进阶技巧,你将能够更加高效地操作系统,排查问题,并优化你的服务器和工作环境。











