首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

Linux常用操作命令、端口、防火墙、磁盘与内存

  • 25-03-07 21:42
  • 2642
  • 5318
blog.csdn.net

目录

1.Linux常用操作命令

1.1 基本命令

1.2 高级命令

2.Linux防火墙

2.1 iptables

2.2 firewalld

3.Linux端口号

3.1 netstat(查看网络连接)

3.2 lsof(查找占用端口的进程)

3.3 ps(查看进程服务路径)

3.4 ss(统计信息)

3.5 ufw(对iptables管理)

4.Linux磁盘空间与内存

4.1 磁盘空间

4.2 查看内存


日常开发中,部署线上项目少不了对Linux的操作,Linux基本操作命令、端口号、防火墙、查看磁盘空间和内存大小这些是基本功,如果您对他们还不够熟悉,下面大家一起来学习交流一下。

1.Linux常用操作命令

1.1 基本命令

  1. ls: 列出当前目录下的文件和文件夹。
  2. cd: 切换目录。例如,cd /path/to/directory 可以进入指定路径的目录。
  3. pwd: 显示当前所在的目录路径。
  4. mkdir: 创建新的目录。例如,mkdir new_directory 可以创建名为 "new_directory" 的目录。
  5. rm: 删除文件或目录。例如,rm file.txt 可以删除名为 "file.txt" 的文件;强制删除命令 rm -rf file.txt 注意删除前要看清楚文件,避免误删其他文件。
  6. cp: 复制文件或目录。例如,cp file.txt /path/to/destination 可以将名为 "file.txt" 的文件复制到指定路径。
  7. mv: 移动文件或重命名文件。例如,mv file.txt /path/to/destination 可以将名为 "file.txt" 的文件移动到指定路径,或者mv old_name.txt new_name.txt 可以将文件重命名。
  8. cat: 查看文件内容。例如,cat file.txt 可以显示名为 "file.txt" 的文件的内容。
  9. grep: 在文件中搜索指定的模式。例如,grep "pattern" file.txt 可以在 "file.txt" 文件中搜索包含指定模式的行。如下图所示,搜所有正在运行的jar进程:
    ps -ef|grep jar
  10. chmod: 修改文件或目录的权限。例如,chmod 755 file.txt 可以将 "file.txt" 文件的权限设置为 rwxr-xr-x。
  11. chown: 修改文件或目录的所有者。例如,chown user:group file.txt 可以将 "file.txt" 文件的所有者设置为指定的用户和组。
  12. sudo: 以管理员身份执行命令。例如,sudo apt-get update 可以更新系统软件包。
  13. apt-get 或 yum: 包管理工具,用于安装、更新和删除软件包。例如,sudo apt-get install package_name 可以安装指定的软件包。

这只是一小部分常用的Linux操作命令,还有很多其他命令和选项可供使用。你可以使用man命令查看特定命令的手册页,以获取更详细的信息。

1.2 高级命令

Linux 中有许多强大的高级命令,可以帮助你更高效地管理系统和进行各种任务。以下是一些常用的高级命令:

1. `rsync`:用于远程数据同步和传输的工具,可以在本地和远程系统之间同步文件和目录,例如

  1. # `rsync` 命令是一个强大的文件同步工具,可以在本地和远程系统之间同步文件和目录。
  2. # 以下是几个 `rsync` 命令的例子:
  3. # 1. 从本地系统复制文件到远程系统:
  4. rsync -avz /path/to/local/file username@remote_host:/path/to/remote/directory
  5. # 2. 从远程系统复制文件到本地系统:
  6. rsync -avz username@remote_host:/path/to/remote/file /path/to/local/directory
  7. # 3. 同步本地目录到远程系统:
  8. rsync -avz /path/to/local/directory username@remote_host:/path/to/remote/directory
  9. # 4. 从远程系统删除文件:
  10. rsync --delete username@remote_host:/path/to/remote/directory /path/to/local/directory
  11. # 5. 同步文件并显示详细输出信息:
  12. rsync -avzh /path/to/source username@remote_host:/path/to/destination
  13. # 这些例子展示了 `rsync` 命令的基本用法,你可以根据自己的需求和具体情况来灵活运用该
  14. # 命令进行文件同步和备份操作。

