• Linux 常用指令学习


    一、vim

    1. 复制、粘贴

       yy
       p
      
    2. 删除

       dd
      
    3. 行号,跳转指定行

       set nu
       set nonu
      
    4. 跳转

       # 行首
       gg
       # 行末
       shift + g
      
    5. 全选

    6. 替换

    二、用户管理

    1.添加用户

        useradd 用户名
    

    2.设置密码

        passwd  自定义密码
    

    3.删除用户

        # 删除用户目录
        userdel -r 用户名
        # 不删除用户目录
        userdel 用户名
    

    4.用户组

        # 创建组
        groupadd 组名
        # 指定组名创建用户
        useradd -g 组名         用户名
        # 用户切换组
        usermod -g 组名        用户名
    
    1. 相关文件

       /etc/passwd
       /etc/shadow
       /etc/group
      

    六、运行级别

        init [级别]
    
    • 0 停机,默认值不能设为0 无法正常启动
    • 1 单用户工作状态
    • 2 多用户无网络
    • 3 无界面,完全体多用户(有网络)
    • 4 未使用,保留状态
    • 5 图形化GUI模式
    • 6 正常关闭并重启重启,默认值不能设为6 无法正常启动

    七、文件目录指令

    1. 创建目录

       # 创建单个目录
       mkdir -p /dir1
       # 创建多级目录
       mkdir -p /dir1/dir2/dir3
      
    2. 删除

       rmdir 和 rm -rf 
      
    3. 创建空文件

       touch  fileName.fileType
      
    4. 文件查看

       echo  cat less more  head tail
       # echo $JAVA_HOME
       # tail -f 实时
       # tail -n 100 filename.xxx
      
    5. 输出重定向

       # 覆盖
       echo "内容" > fileName.xxx
       # 追加
       echo "内容" >> fileName.xxx
      
    6. 文件查找

       # 文件查找 find
       find / -name xxx
       find / -user xxx
       
       # 指令查找 which 
       which netstat
       which reboot
      
       # grep  过滤查找,一般与 管道符 " | " 一起使用   常用搭配 wc:(word count 计数)
       cat fileName.xxx | grep "love you" | wc  
      

    八、rpm以及yum

    rpm 用于从互联网下载以及安装包,它包含在某些linux分发版本中,它生成具有rpm拓展名的文件。

    1. 信息查询

       # 过滤查找rpm 软件包
       rpm -qa | grep python 
       # 查找软件是否安装
       rpm -q python
       # 详细信息
       rpm -qi python
       # 查询rpm 包中的文件
       rpm -ql python
       # 查询文件所属的软件包
       rpm -qf /etc/my.cnf
      
    2. 删除

       rpm -e firefox-91.4.0-1.el7.centos.x86_64
      
    3. 安装

       rpm -ivh rpm包全路径名称        
       # i:install
       # v:verbose
       # h:hash 进度条
      
    4. yum

    • yum 是shell 前端软件包管理器,基于rpm包管理,能从指定服务器自动下载rpm包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包

                # 查看yum服务器是否有安装包
                yum list|grep python
                # yum 安装
                yum install python
                # 基础组件安装
                yum groupinstall base 
      

    九、文件目录权限管理

    1. chmod 修改权限

       4 + 2 + 1 = 7 (r + w + x)
       # u:user        g:group o:other a:all
       chmod g+wx /home/any_file_or_directory
       chmod 724        /home/any_file_or_directory
      
    2. chown change owner

       chown root:root  /any_file_or_directory 
      
    3. chgrp

       chgrp root /any_file_or_directory
      

    十、磁盘挂载

    1. 显示磁盘分区:

       fdisk -l         
       fdisk -f
      
    2. 磁盘分区:fdisk /dev/sdb

    3. 格式化:mkfs -t ext4 /dev/sdb2

    4. 磁盘挂载: mount /dev/sdb2/ /ranchen [重启会失效]

    5. 永久挂载,修改:/etc/fstab 文件

       # 通过UUID 挂载
       UUID=b35480fb-0cf8-45b5-a449-70277f85200b   /ranchen                ext4    defaults        0 0
       # 通过名称挂载
       /dev/sdb2                                   /ranchen                ext4    defaults        0 0
      
    6. 卸载(取消挂载),重启生效: umount /dev/sdb2

    7. 磁盘容量

       # 总览 
       df -h
       # 特定目录
       df -h /home
       # du  h:计量单位    a(all):含文件  c(count):怎加汇总  --max-depth=x:深度
       du -h
       du -h --max-depth=1 /home
       du -hac --max-depth=1 /home
       tree /opt
      

    十一、网卡编辑

    1. 查看网卡

         ifconfig
      
    2. 编辑网卡

         vim /etc/sysconfig/network-scripts/ifcfg-ens33
      
    3. 网卡信息

       TYPE=Ethernet
       PROXY_METHOD=none
       BROWSER_ONLY=no
       BOOTPROTO=dhcp                dhcp-动态分配        static-静态IP
       DEFROUTE=yes                                                 
       IPV4_FAILURE_FATAL=no
       IPV6INIT=yes
       IPV6_AUTOCONF=yes
       IPV6_DEFROUTE=yes
       IPV6_FAILURE_FATAL=no
       IPV6_ADDR_GEN_MODE=stable-privacy
       NAME=ens33
       UUID=30fc8be6-7ebd-420d-baa6-6880c196d039
       DEVICE=ens33                                                                 # 网卡名
       ONBOOT=yes
       IPADDR=192.168.126.132                         # IPv4 地址
       PREFIX=24
       GATEWAY=192.168.126.2                                # 网关
       DNS1=8.8.8.8                                                                 # DNS
       IPV6_PRIVACY=no
      
    4. 重启网络服务

               systemctl restart network
      
    5. 主机名

               # 显示
               hostname
               # 修改
               vim /etc/hostname
      
    6. hosts 映射,支持通过主机名进行网络交互

        vim /etc/hosts
      
    7. dns 解析顺序

       浏览器缓存  >>  dns解析缓存  >>  hosts文件映射   >> 查询网段上的dns服务器
      

    十二、进程管理

    1. 查看进程

       # 进程全格式信息
       ps -ef        
       # -a:所有进程        -u:显示用户信息         -x:进程运行参数
      
    2. 进程树 pstree,yum安装:

    • yum install psmisc

        # 进程树 -p: 进程PID        -u:用户
        pstree -u root
        pstree -p 1
      

    十三、服务管理

    概念: 系统服务 (守护进程)

    1. 服务管理 systemctl

       # 常用
       systemctl  start|stop|restart|reload|status  服务名
       # 重启mysql
       systemctl restart mysqld
       # 查看mysql服务开启启动状态
       systemctl list-unit-files grep | mysqld
       # 设置mysql开启自启
       systemctl enable mysqld 
       # 关闭开机自启
       systemctl disable mysqld
       # 查看是否自动启动
       systemctl is-enbaled mysqld
      
    2. 防火墙服务:firewalld

       # 查看端口是否开放
       firewall-cmd --query-port=8080/tcp
       firewall-cmd --query-port=8080/udp  
       # 开放端口
       firewall-cmd --permanent --add-port=8080/tcp
       firewall-cmd --permanent --add-port=8080/udp
       # 关闭端口
       firewall-cmd --permanent --remove-port=8080/tcp
       firewall-cmd --permanent --remove-port=8080/udp
       # 重新加载
       firewall-cmd --reload
      
    3. 动态监控:top

       # shift + P         cpu排序
       # shift + M         内存排序
       # shift + N         进程号排序
      
    4. 系统网络状况:netstat

       # -an  按序排列输出  -p:输出进程信息
       netstat -anp | grep 3306
      

    十四、shell 脚本编写

    • vim love_you.sh

        #!/bin/bash
        echo "I love you"
      
    • sh love_you

    1. shell 变量:系统变量、用户自定义变量

       #!/bin/bash
       # 定义变量
       BOKERR_HOME=/home/bokerr
       # 撤销变量
       unset BOKERR_HOME
       # 静态变量,不能撤销
       readonly BOKERR_HOME=/home/bokerr
      
    2. 变量赋值

    • vim bokerr.sh

        #!/bin/bash
        IDATA="2022-01-05"
        echo $IDATA
        IDATA=`date`    # 命名执行结果赋值变量
        echo $IDATA
        IDATA=$('pwd')  # 命名执行结果赋值变量
        echo $IDATA
      
    • sh bokerr

    1. 环境变量
    • export 将shell 变量输出为环境变量[全局变量]

        export IDATA=/home/bokerr  
      
    • source 刷新配置文件,让其立即生效

        source  /etc/profile
      
    • echo 将变量输出的控制台

        echo $JAVA_HOME
      
    1. 位置参数变量

       #!/bin/bash
       echo $0         # 命令本身:bokerr.sh
       echo $1         # 参数-1:  2 
       echo $2         # 参数-2:  1
       echo $*         # 全部参数视为整体
       echo $@         # 代表全部参数,但是每个参数区分对待
       echo $#         # 代表参数个数
      
    • sh bokerr.sh 2 1
    1. 预定义变量,shell 本真自带变量

       echo $$     # 进程号
       echo $!     # 后台运行的最后一个进程号
       echo $?     # 最后一次执行的命令的返回状态
      
    2. 运算符

       IDATA=$((3 + 8))
       echo $IDATA
       IDATA=$[3+9]
       echo $IDATA
       IDATA=`expr 3 + 10`    # 支持 \* (乘:转义加星号)   / (除)   % (取余)  
       echo $IDATA       
      
    3. 条件判断&流程控制

       VA=2
       VB=3
       if [ $VA -lt $VB ]
       then
         echo "aaaa"
       elif [ $VA -le $VB ]
       then
          echo "bbbb"
       elif [ $VA -eq $VB ]
       then
          echo "cccc"
       fi
      
       a.整数比较
       lt  -little
       le  -little equal
       # eq  -equal
       # gt  -大于
       # ge  -大于等于
       # ne  -不等于
       # b.文件权限
       -r
       -w
       -x
       # c.判断文件类型
       -f   # 常规文件
       -e   # 文件存在
       -d   # 是一个目录
      
    4. read获取输入

       #!/bin/bash
       # -t 10: 等待10秒
       read -t 10 -p "input some words:"  IDATA
       echo $IDATA
      
    5. 系统函数

    • basename 返回完整路径中最后一个 / 之后的内容[文件名]

        IDATA=`basename /home/rsy/love.md`
        echo $IDATA
        --- 输出:  love.md
        IDATA=`basename /home/rsy/love.md  .md`
        echo $IDATA
        --- 输出:  love
      
    • dirname 返回完整路径中最后一个 / 之前的内容[文件路径]

    1. 自定义函数

      function addNumber(){
              SUM=$[$n1+$n2]
              echo "SUM=$SUM"
      }
      read -p "n1=" n1
      read -p "n2=" n2
      addNumber $n1 $n2
      
    2. 执行 mysqldump 备份mysql库

      #!/bin/bash
      BACKUP=/home/uData/bak_home
      DATENOW=$(date +%Y-%m-%d_%H%M%S)
      echo $DATENOW
      HOST=localhost
      DB_USER=root
      DB_PASS=bokerr.com
      DB_SCHEMA=supervise
      
      # create backHome
      [ ! -d "${BACKUP}/${DATENOW}" ] && mkdir -p "${BACKUP}/${DATENOW}"
      
      # back up the mysql  database name of `$DB_SCHEMA`
      mysqldump -u${DB_USER} -p${DB_PASS} --host=${host} -q -R --databases ${DB_SCHEMA} | gzip > ${BACKUP}/${DATENOW}/$DATENOW.sql.gz
      
      # move to tar.gz then delete directory
      cd ${BACKUP}
      tar -czvf $DATENOW.tar.gz ${DATENOW}/
      rm -rf ${DATENOW}/
      
      # finally delete back over ten days
      find ${BACKUP} -atime +10 -name "*.tar.gz" -exec rm -rf {} \;
      echo "back database $DB_SCHEMA success!"
      

    十五、定时任务

    • crontab -e

        # 定时每天23点30分执行脚本
        30 23 * * * ./home/uData/rsy.sh
      
    • crontab -l 显示所有任务

    • crontab -r 删除所有任务

  • 相关阅读:
    java代理的深入浅出(一)-Proxy
    事件分发模型的设计与实现
    LibProject使用theme无效。
    HeaderGridView
    android开源代码
    IOS学习4
    IOS学习3
    IOS学习2
    Mac上添加adb_usb.ini
    OC学习-1
  • 原文地址:https://www.cnblogs.com/bokers/p/15734325.html
Copyright © 2020-2023  润新知