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

本文涉及的产品
云防火墙,500元 1000GB
简介: Linux常用操作命令、端口、防火墙、磁盘与内存

日常开发中,部署线上项目少不了对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" 的文件的内容。

grep: 在文件中搜索指定的模式。例如,grep "pattern" file.txt 可以在 "file.txt" 文件中搜索包含指定模式的行。如下图所示,搜所有正在运行的jar进程:

ps -ef|grep jar
  1. chmod: 修改文件或目录的权限。例如,chmod 755 file.txt 可以将 "file.txt" 文件的权限设置为 rwxr-xr-x。
  2. chown: 修改文件或目录的所有者。例如,chown user:group file.txt 可以将 "file.txt" 文件的所有者设置为指定的用户和组。
  3. sudo: 以管理员身份执行命令。例如,sudo apt-get update 可以更新系统软件包。
  4. apt-getyum: 包管理工具,用于安装、更新和删除软件包。例如,sudo apt-get install package_name 可以安装指定的软件包。

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

1.2 高级命令

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

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

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

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

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

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

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

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

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

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

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

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.禁用防火墙
# 停止 firewalld
systemctl stop firewalld
# 禁用 firewalld
systemctl disable firewalld
 
# 2. 安装 iptables
# 安装iptables
yum -y install iptables
# 安装iptables-services
yum -y install iptables-services
# 设置 iptables 开机启动
systemctl enable iptables
 
# 3. 基本操作iptables
# 停止iptables服务
sudo systemctl stop iptables
# 启动iptables服务
sudo systemctl start iptables
# 重启iptables服务
sudo systemctl restart iptables
# 禁用iptables服务
sudo systemctl disable iptables
# 查看iptables服务状态
sudo systemctl status iptables
 
# 4. 保存配置
# 开放 22 端口
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# 开放 21 端口(FTP)
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
# 开放 80 端口(HTTP)
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# 开放 443 端口(HTTPS)
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# 允许 ping
iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
 
 
 

(2)基本命令:

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

iptables -L

19d2f1522f0041f287bb39c4b2f9de5d.png

- `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`: 重新加载防火墙规则以使更改生效。


(3)以上是关于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

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

相关文章
|
1天前
|
监控 数据挖掘 Linux
探索Linux中的`sort`命令:数据处理与分析的得力助手
`sort`命令是Linux下文本数据排序利器,用于按字典、数字顺序等对行排序。关键参数有:-n(数字排序),-r(逆序),-u(去重),-k(指定字段),-t(字段分隔符)和-o(输出到文件)。在处理大文件时注意内存使用,确保字符编码一致,灵活运用管道和重定向。通过熟练使用`sort`,能提升数据分析效率。
|
1天前
|
数据挖掘 Linux 数据处理
Linux命令sprof详解
**`sprof`是Linux下的共享库性能分析工具,补充`gprof`,专注分析`.profile`文件以识别性能瓶颈。通过调用次数、执行时间数据优化资源和代码。使用参数如`-F`、`-I`、`-d`进行定制化分析。示例:先设置`LD_PROFILE`环境变量,运行程序生成`.profile`,然后用`sprof`分析。注意需用`-g`编译程序,并在代表性的负载下分析。结合其他工具如`perf`、`valgrind`提升分析效果。**
|
1天前
|
存储 数据挖掘 Linux
Linux命令split详解:大文件处理的得力助手
`split`命令是Linux用于将大文件分割成小文件的工具,常用于日志处理、备份。它支持按行数(-l)、字节数(-b)分割,并能自定义输出文件名(-a, -d)。例如,`split -b 10M largefile.txt smallfile_`会按10MB切割`largefile.txt`,生成`smallfile_`开头的文件。注意确保磁盘空间充足,避免文件名冲突,并备份原始文件。结合其他命令使用,能提高文件管理效率。
|
1天前
|
监控 安全 Linux
Linux命令truss详解:系统调用跟踪的利器
`truss`(或`strace`)是Linux调试利器,用于跟踪系统调用和信号。它帮助开发者优化性能、调试错误和进行安全审计。通过附加到进程,记录调用细节、参数、返回值和错误。使用参数如`-d`显示调试信息,`-e`跟踪特定调用,`-o`输出到文件,`-p`跟踪指定进程。注意其对性能的影响,通常需要root权限,并建议过滤输出和结合其他工具分析。
|
9天前
|
存储 安全 网络安全
服务器设置了端口映射之后外网还是访问不了服务器
服务器设置了端口映射之后外网还是访问不了服务器
若依修改,若依部署在本地运行时的注意事项,后端连接了服务器,本地的vue.config.js要先改成localhost:端口号与后端匹配,部署的时候再改公网IP:端口号
若依修改,若依部署在本地运行时的注意事项,后端连接了服务器,本地的vue.config.js要先改成localhost:端口号与后端匹配,部署的时候再改公网IP:端口号
|
19天前
|
Java Android开发
Java Socket编程示例:服务器开启在8080端口监听,接收客户端连接并打印消息。
【6月更文挑战第23天】 Java Socket编程示例:服务器开启在8080端口监听,接收客户端连接并打印消息。客户端连接服务器,发送"Hello, Server!"后关闭。注意Android中需避免主线程进行网络操作。
38 4
|
7天前
|
网络协议 Linux
云服务器内部端口占用,9090端口已经存在了,如何关闭,Linux查询端口,查看端口,端口查询,关闭端口写法-netstat -tuln,​fuser -k 3306/tcp​
云服务器内部端口占用,9090端口已经存在了,如何关闭,Linux查询端口,查看端口,端口查询,关闭端口写法-netstat -tuln,​fuser -k 3306/tcp​
|
7天前
|
JavaScript Linux 网络安全
若依修改,若依启动之后,网页端无法访问接口,宝塔和云服务器的端口都要放开,就好了,软件开发常见流程,后台端口就可以访问了
若依修改,若依启动之后,网页端无法访问接口,宝塔和云服务器的端口都要放开,就好了,软件开发常见流程,后台端口就可以访问了
|
7天前
|
关系型数据库 MySQL Java
软件开发2003 -Can·t to MySQL server on ‘xxxxxx‘(10038),宝塔初始化安装mysql,远程链接MySql注意事项,开始时服务器是没有放开端口的,宝塔也都开
软件开发2003 -Can·t to MySQL server on ‘xxxxxx‘(10038),宝塔初始化安装mysql,远程链接MySql注意事项,开始时服务器是没有放开端口的,宝塔也都开