Linux(centos7)基础操作

Linux(CentOS7)

CentOS7 进入单用户修改root密码方法:

1.重启CentOS选择界面 按 e 进入 grub 编辑界面,找到Linux16这行 把 ro (只读readonly)修改成 rw init=sysroot/bin/sh
2.Ctrl+x 进入单用户界面
3.输入以下命令

  • chroot /sysroot/ ——–切换到原系统
  • LANG=en———-设置显示语言
  • Passwd root ——-修改root用户密码
  • touch /.autorelabel
  • reroot重启

Centos7修改 运行级别:

1.runlevel ——查看上一个运行级别和当前运行级别
2.Init + 级别 ——修改运行级别

级别 说明
0 关机
1 单用户
2 无网络的多用户
3 命令行模式
4 未用
5 GUI(图形桌面 模式)
6 重启
常用的运行级别是 3 和 5

打开22号端口

  • setup 打开sshd服务
  • ifconfig 查看当前ip地址

Linux根目录下各文件的作用

目 录 说明 备注
bin 存放普通用户可执行的指令 即使在单用户模式下也能够执行处理
boot 开机引导目录 包括Linux内核文件与开机所需要的文件
dev 设备目录 所有的硬件设备及周边均放置在这个设备目录中
etc 各种配置文件目录 大部分配置属性均存放在这里
lib/lib64 开机时常用的动态链接库 bin及sbin指令也会调用对应的lib库
media 可移除设备挂载目录 类似软盘 U盘 光盘等临时挂放目录
mnt 用户临时挂载其他的文件系统 额外的设备可挂载在这里,相对临时而言
opt 第三方软件安装目录 现在习惯性的放置在/usr/local中
proc 虚拟文件系统 通常是内存中的映射,特别注意在误删除数据文件后,比如DB,只要系统不重启,还是有很大几率能将数据找回来
root 系统管理员主目录 除root之外,其他用户均放置在/home目录下
run 系统运行是所需文件 以前防止在/var/run中,后来拆分成独立的/run目录。重启后重新生成对应的目录数据
sbin 只有root才能运行的管理指令 跟bin类似,但只属于root管理员
snap ubunut全新软件包管理方式 snap软件包一般在/snap这个目录下
srv 服务启动后需要访问的数据目录
sys 跟proc一样虚拟文件系统 记录核心系统硬件信息
tmp 存放临时文件目录 所有用户对该目录均可读写
usr 应用程序放置目录
var 存放系统执行过程经常改变的文件
vmlinuz 软连接到boot下的vmlinuz-4.4.0-87-generic

用户管理

  • useradd [选项] 用户名
  • useradd -d 用户名 — 给新建的用户指定家目录
  • userdel 用户名 — 删除用户
  • passwd 用户名 — 更改密码
  • id 用户名 — 查询用户信息
  • su – 切换用户名 — 切换用户
  • groupadd 组名 — 新建组
  • groupdel 组名 — 删除组
  • useradd -g 组名 用户名 — 给新建用户指定组
  • usermod -g 组名 用户名 — 修改用户所在组

