Skip to content

常用的 Linux 命令及其简要说明和示例:

ls - 列出目录内容

bash
ls

列出当前目录的文件和子目录。

cd - 更改当前目录

bash
cd /path/to/directory

更改当前工作目录到指定的目录。

pwd - 显示当前工作目录

bash
pwd

显示当前工作目录的完整路径。

cp - 复制文件或目录

bash
cp source_file destination_file

source_file 复制到 destination_file

mv - 移动或重命名文件或目录

bash
mv source_file destination_file

source_file 移动到 destination_file,或重命名为 destination_file

rm - 删除文件或目录

bash
rm file

删除指定的文件。要删除目录及其内容,使用 rm -r directory

mkdir - 创建新目录

bash
mkdir directory_name

创建一个名为 directory_name 的新目录。

rmdir - 删除空目录

bash
rmdir directory_name

删除一个名为 directory_name 的空目录。

touch - 创建空文件或更新文件时间戳

bash
touch file_name

创建一个名为 file_name 的空文件,或更新现有文件的时间戳。

cat - 显示文件内容

bash
cat file_name

显示 file_name 的内容。

less - 分页显示文件内容

bash
less file_name

分页显示 file_name 的内容,可以使用键盘上的方向键进行导航。

grep - 搜索文件中的文本

bash
grep "search_text" file_name

file_name 中搜索 search_text

find - 查找文件或目录

bash
find /path/to/search -name "file_name"

在指定路径下查找名为 file_name 的文件或目录。

chmod - 更改文件权限

bash
chmod 755 file_name

file_name 的权限更改为 755(所有者有读、写、执行权限,组和其他用户有读和执行权限)。

chown - 更改文件所有者

bash
chown user:group file_name

file_name 的所有者更改为 user,组更改为 group

df - 显示磁盘空间使用情况

bash
df -h

以人类可读的格式显示磁盘空间使用情况。

du - 显示目录或文件的磁盘使用情况

bash
du -sh directory_name

显示 directory_name 的磁盘使用情况,以人类可读的格式。

top - 显示系统资源使用情况

bash
top

显示系统资源使用情况,包括 CPU、内存等。

ps - 显示当前进程

bash
ps aux

显示所有用户的所有进程。

kill - 终止进程

bash
kill PID

终止指定 PID 的进程。

free - 显示内存使用情况

bash
free -h

显示内存使用情况,以人类可读的格式。

显示系统信息

bash
cat /var/run/motd.dynamic

ifconfig - 显示和配置网络接口

bash
ifconfig

显示所有网络接口的配置信息。

