• Linux运维常用操作培训用例


    一、服务器环境

      Centos 7.9

    二、常用连接工具(免费)

      1、Finalshell

      2、MobaXterm   

      3、Putty + WinSCP

    三、Linux  系统目录结构

    /bin :是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。

    /boot:这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。

    /dev :是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。

    /etc: 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。

    /home:用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的 alice、bob 和 eve。

    /lib: 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。

    /lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。

    /media:linux 系统会自动识别一些设备,例如 U 盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。

    /mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。

    /opt:是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个 ORACLE 数据库则就可以放到这个目录下。默认是空的。

    /proc: 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。这个目录的内容不在硬盘上而是内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的 ping 命令,使别人无法 ping 你的机器: 

     echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

    /root:该目录为系统管理员,也称作超级权限者的用户主目录。

    /sbin:s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。

    /selinux:这个目录是 Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows的防火墙,但是这套机制比较复杂,这个目录就是存放 selinux 相关的文件的。

    /srv:该目录存放一些服务启动之后需要提取的数据。

    /sys:这是 Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs 。

         sysfs 文件系统集成了下面 3 种文件系统的信息:针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的 devpts 文件系统。

         该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。

    /tmp:是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的。

    /usr:是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。

    /usr/bin:系统用户使用的应用程序。

    /usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。

    /usr/src:内核源代码默认的放置目录。

    /var:是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

    /run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。

    四、Linux 与 Windows 默认目录对比

    /usr:系统级的目录,可以理解为 C:/Windows/

    /usr/lib:理解为 C:/Windows/System32。

    /usr/local:用户级的程序目录,可以理解为 C:/Progrem Files/。用户自己编译的软件默认会安装到这个目录下。

    /opt:用户级的程序目录,可以理解为 D:/Software,opt 有可选的意思,这里可以用于放置第三方大型软件(或游戏),当你不需要时,直接 rm -rf 掉即可。在硬盘容量不够时,也可将/opt 单独挂载到其他磁盘上使用。

    /home:是一般账户所在目录,可以理解为 C:/Users,软件的用户级配置文件就在该一般账户所对应的目录下

    五、Linux 运维常用命令

    1、 关机:shutdown 

      shutdown -h now  # 立即关机
    
      halt
    
      poweroff

    2、 重启:

      reboot       # 立即重启
    
      shutdown -r now  

    3、 查看当前用户:

        whoami        # 显示当前用户
    

      

    4、 查看所有用户和组:

      cat /etc/passwd   # 查看所有用户信息
    
      cat /etc/group    # 查看所有组信息

    5、 切换用户:

      su              # 默认切换到 root
    
      su -            # 默认切换到 root
    
      su user01          # 临时切换到 user01 用户,环境变量不变
    
      su – user01           # 彻底切换到 user01 用户

    ps:使用 su 命令时,有-和没有-是完全不同的,-选项表示在切换用户身份的同时,连当前使用的环境变量也切换成指定用户的。初学者可以这样理解它们之间的区别,即有-选项,切换用户身份更彻底

    6、 设置用户密码:passwd

      passwd     # 设置/修改当前用户密码
    
      passwd [用户名]    # 设置/修改指定用户密码,需 root 权限
    
      passwd -d [用户名]    # 删除用户密码,需 root 权限
    
      passwd -l [用户名]    # 停用账户,需 root 权限
    
      passwd -u [用户名]    # 启用账户,需 root 权限

    7、 切换目录:cd [目录路径]

      cd /                     # 切换到根目录
    
      cd /usr/local         # 切换到/usr/local 目录
    
      cd ..                    # 切换到上一级目录 

    8、 查看操作系统发行信息:

      cat /etc/centos-release          # 查看操作系统发行信息

    9、 查看内核版本:

      uname -a                          # 查看内核版本

    10、查看 CPU 及内存使用率:

      top           # 显示进程动态,类似 Windows 任务管理器
    
      #常用交互命令如下:
    
      c: 显示完整的命令
    
      i: 忽略闲置和僵死进程  
    
      M: 根据内存资源使用大小进行排序
    
      P: 根据 CPU 资源使用大小进行排序
    
      q: 退出 top 命令
    
      < 向前翻页,或使用PageUp
    
      > : 向后翻页,或使用PageDown

    11、查看磁盘空间:df

      df -h      # 查看磁盘空间使用情况

    12、查看目录或文件大小:du

      du -h             # 查看当前目录下所有子目录的大小
    
      du -sh             # 统计当前目录占用空间总大小
    
      du -sh *           # 统计当前目录每个子目录及文件的大小
    
      du -sh * --time      # 统计大小并显示修改时间
     
      du -sh * | sort -rh   # 查看当前目录文件大小并按大小排序倒序输出

    13、查看当前路径:pwd

      pwd    # 显示当前路径

    14、查看 ip:ip/ifconfig

      ip a    # 显示网络信息
    
      ip addr
    
      ip address
    
      ifconfig   # 显示网络信息

    15、查看软件进程:ps

      ps -ef | grep java    # 查看 java 相关的进程

    16、查看端口占用情况:netstat

      netstat -ntlp | grep 8080    # 查看占用 8080 端口的进程

    17、杀掉进程:kill -9 [PID 进程号]

      kill -9 35322    # 杀掉进程号 35322,-9 表示强制杀掉

    18、防火墙配置:

      systemctl start firewalld       # 开启防火墙,需 root 验证
    
      systemctl stop firewalld       # 停止防火墙,需 root 验证
    
      systemctl restart firewalld      # 重启防火墙,需 root 验证
    
      systemctl status firewalld       # 查看防火墙状态
    
    
    
      firewall-cmd --state                    # 查看防火墙状态
    
      firewall-cmd --reload                    # 重载防火墙配置
    
      firewall-cmd --add-service=ftp               # 临时开放 ftp 服务
     
      firewall-cmd --add-service=ftp --permanent         # 永久开放 ftp 服务
    
      firewall-cmd --remove-service=ftp --permanent       # 永久移除 ftp 服务
    
      firewall-cmd --add-port=80/tcp               # 临时添加 80 端口
    
      firewall-cmd --add-port=80/tcp --permanent        # 永久添加 80 端口
     
      firewall-cmd --remove -port=80/tcp --permanent       # 永久移除 80 端口
    
      firewall-cmd --list-ports                   # 查看已经开放的端口

    19、列出目录及文件名:lsll

      ls               # 列出目录及文件
    
      ls -a           # 列出目录及文件,包含隐藏文件
    
      ll            # 是ls -l 的别名,列出目录及文件的详细信息

    20、搜索文件位置:find/locate/whereis/which

      1) find <指定目录> -option <指定条件> <指定动作>

        -  <指定目录>: 所要搜索的目录及其所有子目录。默认为当前目录

        - <指定条件>: 所要搜索的文件的特征

        - <指定动作>: 对搜索结果进行特定的处理

        - option:过滤方式,最常用的是-name,按名称查找

      ps:如果什么参数也不加,find 默认搜索当前目录及其子目录,并且不过滤任何结果(也就是返回所有文件),将它们全都显示在屏幕上

      find . -name my*            # 搜索当前目录下名字是 my 开头的目录或文件
    
      find / -name java            # 全盘搜索名字为 java 的目录或文件
    
      find /usr -name *.log -ls       # 搜索/usr 下的.log 文件,并显示详细信息
    
      find /usr/ -size +10M -ls      # 搜索/usr 下大于 10M 的文件

      2) locate

      locate命令其实是“find -name”的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息。Linux 系统自动创建这个数据库,并且每天自动更新一次,所以使用 locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用 locate 之前,先使用updatedb命令,手动更新数据库

      locate java           # 查看 java 相关的目录及文件
    
      locate /usr/my*.log       # 查看/usr 中 my 开头的 log 文件

          ps:CentOS7 默认没有安装该命令

      3) whereis

      whereis 命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man 说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息

      whereis nginx          # 查看 nginx 的位置

      4) which

      which 命令的作用是,在 PATH 变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用 which 命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令

      which java            # 查看 java 命令的位置

    21、创建目录:mkdir [目录名]

      mkdir test            # 创建 test 目录
    
      mkdir /usr/local/test      # 创建 test 目录

    22、创建文件:touch [文件名]

      touch aaa.txt           # 创建aaa.txt文件
    
      touch /usr/local/aaa.txt    # 创建aaa.txt文件

    23、复制文件或目录:cp -r [源目录名或源文件名] [目标目录名或目标文件名]

      cp aaa.txt aaa_bak.txt     # 复制aaa.txt文件并命名为 aaa_bak.txt
    
      cp aaa.txt /usr/local      # 复制aaa.txt 到/usr/local 目录下
    
      cp -r nginx /usr/local       # 将 nginx 目录复制到/usr/local 目录下

    24、移动文件或目录:mv [源目录名或源文件名] [目标目录名或目标文件名]

      mv aaa.txt bbb.txt           # 相当于文件重命名
    
      mv aaa.txt /usr          # 将文件移动到/usr 目录下
    
      mv nginx /usr/local        # 将 nginx 目录移动到/usr/local 目录下

    25、删除文件或目录:rm -rf [目录名或文件名]

      rm -rf aaa.txt          # 删除文件
    
      rm -rf /usr/test          # 删除目录

    26、查看文件:cat/less/more/tail

      cat aaa.txt           # 全部显示
    
      less aaa.txt            # 分页显示(向前向后都可以翻)
    
      more aaa.txt           # 分页显示(只能向后翻)
    
      head aaa.txt              # 默认显示开头 10 行
    
      tail aaa.txt              # 默认显示最后 10

    27、实时查看文件(常用于追踪日志信息):tail

      tail -fn 1000 aaa.txt     # 实时显示最后 1000

    28、编辑文件:vivim

      vi aaa.txt            # vi 文本编辑器
    
      vim aaa.txt(推荐)        # vi 的升级版本,功能更多,语法高亮
    
      #常用命令
    
      i                  # 进入输入模式,此时可编辑文件
    
      [ESC]               # 退出输入模式
    
      [PageUp]              # 向上翻页
    
      [PageDown]            # 向下翻页
    
      / + n               # 查找字符串,如/java,按 n 可以查找下一个  
    
      gg                 # 移动到文件首行
    
      G                  # 移动到文档最后一行
    
      dd                  # 删除光标所在的一行
    
      10dd                   # 删除光标所在的向下 10 行
    
      dG                  # 删除光标所在到最后一行的所有数据
    
      ggdG                 # 删除所有数据
    
      yy                 # 复制光标所在的一行
    
      10yy                # 复制光标所在的向下 10 行
    
      yG                 # 复制光标所在到最后一行的所有数据
    
      ggyG               # 复制所有数据
    
      p                  # 粘贴,相当于 windows 中的 ctrl+v
    
      u                  # 撤销上次操作,相当于 windows 中的 ctrl+z
    
      :set nu              # 显示行号
    
      :q                # 退出编辑器
    
      :q!                # 强制退出编辑器,不保存已修改内容
    
      :w                 # 保存
    
      :wq               # 保存并退出
    
      :saveas aaa2.txt        # 另存为

    29、修改文件所有者:chown

      chown root /usr/aaa.txt     # 把/usr/aaa.txt的所有者设置为 root
    
      chown -R mysql:mysql /logs   # 更改 logs 目录的所有者和组

    30、修改文件读写权限:chmod

      只有文件所有者root 用户可以修改文件或目录的权限

      可以使用符号模式绝对模式(八进制数字模式)指定文件的权限

      Linux 的文件调用权限分为三级 : User(文件所有者)、Group(用户组)、Other Users(其它用户)

      1) 符号模式

      chmod ugo+r aaa.txt        # 把aaa.txt设置为所有人可读
    
      chmod a+rwx aaa.txt         # 最大权限,a 代表 all,等同于 ugo

      2) 绝对模式(八进制数字模式)

      chmod 444 aaa.txt        # 把aaa.txt设置为所有人可读
    
      chmod 754 aaa.txt        # 常用权限
    
      chmod 777 aaa.txt        # 最大权限

    31、系统日志查看:journalctl

      journalctl          # 默认显示所有的信息(从旧到新)
    
      journalctl -r           # -r 参数表示反序输出(从新到旧)
    
      journalctl -f           # -f 实时输出最新日志
    
      journalctl -n 50       # -n 指定输出 50 行
    
      journalctl -p 3         # -p 过滤日志级别
    
      # 0: emer         系统的严重问题日志
    
      # 1: alert          系统中立即要更改的信息
    
      # 2: crit          严重级别会导致系统软件不能工作
    
      # 3: err          程序报错
    
      # 4: warning         程序警告
    
      # 5: notice         重要信息的普通日志
    
      # 6: info          普通信息
    
      # 7: debug        程序排错信息

      #显示指定时间段内发生的事件日志,通过since和until 参数来实现,其中日期的格式是“YYYY-MM-DD HH:MM:SS”

      journalctl --since "2022-02-25 10:00:00"        --until "2022-02-25 12:00:00"

      journalctl -u nginx.service              # -u 查看某些服务的日志

      journalctl _UID=123                   # 查看某个用户的日志,“id [用户]”查看 uid

      journalctl -k                      # 查看内核日志

      journalctl -b                       # 查看系统启动日志

      journalctl --disk-usage                # 查看日志占用空间

      journalctl --vacuum-size=1G              # 限制 journal 占用磁盘空间大小

      journalctl --vacuum-time=1months           # 限制 journal 日志保存时间

    六、Java 环境

      1、查看 java 版本

      java -version      # 查看版本

      2、查看路径

      whereis java      # 查看路径

      3、配置环境变量

      vim /etc/profile    # 配置环境变量

       #/etc/profile 最下方添加

       export JAVA_HOME=[java 安装路径]

       export CLASSPATH=.:%JAVA_HOME%/lib/dt.jar:%JAVA_HOME%/lib/tools.jar

       export PATH=$PATH:$JAVA_HOME/bin

     

       source /etc/profile    # 使配置立刻生效

    七、Tomcat 环境

      1、 设置端口号及字符编码

      vim /usr/local/soft/apache-tomcat-7.0.99-8080/conf/server.xml

      2、 启动/停止

      systemctl status tomcat8080     # 运行状态
    
      systemctl start tomcat8080      # 开启
    
      systemctl stop tomcat8080       # 停止
    
      systemctl restart tomcat8080    # 重启

     

      3、 应用部署

      cd /usr/local/soft/apache-tomcat-7.0.99-8080/webapps/

      4、 查看运行日志

      cd /usr/local/soft/apache-tomcat-7.0.99-8080/logs     # 进入 logs 目录
    
      tail -f catalina.out                      # 实时查看运行日志

    八、Nginx 环境

      1、 查看 nginx 版本

      nginx -v      # 查看版本

      2、 查看路径

      whereis nginx  # 查看路径

      3、 修改 nginx 配置文件

      vim /usr/local/soft/nginx/conf/nginx.conf

      4、 启动/停止

      systemctl status nginx        # 运行状态
    
      systemctl start nginx          # 开启
    
      systemctl stop nginx           # 停止
    
      systemctl restart nginx        # 重启

      5、 查看运行日志

      cd /usr/local/soft/nginx/logs   # 进入 logs 目录
    
      tail -f access.log          # 实时查看运行日志

    九、Mysql 环境

      1、 查看 mysql 版本

      mysql -V               # 查看版本,大写
    
      SQL> select version();        # 查看版本

      2、 查看路径

      whereis mysql         # 查看路径

      3、 配置文件

      vim /etc/my.cnf        # 配置文件

      4、 启动/停止

      systemctl status mysql          # 运行状态
    
      systemctl start mysql         # 启动
    
      systemctl stop mysql          # 停止
    
      systemctl restart mysql         # 重启

      

    十、Redis 环境

      1、 查看 redis 版本

      redis-server -v          # 查看版本
    
      redis-cli -v             # 查看版本

      2、 修改 redis 配置文件

      vim /usr/local/soft/redis/bin/redis.conf    
    
      bind 127.0.0.1              # 只有指定的网段才能远程访问这个 redis
    
      protected-mode no             # 默认是 yes 的, 改为 no 表示允许远程访问
    
      daemonize yes                # 表明需要在后台运行
    
      requirepass XXXX              # 设置连接密码,保障远程访问的安全性

      3、 启动/停止

      systemctl status redis           # 查看服务当前状态
    
      systemctl start redis            # 启动 redis 服务
    
      systemctl stop redis             # 停止 redis 服务
    
      systemctl restart redis           # 重新启动服务

      4、 常用命令

      redis-cli                   # 连接 redis
    
      redis-cli -a XXXX              # 使用密码连接
    
      select [0~15]                  # 切换数据库
    
      keys *                      # 查看所有 key
    
      keys aaa*                   # 模糊查询 key
    
      set aaa 123                  # 新增/修改 aaa 的值
    
      get aaa                     # 查询 aaa 的值
    
      del aaa                     # 删除 aaa 的值
    
      type aaa                     # 查看返回值类型
    
      dbsize                     # 查看当前数据的 key 的数目
    
      expire aaa 10                  # 设置 aaa 的过期时间为 10 秒
    
      ttl aaa                    # 查看 aaa 的剩余存活时间
    
      flushdb                     # 删除当前数据库的所有 key
    
      flashall                    # 删除所有数据库的所有 key
     
  • 相关阅读:
    struts2的在aJax中无法传参数到后台使用:解决方法
    jqGrid的属性(2)特指内容属性
    [leetcode]Binary Tree Maximum Path Sum
    判断二叉树是否平衡(Bottomup)
    [转]反向迭代器(rbegin,rend)
    Crack Interview 3.3
    Crack Interview 9.1 合并排序数组
    字符串转整数
    [转]了解如何通过reverse_iterator的base得到iterator
    通过bitmap的方式用8个int实现对256个char是否出现过做记录
  • 原文地址:https://www.cnblogs.com/Williamls/p/15896018.html
Copyright © 2020-2023  润新知