1、文档操作类

  • pwd—显示当前工作位置 即当前所处文件

  • mkdir —– 新建文件夹 mkdir dog mkdir /home/dog(最多创建两级)
    mkdir -p /home/animal/dog/xiaoming ——-创建多级目录下文件

  • rmdir —- 删除空文件 rmdir dog
    rm -r(递归删除整个文件) -f(强制删除不提醒)
    常用rm -rf — 强制删除文件或目录

  • touch — 新建文件
    案例:touch a.txt

  • ls —– 显示当前目录下文件 ls-l—-竖排列表显示 ls-a —- 显示隐藏文件

  • cp—– 复制文件 cp /mojiao/zwj /mingjiao —–复制魔教下的张无忌到明教下边
    cp -r ——复制文件夹 cp /mojiao /mingjiao ——复制魔教到明教下(如果明教下存在魔教 便会提醒是否覆盖
    若要强制复制 用\cp -r 在cp -r 前加上\即可强制复制

  • yy — 用于文档内复制,拷贝当前行 yy ,并粘贴 p
    拷贝当前行向下5行—操作: yy5 p粘贴

  • dd — 删除当前行 删除向下5行 — dd5

  • mv—–移动、重命名文件
    重命名:mv dog.txt cat.txt
    移动: mv dog.txt /home/mojiao/—–移动dog.txt移动到mojiao下

  • cat —- 以只读的方式打开浏览文件
    -n 显示行数

  • more ——显示文本文件内容 more /etc/profile 打开显示 这个文本
    打开文本后快捷键:

  •   空格键 --- 向下翻一页  回车键 --- 向下翻一行  q --- 立刻离开当前文本  = --- 输出当前行号  :f --- 输出文件名及行号  Ctrl+f/b --- 向下/向上滚动一屏   
    
  • ">"">>"
    “>” 覆盖—将文本写入并覆盖到文件中 echo hello,World! > a.txt
    ">>"追加—将文本写入到文件文本的末尾 echo HHHH >> a.txt
    应用:

  •   将某一指令内容写入到另一文件  ls -l > a.txt  
    将某一文件内容写到 另一文件中   cat /etc/profile > b.txt  
    将文本直接写入到文件    echo "hello world" > c.txt   
    
  • cal—当前日历信息

  • ***echo***输出内容到控制台
    echo PATH−−−输出PATH — 输出PATHPATH环境变量

  • head — 显示文件开头部分(默认查看文件前10行)
    -n 例如-5 — 显示文件前5行

  • tail — 输出文件尾部内容 (默认后10行)
    -n — 显示文件后 n 行
    -f — 实时追踪文件的所有更新 工作常用

    •   tail -f a.txt --- 实时监控a.txt文件内容的变化  
      
  • ln — 软链接 也叫符号链接 类似Windows的快捷方式
    ln -s [文件]【链接名称】 ln -s /root linktoroot — 创建一个软连接指向root目录

  • history — 查看历史执行过的命令 也可执行历史命令
    直接输入 history 即可查看
    输入 !5 例如 !5 即为执行历史命令的第五个


2、时间日期类

  • date — 查询当前日期
    date +%y(m/n) — 查询当前年份(月份/日) 加号不能少
    date -s —设置系统当前时间 date -s 2011-11-11
  • cal — 显示当前月份日历
    cal 2022 —显示2022全年日历

3、搜索查找类

  • find — 从指定目录向下递归的遍历其各个子目录,将满足条件的目录显示在终端
    • find 【搜索范围】【选项】
      • 选项:-name --- find /root -name wx.jpg --- 查询root目录下名字为wx.jpg的文件,如果有通配符 * 必须用“”    -user --- find /home -user Styx --- 按用户查询文件  -size --- find / -size +(-)20M --- 查找根目录下 大于(小于)20M的文件  注意:  CTRL+c  终止查询  M必须大写 k小写   -type f --- 普通文件 d --- 查找目录  
        
    • find 【搜索范围】【选项】-exec commend {} \ ; — 将查询到的文件执行commend操作,{}代表查询到的集合,{} \ 之间有空格
  • locate —快速定位文件路径,原理是:利用系统实现建立的所有文件的名称及路径的数据库查询
    • locate【查询文件】 例如:locate wx.jpg
  • |(竖杠) — 管道符 :表示将前一个命令的处理结果输出传递给后面的命令处理
  • grep — 查找内容
    cat wei.txt | grep halou — 查询halou
    •     grep -n --- 显示所查询内容所在行grep -i --- 所查询的内容不区分大小写  
      

4、压缩和解压类

  • gzip/gunzip — 压缩/解压文件
    • gzip 【文件名】 —压缩文件 (不会保留原文件)
      gunzip 【文件名】 — 解压文件
  • zip/unzip —压缩/解压文件
    • zip 【选项】xxx.zip 要压缩的内容 — zip z.zip wei.txt(将wei.txt压缩z.zip)
    •  -r  递归压缩 即压缩整个目录 zip -r home.zip /home (压缩home整个目录)  
      
    • unzip xxx.zip — unzip home.zip(解压home)
    •   -d 解压到指定的文件夹 --- unzip -d /home/aaa home.zip (将home.zip解压到home下的aaa文件夹)
      
  • tar — 打包指令 文件格式为 .tar.gz
    • tar 【选项】xxx.tar.gz 打包的内容
    • 选项:
      -c 产生打包文件  
      -v 显示详细信息  
      -f 指定压缩后的文件名  
      -z 打包同时压缩
      -x 解包tar文件
      
    • 案例:
    •  压缩/打包:-zcvf  tar -zcvf c.tar.gz  a.txt b.txt --- 压缩多个文件  tar -zcvf home.tar.gz /home/ --- 压缩/home目录  解压:-zxvf  tar -zxvf c.tar.gz --- 解压到当前目录  tar -zxvf c.tar.gz -C /home/ --- 解压到home目录下(-C后边为要解压到的目录,目录必须存在)
      

二、实操篇

1、组管理和权限管理

  • 组管理
  • 创建一个police组  在police组中创建 tom 用户groupadd police  -- 创建组user -g police tom  --- 创建用户id tom --查询 tom 用户的信息
    
    • 修改文件所有者
      chown 用户名 文件名 —chown Styx ok.txt(必须有root权限)
    • 修改文件所在组
      chgrp 组名 文件名 —- chgrp police wei.txt
    • 改变用户所在组
      usermod -g 组名 用户名 — usermod -g police Styx
  • 权限管理
    • 权限的基本介绍
      • 例如 :
        -rwxrw-r- 1 root root 1213 Feb 2 09 12:00 ok.txt
        0~9位说明:

        1. 第0位确定文件类型(d:目录 :普通文件 l:软链接 c:字符设备【键盘鼠标】 b:块文件【硬盘】)
        2. 第1-3 位确定所有者(该文件的所有者)拥有该文件的权限。— User
        3. 第 4-6 位确定所属组(同用户组的)拥有的该文件的权限。 — Group
        4. 第 7-9 位确定其他用户拥有该文件的权限。— Other
        5. 第一个数字 — 如果是文件表示硬链接数,如果是目录表示该目录的子目录个数
        6. 用户 组
        7. 第二个数字 — 文件大小 如果是目录则为4096
        8. 最后修改的时间
      • rwx权限详解

        • rwx作用到文件
          r — 可读
          w — 可写,可修改但不可删除,删除必须是所在目录具有该权限
          x — 可执行
        • rwx作用到目录
          r — 可读,可以查看目录内容
          w — 可写,目录内创建+删除+重命名
          x — 可以进入该目录
  • 修改权限-chmod — 通过 chmod 指令可修改文件或目录的权限
    • 第一种通过“+”“-”“=”变更权限
      u:所有者 g:所在组 o:其他用户 a:所有人
      1)chmod u=rwx,g=rw,o=r 文件目录名
      2)chmod g+x 文件目录名
      3)chmod a-r 文件目录名
    • 第二种通过数字变更权限
      规则:r=4,w=2,x=1;rwx=7
      chmod u=rwx,g=rw,o=r 文件目录名 等同于 chmod 751 文件目录名
  • 修改文件所有者-chown
    • chown newowner file — 改变文件所有者
      chown newowner:newgroup file — 改变文件所有者所在组
      -R 如果是目录,则使其下所有子文件或目录递归生效
  • 修改文件所在组-chgrp
    • 语法:chgrp newgroup file 改变文件所在组

