目录
一、进程管理
进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行 资源分配和调度的一个独立单位,是应用程序运行的载体。
java不操作进程:
java在只能操作线程 在虚拟机中运行
一些命令
1. ps 当前的用户进程
它是 "process status" 的简称,用于报告当前系统的进程状态
ps [选项] [参数] 选项: -a:显示所有用户的进程 -u:显示用户名和启动时间 -x:显示 没有控制终端的进程 -e:显示所有进程,包括没有控制终端的 进程 -l:长格式显示
ps 命令可以帮助用户获取系统中运行的进程的详细信息,比如进程ID(PID)、用户、CPU占用率、内存使用情况、启动时间等。
进程编号PID 操作系统随机分配
ps -aux 用于查看系统中所有运行进程的详细信息。这个命令结合了几个选项来提供广泛的进程视图: a: 显示所有用户的进程,不仅仅限于当前用户。 u: 以用户为主的格式来显示进程状态,会包括用户ID、CPU时间和进程的父进程ID等额外信息。 x: 包含没有控制终端的进程,即那些后台运行的服务和守护进程。
VSZ (Virtual Set Size)
- 定义: VSZ代表的是进程的虚拟内存大小(Virtual Memory Size)。虚拟内存是操作系统为每个进程创建的一种抽象概念,它让进程认为自己拥有连续、广阔的地址空间,而实际上这个地址空间可能比实际物理内存大得多。
- 组成部分: VSZ包括了进程代码段、数据段、堆、栈、共享库以及任何映射到进程地址空间的文件等所有部分的总和。即便某些部分尚未从磁盘加载到RAM中,或者已经被换出到交换空间(swap),它们也会计入VSZ中。
- 意义: 由于VSZ包括了所有虚拟内存分配,它的值往往较大,有时会超过系统的物理内存总量。这个指标更多地反映了进程潜在能够访问的内存范围,而不直接反映实际的内存使用压力。
RSS (Resident Set Size)
- 定义: RSS指的是常驻内存集大小(Resident Set Size),表示实际驻留在物理内存(RAM)中,可供进程立即访问而无需从磁盘交换进来的内存部分。
- 组成部分: RSS包括了进程实际使用的堆内存、栈内存、已加载的共享库以及代码和数据段中当前在用的部分。它不包括已经交换到磁盘上的内存页。
- 意义: RSS是评估一个进程对物理内存实际消耗的直接指标。当考虑系统内存资源分配和优化时,RSS比VSZ更具实际意义,因为它揭示了进程当前对系统内存资源的真实占用情况。
终端的?表示不占终端
2. kill 进程杀死命令
终止一个进程
kill [选项] [参数] 选项: -1:重启进程 -9:强制杀死 参数: pid进程编号
kill 进程编号^C 关闭一个进程
3. top 查看进程的信息
进程状态显示和控制,每5s中自动刷新一次(动态显示)
top [选项] [参数] 提示: 退出top按q
进程 zombie僵尸进程
4. 操作系统负载查看
- uptime:现在时间、系统运行时间、登录用户数、系统1分钟、5分钟、15分钟的平均负载
- free:当前系统未使用和已使用的内存,还可以显示被内核使用的内存缓冲区 空闲内容:avaliable = free+buffer(缓冲)+cache(缓存)
- mpstat :CPU核状态
- ifstat :网卡网络状态
- df :磁盘使用率
进程划分
对于Shell进程分为
- 前台进程(占终端)
- 后台进程(不占终端)
- 执行一个程序,执行命令后加&变后台进程
进程的挂起
- Ctrl+z 将正在运行的进程挂起
- jobs 查看被挂起的进程
- fg 挂起编号:把挂起的进程调到前台继续执行
- bg 挂起编号:把挂起的调到后台执行
- Ctrl+c 将正在进行的程序终止
二、编辑文件
文本编辑器有很多,比如图形模式的gedit、OpenOffice 等,文本模式下的编辑器有vi、vim(vi的增强 版本)等。vi和vim是我们在Linux中最常用的编辑器。
1. Vim编辑器
vi与vim编辑器是所有Unix及Linux系统下标准的编辑器,他就相当于windows系统中的记事本一样, 它的强大不逊色于任何最新的文本编辑器。由于对 Unix及Linux系统的任何版本,vi编辑器是完全相同的,学会它后,您将在Linux的世界里畅行无阻。
vim 可以创建文件 必须保存才能把创建
vim里面加入了很多额外的功能,例如支 持正则表达式的搜索、多文件编辑、块 复制等等。 这对于我们在Linux上进行 一些配置文件的修改工作时是很棒的功 能。 vim可以当作vi的升级版本,他可以用多 种颜色的方式来显示一些特殊的信息。
2. Vim的模式
2.1 一般模式下的操作
进入一般模式
vim b.c
- x 向后删除一个字符
- nx 连续向后删除n个字符
- dd 删除光标行
- ndd 删除光标下的n行
- yy 复制光标行
- nyy 复制光标下的n行
- p 将复制的粘贴光标下一行
- P 粘贴到光标上一行
- u 回复前一个操作
2.2 一般模式下切换到编辑模式
输入以下即可进入编辑模式
- i 从光标处插入
- I 光标行首
- a 光标下一个
- A 光标行尾
- o 光标下一行插入新行
- O 光标上一行新行
- r 替换光标处字符
- R 从光标处开始替换字符 知道按下ESC
2.3 一般模式切换到命令行模式
如果在编辑模式下 按下esc 进入一般模式
然后输入 “:”(冒号)选择相应的命令 即可进入命令行模式
- :w 保存
- :w! 强制保存
- :q 离开
- :q! 不报错强制离开
- :wq 保存后离开
- :x == :wq
三、用户管理
1. 用户分类
Linux中用户分成三类:超级用户、系统用户和普通用户。
- 超级用户(root用户):每个Linux系统都必须有,并且只有一个。它拥有最高的权限,可以删除、终止任何程序。在安装时必须为root用户设置口令。另外,通常为减少风险要避免普通用户得到root用户权限。UID(UserID)值为0。
- 程序用户:是与系统运行和系统提供的服务密切相关的用户,通常在安装相关的软件包时自动创建并保持默认状态。程序用户不能登录计算机,UID值1——999。
- 普通用户:是在系统安装后由超级用户创建的,通常完成指定权限的操作,而且也只能操作自己所拥有权限的文件和目录,UID值1000——65535。
2. adduser/useradd 新建用户
adduser使用来新建用户,指定用户的家目录和组
adduser [参数] [参数]: 用户名
useradd zkt2 创建新用户zkt2 passwd zkt2 设置密码
su zkt2 切换到用户zkt2 输入exit 退出到root
3. groupadd 新建组
groupadd命令用于创建一个新的工作组,新工作 组的信息将被添加到系统文件中。
groupadd [参数] 参数: 组名:要新建的组名。
groupadd javaee24 新建组 javaee24
useradd -g javaee24 zkt3 创建一个新的用户账户zkt3,并将其初始群组设置为javaee24。 -g 选项用于指定用户的基本群组(primary group),在这个例子中就是javaee24。
usermod -g javaee24 zkt2 修改已存在用户账户zkt2的默认群组分配。具体来说,-g选项用于改变用户的主要群组(primary group)到javaee24。
4. id 查看用户ID
id命令可以显示真实有效的用户ID(UID)和组ID(GID)
id [选项] [参数] 选项: -g:显示用户所属群组的ID。 -u:显示用户ID。 参数: 用户名:要查看的用户名。
id id zkt2 id zkt3
5. chown 改变文件的所属
chown命令 "change owner" 改变某个文件或目录的所有者和所属的 组,该命令可以向某个用户授权,使该用户变成指 定文件的所有者或者改变文件所属的组。
chown [选项] [参数] 选项: -R:递归处理,将指定目录下的所有文件及子目录一并处理。 参数: 所属用户:要改变的所属用户。 所属组:要改变的所属组。
chown zkt2 1.txt 将文件1.txt的所有权(包括文件的属主)改为用户zkt2
chown :javaee24 1.txt chown :javaee24 1.txt 这个命令用于在Linux系统中仅改变文件的所属组,而不改变文件的所有者。这里的冒号(:)用来分隔所有者和组名,由于前面没有指定用户名,所以只改变了组的归属。
chown zkt3:javaee24 1.txt 一起修改
chown -R zkt3:javaee24 dir5 -R 或 -recursive 选项表示递归操作,即不仅改变dir5这个目录的所有者和所属组,还会对其内部的所有文件和子目录做同样的改变。 目录dir5及其内部的所有文件和子目录的所有者都会被设置为zkt3,所属组会被设置为javaee24。
6. 权限设置
# i.读(r/4) Read 对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限。 # ii.写(w/2) Write 对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限。 # iii.执行(x/1) execute 对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限iv.“—”表示不具有该项权限 。
drwxr-xr-x 2 root root 4096 Oct 4 11:29 dir -rw-r--r-- 1 root root 218967 Oct 1 19:42 file.txt // 对于当前下: dir:是一个文件夹(-d) 拥有者(读/写/可执行) 所属组(无读/写/可执行)其他人(无读/可写/无执行) file:是一个文件(-) 拥有者(读/写/无执行) 所属组(读/无写/无执行) 其他人(读/无写/无执行)
7. chmod 改变文件的权限
chmod命令用来变更文件或目录的权限。在Linux 系统家族里,文件或目录权限的控制分别以读取、 写入、执行3种一般权限来区分。
chmod[选项] [参数] 选项: 权限:权限值。 参数: 文件名:设置权限的文件名。
chmod g+w a.txt 给文件所属组增加写权限。
chmod u-r a.txt 移除文件所有者的读权限。
chmod u=rwx a.txt 设置文件所有者的权限为读、写和执行。
chmod 000 a.txt 具体操作是移除所有用户(包括所有者、所属组和其他用户)对该文件的所有权限。
四、网络
1. ifconfig 网络配置
用于配置和显示Linux内核中网络接口的网络参数用 ifconfig命令配置的网卡信息,在网卡重启后机器重 启后,配置就不存在。要想将上述的配置信息永远 的存的电脑里,那就要修改网卡的配置文件了
语法: ifconfig 参数 参数: 网卡 ip 掩码 up down
2. netstat 网络状态查询
用于显示与IP、TCP、UDP和ICMP协议相关的统计 数据,一般用于检验本机各端口的网络连接情况。 netstat是在内核中访问网络及相关信息的程序,它 能提供TCP连接,TCP和UDP监听,进程内存管理 的相关报告。
语法: netstat 选项 选项: -a 所有的 -l:显示监控中的服务器的Socket; -n:直接使用ip地址,而不通过域名服务器; -p:显示正在使用Socket的程序识别码和程序名称; -t 跟tcp相关的
netstat -antp 用于显示网络连接、路由表、网络接口统计等网络相关信息
netstat -antp |grep 25 查找所有与TCP端口25相关的网络连接信息
3. wget 通过网络下载文件
从指定的URL下载文件
语法: wget选项 参数 选项: -b:进行后台的方式运行wget; -c:继续执行上次终端的任务 参数: 网址
wget https://nginx.org/download/nginx-1.24.0.tar.gz
wget -b https://nginx.org/download/nginx-1.24.0.tar.gz cat wget-log.1 -b: 这是 --background 选项的简写形式,指示 wget 在后台运行。 当使用这个选项时,wget 会立即返回shell提示符,而不是等待下载完成。下载作业将在后台继续进行,这对于需要长时间下载大文件或者希望立即释放终端进行其他操作的场景非常有用。后台模式下,wget 通常会把进程ID写入到一个名为 .wget-log 的文件中(位于当前工作目录),以便用户后续监控或控制该进程。
4. 一些细节
- IP地址:是因特网协议(IP)中使用的一种数字标识符,用于唯一地标识网络中的设备。每台连接到因特网的设备都必须具有一个唯一的IP地址。IP地址是由32位或128位二进制数字组成的,通常以点分十进制形式表示,例如192.168.0.1。
- 子网掩码:是用来划分网络地址和主机地址的一种二进制值。它是由32 bits或128 bits二进制数字组成。在TCP/IP网络中,网络地址和主机地址是由IP地址组成的。子网掩码定义了一个网络中的主机地址和网络地址之间的边界,通常用于划分网络和主机地址。子网掩码和IP地址一起用于标识网络中的主机。子网掩码通常用点分十进制形式表示,例如255.255.255.0。
- 网关:在计算机网络中,网关(Gateway)是连接不同网络之间的一个网络节点,即两个或多个网络的交汇处,负责将数据包转发到目标网络。网关通常是一台路由器,具有路由选择、地址转换等功能。在本地网络中,网关通常指本地网络到其他网络之间的连接设备,比如路由器或者交换机。
主机名和IP地址间的映射
IP地址太长记不住怎么办? 使用别名来域名来表示一个网络IP,做这样的域名和IP映射的服务叫DNS
- DNS 域名服务器:它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方 便地访问互联网。
除了使用DNS,Linux下有一个hosts文件也使用来做域名映射的。 在/etc下的hosts设置映射关系即可