Linux(实操篇三)

Linux实操篇

  • Linux(实操篇三)
    • 1. 常用基本命令
      • 1.7 搜索查找类
        • 1.7.1 find查找文件或目录
        • 1.7.2 locate快速定位文件路径
        • 1.7.3 grep过滤查找及"|"管道符
      • 1.8 压缩和解压类
        • 1.8.1 gzip/gunzip压缩
        • 1.8.2 zip/unzip压缩
        • 1.8.3 tar打包
      • 1.9 磁盘查看和分区类
        • 1.9.1 du查看文件和目录占用的磁盘空间
        • 1.9.2 df查看磁盘空间使用情况
        • 1.9.3 lsblk查看设备挂载
        • 1.9.4 mount/umount挂载/卸载
        • 1.9.5 fdisk分区
      • 1.10 进程管理类
        • 1.10.1 ps查看当前系统进程状态
        • 1.10.2 kill终止进程
        • 1.10.3 pstree查看进程树
        • 1.10.4 top实时监控系统进程状态
        • 1.10.5 netstat 显示网络状态和端口占用信息
      • 1.11 crontab系统定时任务
        • 1.11.1 crontab服务管理
        • 1.11.2 crontab定时任务设置

Linux(实操篇三)

1. 常用基本命令

1.7 搜索查找类

1.7.1 find查找文件或目录

find 指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件显示在终端。

  • 基本语法

    find [搜索范围] [选项]

  • 选项说明

    • -name<查询方式> 按照指定的文件名查找模式查找文件
    • -user<用户名> 查找属于指定用户名所有文件
    • -size<文件大小> 按照指定的文件大小查找文件
      • b —— 块(512 字节)
      • c —— 字节
      • w —— 字(2 字节)
      • k —— 千字节
      • M —— 兆字节
      • G —— 吉字节
  • 案例实操

    按文件名:根据名称查找桌面目录下的txt文件

    [guozihan@hadoop100 桌面]$ find -name “*.txt”
    ./a.txt

    按拥有者:查找/opt目录下,用户名称为guozihan的文件

    [guozihan@hadoop100 桌面]$ find /opt -user guozihan

    按文件大小:在/home目录下查找大于200m的文件(+n 大于 -n 小于 n 等于)

    [guozihan@hadoop100 ~]$ find /home -size +204800

1.7.2 locate快速定位文件路径

locate 指令利用事先建立的系统中所有文件名称及路径的 locate 数据库实现快速定位给定的文件。Locate 指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新 locate 时刻

  • 基本语法

    locate 搜索文件

  • 经验技巧

    由于 locate 指令基于数据库进行查询,所以第一次运行前,必须使用 updatedb 指令创 建 locate 数据库

  • 案例实操

    查询文件夹tmp

    [root@hadoop100 guozihan]# updatedb
    [root@hadoop100 guozihan]# locate tmp

1.7.3 grep过滤查找及"|"管道符

管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理

  • 基本语法

    grep 选项 查找内容 源文件

  • 选项说明

    -n 显示匹配行及行号

  • 案例实操

    查找某文件在第几行

    [root@hadoop100 桌面]# ls
    a.txt
    [root@hadoop100 桌面]# ls | grep -n a.txt
    1:a.txt

1.8 压缩和解压类

1.8.1 gzip/gunzip压缩

  • 基本语法

    gzip 文件 功能描述:压缩文件,只能将文件压缩为*.gz 文件

    gunzip 文件.gz 功能描述:解压缩文件命令

  • 经验技巧

    (1)只能压缩文件不能压缩目录

    (2)不保留原来的文件

    (3)同时多个文件会产生多个压缩包

  • 案例实操

    gzip压缩

    [guozihan@hadoop100 桌面]$ ls
    a.txt test.txt

    [guozihan@hadoop100 桌面]$ gzip test.txt

    [guozihan@hadoop100 桌面]$ ls
    a.txt test.txt.gz

    gunzip解压缩文件

    [guozihan@hadoop100 桌面]$ gunzip test.txt.gz

    [guozihan@hadoop100 桌面]$ ls
    a.txt test.txt