2、crond任务调度

  • 基本语法 :crontab 【选项】

    选 项 说 明
    -e 编辑crontab定时任务
    -l 查询crontab任务
    -r 删除当前用户所有的crontab任务
    service crond restart 重启任务调度

    案例说明

    1. crontab -e
    2. */1 * * * * ls -l /etc/ > /tmp/to.txt — 星号之间必须有空格
    3. 保存退出,便会立即执行
    4. 每一分钟 便会将etc下面的目录覆盖到tmp下的to.txt
  • 任务调度的应用案例

    • 每隔一分钟,就将当前的日期信息追加到/tmp/mydate文件中

      1)先编写一个文件 shell脚本 /home/mytask1.sh 写入 date >>/tmp/mydate
      2)给 mytask1.sh一个可执行权限 – chmod 744 mytask1.sh
      3)crontab -e
      4)编写crontab定时任务 — */1 * * * * date >> /tmp/mydate
      5)完成

    • 总结: 创建一个可执行的脚本文件,在其中写入要执行的指令,再通过crontab 任务调度设置时间以并执行脚本


3、Linux磁盘分区、挂载

  • 使用 lsblk 指令查看当前系统分区情况
    指令:lsblk -f — 记忆:老师不离开
  • 如何增加一块硬盘
    • 虚拟机添加硬盘
    • 分区命令 :fdisk /dev/sdb
      开始对 /sdb 进行分区
      m — 获取帮助列表
      p — 显示磁盘分区
      n — 新增分区
      d — 删除分区
      w — 写入并退出
      具体操作:开始分区后输入 n ,新增分区 , 然后选择 p ,选择主分区,按回车自动为默认值,输入 w 保存退出。
    • 格式化磁盘格式
      命令:mkfs -t ext4 /dev/sdb1 — 分区类型位 ext4 ,命名为sdb1
    • 挂载
      • 临时挂载:mount 设备名称 挂载目录
        mount   /dev/sdb1    /home/newdisk
      • 永久挂载:通过修改 /etc/fstab 实现挂载
        vim /etc/fstab — 在fstab中写入 挂载文件
        mount -a 即刻生效
    • umount — 解除挂载
      umount 设备名称 或 挂载目录
      umount /dev/sdb1 或 umount /newdisk
  • 磁盘查询情况
    • 查询系统整体磁盘使用基本情况
      语法 :df -h

    • 查询指定目录的磁盘使用情况
      语法 : du -h 目录 — 默认为当前目录

      -s 指定目录占用大小汇总
      -h 带计量单位
      -a 含文件
      –max-depth=1 子目录深度
      -c 列出明细的同时,增加汇总值
    • 磁盘情况 – 实用指令

      • 统计 /home 文件夹下文件的个数
        ls -l /home | grep “^-” |wc -l
      • 统计 /home 文件夹下目录的个数
        ls -l /home | grep “^d” |wc -l
      • 统计 /home 文件夹下文件的个数,包括子文件夹下的
        ls -lR /home | grep “^-” |wc -l
      • 以树状显示目录
        yum install tree — 安装tree指令 ,若已安装不用执行此步骤
        tree — 以树状图显示当前文件夹

