很漂亮的小站!
[...]blog:locate 命令:文件查找命令 - 灵魂信息 (soulio.top)[...]
首页
留言
统计
友链
归档
关于
Search
1
typecho博客-SEO优化-永久链接设置-伪静态
229 阅读
2
qm 命令:管理PVE虚拟机
151 阅读
3
搭建网站的三种方式:家庭服务器、云服务器、serv00免费服务器
146 阅读
4
用脚本查看serv00主机(FreeBSD系统)配置
115 阅读
5
smartctl 命令:查看硬盘健康状态
111 阅读
网站搭建
Linux命令详解
登录
Search
标签搜索
Linux命令
serv00
Linux
网站搭建
typecho
Excel
正则表达式
PVE
mdx
docusaurus
在线知识库
soulio
累计撰写
147
篇文章
累计收到
5
条评论
今日撰写
0
篇文章
首页
栏目
网站搭建
Linux命令详解
页面
留言
统计
友链
归档
关于
用户登录
登录
搜索到
147
篇与
的结果
2024-10-05
ulimit:资源限制
一、命令简介ulimit 是一个用于资源管理的工具,对于确保系统资源的合理分配和安全使用至关重要。使用场景: 系统管理:限制用户进程使用的资源,防止资源滥用,保证系统稳定。 调试:调整核心文件大小限制,以便在程序崩溃时生成用于分析的较大核心文件。 安全:限制文件和进程数量,减少恶意代码对系统的潜在威胁。 性能调优:根据应用程序需求调整资源限制,如增加栈大小,以提升性能。 开发和测试:模拟生产环境的资源限制,确保应用程序的兼容性和稳定性。 二、命令参数ulimit [选项] [limit] 选项:要限制的资源。limit: 要限制的数量。帮助:$ ulimit --help ulimit: ulimit [-SHabcdefiklmnpqrstuvxPT] [限制] 修改 shell 资源限制。 在允许此类控制的系统上,提供对于 shell 及其创建的进程可使用的资源的 控制。 选项: -S 使用 "软" (soft) 资源限制 -H 使用 "硬" (hard) 资源限制 -a 报告当前的所有限制 -b 套接字缓冲区大小 -c 创建的核心文件的最大大小 -d 一个进程的数据段的最大大小 -e 调度优先级 (nice) 的最大值 -f shell 及其子进程可以写的最大文件大小 -i 可以挂起的最大信号数量 -k 分配给此进程的最大 kqueue 数量 -l 一个进程可以锁定的最大内存大小 -m 驻留集的最大大小 -n 打开的文件描述符的最大个数 -p 管道缓冲区大小 -q POSIX 消息队列的最大字节数 -r 实时调度的最大优先级 -s 最大栈大小 -t 最大的 CPU 时间,以秒为单位 -u 最大用户进程数 -v 虚拟内存大小 -x 文件锁的最大数量 -P 伪终端的最大数量 -R 实时进程阻塞前可运行的最大时间 -T 最大线程数量 并非所有选项都在所有系统上可用。 如果提供了 <限制>,则它将成为指定的资源的新的值;特殊的 <限制> 值为 "soft"、"hard" 和 "unlimited",分别表示当前的软限制、当前的硬限制, 以及无限制。否则,打印指定资源的当前限制值。如果未提供选项,则假定 为 -f。 限制值的单位都是 1024 字节,除了 -t 单位是秒,-p 单位是 512 字节, -u 为未经缩放的进程数量。 退出状态: 返回成功,除非使用了无效的选项,或者有错误发生。 三、命令示例限制最大文件大小限制用户可以创建的最大文件大小为 1GB:ulimit -f 1000000 限制最大进程数限制用户可以启动的最大进程数为 1024:ulimit -u 1024 限制最大核心文件大小限制核心文件的最大大小为 2GB:ulimit -c 2000000 限制栈大小限制栈大小为 8MB:ulimit -s 8192 限制虚拟内存大小限制进程的虚拟内存大小为 4GB:ulimit -v 4194304 限制打开文件数限制可以同时打开的文件数为 256:ulimit -n 256 查看当前资源限制要查看当前用户的所有资源限制,可以使用以下命令:ulimit -a 这会显示当前会话的所有资源限制,包括但不限于以上提到的限制。 例如 real-time non-blocking time (microseconds, -R) unlimited # 实时非阻塞调用时间无限制 core file size (blocks, -c) 0 # 核心文件大小限制为0 data seg size (kbytes, -d) unlimited # 数据段大小无限制 scheduling priority (-e) 0 # 调度优先级为默认值0 file size (blocks, -f) unlimited # 文件大小无限制 pending signals (-i) 30949 # 最大挂起信号数为30949 max locked memory (kbytes, -l) 1000044 # 最大锁定内存为1GB max memory size (kbytes, -m) unlimited # 最大内存大小无限制 open files (-n) 1024 # 最大打开文件数为1024 pipe size (512 bytes, -p) 8 # 管道大小为8个512字节 POSIX message queues (bytes, -q) 819200 # POSIX消息队列大小为819200字节 real-time priority (-r) 0 # 实时优先级为0 stack size (kbytes, -s) 8192 # 栈大小为8192KB cpu time (seconds, -t) unlimited # CPU时间无限制 max user processes (-u) 30949 # 最大用户进程数为30949 virtual memory (kbytes, -v) unlimited # 虚拟内存大小无限制 file locks (-x) unlimited # 文件锁数量无限制 注意事项 使用 ulimit 设置的资源限制仅适用于当前 shell 会话。如果需要永久更改资源限制,您可能需要在用户的启动脚本(如 ~/.bashrc 或 ~/.profile)中设置这些限制,或者修改系统级别的配置文件(如 /etc/security/limits.conf)来实现。 ulimit 命令通常由root用户用于限制用户对系统资源的访问。 某些设置可能受到系统配置文件(如 /etc/security/limits.conf)的限制,这意味着即使使用 ulimit 命令尝试更改,也无法超过这些配置文件中定义的值。 四、概念解释设置最大打开文件数最大打开文件数量是指一个进程在同一时间能够打开的文件描述符的最大数目。文件描述符是Unix和Linux系统中用来访问文件或其他I/O资源(如套接字、管道等)的一个抽象句柄。以下是关于这个概念的一些详细解释: 文件描述符:在Unix和Linux系统中,每当进程打开一个文件或创建一个新的I/O流(如网络连接),系统就会分配一个文件描述符来唯一标识这个流。文件描述符通常是一个非负整数。 打开文件:这里的“打开”不仅指传统意义上的文件读写操作,还包括对设备、套接字、管道等的访问。 限制的目的: 资源管理:限制进程可以打开的文件数量是为了防止单个进程占用过多系统资源,从而影响系统整体的性能和稳定性。 安全性:限制可以防止恶意或失控的进程耗尽系统资源,执行拒绝服务攻击(DoS)。 默认限制:系统通常会为每个进程设置一个默认的最大文件描述符限制。这个限制可以通过ulimit命令来查看和修改。 实际意义: 对于网络服务器,如Web服务器或数据库服务器,它们需要处理大量并发连接,因此可能需要增加最大文件描述符的数量。 对于普通用户进程,默认的限制通常足够使用,但在某些特定情况下,比如处理大量文件或进行大量网络通信时,可能需要调整这个限制。 如何查看和修改: 查看当前限制:ulimit -n 修改当前限制:ulimit -n 4096(这里以4096为例,具体数值可以根据需要设置) 最大打开文件数量的限制是系统管理员或软件开发者在配置系统和开发应用时需要考虑的一个重要参数。核心文件核心文件(Core File)是程序崩溃时生成的内存映像文件,它包含了程序崩溃时的状态信息。以下是关于核心文件的一些必知内容: 生成条件: 程序必须收到一个导致它终止的信号,通常是SIGSEGV(段错误)、SIGABRT(进程中止信号)等。 操作系统必须被配置为允许生成核心文件。在Linux系统中,可以通过ulimit -c命令来检查和设置是否生成核心文件。 核心文件大小: 核心文件的大小通常与崩溃进程的内存使用量成正比。 可以通过ulimit -c命令设置核心文件的最大大小。 核心文件位置: 核心文件通常生成在程序的工作目录,文件名通常是“core”或者由/proc/sys/kernel/core_pattern文件定义的格式。 核心文件内容: 包含进程的完整地址空间,包括代码段、数据段、堆、栈等。 包含寄存器状态、程序计数器、堆栈指针等。 包含程序崩溃时的内存内容,可以用来分析变量值、调用栈等。 分析工具: GDB(GNU Debugger):最常见的核心文件分析工具。 Core Analyzer Tools(如Ubuntu的CoreDumpAnalyzer):用于自动分析核心文件。 其他调试器,如lldb、mdb等。 配置核心文件生成: 在Linux中,可以通过ulimit -c unlimited命令允许生成无限大小的核心文件。 可以通过修改/etc/security/limits.conf文件来永久设置核心文件大小限制。 核心文件的安全性和隐私: 核心文件可能包含敏感信息,因此需要妥善处理。 应该限制对核心文件的保护,以防止未授权访问。 生成核心文件的命令: 在某些情况下,可以通过发送信号手动触发核心文件的生成,例如kill -SIGSEGV <pid>。 核心文件的命名规则: 可以通过修改/proc/sys/kernel/core_pattern来定义核心文件的命名规则,包括路径、文件名格式等。
2024年10月05日
53 阅读
0 评论
0 点赞
2024-10-03
ufw:Linux网络防火墙
一、命令简介ufw(Uncomplicated Firewall)是一个为 Linux 系统提供简单易用的命令行界面的防火墙管理工具。它是基于 iptables 的,但提供了更简洁的语法和更直观的操作方式,使得配置防火墙变得更加简单,特别适合那些希望快速设置基本防火墙的用户,同时也支持更高级的配置需求。安装 ufwsudo apt update sudo apt install ufw 二、命令参数命令格式:sudo ufw 子命令 [选项] [规则] [子命令]:如 enable、disable、allow、deny、limit、delete 等,用于执行特定的防火墙操作。 [选项]:这是子命令的可选参数,用于进一步定义或修改子命令的行为。 [规则]:这是指定防火墙规则的部分,通常包括流量来源、目的地、使用的协议和端口等信息。 子命令 enable: 启用UFW。 disable: 禁用UFW。 allow: 允许特定的连接或服务。 deny: 拒绝特定的连接或服务。 reject: 拒绝特定的连接或服务,并返回一个错误信息给客户端。 limit: 限制特定连接的速率。 delete: 删除一个特定的规则。 insert: 在规则列表中的特定位置插入一条规则。 status: 显示当前的防火墙规则状态。 status numbered: 显示当前防火墙规则的状态,并带上规则的编号。 reset: 重置UFW的规则,即删除所有规则。 选项 --dry-run: 显示规则更改,但不实际应用它们。 --force: 强制执行命令,不进行任何提示。 in: 指定规则应用于进入的连接。 out: 指定规则应用于输出的连接。 on: 指定规则应用于特定的网络接口。 规则 ssh: 允许或拒绝SSH连接。 80/tcp: 指定TCP端口80的规则。 53/udp: 指定UDP端口53的规则。 from 192.168.1.100: 指定来自特定IP地址的规则。 to any: 指定目标为任何地址的规则。 三、命令示例 启用 ufw:sudo ufw enable 禁用 ufw:sudo ufw disable 允许所有传入流量:sudo ufw default allow incoming default:这个关键字用于设置默认的策略,而不是针对特定的服务或端口。 allow:允许。 incoming:这个关键字指定了规则的类型,这里是针对传入的流量。 拒绝所有传入流量:sudo ufw default deny incoming deny:拒绝。 允许所有传出流量:sudo ufw default allow outgoing outgoing:这个关键字指定了规则的类型,这里是针对传出的流量。 拒绝所有传出流量:sudo ufw default deny outgoing 允许来自特定 IP 地址的流量:sudo ufw allow from 192.168.1.100 拒绝来自特定 IP 地址的流量:sudo ufw deny from 192.168.1.200 允许特定端口的流量(例如,TCP 端口 80):sudo ufw allow 80/tcp 拒绝特定端口的流量(例如,UDP 端口 53):sudo ufw deny 53/udp 允许特定服务的流量(例如,SSH):sudo ufw allow ssh 拒绝特定服务的流量(例如,MySQL):sudo ufw deny mysql 限制特定端口的连接尝试(例如,每分钟不超过 20 次):sudo ufw limit 22/tcp 删除特定规则的编号(例如,删除编号为 3 的规则):sudo ufw delete 3 在特定位置插入规则(例如,在编号 5 的位置插入规则):sudo ufw insert 5 allow 2222/tcp 在规则列表的开头添加规则(例如,允许 TCP 端口 443):sudo ufw prepend allow 443/tcp 重新加载 ufw 的规则:sudo ufw reload 重置 ufw 的规则到默认状态:sudo ufw reset 显示 ufw 的当前状态:sudo ufw status 显示 ufw 的当前状态,包括规则编号:sudo ufw status numbered 显示 ufw 的详细状态:sudo ufw status verbose 显示 ufw 的版本信息:sudo ufw version 列出所有应用程序配置文件:sudo ufw app list 显示特定应用程序配置文件的详细信息(例如,SSH):sudo ufw app info ssh 更新特定应用程序配置文件(例如,SSH):sudo ufw app update ssh 设置默认的应用程序策略(例如,允许 Dovecot):sudo ufw app default allow dovecot 四、规则生效顺序存在多条规则时,如果规则间有冲突,则前者优先生效。To Action From -- ------ ---- 22 ALLOW 192.168.10.0/24 #第1条始终有效,因为它在最前面。 22 DENY Anywhere #与前面的规则冲突,只能部分生效,DENY对规则1描述的网段不生效。 22 (v6) DENY Anywhere (v6) #生效 第一条规则始终有效 第二条规则,与第一条规则冲突的部分无效,不冲突的部分有效。 第三条规则有效。 练习: 限制端口 22 每分钟只能尝试连接 5 次,但不限制来自192.168.10.0/24 网段的连接? 限制默认连接次数。编辑 /etc/ufw/ufw.conf 文件,设置参数 LIMIT = "5/minute",保存。执行 sudo ufw reload 重载 ufw 配置。 允许特例。 sudo ufw allow from 192.168.10.0/24 to any port 22 # 限制端口连接频率 sudo ufw limit proto tcp to any port 22 注意:添加规则的顺序很重要。 因为规则列表的顺序就是ufw生效顺序。应先添加特例,再添加默认行为。
2024年10月03日
9 阅读
0 评论
0 点赞
2024-10-01
tzselect:交互式选择时区
一、命令简介tzselect命令用于交互式地选择系统时区。二、命令参数略三、命令示例运行tzselect命令后进入交互界面,依次选择大洲->国家->城市。#输出命令 tzselect Please identify a location so that time zone rules can be set correctly. Please select a continent, ocean, "coord", or "TZ". 1) Africa 2) Americas 3) Antarctica 4) Asia 5) Atlantic Ocean 6) Australia 7) Europe 8) Indian Ocean 9) Pacific Ocean 10) coord - I want to use geographical coordinates. 11) TZ - I want to specify the timezone using the Posix TZ format. #输入选择 4 Please select a country whose clocks agree with yours. 1) Afghanistan 20) Iran 39) Palestine 2) Antarctica 21) Iraq 40) Philippines 3) Armenia 22) Israel 41) Qatar 4) Azerbaijan 23) Japan 42) Réunion 5) Bahrain 24) Jordan 43) Russia 6) Bangladesh 25) Kazakhstan 44) Saudi Arabia 7) Bhutan 26) Korea (North) 45) Seychelles 8) Brunei 27) Korea (South) 46) Singapore 9) Cambodia 28) Kuwait 47) Sri Lanka 10) China 29) Kyrgyzstan 48) Syria 11) Christmas Island 30) Laos 49) Taiwan 12) Cocos (Keeling) Islands 31) Lebanon 50) Tajikistan 13) Cyprus 32) Macau 51) Thailand 14) East Timor 33) Malaysia 52) Turkmenistan 15) French S. Terr. 34) Mongolia 53) United Arab Emirates 16) Georgia 35) Myanmar (Burma) 54) Uzbekistan 17) Hong Kong 36) Nepal 55) Vietnam 18) India 37) Oman 56) Yemen 19) Indonesia 38) Pakistan #输入选择 10 Please select one of the following timezones. 1) Beijing Time 2) Xinjiang Time #输入选择 1 The following information has been given: China Beijing Time Therefore TZ='Asia/Shanghai' will be used. Selected time is now: Mon May 20 14:09:04 CST 2024. Universal Time is now: Mon May 20 06:09:04 UTC 2024. Is the above information OK? 1) Yes 2) No #输入选择 1 You can make this change permanent for yourself by appending the line TZ='Asia/Shanghai'; export TZ to the file '.profile' in your home directory; then log out and log in again. Here is that TZ value again, this time on standard output so that you can use the /usr/bin/tzselect command in shell scripts: Asia/Shanghai 注意事项: tzselect命令提供了一个交互式界面,让用户可以从系统中可用的时区列表中选择一个时区。 选择完成后,会显示所选时区的相关信息,并将其应用于系统。 使用man tzselect命令可以查看更多关于tzselect命令的信息。
2024年10月01日
14 阅读
0 评论
0 点赞
2024-10-01
tree命令:树状目录
简介tree 是一个在 Linux 和 Unix 系统上常用的命令行工具,用于以树状结构显示目录的内容。通过 tree 命令,您可以快速查看目录及其子目录中的文件和文件夹结构。$ tree /etc/apt/ /etc/apt/ ├── apt.conf.d │ ├── 01autoremove │ ├── 01-vendor-ubuntu │ ├── 10periodic │ ├── 15update-stamp │ ├── 20apt-esm-hook.conf │ ├── 20archive │ ├── 20auto-upgrades │ ├── 20packagekit │ ├── 20snapd.conf │ ├── 50command-not-found │ ├── 50unattended-upgrades │ ├── 70debconf │ ├── 99needrestart │ ├── 99update-notifier │ └── zzzz-temp-installer-unattended-upgrade ├── auth.conf.d ├── keyrings │ ├── docker.asc │ └── v2raya.asc ├── preferences.d │ ├── ubuntu-pro-esm-apps │ └── ubuntu-pro-esm-infra ├── preferences.d.save │ ├── ubuntu-pro-esm-apps │ └── ubuntu-pro-esm-infra ├── sources.list ├── sources.list.curtin.old ├── sources.list.d │ ├── docker.list │ └── v2raya.list └── trusted.gpg.d ├── ubuntu-keyring-2012-cdimage.gpg └── ubuntu-keyring-2018-archive.gpg 7 directories, 27 files 示例显示当前目录的树状结构:tree 显示指定目录的树状结构:tree /path/to/directory 显示目录及文件,包括隐藏文件:tree -a 只显示目录,不显示文件:tree -d 限制显示的深度:tree -L 2 # 显示两层深度的目录结构 以图形方式显示树状结构:tree -F # 以图形方式显示文件和目录 保存树状结构到文件:tree > tree_structure.txt # 将树状结构保存到文件中 tree 命令是一个非常实用的工具,特别适合在命令行环境下快速浏览目录结构。通过调整选项,您可以根据需要定制输出的内容和格式,使得查看和分析目录结构变得更加方便。
2024年10月01日
16 阅读
0 评论
0 点赞
2024-09-30
whereis命令:查找命令的路径
一、命令简介whereis 命令用于查找命令的:可执行文件、帮助文件和源代码文件。例如$ whereis ls ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz 找到了 ls 命令的可执行文件、帮助文件的位置。二、命令参数命令格式whereis [选项] [命令名称] 选项 -b: 限制只查找可执行文件。 -m: 限制只查找帮助文件。 -s: 限制只查找源代码文件。 命令名称: 要查找的命令的名称。三、命令示例查找命令的可执行文件路径:whereis ls 输出示例:ls: /bin/ls /usr/share/man/man1/ls.1.gz 限制只查找可执行文件:whereis -b python 输出示例:python: /usr/bin/python /usr/bin/python3.8 /usr/bin/python2.7 /usr/lib/python3.8 /usr/lib/python2.7 /etc/python /etc/python3.8 /etc/python2.7 /usr/local/lib/python3.8 /usr/local/lib/python2.7 /usr/include/python3.8 /usr/include/python2.7 /usr/share/python /usr/share/man/man1/python.1.gz 注意事项: whereis 命令只会查找默认路径中的可执行文件、帮助文件和源代码文件。如果命令在非默认路径中,则 whereis 可能无法找到。 可以结合其他命令如 which、locate 和 find 等来更全面地查找文件。 在查找文件时,可以使用通配符来进行模糊匹配,例如 whereis *sh 可以查找所有以 sh 结尾的命令。
2024年09月30日
18 阅读
0 评论
0 点赞
1
...
3
4
5
...
30