ip - 显示和配置网络接口(现代替代 ifconfig

bash
ip addr

显示所有网络接口的 IP 地址信息。

ping - 测试网络连接

bash
ping www.example.com

www.example.com 发送 ICMP 回显请求,测试网络连接。

netstat - 显示网络连接、路由表、接口统计等

bash
netstat -tuln

显示所有正在监听的端口。

ss - 显示套接字统计信息(现代替代 netstat

bash
ss -tuln

显示所有正在监听的 TCP 和 UDP 端口。

lsof - 列出打开的文件

bash
lsof -i :80

列出监听端口 80 的所有进程。

scp - 远程复制文件

bash
scp local_file user@remote_host:/remote/path

将本地文件 local_file 复制到远程主机 remote_host/remote/path 目录。

rsync - 远程同步文件和目录

bash
rsync -avz local_file user@remote_host:/remote/path

将本地文件 local_file 同步到远程主机 remote_host/remote/path 目录。

wget - 下载文件

bash
wget http://www.example.com/file

从指定 URL 下载文件。

curl - 传输数据

bash
curl -O http://www.example.com/file

从指定 URL 下载文件并保存为原文件名。

tar - 创建和解压归档文件

bash
tar -czvf archive.tar.gz directory

directory 压缩成 archive.tar.gz

gzip - 压缩文件

bash
gzip file

压缩 file,生成 file.gz

gunzip - 解压缩文件

bash
gunzip file.gz

解压缩 file.gz,生成 file

unzip - 解压缩 ZIP 文件

bash
unzip file.zip

解压缩 file.zip

zip - 创建 ZIP 文件

bash
zip archive.zip file1 file2

file1file2 压缩成 archive.zip

ssh - 远程登录

bash
ssh user@remote_host

通过 SSH 登录到远程主机 remote_host

sudo - 以超级用户权限执行命令

bash
sudo command

以超级用户权限执行 command

chroot - 更改根目录

bash
chroot /new/root

将根目录更改为 /new/root

mount - 挂载文件系统

bash
mount /dev/sdX1 /mnt

将设备 /dev/sdX1 挂载到 /mnt

umount - 卸载文件系统

bash
umount /mnt

卸载挂载在 /mnt 的文件系统。

当然,以下是更多常用的 Linux 命令,包括 telnetnslookup 以及其他一些实用的命令:

telnet - 远程登录到另一台主机

bash
telnet remote_host port

使用 telnet 连接到 remote_host 的指定端口。

nslookup - 查询域名服务器

bash
nslookup www.example.com

查询 www.example.com 的 DNS 记录。

dig - 域名查询工具

bash
dig www.example.com

查询 www.example.com 的 DNS 记录。

host - 查询域名的 DNS 记录

bash
host www.example.com

查询 www.example.com 的 DNS 记录。

sudo lsof -i -P -n | grep LISTEN - 查看正在监听的端口

bash
sudo lsof -i -P -n | grep LISTEN

列出所有正在监听的端口及其对应的进程。

traceroute - 跟踪路由

bash
traceroute www.example.com

跟踪到 www.example.com 的路由路径。

route - 显示和操作 IP 路由表

bash
route -n

显示当前的 IP 路由表。

iptables - 配置防火墙规则

bash
iptables -L

列出当前的防火墙规则。

ufw - 简单的防火墙配置工具

bash
sudo ufw status

显示当前的防火墙状态。

systemctl - 控制系统服务

bash
sudo systemctl status service_name

显示 service_name 的状态。

journalctl - 查看系统日志

bash
journalctl -xe

显示详细的系统日志。

dmesg - 显示内核消息缓冲区

bash
dmesg

显示内核消息缓冲区的内容。

free - 显示内存使用情况

bash
free -h

以人类可读的格式显示内存使用情况。

htop - 交互式进程查看器

bash
htop

启动 htop,提供一个交互式的进程查看器。

iostat - 报告 CPU 和设备 I/O 统计信息

bash
iostat

显示 CPU 和设备 I/O 统计信息。

vmstat - 报告虚拟内存统计信息

bash
vmstat

显示虚拟内存统计信息。

crontab - 计划任务

bash
crontab -e

编辑当前用户的 cron 表。

at - 计划一次性任务

bash
at now + 5 minutes

计划在 5 分钟后执行一次性任务。

awk - 文本处理工具

bash
awk '{print $1}' file

打印 file 中每行的第一个字段。

sed - 流编辑器

bash
sed 's/old_text/new_text/g' file

file 中的 old_text 替换为 new_text

sudo ufw allow 6000/tcp - 允许 TCP 端口 6000 的流量

bash
sudo ufw allow 6000/tcp

允许 TCP 端口 6000 的流量通过防火墙。

sudo systemctl reload postgresql - 重新加载 PostgreSQL 服务

bash
sudo systemctl reload postgresql

重新加载 PostgreSQL 服务配置。

sudo systemctl restart apache2 - 重启 Apache 服务

bash
sudo systemctl restart apache2

重启 Apache 服务。

sudo systemctl enable nginx - 启用 Nginx 服务

bash
sudo systemctl enable nginx

启用 Nginx 服务,使其在系统启动时自动启动。

sudo systemctl disable sshd - 禁用 SSH 服务

bash
sudo systemctl disable sshd

禁用 SSH 服务,使其在系统启动时不自动启动。

sudo systemctl status mysql - 查看 MySQL 服务状态

bash
sudo systemctl status mysql

查看 MySQL 服务的当前状态。

sudo apt update - 更新包列表

bash
sudo apt update

更新包列表,以便获取最新的软件包信息。

sudo apt upgrade - 升级所有已安装的包

bash
sudo apt upgrade

升级所有已安装的软件包到最新版本。

sudo apt install package_name - 安装软件包

bash
sudo apt install package_name

安装指定的软件包。

sudo apt remove package_name - 卸载软件包

bash
sudo apt remove package_name

卸载指定的软件包。

sudo yum update - 更新包列表(适用于基于 Red Hat 的系统)

bash
sudo yum update

更新包列表,以便获取最新的软件包信息。

sudo yum install package_name - 安装软件包(适用于基于 Red Hat 的系统)

bash
sudo yum install package_name

安装指定的软件包。

sudo yum remove package_name - 卸载软件包(适用于基于 Red Hat 的系统)

bash
sudo yum remove package_name

卸载指定的软件包。

sudo dnf update - 更新包列表(适用于 Fedora)

bash
sudo dnf update

更新包列表,以便获取最新的软件包信息。

sudo dnf install package_name - 安装软件包(适用于 Fedora)

bash
sudo dnf install package_name

安装指定的软件包。

sudo dnf remove package_name - 卸载软件包(适用于 Fedora)

bash
sudo dnf remove package_name

卸载指定的软件包。

sudo useradd username - 添加新用户

bash
sudo useradd username

添加一个新用户 username

sudo userdel username - 删除用户

bash
sudo userdel username

删除用户 username

sudo passwd username - 更改用户密码

bash
sudo passwd username

更改用户 username 的密码。

sudo groupadd groupname - 添加新组

bash
sudo groupadd groupname

添加一个新组 groupname

sudo groupdel groupname - 删除组

bash
sudo groupdel groupname

删除组 groupname

sudo usermod -aG groupname username - 将用户添加到组

bash
sudo usermod -aG groupname username

将用户 username 添加到组 groupname

sudo chage -E 2023-12-31 username - 设置用户账户过期日期

bash
sudo chage -E 2023-12-31 username

设置用户 username 的账户过期日期为 2023 年 12 月 31 日。

sudo crontab -u username -e - 编辑指定用户的 cron 表

bash
sudo crontab -u username -e

编辑用户 username 的 cron 表。

sudo crontab -u username -l - 列出指定用户的 cron 表

bash
sudo crontab -u username -l

列出用户 username 的 cron 表。

sudo crontab -u username -r - 删除指定用户的 cron 表

bash
sudo crontab -u username -r

删除用户 username 的 cron 表。

sudo tail -f /var/log/syslog - 实时查看系统日志

bash
sudo tail -f /var/log/syslog

实时查看系统日志文件 /var/log/syslog

sudo tail -f /var/log/auth.log - 实时查看认证日志

bash
sudo tail -f /var/log/auth.log

实时查看认证日志文件 /var/log/auth.log

当然,以下是更多关于用户管理和权限管理的 Linux 命令示例:

添加新用户

bash
sudo useradd -m -s /bin/bash username

添加一个新用户 username,创建用户的主目录并设置默认 shell 为 /bin/bash

设置用户密码

bash
sudo passwd username

为用户 username 设置密码。

修改用户信息

bash
sudo usermod -c "Full Name" username

修改用户 username 的描述信息为 "Full Name"。

修改用户的主目录

bash
sudo usermod -d /new/home/directory username

修改用户 username 的主目录为 /new/home/directory

修改用户的默认 shell

bash
sudo usermod -s /bin/zsh username

修改用户 username 的默认 shell 为 /bin/zsh

删除用户

bash
sudo userdel username

删除用户 username

删除用户及其主目录

bash
sudo userdel -r username

删除用户 username 及其主目录。

添加新组

bash
sudo groupadd groupname

添加一个新组 groupname

删除组

bash
sudo groupdel groupname

删除组 groupname

将用户添加到组

bash
sudo usermod -aG groupname username

将用户 username 添加到组 groupname

将用户从组中移除

bash
sudo gpasswd -d username groupname

将用户 username 从组 groupname 中移除。

切换到 root 用户

bash
sudo -i

切换到 root 用户,获得完全的管理权限。

以其他用户身份执行命令

bash
sudo -u username command

以用户 username 的身份执行 command

编辑 sudoers 文件

bash
sudo visudo

编辑 sudoers 文件,配置 sudo 权限。

授予用户 sudo 权限

bash
sudo usermod -aG sudo username

将用户 username 添加到 sudo 组,授予 sudo 权限。

移除用户的 sudo 权限

bash
sudo deluser username sudo

将用户 usernamesudo 组中移除,取消 sudo 权限。

查看当前用户

bash
whoami

显示当前用户名。

查看用户信息

bash
id username

显示用户 username 的用户 ID、组 ID 和组信息。

查看用户列表

bash
cat /etc/passwd

显示系统中所有用户的列表。

查看组列表

bash
cat /etc/group

显示系统中所有组的列表。