1.8.2 zip/unzip压缩

  • 基本语法

    zip [选项] XXX.zip 将要压缩的内容 功能描述:压缩文件和目录的命令

    unzip [选项] XXX.zip 功能描述:解压缩文件

  • 选项说明

    zip选项

    -r 压缩目录

    unzip选项

    -d<目录> 指定解压后文件的存放目录

  • 经验技巧

    zip 压缩命令在windows/linux都通用,可以压缩目录且保留源文件

  • 案例实操

    压缩 a.txt 和test.txt,压缩后的名称为mypackage.zip

    [guozihan@hadoop100 桌面]$ zip mypackage.zip a.txt test.txt
    adding: a.txt (deflated 47%)
    adding: test.txt (stored 0%)

    [guozihan@hadoop100 桌面]$ ls
    a.txt mypackage.zip test.txt

    解压 mypackage.zip

    [guozihan@hadoop100 桌面]$ unzip mypackage.zip
    Archive: mypackage.zip
    replace a.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
    inflating: a.txt
    replace test.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
    extracting: test.txt

    [guozihan@hadoop100 桌面]$ ls
    a.txt mypackage.zip test.txt

    解压mypackage.zip到指定目录-d

    [root@hadoop100 桌面]# unzip mypackage.zip -d /opt
    Archive: mypackage.zip
    inflating: /opt/a.txt
    extracting: /opt/test.txt

    [root@hadoop100 桌面]# ls /opt/
    a.txt rh test.txt

1.8.3 tar打包

  • 基本语法

    tar [选项] XXX.tar.gz 将要打包进去的内容 功能描述:打包目录,压缩后的 文件格式.tar.gz

  • 选项说明

    • -c 产生.tar打包文件
    • -v 显示详细信息
    • -f 指定压缩后的文件名
    • -z 打包同时压缩
    • -x 解包.tar 文件
    • -C 解压到指定目录
  • 案例实操

    压缩多个文件

    [guozihan@hadoop100 桌面]$ tar -zcvf package.tar.gz a.txt test.txt
    a.txt
    test.txt

    [guozihan@hadoop100 桌面]$ ls
    a.txt mypackage.zip package.tar.gz test.txt

    压缩目录

    [root@hadoop101 ~]# tar -zcvf xiyou.tar.gz xiyou/

    xiyou/

    xiyou/mingjie/

    xiyou/dssz/

    xiyou/dssz/houge.txt

    解压到当前目录

    [root@hadoop101 ~]# tar -zxvf houma.tar.gz

    解压到指定目录

    [root@hadoop101 ~]# tar -zxvf xiyou.tar.gz -C /opt

    [root@hadoop101 ~]# ll /opt/

1.9 磁盘查看和分区类

1.9.1 du查看文件和目录占用的磁盘空间

du: disk usage 磁盘占用情况

  • 基本语法

    du 目录/文件 功能描述:显示目录下每个子目录的磁盘使用情况

  • 选项说明

    • -h 以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示
    • -a 不仅查看子目录大小,还要包括文件
    • -c 显示所有的文件和子目录大小后,显示总和
    • -s 只显示总和
    • –max-depth=n 指定统计子目录的深度为第 n 层
  • 案例实操

    查看当前用户主目录占用的磁盘空间大小

    [guozihan@hadoop100 ~]$ du -sh
    147M .

1.9.2 df查看磁盘空间使用情况

df: disk free 空余磁盘

  • 基本语法

    df 选项 功能描述:列出文件系统的整体磁盘使用量,检查文件系统的磁盘空间占用情况

  • 选项说明

    -h 以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示

  • 案例实操

    查看磁盘使用情况

    [guozihan@hadoop100 ~]$ df -h
    文件系统 容量 已用 可用 已用% 挂载点
    devtmpfs 2.0G 0 2.0G 0% /dev
    tmpfs 2.0G 0 2.0G 0% /dev/shm
    tmpfs 2.0G 13M 2.0G 1% /run
    tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
    /dev/sda3 15G 4.7G 11G 31% /
    /dev/sda1 1014M 208M 807M 21% /boot
    tmpfs 394M 4.0K 394M 1% /run/user/42
    tmpfs 394M 40K 394M 1% /run/user/1000

1.9.3 lsblk查看设备挂载

  • 基本语法

    lsblk 功能描述:查看设备挂载情况

  • 选项说明

    -f 查看详细的设备挂载情况,显示文件系统信息

1.9.4 mount/umount挂载/卸载

对于Linux用户来讲,不论有几个分区,分别分给哪一个目录使用,它总归就是一个根目录、一个独立且唯一的文件结构。

