Linux笔记_基础_2
Linux笔记_基础_2
1 用户和用户组
1.1 用户相关
- 增删用户、改密
useradd [用户名]
- 创建用户
passwd
- 修改当前用户密码
passwd [用户名]
- 修改指定用户密码
userdel [用户名]
- 删除指定用户,但保存用户目录
userdel -r [用户名]
- 删除指定用户,并删除用户目录
- 切换用户
su [用户名]
- 切换用户,当前路径不变
- 只能获得用户的执行行权限,不能获得环境变量
su - [用户名]
- 切换到用户,并切换到该用户的用户目录
- 既能获得该用户的执行行权限,也能获得其环境变量
- 查询用户
id [用户名]
- 查看用户基本信息
whoami
- 显示当前用户名
who am i
- 显示本会话的登录用户
- 用户名,登录接口,登录时间,IP地址
who
- 看当前服务器所有的登录用户
- 用户名,登录接口,登录时间,IP地址
cat /etc/passwd
或cat /etc/passwd | grep -v nologin
- 查看服务器上所有的注册用户信息
- 锁定解锁
usermod -L [用户名]
- lock,锁定用户帐号
usermod -U [用户名]
- unlock,解锁用户帐号
1.2 sudo
命令
sudo 是 linux 系统管理指令,允许普通用户执行部分或全部 “本来需要root用户才具备执行权限的命令” ,如 halt,reboot,su …
这个机制减少了 root 用户的登录次数和使用时间,提高了安全性
在 CentOS 中,默认新建立的普通用户是没有 sudo 权限的
可以编辑 /etc/sudoers
授予指定用户 sudo 权限
nano /etc/sudoers
,在 root 这行下面,按格式添加指定的用户
|
|
1.3 用户组相关
groupadd [组名]
- 新建用户组
groupdel [组名]
- 删除用户组
groupmod -n [新组名] [原组名]
- 修改组名
usermod -g [组名] [用户名]
- 不移除原有的组
- 将用户添加到该组之下,并使用该组作为 “主组”
cat /etc/group
或cat /etc/group | grep [组名 或 用户名]
- 查询用户组相关信息
2 文件权限管理
2.1 查看权限
ll [目录 或 文件]
ls -l [目录 或 文件]
2.2 权限说明
系统显示 | 二进制 | 421说明 | 数字形式 | 说明 |
---|---|---|---|---|
rwx | 111 | 421 | 7 | 具备所有权限 |
rw- | 110 | 420 | 6 | 具备读写权限 |
r-x | 101 | 401 | 5 | 具备读和执行权限 |
r– | 100 | 400 | 4 | 具备只读权限 |
-wx | 011 | 021 | 3 | 具备写和执行权限 |
-w- | 010 | 020 | 2 | 具备写权限 |
–x | 001 | 001 | 1 | 具备执行权限 |
— | 000 | 000 | 0 | 无任何权限 |
常见的权限组合
系统显示 | 数字形式 | 说明 |
---|---|---|
-rw——- | 600 | 只有拥有者有读写权限 |
-rw-r–r– | 644 | 只有拥有者有读写权限;而属组用户和其他用户只有读权限 |
-rwx—— | 700 | 只有拥有者有读、写、执行权限 |
-rwxr-xr-x | 755 | 拥有者有读、写、执行权限;而属组用户和其他用户只有读、执行权限 |
-rwx–x–x | 711 | 拥有者有读、写、执行权限;而属组用户和其他用户只有执行权限 |
-rw-rw-rw- | 666 | 所有用户都有文件读、写权限 |
-rwxrwxrwx | 777 | 所有用户都有读、写、执行权限 |
2.3 修改权限
chmod u=rwx,g=rx,o=rx [文件 或 目录]
- 依次修改 属主、属组、其他用户的权限
chmod 755 [文件 或 目录]
2.4 修改属主
chown [用户名] [文件 或 目录]
2.5 修改属组
chgrp [组名] [文件 或 目录]
3 系统资源和网络
3.1 整体
vmstat -at
- 系统资源总体信息
vmstat -at 5
- 系统资源总体信息,监控模式,5秒自动刷新
3.2 磁盘
- 容量信息
df -hT
或df -hT | grep ^/dev
- 查看系统磁盘使用信息
grep ^/dev
,不显示以 “/dev” 开头的项
du -ach
或du -ach --max-depth=1
- 查看当前目录的磁盘占用
du -ach [目录]
- 查看指定目录的磁盘占用
- 其他信息
lsblk -apf
或blkid
- 文件系统信息
lsblk -apm
- 权限信息
lsblk -apt
- 拓扑信息
lsblk -S
- SCSI 设备信息
3.3 磁盘 IO
vmstat -dt 5
- 显示磁盘 IO,监控模式,5秒自动刷新
vmstat -D
- 磁盘 IO 总量
pidstat -d 5
- 是由 sysstat 包提供的命令,安装:
yum install -y sysstat
- 查看各进程的磁盘 IO ,监控模式,5秒自动刷新
- 是由 sysstat 包提供的命令,安装:
pidstat -d -p [进程ID] 5
- 查看指定进程的磁盘 IO ,监控模式,5秒自动刷新
3.4 内存
cat /proc/meminfo
- 查看 /proc/meminfo ,获取系统内存使用状态
free -ml -s 5
- 显示系统内存使用状态,监控模式,5秒自动刷新
- 通过读取 /proc/meminfo,提取相关信息
pidstat -r 5
- 查看各进程的内存使用 ,监控模式,5秒自动刷新
pidstat -r -p [进程ID] 5
- 查看指定进程的内存使用 ,监控模式,5秒自动刷新
3.5 进程相关
3.5.1 ps
命令
ps -aux
或ps -ef
-a
- 显示终端上的所有进程, 包括其他用户的进程
-u
- 显示进程的详细状态
-x
- 显示没有控制终端的进程
显示信息说明
-
USER
- 该进程是由哪个用户产生的
PID
- 进程ID
%CPU
- CPU 占用
%MEM
- 内存占用
VSZ
- 虚拟内存使用,单位 KB
RSS
- 实际使用物理内存的大小,单位KB
TTY
- 该进程是在哪个终端中运行行的。
- tty1 - tty6 是本地控制台-字符界面终端
- tty7 是本地控制台-图形终端
- pts / 0-255 代表虚拟终端
- 该进程是在哪个终端中运行行的。
STAT
- 进程状态
- R:运行
- S:睡眠
- T:停止状态
- s:包含子进程
- +:位于后台
- 进程状态
START
- 启动时间
TIME
- 占用CPU的运算时间,注意不是系统时间
COMMAND
- 产生此进程的命令,应用程序路径
3.5.2 top
命令
top
-d [秒数]
- 指定刷新间隔时间,缺省是3秒
-i
- 不显示任何空闲或僵死的进程
-p [进程ID]
- 只监控指定的进程
- 处于 top 显示界面时的操作
f
- 选择显示的列
- 按
q
回到 top 显示界面
m
- 切换 “表头” 显示内容、样式
M
:- 按内存使用率排序
N
:- 按 PID 排序
P
- 按 CPU 使用率排序
q
:- 退出
显示信息说明
3.5.3 pidstat
命令
pidstat -u 5
或pidstat 5
- 查看各进程的CPU占用 ,监控模式,5秒自动刷新
pidstat -u -p [进程ID] 5
或pidstat -p [进程ID] 5
- 查看指定进程的CPU占用 ,监控模式,5秒自动刷新
3.5.4 kill
命令
kill [进程ID]
- 正常停止一个进程
kill -9 [进程ID]
- 强制终止一个进程
3.6 网络
3.6.1 编辑配置文件设置 IP 地址
vi /etc/sysconfig/network-scripts/ifcfg-ens33
最后的 ifcfg-ens33 视具体情况(不同发行版、系统版本、网卡类型、多网卡……)可能不同
CentOS7 最小化安装,默认配置(DHCP)时,该配置文件内容如下:
|
|
- 这时候网卡实际上是未启用的:
ip addr
- 需要修改配置文件:
vi /etc/sysconfig/network-scripts/ifcfg-ens33
- 把
ONBOOT=no
修改为ONBOOT=yes
- 再重启网络服务:
systemctl restart network
- 验证:
ip addr
,(此时若能正常通过 DHCP 获取 IP ),就可以正常连接网络
若要修改为静态 IP :
-
需要修改配置文件:
vi /etc/sysconfig/network-scripts/ifcfg-ens33
-
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no IPADDR=10.10.10.20 NETMASK=255.255.255.0 GATEWAY=10.10.10.1 DNS1=223.5.5.5 IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens33 UUID=a762aa2d-4e7c-4877-bf11-1fdfdb3f9a2a DEVICE=ens33 ONBOOT=yes
-
-
再重启网络服务:
systemctl restart network
-
验证:
ip addr
3.6.2 netstat
命令
是由 net-tools 包提供的命令,安装:yum install -y net-tools
用于显示与 IP、TCP、UDP 和 ICMP 协议相关的统计数据,一般用于检验本机各端口的网络连接情况
常用参数组合
netstat -anpo
- 查看系统网络活动信息
-a
,显示全部,缺省会隐藏 LISTEN 状态的网络活动-n
,不解析:域名、服务名-p
,显示进程信息,及所属用户-o
,显示 Timer
netstat -anpo | grep sshd
或netstat -anp | grep 22
- 查看系统网络活动信息,并从中筛选出 ssh 协议
netstat -anpo --ip
--ip
或--tcpip
或--inet
或-46
- 只显示 tcpip 类型的网络活动
- 前面三个参数形式,只包含 ipv4
-46
,同时包含 ipv4 和 ipv6
-x
或--unix
- 只显示 unix 类型的网络活动
netstat -anpo -46 -c 5
-c 5
,监控模式,5秒自动刷新
netstat -i
- 各网络接口的信息
3.6.3 路由
netstat -r
- 查看路由表
ip route
- 查看路由表
3.6.4 dig
和 nslookup
命令
是由 bind-utils 包提供的命令,安装:yum install -y bind-utils
用于域名解析测试
dig [域名]
或nslook [域名]
- 测试域名解析功能是否正常工作
dig @223.5.5.5 [域名]
或nslookup [域名] 223.6.6.6
- 测试指定的 DNS 服务器的域名解析功能是否正常工作
3.6.5 traceroute
命令
是由 traceroute 包提供的命令,安装:yum install -y traceroute
用于路由追踪
traceroute -n -m 99 -w 99 [目标IP 或 域名]
(大多数网络环境,由于安全策略的原因,导致该功能未能如预期般工作)
3.7 lsof
命令
-
参考,安装:
yum install -y lsof
-
lsof
- lists openfiles ,列出打开文件,而在Unix中一切(包括网络套接口、硬件设备)都是文件
-
网络
lsof -i
- 显示所有网络连接(IPv4 和 IPv6)
lsof -i:port
- 显示指定端口的网络连接
lsof -iTCP
或lsof -iUDP
- 只显示 TCP 或 UDP 连接
lsof -i@ipaddress
或lsof -i@hostname
或lsof -i@ipaddress:port
- 只显示指定主机的连接
-
用户
lsof -u root
- root 用户打开的文件
lsof -u ^root
- 除了 root 以外的其他用户打开的文件
-
进程
lsof -c sftp-server
或lsof -p 40809
- 查看指定进程或 PID 打开的文件
-
文件
lsof <目录/文件>
- 查看正在与指定文件交互的一切
-
组合命令示例
-
1 2 3 4 5
kill -9 `lsof -t -u adam` # 杀死指定用户的所有进程 lsof -u adam -i @192.168.0.1 # 查看指定用户连接到指定主机进行的活动
-
3.8 计算机名
hostnamectl
或hostnamectl status
或hostname
- 显示计算机名
hostnamectl set-hostname [计算机名].[domain名]
- 修改计算机名
4 其他
4.1 日期时间
- 显示时间
date
- 显示当前时间
date +%Y
- 显示当前时间,按需要显示所需要的字段
date +%Y%m%d
或date +%Y年%m月%d日
- 显示当前年月日
date "+%Y-%m-%d %H:%M:%S"
- 年-⽉-⽇ 时:分:秒
- 也可以使用单引号
- 设置时间
date -s "2020-02-02 20:02:02"
- 显示日历
cal
- 显示当前月
cal -3
- 显示上一个月、当前月、下一个月
cal 2021
或cal -y
- 显示一年