Skip to content

Instantly share code, notes, and snippets.

@CN-CODEGOD
Last active December 29, 2024 07:00
Show Gist options
  • Save CN-CODEGOD/9080ff033a5bc310fd0115635d7084de to your computer and use it in GitHub Desktop.
Save CN-CODEGOD/9080ff033a5bc310fd0115635d7084de to your computer and use it in GitHub Desktop.
Linux 常用命令
以下是一些常用的 Linux 命令,这些命令可以帮助你在 Linux 系统中进行文件管理、系统监控、网络配置等操作。
### 文件和目录管理
1. **`ls`** — 列出目录内容
- `ls`:列出当前目录的文件和子目录。
- `ls -l`:列出详细信息(权限、所有者、大小、修改日期等)。
- `ls -a`:显示所有文件(包括隐藏文件)。
2. **`cd`** — 改变目录
- `cd /path/to/directory`:切换到指定目录。
- `cd ..`:返回上一级目录。
- `cd ~`:切换到用户的主目录。
3. **`pwd`** — 显示当前工作目录
- `pwd`:显示当前目录的完整路径。
4. **`mkdir`** — 创建目录
- `mkdir directory_name`:创建一个新的目录。
5. **`rmdir`** — 删除空目录
- `rmdir directory_name`:删除空目录。
6. **`rm`** — 删除文件或目录
- `rm file_name`:删除文件。
- `rm -r directory_name`:删除目录及其内容。
7. **`cp`** — 复制文件或目录
- `cp source_file destination`:复制文件。
- `cp -r source_directory destination_directory`:复制目录及其内容。
8. **`mv`** — 移动或重命名文件
- `mv source_file destination`:移动文件或重命名文件。
- `mv source_directory destination_directory`:移动目录。
9. **`touch`** — 创建空文件或修改文件的时间戳
- `touch file_name`:创建一个空文件,或者更新文件的访问和修改时间。
10. **`cat`** — 查看文件内容
- `cat file_name`:查看文件内容。
- `cat file1 file2 > merged_file`:将多个文件内容合并到一个文件中。
11. **`echo`** — 输出文本
- `echo "Hello, World!"`:输出文本。
### 文件内容搜索与处理
1. **`grep`** — 查找文件中匹配的行
- `grep "pattern" file_name`:查找文件中包含特定字符串的行。
- `grep -r "pattern" /path/to/dir`:递归搜索目录中的文件。
2. **`find`** — 查找文件或目录
- `find /path/to/search -name "filename"`:根据文件名查找文件。
- `find /path/to/search -type d`:查找目录。
3. **`head`** — 查看文件的前几行
- `head file_name`:显示文件的前 10 行。
- `head -n 20 file_name`:显示文件的前 20 行。
4. **`tail`** — 查看文件的后几行
- `tail file_name`:显示文件的后 10 行。
- `tail -n 20 file_name`:显示文件的后 20 行。
- `tail -f file_name`:实时监控文件内容的更新。
5. **`wc`** — 统计文件的行数、字数和字符数
- `wc file_name`:显示文件的行数、字数和字符数。
- `wc -l file_name`:只显示行数。
### 文件权限和所有者管理
1. **`chmod`** — 改变文件权限
- `chmod 755 file_name`:设置文件的权限(rwxr-xr-x)。
- `chmod +x file_name`:给文件增加可执行权限。
2. **`chown`** — 改变文件或目录的所有者
- `chown user:group file_name`:将文件的所有者和所属组改为指定的用户和组。
3. **`chgrp`** — 改变文件的所属组
- `chgrp group file_name`:将文件的组更改为指定的组。
### 系统管理与监控
1. **`top`** — 显示系统资源的实时使用情况
- `top`:显示 CPU、内存、进程等的实时状态。
- `top -u username`:显示指定用户的进程。
2. **`htop`** — 更友好的 `top` 命令(需要安装)
- `htop`:提供一个交互式的界面,显示系统资源和进程信息。
3. **`ps`** — 查看当前进程
- `ps`:列出当前用户的进程。
- `ps aux`:列出所有进程。
4. **`kill`** — 杀死进程
- `kill PID`:终止指定 PID 的进程。
- `kill -9 PID`:强制终止进程。
5. **`df`** — 查看磁盘空间使用情况
- `df`:显示所有挂载的文件系统的磁盘空间使用情况。
- `df -h`:以人类可读的方式显示(例如:GB, MB)。
6. **`du`** — 查看文件或目录的磁盘使用情况
- `du file_name`:查看文件或目录的磁盘使用情况。
- `du -sh directory_name`:查看目录的总大小。
7. **`free`** — 查看内存使用情况
- `free`:显示内存的使用情况。
- `free -h`:以人类可读的方式显示内存使用情况。
8. **`uptime`** — 查看系统运行时间
- `uptime`:显示系统的运行时间、负载平均值等。
### 用户管理
1. **`useradd`** — 创建新用户
- `sudo useradd username`:创建一个新用户。
2. **`usermod`** — 修改用户信息
- `sudo usermod -aG group_name username`:将用户添加到指定的用户组。
3. **`passwd`** — 修改用户密码
- `passwd username`:修改指定用户的密码。
4. **`whoami`** — 显示当前用户
- `whoami`:显示当前登录的用户名。
5. **`id`** — 查看当前用户的 UID 和 GID
- `id`:显示当前用户的 ID 和所属组。
### 网络命令
1. **`ping`** — 测试网络连接
- `ping domain_name`:测试与远程主机的网络连接。
- `ping 8.8.8.8`:测试与 Google DNS 的连接。
2. **`ifconfig`** — 显示网络接口信息
- `ifconfig`:查看网络接口的配置信息。
3. **`ip`** — 显示和配置网络接口(替代 ifconfig)
- `ip a`:查看所有网络接口的 IP 地址。
- `ip link set eth0 up`:启用网络接口 `eth0`。
4. **`netstat`** — 查看网络连接
- `netstat -tuln`:查看所有活动的网络端口。
- `netstat -tulnp`:查看端口以及正在使用这些端口的进程。
5. **`curl`** — 请求数据
- `curl http://example.com`:获取指定 URL 的内容。
- `curl -O http://example.com/file`:下载文件。
6. **`wget`** — 下载文件
- `wget http://example.com/file`:下载指定 URL 的文件。
### 压缩与解压
1. **`tar`** — 打包和解压文件
- `tar -cvf archive.tar directory/`:将目录打包成 tar 文件。
- `tar -xvf archive.tar`:解压 tar 文件。
- `tar -czvf archive.tar.gz directory/`:将目录打包并压缩成 `.tar.gz` 文件。
- `tar -xzvf archive.tar.gz`:解压 `.tar.gz` 文件。
2. **`gzip`** — 压缩文件
- `gzip file_name`:将文件压缩为 `.gz` 格式。
3. **`gunzip`** — 解压 `.gz` 文件
- `gunzip file_name.gz`:解压 `.gz` 文件。
### 常用的文本编辑器
1. **`nano`** — 简单的文本编辑器
- `nano file_name`:使用 nano 编辑文件。
2. **`vim`** — 强大的文本编辑器
- `vim file_name`:使用 vim 编辑文件。
这些是 Linux 系统中最常用的命令,掌握这些命令可以帮助你进行日常的系统管理、文件操作、网络管理等任务。
1.install ufw
$ sudo apt-get install ufw
2.enable ufw
$ sudo ufw enable
2.allow port
$ sudo ufw allow <port>
full syntax
$sudo ufw allow <port>/<protocol>
Assuming you are running a web server, you obviously want the world to access and interact with your website. Web server applications use port 80 for regular website traffic (HTTP) and port 443 for secure connections (HTTPS). This means you must open ports 80 and 443 to allow web connections to your server.
$ sudo ufw allow 80/tcp
$ sudo ufw allow 443/tcp
To allow SSH connections to your server, open port 22
$ sudo ufw allow 22/tcp
Deny Connections to Your Server
$ sudo ufw deny <port>/<optional: protocol>
Allow Connections from only Trusted IP Addresses
$ sudo ufw allow from 192.168.0.1 to any port 22
Check UFW Status
$ sudo ufw status
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment