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                  ## 保存并退出

返回目录

8. 目录树

image

返回目录

posted @ 2021-10-04 17:47  xiaobo0602  阅读(234)  评论(0编辑  收藏  举报