2. `find`:用于在文件系统中搜索文件和目录,支持按名称、时间、大小等条件进行搜索,例如:

  1. # 当使用 `find` 命令时,你可以指定要搜索的目录、搜索条件以及要执行的操作。
  2. # 以下是几个 `find` 命令的例子:
  3. # 1. 查找当前目录下所有名称为 "example.txt" 的文件:
  4. find . -name "example.txt"
  5. # 2. 在 `/home` 目录下查找所有拥有者为 "jack" 的文件:
  6. find /home -user jack
  7. # 3. 在 `/var/log` 目录下查找大于 100MB 大小的文件:
  8. find /var/log -size +100M
  9. # 4. 在 `/etc` 目录下查找所有以 ".conf" 结尾的文件并执行 `ls -l` 命令显示详细信息:
  10. find /etc -name "*.conf" -exec ls -l {} \;
  11. # 5. 在 `/usr/bin` 目录下查找所有可执行文件并将结果保存到 `executable_files.txt` 文件中:
  12. find /usr/bin -type f -executable > executable_files.txt
  13. # 这些例子展示了 `find` 命令的基本用法,你可以根据自己的需求和具体情况来灵活运用该命令。

3. `iptables` 或 `firewalld`:用于配置 Linux 的防火墙规则,控制网络数据包的流动。

4. `sed`:流编辑器,用于对文本进行替换、删除、添加等操作。例如:

  1. # `sed` 命令是一个流式文本编辑器,可以用于对文本进行替换、删除、添加等操作。
  2. # 以下是几个 `sed` 命令的例子:
  3. # 1. 替换文件中所有匹配的字符串:
  4. sed 's/old_string/new_string/g' filename
  5. # 2. 替换文件中第一个匹配的字符串:
  6. sed 's/old_string/new_string/' filename
  7. # 3. 删除文件中匹配的行:
  8. sed '/pattern/d' filename
  9. # 4. 在匹配的行前或后插入新行:
  10. sed '/pattern/i new_line' filename # 在匹配行前插入新行
  11. sed '/pattern/a new_line' filename # 在匹配行后插入新行
  12. # 5. 使用正则表达式匹配和替换:
  13. sed -E 's/pattern/new_string/g' filename # 使用扩展正则表达式
  14. # 6. 将文件内容输出到标准输出,不修改源文件:
  15. sed 'p' filename
  16. # 这些例子展示了 `sed` 命令的常见用法,你可以根据自己的需求和具体情况来使用
  17. # 该命令进行文本处理和编辑操作。

5. `awk`:用于处理文本文件的工具,可以按列来处理文本数据。

  1. # `awk` 命令是一个强大的文本处理工具,用于按列来处理文本数据。
  2. # 以下是几个 `awk` 命令的例子:
  3. # 1. 显示文件的指定列:
  4. awk '{print $1, $3}' filename # 打印文件的第一列和第三列
  5. # 2. 计算文件某一列的总和、平均值等:
  6. awk '{sum += $1} END {print "Sum: " sum}' filename # 计算第一列的总和
  7. # 3. 根据条件筛选并显示行:
  8. awk '$3 > 100 {print $1, $2}' filename # 显示第三列大于 100 的行的第一列和第二列
  9. # 4. 使用自定义分隔符进行处理:
  10. awk -F':' '{print $1, $NF}' /etc/passwd # 使用冒号作为分隔符打印第一列和最后一列
  11. # 5. 对每一行进行处理并输出结果:
  12. ps aux | awk '{print $1, $2, $3, $4}'

6. `tar`:用于归档文件,常与 gzip、bzip2 等工具结合使用进行压缩。例如:

        压缩myproject文件:tar -zcvf myproject.tar.gz myproject

        解压myproject文件:tar -zxvf myproject.tar.gz

7. `dd`:用于复制和转换文件,可以用于创建镜像文件、备份硬盘等。

  1. # `dd` 命令是一个用于复制文件和转换文件的工具,它可以用于创建镜像文件、备份
  2. # 和恢复数据等操作。以下是几个 `dd` 命令的例子:
  3. # 1. 从一个设备复制数据到另一个设备:
  4. dd if=/dev/sda of=/dev/sdb bs=4k
  5. # 这个命令将硬盘 `/dev/sda` 的内容复制到 `/dev/sdb`,`bs=4k` 指定了块大小为 4KB。
  6. # 2. 创建一个指定大小的空白文件:
  7. # dd if=/dev/zero of=blankfile bs=1M count=100
  8. 这个命令将会创建一个名为 `blankfile` 的大小为 100MB 的空白文件。
  9. # 3. 从文件中提取指定大小的数据:
  10. # dd if=inputfile of=outputfile bs=1M count=10
  11. 这个命令将从 `inputfile` 中提取 10MB 的数据,并写入 `outputfile`。
  12. # 4. 在文件中跳过指定数量的块后再复制数据:
  13. dd if=inputfile of=outputfile bs=512 skip=10 count=5
  14. # 这个命令将在跳过输入文件中的前 10 个 512 字节块后,复制接下来的 5 个块到输出文件。
  15. #`dd` 命令非常强大,但同时也需要谨慎使用,因为它可以对系统造成严重破坏。
  16. # 在使用时,请务必确认命令参数和目标设备,避免造成数据丢失或系统损坏。