Linux中每个分区都是用来组成整个文件系统的一部分,它在用一种叫做“挂载”的处理方法,它整个文件系统中包含了一整套的文件和目录,并将一个分区和一个目录联系起来, 要载入的那个分区将使它的存储空间在这个目录下获得

  • 前提条件

    右键点击当前虚拟机设备->设置->点击CD/DVD(IDE)->将设备状态勾选已连接

  • 基本语法

    mount [-t vfstype] [-o options] device dir 功能描述:挂载设备

    umount 设备文件名或挂载点 功能描述:卸载设备

  • 参数说明

    • -t vfstype

      指定文件系统的类型,通常不必指定。mount 会自动选择正确的类 型。常用类型有:

      光盘或光盘镜像:iso9660

      DOS fat16 文件系统:msdos

      Windows 9x fat32 文件系统:vfat

      Windows NT ntfs 文件系统:ntfs

      Mount Windows 文件网络共享:smbfs

      UNIX(LINUX) 文件网络共享:nfs

    • -o options

      主要用来描述设备或档案的挂接方式。常用的参数有:

      loop:用来把一个文件当成硬盘分区挂接上系统

      ro:采用只读方式挂接设备

      rw:采用读写方式挂接设备

      iocharset:指定访问文件系统所用字符集

    • device:要挂接(mount)的设备

    • dir:设备在系统上的挂接点(mount point)

1.9.5 fdisk分区

  • 基本语法

    fdisk -l 功能描述:查看磁盘分区详情

    fdisk 硬盘设备名 功能描述:对新增硬盘进行分区操作

  • 选项说明

    -l 显示所有硬盘的分区列表

  • 经验技巧

    该命令必须在 root 用户下才能使用

  • 功能说明

    • Linux 分区

      Device:分区序列

      Boot:引导

      Start:从X磁柱开始

      End:到Y磁柱结束

      Blocks:容量

      Id:分区类型ID

      System:分区类型

    • 分区操作按键说明

      m:显示命令列表

      p:显示当前磁盘分区

      n:新增分区

      w:写入分区信息并退出

      q:不保存分区信息直接退出

  • 案例实操

    查看系统分区情况

    [root@hadoop100 ~]# fdisk -l

    磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    磁盘标签类型:dos
    磁盘标识符:0x000d8ed6

    设备 Boot Start End Blocks Id System
    /dev/sda1 * 2048 2099199 1048576 83 Linux
    /dev/sda2 2099200 10487807 4194304 82 Linux swap / Solaris
    /dev/sda3 10487808 41943039 15727616 83 Linux

1.10 进程管理类

进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源

1.10.1 ps查看当前系统进程状态

ps:process status 进程状态

  • 基本语法

    ps aux | grep xxx 功能描述:查看系统中所有进程

    ps -ef | grep xxx 功能描述:可以查看子父进程之间的关系

  • 选项说明

    • a 列出带有终端的所有用户的进程
    • x 列出当前用户的所有进程,包括没有终端的进程
    • u 面向用户友好的显示风格
    • -e 列出所有进程
    • -u 列出某个用户关联的所有进程
    • -f 显示完整格式的进程列表
  • 功能说明

    • ps aux 显示信息说明

      USER:该进程是由哪个用户产生的

      PID:进程的 ID 号

      %CPU:该进程占用 CPU 资源的百分比,占用越高,进程越耗费资源

      %MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源

      VSZ:该进程占用虚拟内存的大小,单位 KB;

      RSS:该进程占用实际物理内存的大小,单位 KB;

      TTY:该进程是在哪个终端中运行的。对于 CentOS 来说,tty1 是图形化终端,

      tty2-tty6 是本地的字符界面终端。pts/0-255 代表虚拟终端。

      STAT:进程状态。常见的状态有:R:运行状态、S:睡眠状态、T:暂停状态、 Z:僵尸状态、s:包含子进程、l:多线程、+:前台显示

      START:该进程的启动时间

      TIME:该进程占用 CPU 的运算时间,注意不是系统时间

      COMMAND:产生此进程的命令名

    • ps -ef 显示信息说明

      UID:用户 ID

      PID:进程 ID

      PPID:父进程 ID

      C:CPU 用于计算执行优先级的因子。数值越大,表明进程是 CPU 密集型运算, 执行优先级会降低;数值越小,表明进程是 I/O 密集型运算,执行优先级会提高

      STIME:进程启动的时间

      TTY:完整的终端名称

      TIME:CPU 时间

      CMD:启动进程所用的命令和参数

  • 经验技巧

    如果想查看进程的 CPU 占用率和内存占用率,可以使用 aux;

    如果想查看进程的父进程 ID 可以使用 ef;

  • 案例实操

    [guozihan@hadoop100 ~]$ ps aux

    [guozihan@hadoop100 ~]$ ps -ef