4、网络配置

  • 查看网络配置
    • Windows下:ipconfig
    • Linux下: ifconfig
  • 测试主机之间连通性
    • ping 目的主机
      例如:ping www.baidu.comm
  • Linux下网络环境配置
    • 自动获取:通过界面完成
    • 指定固定ip
      • 直接修改配置文件
        a. vim /etc/sysconfig/network-scripts/ifcfg-ens33 — ens33为网卡文件
        b. 启用 boot 配置成yes — ONBOOT=yes
        c. 以静态方式获取IP — BOOTPORTO=static
        d. 指定IP — IPADDR=192.168.81.130
        f. 指定网关和域名解析器,(网关和DNS一样)与Windows一致 — 网关/DNS:GATEWAY= DNS=
      • 修改完毕后,重启服务
        1. service network restart — 重启网络服务
        2. reboot — 重启

5、进程管理

  • 查看进程使用的指令: ps ,一般使用 ps -aux
    ps显示的信息选项

    字段 说明
    PID 进程识别号
    TTY 终端机号
    TIME 此进程所消耗的CPU时间
    CMD 正在执行的命令或进程名

    ps -a : 显示当前终端的所有进程信息
    ps -u : 以用户格式显示进程信息
    ps -x : 显示后台进程运行的参数

  • ps 指令详解

    字 段 说明
    USER 用户名称
    PID 进程号
    %CPU 进程占用cpu的百分比
    %MEM 进程占用物理内存的百分比
    VSZ 进程占用虚拟内存大小 (KB)
    RSS 进程占用物理内存的的大小 (KB)
    TT 终端名称,缩写
    STAT 进程状态,其中S-睡眠,s-该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或被停止
    STARTED 进程启动的时间
    TIME cpu时间,即进程使用cpu的时间
    COMMAND 启动进程所用的命令和参数,如果过长会被截断显示
  • 应用实例

    • ps -ef — 以全格式显示当前所有进程
      -e 显示所有进程,-f 全格式显示
  • 终止进程kill和killall

    • kill [选项] 进程号 — 通过进程号来杀死进程
    • killall 进程名称 — 通过进程名称杀死进程,支持通配符,可解决系统因负载过大而运行缓慢的问题
    • -9 — 常用选项,强制进程立即停止
    • 实例
      • 踢掉某个非法用户
        ps -aux | grep sshd — 查找用户对应的进程
        kill 进程号 — 杀死该用户进程
      • 终止远程登陆sshd
        步骤同上
      • 终止多个gedit编辑器
        killall gedit
    • 查看进程树pstree
      • pstree [选项]
      • 常用选项
        • -p — 显示进程PID
        • -u — 显示进程所属用户
  • 服务管理(Service/systematl)

    • service/systemctl 服务名 [start | stop|restart | reload | status]
    • service iptables status — 查看当前防火墙状态
    • systemctl status iptables — 同上
    • 查看服务名
      • setup
      • ls -l /etc/init.d/
    • chkconfig指令 — 给每个服务的各个运行级别设置自启动/关闭
      • 查看服务 — chkconfig –list
      • 查看特定 — chkconfig –list|grep sshd

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注