8. `lsof`:列出系统当前打开的文件,可以查看进程打开的文件和网络连接等信息。

9. `netstat`:显示网络状态信息,包括网络连接、路由表、接口统计等。

这些高级命令可以帮助你进行各种系统管理和数据处理任务,提高工作效率并更好地掌握 Linux 系统。

2.Linux防火墙

在Linux系统中,防火墙是网络安全的重要组成部分,可以帮助保护系统免受未经授权的访问和恶意网络流量的影响。常见的Linux防火墙工具包括iptables和firewalld。下面我将简要介绍它们的基本用法:

2.1 iptables

(1)基本概念:
- iptables 是一个强大的防火墙工具,用于配置Linux内核的防火墙规则。
- 它通过定义规则集来控制进出系统的数据包。

- Centos 7默认使用firewalld防火墙,没有安装iptables, 若想使用iptables防火墙。必须先关闭firewalld防火墙,再安装iptables 。

  1. # 1.禁用防火墙
  2. # 停止 firewalld
  3. systemctl stop firewalld
  4. # 禁用 firewalld
  5. systemctl disable firewalld
  6. # 2. 安装 iptables
  7. # 安装iptables
  8. yum -y install iptables
  9. # 安装iptables-services
  10. yum -y install iptables-services
  11. # 设置 iptables 开机启动
  12. systemctl enable iptables
  13. # 3. 基本操作iptables
  14. # 停止iptables服务
  15. sudo systemctl stop iptables
  16. # 启动iptables服务
  17. sudo systemctl start iptables
  18. # 重启iptables服务
  19. sudo systemctl restart iptables
  20. # 禁用iptables服务
  21. sudo systemctl disable iptables
  22. # 查看iptables服务状态
  23. sudo systemctl status iptables
  24. # 4. 保存配置
  25. # 开放 22 端口
  26. iptables -A INPUT -p tcp --dport 22 -j ACCEPT
  27. # 开放 21 端口(FTP)
  28. iptables -A INPUT -p tcp --dport 21 -j ACCEPT
  29. # 开放 80 端口(HTTP)
  30. iptables -A INPUT -p tcp --dport 80 -j ACCEPT
  31. # 开放 443 端口(HTTPS)
  32. iptables -A INPUT -p tcp --dport 443 -j ACCEPT
  33. # 允许 ping
  34. iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT

(2)基本命令:

- `iptables -L`: 列出当前的防火墙规则。

iptables -L


- `iptables -A INPUT -p tcp --dport port_number -j ACCEPT`: 允许指定端口的TCP流量进入系统。
- `iptables -A OUTPUT -p tcp --dport port_number -j ACCEPT`: 允许系统发出到指定端口的TCP流量。
- `iptables -P INPUT DROP`: 设置默认策略为拒绝所有进入数据包。
- `iptables -P FORWARD DROP`: 设置默认策略为拒绝所有转发数据包。
- `iptables -P OUTPUT ACCEPT`: 设置默认策略为允许所有发出数据包。

2.2 firewalld

(1)基本概念:
- firewalld 是一个动态管理防火墙的工具,可以更灵活地管理防火墙规则。
- 它支持不同的区域和服务,可以根据需要动态调整防火墙规则。

- 注意CentOS7默认使用firewalld防火墙,而不是iptables。

(2)基本命令:

- `firewall-cmd --state`: 检查防火墙的状态。


- `firewall-cmd --get-zones`: 列出可用的区域。
- `firewall-cmd --zone=public --add-port=port_number/tcp --permanent`: 在公共区域永久开放指定端口的TCP流量。
- `firewall-cmd --reload`: 重新加载防火墙规则以使更改生效。

例如:redis想开放6379端口外网访问,操作流程如下:

在Linux系统中,firewalld是一个动态防火墙管理工具,它提供了支持网络/防火墙区域以及接口添加和移除的防火墙管理功能。以下是如何使用firewalld开放6379端口的步骤:

  1. 检查firewalld状态

    首先,确保firewalld服务正在运行:

    systemctl status firewalld
    

    如果没有运行,启动它:

    systemctl start firewalld
    
  2. 永久开放6379端口

    使用以下命令永久开放6379端口(假设你使用的是默认的public区域):

    firewall-cmd --zone=public --add-port=6379/tcp --permanent
    

    这里的--permanent参数是关键,它指示这个规则在防火墙重启后仍然有效。

  3. 重新加载firewalld

    应用上述规则,需要重新加载firewalld:

    firewall-cmd --reload
    
  4. 验证端口开放

    可以通过以下命令验证端口是否已经开放:

    firewall-cmd --zone=public --query-port=6379/tcp
    

    如果返回结果是yes,那么端口已经成功开放。