1.10.2 kill终止进程

  • 基本语法

    kill [选项] 进程号 功能描述:通过进程号杀死进程

    killall 进程名称 功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用

  • 选项说明

    -9 表示强迫进程立即停止

  • 案例实操

    通过进程ID杀死进程

    [guozihan@hadoop100 ~]$ kill -9 10773

    通过进程名称杀死进程

    [guozihan@hadoop100 ~]$ killall firefox

1.10.3 pstree查看进程树

  • 基本语法

    pstree [选项]

  • 选项说明

    -p 显示进程的 PID

    -u 显示进程的所属用户

  • 案例实操

    显示进程 pid

    [guozihan@hadoop100 ~]$ pstree -p

    显示进程所属用户

    [guozihan@hadoop100 ~]$ pstree -u

1.10.4 top实时监控系统进程状态

  • 基本命令

    top [选项]

  • 选项说明

    -d 秒数 指定 top 命令每隔几秒更新。默认是 3 秒在 top 命令的交互模式当 中可以执行的命令

    i 使 top 不显示任何闲置或者僵死进程

    -p 通过指定监控进程 ID 来仅仅监控某个进程的状态

  • 操作说明

    P 以 CPU 使用率排序,默认就是此项

    M 以内存的使用率排序

    N 以 PID 排序

    q 退出 top

  • 查询结果字段解释

Linux(实操篇三)_第1张图片

Linux(实操篇三)_第2张图片

Linux(实操篇三)_第3张图片

Linux(实操篇三)_第4张图片

  • 案例实操

    [guozihan@hadoop100 ~]$ top -d 1

    [guozihan@hadoop100 ~]$ top -i

    [guozihan@hadoop100 ~]$ top -p 2575

    执行上述命令后,可以按 P、M、N 对查询出的进程结果进行排序

1.10.5 netstat 显示网络状态和端口占用信息

  • 基本语法

    netstat -anp | grep 进程号 功能描述:查看该进程网络信息

    netstat –nlp | grep 端口号 功能描述:查看网络端口号占用情况

  • 选项说明

    -a 显示所有正在监听(listen)和未监听的套接字(socket)

    -n 拒绝显示别名,能显示数字的全部转化成数字

    -l 仅列出在监听的服务状态

    -p 表示显示哪个进程在调用

  • 案例实操

    通过进程号查看sshd进程的网络信息

    [root@hadoop100 guozihan]# netstat -anp | grep sshd
    tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1162/sshd

    tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 2796/sshd: guozihan

    tcp 0 0 192.168.182.100:22 192.168.182.1:51375 ESTABLISHED 2788/sshd: guozihan
    tcp6 0 0 :::22 :: LISTEN 1162/sshd

    tcp6 0 0 ::1:6010 :: LISTEN 2796/sshd: guozihan
    unix 3 [ ] STREAM CONNECTED 42723 2796/sshd: guozihan

    unix 3 [ ] STREAM CONNECTED 29707 1162/sshd

    unix 3 [ ] STREAM CONNECTED 42724 2788/sshd: guozihan

    unix 2 [ ] DGRAM 42720 2788/sshd: guozihan

    查看某端口号是否被占用
    [root@hadoop100 guozihan]# netstat -nltp | grep 22
    tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1464/dnsmasq

    tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1162/sshd

    tcp6 0 0 :::22 :: LISTEN 1162/sshd

1.11 crontab系统定时任务

1.11.1 crontab服务管理

重新启动 crond 服务

[root@hadoop101 ~]# systemctl restart crond

1.11.2 crontab定时任务设置

  • 基本语法

    crontab [选项]

  • 选项说明

    -e 编辑 crontab 定时任务

    -l 查询 crontab 任务

    -r 删除当前用户所有的 crontab 任务

  • 参数说明

    Linux(实操篇三)_第5张图片

    Linux(实操篇三)_第6张图片

    Linux(实操篇三)_第7张图片

  • 实例实操

    每隔 1 分钟,向/root/bailongma.txt 文件中添加一个 11 的数字

    */1 * * * * /bin/echo ”11” >> /root/bailongma.txt

你可能感兴趣的:(Linux,linux,服务器)