Linux 运维常用操作
目录
0. 用户管理
1. 文件管理
2. 任务管理
3. 网络管理
4. 系统维护
5. 日志文件
6. 颜色管理
7. 快捷键
8. 目录树
0. 用户管理
# useradd -d /home/bob -s /bin/bash -m bob ## 新建普通用户时指定家目录
## -d 指定用户主目录
## -s 指定用户名
## -m 表示如果目录不存在,则创建该目录
# userdel -rf bob ## 删除用户
## -r 删除所有用户相关文件
## -f 强制删除,即使用户已经登录
# groupadd fuzhu ## 新建普通用户组
# gpasswd -a bob fuzhu ## 将用户添加到用户组
# gpasswd -d bob fuzhu ## 将用户从用户组中删除
# passwd ## 修改当前用户密码
# passwd bob ## root 修改用户 bob 的密码
# su - ## 切换到 root 用户
# visudo ## 为新用户设定 sudo 权限
## /etc/sudoers
1 ## Sudoers allows particular users to run various commands as
2 ## the root user, without needing the root password.
7 ##
8 ## This file must be edited with the 'visudo' command.
...
90 ## Allow root to run any commands anywhere
91 root ALL=(ALL) ALL
92 bobo ALL=(ALL) ALL ## 添加(切换 sudo 时,不需要密码: ALL=(ALL) NOPASSWD: ALL)
/etc/group ## 用户组文件
/etc/passwd ## 用户配置文件
/etc/shadow ## 用户密码配置文件
1. 文件管理
# cp -r file1 file2 ## 将 file1 复制到 file2 下
# cp -a file1 file2 ## 将 file1 复制成 file2
# cp file1 file2 file3 dir ## 将文件 123 复制到 dir 中
# mv file1 file2 file3 dir ## 将 123 移动到 dir 中
# mv file1 file2 ## 将 1 重命名为 2
# rm -i file ## 删除 file 前询问
# rm -fr file ## 强制删除目录中所有文件
# mkdir file ## 新建一个目录
# touch bob.log ## 新建文件bob
# chmod 750 file ## 修改文件/目录的权限
# chmod -R 750 file ## 修改目录及其中文件和子目录的权限
# chmod a+w .xxx ## 增加或取消某项权限,u(user)/g(group)/o(others)/a(all)
# chmod a-x .xxx ## 取消全部人的可执行权限
## 文件属性:
## drwxrwxr--. 3 root root 24 May 4 17:59 .config
## 1234567890 a b c d e
## 解释:
## 1 :[d]目录;[-]文件;[l]链接文件;[b]设备文件;[c]串口设备;
## 234 :文件拥有者权限,可读 4、可写 2 、可执行 1;
## 567 :文件所属用户组权限,可读、可写、可执行;
## 890 :其他人权限,可读;
## a :链接数;
## b :文件拥有者;
## c :文件所属用户组;
## d :文件最后修改时间;
## e :文件名,[.]代表隐藏文件;
# chgrp -R groupname filename ## 修改所属用户组
# chown -R ownername:groupname filename ## 修改文件拥有者
# vi ## :set tabstop=4 用来设置 Tab 空格数
# vim ## 可以写入 .vimrc 文件,也可以在 vi/vim 中输入;
## :w :q :e 写入;退出;刷新;
# more -d xx.txt ## 分屏显示文件内容
# find /home -name "*.txt" ## 查找文件
# find /home -iname "*.txt" ## 忽略大小写
# whereis mysql ## 查看 MySQL 所在目录
# ln -s abc bcd ## 建立 abc 的软连接 bcd
# ls -l ## 查看快捷方式的指向(源文件)
# grep ## 文本搜索大师
# grep *** file ## 在 file 中搜索***
# grep '^[A,P]' /log ## 在 log 文件中搜索以 A 和 P 开头的字段
# cut ## 按列切分文件
# awk ## 文本分析工具
# echo -e "line1\nline2" | awk 'BEGIN{ print "Start" } { print } END{ print "END" } '
Start
line1
line2
End
2. 任务管理
# jobs ## 查看任务,返回任务编号 n 和进程号
# bg %n ## 将编号为 n 的任务转后台运行
# fg %n ## 将编号为 n 的任务转前台运行
# watch -n 10 sh test.sh & ## 在一个命令的最后加 & ,将该命令放到后台执行
# nohup test.sh & ## 让程序始终在后台执行(使用 kill 关闭)
ctrl+z ## 挂起当前任务
ctrl+c ## 结束当前任务
3. 网络管理
# iptables -L INPUT ## 查看 filter 表中 INPUT 链的规则
# iptables -D INPT 5 ## 删除 filter 表中 INPUT 链的第 5 条规则
## 放开端口 28172
# iptables -A INPUT -p tcp --dport 28172 -j ACCEPT
# service iptables save ## 保存配置
# systemctl reload iptables ## 重新加载配置
# vi /etc/sysconfig/iptables ## 在文件中修改 iptables
# systemctl restart iptables ## 重启
# netstat -tulpn | less ## 查看端口监听状态
# netstat -tpn ## 列出活动的连接
# lsof -i ## 列出系统开放的端口以及运行在端口上的服务
# lsof -i :28173 ## 列出端口对应的所有进程(配合 kill 使用)
## 列出本地主机当前的开放端口
# lsof -i | grep ":[0-9]\+->" -o | grep "[0-9]\+" -o | sort | uniq
4. 系统维护
# cd ## 切换目录
# cd ~ ## 切换到家目录
# cd / ## 切换到系统根目录
# cd .. ## 返回上级目录
# pwd ## 显示当前路径
# ls ## 列出文件和目录
# ls -a ## 全部文件,包括隐藏文件
# ls -l ## 包括文件的属性和权限
# ls -lp ## 以斜线标记目录
# ls -lR ## 递归列出子目录
# ls -lh ## 将文件容量显示为易读模式
# ls -lhS ## 按文件大小排序
# ls -1hS --block-size=K ## 自定义文件单位
# ll ## 详细显示
# vi ~/.bashrc ## 针对用户设置永久快捷键(~/.bashrc 文件中设置)
alias la='ls -al' ## 增加快捷方式,保存退出
# source ~/.bashrc ## 执行该命令使设置生效
# echo 'alias la="ls -al"'>>/etc/profile ## 针对全局设置永久快捷键(/etc/profile 文件中设置)
# . /etc/profile ## 执行该命令使设置生效
# who ## 查看当前在线的用户
# hostname ## 查看当前系统的主机名
# vim /etc/hostname ## 修改当前主机名
# hostnamectl ## 查看主机详细信息
# uname -a ## 打印 Linux 内核版本、硬件架构等详细信息
# more /etc/redhat-release ## 查看 Linux 系统版本(重点)
# cat /proc/version ## 查看当前操作系统版本信息
# cat /proc/cpuinfo ## 查看 CPU 相关信息
# cat /proc/meminfo ## 查看内存详细信息
# cat /proc/partitions ## 查看系统分区信息
# cat /proc/loadavg ## 查看系统平均负载
# uptime ## 平均负载 1分钟内 5分钟内 15分钟内的平均值
18:18:32 up 28 days, 6:41, 1 user, load average: 0.01, 0.03, 0.05
## 只要每个 CPU 的 average 值不大于3,则系统运行良好
# w ## w 指令,用于显示目前登入系统的用户信息,以及正在执行的程序
18:27:18 up 28 days, 6:50, 1 user, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/1 117.135.39.211 17:54 6.00s 0.06s 0.00s w
# last ## 查看所有已登录用户的用户名、tty、IP 地址、日期等
root pts/0 210.189.195.38 Tue Jun 19 20:58 - down (02:15)
root pts/0 210.189.195.38 Tue Jun 19 19:01 - 19:12 (00:10)
wtmp begins Tue Jun 19 19:01:59 2018
# systemctl list-unit-files ## 开机启动项
# systemctl list-unit-files | grep iptables ## 查看 iptables 是否为启动项
# systemctl enable iptables ## 设置 iptables 为开机自启动
# top ## 输出占用 CPU 最多的进程列表
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 103268 11876 8908 S 0.0 0.3 1:06.81 systemd
## 列表各项说明:
PID — 进程 id
USER — 进程所有者
PR — 进程优先级,RT 策略的最高优先级显示为 rt(-100), 数字越大优先级越低;(用户 内核 PR : 50 49(99-50) -51(-1-50))
NI — nice 值。负值表示高优先级,正值表示低优先级
VIRT — 进程使用的虚拟内存总量,单位 kb。VIRT=SWAP+RES
RES — 进程使用的、未被换出的物理内存大小,单位 kb。RES=CODE+DATA
SHR — 共享内存大小,单位 kb
S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸 I=闲置
%CPU — 上次更新到现在的CPU时间占用百分比
%MEM — 进程使用的物理内存百分比
TIME+ — 进程使用的CPU时间总计,单位 1/100 秒
COMMAND — 进程名称(命令名/命令行)
## 快捷键:
h: 帮助
1: 监控每个逻辑 CPU 的状况
b: 高亮效果
x: CPU 使用率高亮 shift+>/< 改变排序列
i: 忽略闲置或僵死进程
s: 改变刷新率
t: 显示摘要信息
m: 显示内存信息
A: 分类显示系统不同资源的使用大户。有助于快速识别系统中资源消耗多的任务
S: 切换累计模式
f: 添加删除所要显示栏位
r: 调整一个正在运行的进程Nice值
k: 结束一个正在运行的进程
z: 彩色黑白转换
Z: 色彩选择
W: 将当前设置写入 ~/.toprc 文件中
# vmstat 1 ## 查看系统整体性能(123的1)
## -a 显示内存活动/不活动的信息
## -m 显示内存使用详细信息
# ps -eo comm,pcpu,pmem | head ## 列出可执行文件名,CPU 占用率,内存使用率,前十行
# ps -aux ## 查看系统所有进程数据
# ps -aux | grep "test.sh" ## 抓取所有与"test.sh"相关的进程
## a: 显示所有程序
## u: 以用户为主的格式来显示
## x: 显示所有程序,不以终端机来区分
# pgrep ls ## 查看 ls 的进程 ID
# kill
# kill -9 ID
# free -m ## 查看内存使用最常用的指令
# df -h ## 查看硬盘空间
# du -sh home/ ## 查看目录大小
# du -sh / ## 查看硬盘使用量(3.5G/50G)
# du -sh * | sort -n ## 统计当前文件夹(目录)大小,并按文件大小排序(重要)
# du -a test ## 获得目录中所有文件的大小
# wget http://.... ## 下载
# rpm -qa ## 查看系统安装的全部软件
# rpm -qa | grep xxx ## 查看系统是否安装了软件xxx
# rpm -ql xxx ## 查询软件安装位置
# rpm -e xxx ## 卸载软件xxx
# rpm -e xxx -nodeps ## 卸载软件xxx,并忽略依赖关系
# yum -y update ## 升级所有包,软件和系统内核
# yum -y remove xxx ## 卸载软件 xxx(包括依赖)
# yum erase xxx ## 删除程序包
# yum -y install xxx ## 安装软件 xxx
# shutdown -r +2 ## 2 分钟后重启系统
# shutdown -h now ## 立即关闭 Linux 系统
# shutdown -c ## 取消关机指令
5. 日志文件
/var/log/secure ## ssh 登陆日志,所有跟安全和认证授权等日志都会记录到此文件
/var/log/btmp ## 错误登录日志,试图登录 ssh 服务,使用 lastb 命令打开
/var/log/lastlog ## 记录每个用户最后的登录信息,使用 lastlog 命令打开
/var/log/journal/ ## 系统日志 # journalctl --vacuum-size=500M (只保留 500MB 日志)
/var/log/wtmp ## 永久记录每个用户登录、注销及系统的启动、停机的事件 last 命令查看
/var/log/dmesg ## 核心启动日志
/var/log/messages ## 系统报错或重启服务等日志
/var/log/maillog ## 邮件服务的日志
/var/log/cron ## 计划任务的日志
/var/log/boot.log ## 系统启动的相关日志
/var/log/xferlog ## 记录 FTP 会话
/var/log/anaconda ## 安装 Linux 时,所有安装信息都存储在这个文件中
/var/log/yum.log ## 使用 yum 安装的软件包信息
/var/log/audit ## 记录和系统安全有关的事件
/var/log/chrony ## Linux 时间同步日志
/var/log/ntpstats ## 时间同步相关日志
/var/log/tuned ## 系统调优工具 tuned/tuned-adm 日志记录
/var/log/spooler ## 与 UUCP 和 news 设备相关的日志信息记录文件
/var/log/tallylog ## 记录认证失败情况,与 pam(可插拔认证模块)认证登录有关
6. 颜色管理
文件夹颜色识别:
蓝色文件 : 目录
白色文件 : 一般性文件,如文本文件,配置文件,源码文件等
浅蓝色文件 : 链接文件,主要是使用 ln 命令建立的文件
绿色文件 : 可执行文件,可执行的程序
红色文件 : 压缩文件或者包文件
红色闪烁文件 : 表示链接的文件有问题
黄色文件 : 设备文件
灰色文件 : 其他文件
终端下用"dircolors -p"可以查看默认的颜色设置.
修改终端命令行颜色:
# echo $PS1 ## 查看当前终端颜色配置
PS1='[\u@\h \W]\$ '
始:\[\e[32;40m\] 终:\[\e[0m\]
30 40 黑色
31 41 红色
32 42 绿色
33 43 黄色
34 44 蓝色
35 45 紫红色
36 46 青蓝色
37 47 白色
# vi ~/.bashrc ## 在文件末尾追加如下命令:
PS1="[\[\e[33;40m\]\u\[\e[0m\]\[\e[34;40m\]@\[\e[0m\]\h \[\e[34;40m\]\W\[\e[0m\]]\[\e[34;40m\]\$\[\e[0m\] "
# source .bashrc ## 重新加载 bash 配置文件
7. 快捷键
Tab ## 命令补全、文件补齐
clear ## 清屏
Ctrl + d ## 退出 root 权限
Ctrl + c ## 退出当前操作
Ctrl + l ## 清屏(仅保留当前行指令)
Ctrl + s ## 挂起当前 Shell
Ctrl + q ## 重新启动挂起的 Shell
exit ## 退出当前 Shell
Shift + Page Up ## 向上翻页
Shift + Page Down ## 向下翻页
Ctrl + u ## 从光标处向前删除命令串
Ctrl + k ## 从光标处向后删除命令串
Ctrl + a ## 光标移到命令串首
Ctrl + e ## 光标移到命令串尾
i ## 在光标前进入
dd ## 删除一行
6dd ## 删除光标所在行开始的 6 行
Ctrl+r ## 重新上一次操作
u ## 撤销上一次操作
gg ## 光标到文件首
GG ## 光标到文件尾
[ESC]键后:
:q ## 退出
:q! ## 强制退出
:w ## 保存
:wq ## 保存并退出