请注意,如果你有特殊的安全需求或者不同的网络区域配置,你可能需要根据你的实际情况调整上述命令中的--zone参数。

以上命令需要在具有管理员权限的终端中执行,你可能需要使用sudo来执行这些命令。

关于iptables和firewalld两种常用Linux防火墙工具的基本介绍和常用命令。在配置防火墙时,请务必谨慎操作,确保你了解你的网络需求,并避免意外封锁或开放重要的端口造成安全隐患。

3.Linux端口号

在Linux中,你可以使用一些命令来处理端口相关的问题。以下是一些常用的命令:

3.1 netstat(查看网络连接)

1. `netstat`: 用于查看网络连接、路由表和网络接口等信息。例如,`netstat -tuln` 可以列出所有已监听的TCP和UDP端口,netstat -tulnp 会比 netstat -tuln 内容更详细,如下图对比所示:

netstat -tulnp

netstat -tuln

3.2 lsof(查找占用端口的进程)

2. `lsof`: 用于列出当前打开的文件和进程信息。可以使用 `lsof -i :port_number` 来查找正在使用指定端口的进程,如下图所示:

方式一:lsof -i:port

方式二:netstat -nap|grep port【推荐】

3.3 ps(查看进程服务路径)

3. 根据进程pid查看服务路径

查看所有进程pid:ps -ef|grep java

查看服务安装路径:ll /proc/pid/cwd

3.4 ss(统计信息)

4. `ss`: 类似于 `netstat`,用于显示套接字统计信息。例如,`ss -tunl` 可以列出所有已监听的TCP和UDP端口,如下图所示:

ss -tunl

3.5 ufw(对iptables管理)

6. `ufw`: 简化了对iptables的管理,提供了更简单的命令行界面。例如,`ufw status` 可以查看防火墙状态,`ufw allow port_number` 可以允许指定端口的连接。

这些命令可以帮助你查看端口的使用情况、正在监听的端口以及相关的进程信息。如果你需要打开或关闭特定的端口,你可能需要配置防火墙规则或使用适当的工具进行管理。请注意,在执行任何网络操作之前,请确保你有足够的权限,并且谨慎操作以避免安全风险。

4.Linux磁盘空间与内存

4.1 磁盘空间

在Linux系统中,你可以使用一些命令来查看磁盘空间的使用情况。以下是一些常用的命令:

1. `df` 命令:
   - `df` 命令用于报告文件系统的磁盘空间利用情况。
   - `df -h` 可人类可读的格式显示磁盘空间使用情况,包括已用空间、可用空间和挂载点等信息。
   - 例如,`df -h` 将列出系统中所有文件系统的磁盘空间使用情况。

2. `du` 命令:
   - `du` 命令用于估算文件和目录的磁盘使用空间。
   - `du -h folder_name` 可以以人类可读的格式显示指定目录的磁盘使用情况。
   - 例如,`du -h /home/user` 将列出 "/home/user" 目录及其子目录的磁盘空间使用情况。

  - 例如,`du -sh *` 将列出当前目录及其子目录的磁盘空间使用情况。

这些命令可以帮助你查看整个系统或特定目录的磁盘空间使用情况,以便及时采取措施来管理磁盘空间。如果你需要更详细的信息,你可以结合其他选项来获取特定的磁盘空间使用情况。

4.2 查看内存

要查看 Linux 系统中的内存使用情况,可以使用以下几个命令:

1. `free`:显示系统当前的内存使用情况,包括总内存、已使用、空闲等信息。
   
如下图所示:free -b、free -m、free -g

2. `top` 或 `htop`:这两个命令可以显示系统当前的进程和资源占用情况,包括内存占用情况。
例如:top

或者安装 `htop` 后使用:
sudo apt install htop   # 安装 htop
htop                            # 查看系统资源使用情况
 

3. `vmstat`:显示系统的虚拟内存统计信息,包括内存、磁盘、CPU 等情况。
例如:vmstat

通过这些命令,你可以很方便地查看 Linux 系统中的内存情况。

注:本文转载自blog.csdn.net的正在走向自律的文章"https://xiaoxiang113.blog.csdn.net/article/details/136767328"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2024 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top