前端了解这些 Linux 操作就够了

简介: 前端了解这些 Linux 操作就够了

版本

  • Kernel
  • 发行版

    • redhat
    • CentOS
    • ubuntu
    • fedora

Linux 与 Windows 区别

  • Linux 严格区分大小写
  • Linux 中所有的内容以文件形式保存,包括硬件、用户和文件
  • Linux 不靠扩展名来区分文件类型,靠权限来区分,但是有一些约定的扩展名,是给管理员看的

    • 压缩包 .gz .bz2 .tar.bz2 .tgz
    • 二进制文件 .rpm
    • 网页文件 .html .php
    • 脚本文件 .sh
    • 配置文件 .conf
  • Windows 下的程序不能直接在 Linux 中安装和运行
  • Linux 更多使用字符界面

    • 占用系统资源更少
    • 减少出错和被攻击的可能性,会让系统更稳定

Linux 启动

  • BIOS (Basic Input/Output System)
    计算机通电后,首先就是读取刷入 ROM 芯片的开机程序
  • 硬件自检

    • BIOS 程序首先检查计算机硬件是否满足运行的基本条件,即硬件自检(Power-On Self-Test)
    • 如果硬件出现问题,主板会发出不同含义的蜂鸣,启动中止。如果没有问题,屏幕就会显示出 CPU、内存、硬盘等信息。
  • 启动顺序

    • 硬件自检完成后,BIOS 将控制权交给下一阶段的启动程序
    • BIOS 有一个外部储存设备的排序,排在前面的就是优先转交控制权的设备(启动顺序,Boot Sequence)
  • 主引导记录

    • 计算机读取该设备的第一个扇区(前 512 字节),如果 521 字节的最后两个字节是 0x550xAA,表明这个设备可以用于其启动;如果不是,表明设备不能用于启动,控制权于是被转交给 启动顺序 中的下一设备
    • 前面的 512字节 即 主引导记录(MBR, Master boot record)
  • 主引导记录结构

    • 1-446 字节:记录系统的启动信息,调用操作系统的机器码
    • 447-510 字节:分区表,将硬盘分成若干个区
    • 511-512 字节:主引导记录签名(0x55 和 0xAA)
  • 分区表

    • 磁盘分区是使用分区编辑器在磁盘上划分几个逻辑部分
    • 磁盘一旦划分成多个分区,不同类的目录与文件可以存储进不同的分区
    • 主引导记录必须知道将控制权交给哪个分区
    • 分区表的长度为 64 个字节,里面分成四项(每项 16 个字节),因此一个硬盘最多分四个一级分区(主分区)
  • 扇区

    • 扇区是硬盘存储上的概念,盘片划分为若干扇形区域即扇区
    • 扇区是硬盘上最小的读写单位,由硬盘决定不是操作系统决定
    • 目前硬盘逻辑扇区大小等于物理扇区大小
    • 物理扇区:硬件意义上的扇区
    • 逻辑扇区

      • 在物理扇区之上,操作系统划分的逻辑扇区,是为了方便操作系统读取写入硬盘数据而设置的,其带下与具体地址都可以通过一定的公式和物理地址对应
      • 如果出现坏扇区,系统可以通过逻辑扇区,将物理上的坏扇区地址重新定位到备用的好扇区,以延长硬盘使用寿命
  • 硬盘启动

    • 计算机的控制权就要转交给硬盘的某个分区
    • 四个主分区中,只有一个是激活的。计算机会读取激活分区的第一个扇区,即 卷引导记录(Volume boot record,VBR)
  • 操作系统

    • 控制权交给操作系统后,操作系统的内核首先被载入内存
    • Linux,先载入 /boot 下的 kernel。内核加载成功后,第一个运行的程序是 /sbin/init。它根据配置文件产生 init 进程(Linux 启动后的第一个进程,pid 为 1,其他进程都是它的后代)
    • 然后,init 线程加载系统的各个模块,如窗口程序和网络程序,直至执行 /bin/login 程序,跳出登录界面,等待用户输入用户名和密码

硬件设备文件名

  • 只要插入硬盘,Linux 会自动检测和分配名称
  • 一个硬盘可以分成多个分区,每个分区都会有一个系统分配的名称
  • 第一块 SCSI 硬盘叫 sda,它的第一个分区叫 sda1
硬件 设备文件名
IDE硬盘 /dev/hd[a-d]
SCSI/SATA/USB 硬盘 /dev/sd[a-p]
光驱 /dev/cdrom or /dev/hdc
软盘 /dev/fd[0-1]
打印机(25针) /dev/lp[0-2]
打印机(USB) /dev/usb/lp[0-15]
鼠标 /dev/mouse

分区

  • 磁盘分区是使用分区编辑器在磁盘上划分几个逻辑部分
  • 磁盘一旦划分成多个分区,不同类的目录与文件可以存储进不同的分区
  • 分区表的长度为 64 个字节,里面分成四项(每项 16 个字节),因此一个硬盘最多分四个一级分区(主分区)
  • 扩展分区

    • 规定有且仅有一个区可以被定义成扩展分区
    • 扩展分区内又分成多个区,子分区叫逻辑分区
    • 不能写入数据,只能包含逻辑分区,逻辑分区最多是 23 个(逻辑分区中可以写入)
    • 故一个硬盘最多可以分 26 个区(3 个主分区 + 23 个逻辑分区)

格式化

  • 根据用户选定的文件系统(如 FAT16(2G), FAT32(4G), NFTS, EXT2, EXT3, EXT4)对分区进行划分
  • 目的是为了更好地写入和读取数据
  • 主要是将整个分区切分成等大小的数据块,每个数据块是 4KB,是存放文件的最小空间
  • 微软操作系统(DOS, Windows 等)中磁盘文件存储管理的最小单位叫
  • 在分区中划出一批用于存放文件分配表,目录表等用户文件管理的磁盘空间
  • 格式化会清空数据

挂载点

  • 为了让 Linux 系统中可以访问这些分区,需要把这些分区挂载到对应的目录上
  • 在 Linux 是把目录称为 挂载点
  • 把目录和分区链接在一起的过程称为 挂载
  • / 为根目录,必须挂载到一个分区上, 默认所有子目录都会写入这个分区
  • 同一级目录下的所有子目录可以有自己的独立存储空间
  • 必须有的分区

    • / 根分区
    • swap 分区(交换分区,虚拟内存,一般为内存的 2 倍,不要超过 2G)
  • 推荐分区

    • /boot (启动分区,200M)单独分区,避免分区写满造成系统无法启动
  • 挂载示例

    • /dev/sd2 挂载到 / 目录上,即向 / 目录下写文件就是往 /dev/sd2 分区里写文件

常用命令

常见目录

  • / 根目录
  • /boot 启动目录,启动相关文件
  • /dev 设备文件
  • /etc 配置文件
  • /home 普通用户的 home 目录,可以操作
  • /lib 系统库保存目录
  • /mnt 移动设备挂载目录
  • /media 光盘挂载目录
  • /misc 磁带机挂载目录
  • /root 超级用户的 Home 目录,可以操作
  • /tmp 临时目录,可以操作
  • /proc 正在运行的内核信息映射,主要输出进程信息、内存资源信息和磁盘分区信息等
  • /sys 硬件设备的驱动程序信息
  • /var 变量
  • /bin 普通的基本命令,如 ls,chmod 等,一般的用户也可以使用
  • /sbin 基本的系统命令,如 shutdown,reboot,用于启动系统,修复系统,只有管理员才可以运行
  • /usr/bin 后期安装软件的运行脚本
  • /usr/sbin 放置一些用户安装的系统管理的必备程序

命令基本格式

  • 命令提示符

    [root@myhost ~]#
    • root 当前登录用户
    • myhost 主机名
    • ~ 当前工作目录,默认是当前用户的 Home 目录(root 是 /root,普通用户是 /home/用户名)
    • 提示符 超级用户是#,普通用户是 $
  • 命令基本格式

    • 命令 [选项] [参数]
    • 当有多个选项是可以写在一起
    • 一般参数有简化和完整写法两种 -a--all等效
  • ls

    • 查询目录中的内容
    • ls [选项] [文件或目录]
    • 选项

      • -a 显示所有文件,包括隐藏文件
      • -l 显示详细信息
      • -d 查看目录本身的属性而非子文件 ls /etc/
      • -h 人性化的方式显示文件大小
      • -i 显示 inode,也就是 i 节点,每个节点都有 ID 号
    • 默认当前目录下的文件列表

文件处理命令

  • mkdir 建立目录 make directory

    • mkdir -p [目录名] (-p 递归创建)
  • cd 切换所在目录 change directory

    • cd [目录]
    • ~ home 目录
    • . 当前目录
    • .. 上级目录
    • 相对路径是参照当前所在目录
    • 绝对路径是从根目录开始
    • 按 TAB 键可以补全命令和目录
  • pwd 显示当前目录
  • rmdir 删除目录 remove empty directory

    • rmdir [目录名]
  • rm 删除文件或目录

    • rm [文件或目录]
    • -r 删除目录
    • -f 强制删除
    • rm -rf [文件或目录] 递归强制删除所有目录
  • cp 复制命令 copy

    • cp [源文件或目录] [目标文件]
    • -r 复制目录,默认是复制文件
    • -p 连带文件属性复制
    • -d 若源文件是链接文件,则复制链接属性
    • -a 相当于 -rpd
  • mv 修改文件或改名 move

    • mv [源文件或目录] [目标文件]
  • ln 链接命令,生成链接文件 link

    • 硬链接
    • ln -s [源文件] [目标文件] (软链接)

文件搜索命令

  • locate

    • 在后台数据库中按文件名搜索,速度较快
    • 数据保存在 /var/lib/mlocate 后台数据库,每天更新一次
    • 可以 updatedb 立即更新数据库
    • 只能搜索文件名
    • /etc/updatedb.conf 建立索引的配置文件
  • whereis

    • 搜索 命令 所在路径以及帮助文档所在位置
    • whereis ls -b 只查找可执行文件 -m 只查找帮助文件
  • which

    • 可以看到命令别名 which ls
    • 能看到的都是外部安装的命令
    • 无法查看 shell 自带的命令,如 which cd
  • 环境变量

    • 定义系统搜索命令的路径
    • 查看 echo $PATH
  • find 文件搜索命令 find [搜索范围] [搜索条件]

    • 按名称搜索(避免大范围搜索,会非常耗性能) find / -name aaa.log
    • 通配符 find . -name "ab[cdef]"(* 匹配任意内容,? 匹配任意一个字符,[] 匹配任意一个中括号内的字符)
    • -i 忽略大小写
    • -user 按所有者进行搜索 find /root -user root
    • 按时间搜索(-atime 文件访问时间,ctime 改变文件属性,mtime 修改文件内容)
    • 按大小搜索(find . -size 100k
    • 按 i 节点搜索 find . -inum 1234
  • grep 在文件中匹配符合条件的字符串 grep "10" access.log

帮助命令

  • man [命令] 获取指定命令的帮助,如 man ls

压缩与解压缩

  • .zip

    • 压缩文件 zip 压缩文件名.zip 源文件
    • 压缩目录 zip -r 压缩目录名.zip 源目录
    • 解压 unzip 压缩目录名.zip
  • gzip

    命令 示例 含义
    gzip 源文件 gzip a.txt 压缩为 .gz 文件,源文件会消失
    gzip -c 源文件 > 压缩文件 gzip -c yum.txt > yum.txt.gz 压缩为 .gz 文件,源文件不会消失
    gzip -r 目录 gzip -r xx 把目录下的每个子文件夹都变成压缩包,并删除原文件,当前目录无变化
    gzip -d 压缩文件名 gzip -d yum.txt.gz 解压缩文件,不保留压缩包
    gunzip 压缩文件 gunzip yum.txt.gz 解压缩文件,不保留压缩包
  • .bz2
    压缩能力更强,不能压缩目录

    命令 示例 含义
    bzip2 源文件 bzip2 1.txt 压缩为 .bz2 格式的文件,不保留源文件
    bzip2 -k 源文件 bzip2 -k 1.txt 压缩为 .bz2 格式的文件,保留源文件
    bzip2 -d 压缩文件名 bzip2 -d 1.txt bz2 解压压缩包,不保留压缩包
    bunzip2 压缩文件名 bunzip2 1.txt.bz2 解压压缩包,不保留压缩包
  • tar

    • 打包命令,只打包并不压缩
    • tar -cvf 打包文件名 源文件

      • -c 打包
      • -v 显示过程
      • -f 指定打包后的文件名
    • tar -xvf book.tar -x 解包
  • tar.gz

    • zip 可以压缩目录但压缩效率不高,gzip 和 bzip2 压缩率高但不支持目录
    • 可以先打包为 .tar 格式,再压缩为 .gz 格式
    命令 示例 含义
    tar -zcvf 压缩包名.tar.gz 源文件 tar -zcvf book.tar.gz book 先打包为 .tar 格式,再压缩为 .gz 格式
    tar -zxvf 压缩包名.tar.gz tar -zxvf book.tar.gz 解压 tar.gz 压缩包
    tar -jcvf 压缩包名.tar.bz2 源文件 tar -jcvf book.tar.bz2 book 先打包为 .tar 格式,再压缩为 .bz2 格式
    tar -jxvf 压缩包名.tar.bz2 tar -jxvf book.tar.bz2 解压 tar.bz2 压缩包

关机和重启

  • shutdown

    • -c 取消前一个关机命令
    • -h 关机
    • -r 重启
  • init

    init 0 # 关机
    init 6 # 重启
  • logout 退出登录

查看登录用户信息

  • w

    • USER 用户名
    • TTY 登录的终端
    • FROM 登录的 IP
    • LOGIN 登录的时间
    • IDLE 用户闲置时间
    • JCPU 该终端所有进程占用的时间
    • PCPU 当前进程所占用的时间
    • WHAT 正在执行的命令
  • who 查看登录用户信息(只显示 USER,TTY, LOGIN)
  • last 查看当前登录和过去登录的用户信息
  • lastlog 查看所有用户的最后一次登录时间

磁盘管理

  • df 查看磁盘分区使用状况

    参数 描述
    -l 仅显示本地磁盘(默认)
    -a 显示所有文件系统的使用情况
    -h 以 1024 进制计算最合适的单位显示磁盘容量
    -H 以 1000 进制计算最合适的单位显示磁盘容量
    -T 显示磁盘分区类型
    -t 显示指定类型文件系统的磁盘分区
    -x 不显示指定类型文件系统的磁盘分区
  • du 统计磁盘上的文件大小

    参数 描述
    -b 以 byte 为单位
    -k 以 KB 为单位
    -m 以 MB 为单位
    -h 以 1024 为单位
    -H 以 1000 为单位
    -s 指定统计目标

文件查看命令

  • cat 连接文件并打印到标准输出设备上

    • cat [-AbeEnstTuv] [--help] [--version] fileName
    • -n or --number 由 1 开始对所有输出的行数编号
  • more

    • 类似于 cat,但会以一页一页的形式显示,方便逐页阅读
  • head 显示开头某个数量的文字区块(查看前几行)
    head -5 readme.txt
  • tail tail [参数] [文件] 查看文件的内容(查看后几行)

    • -f 循环读取
    • -n<行数> 显示文件的尾部 n 行内容
相关文章
|
19天前
|
存储 安全 数据管理
探索Linux的挂载操作🌈
在Linux这个强大的操作系统中,挂载操作是一个基本而重要的概念。它涉及到文件系统、设备和数据访问,对于理解Linux的工作方式至关重要。那么,挂载操作究竟是什么,为什么我们需要它,如果没有它,我们将面临什么问题呢?让我们一起深入探讨。
探索Linux的挂载操作🌈
|
28天前
|
Linux Windows
Linux之基本指令操作
Linux之基本指令操作
|
1月前
|
Linux C语言
Linux系统下C语言的队列操作
Linux系统下C语言的队列操作
23 0
|
2月前
|
存储 Linux API
Linux应用开发基础知识——文件IO操作(三)
Linux应用开发基础知识——文件IO操作(三)
54 2
Linux应用开发基础知识——文件IO操作(三)
|
1月前
|
存储 算法 Shell
【Shell 命令集合 磁盘维护 】Linux 对软盘进行格式化操作 fdformat命令使用指南
【Shell 命令集合 磁盘维护 】Linux 对软盘进行格式化操作 fdformat命令使用指南
32 0
|
1月前
|
Shell Linux C语言
【Shell 命令集合 磁盘管理 】Linux 控制光驱或可移动媒体设备的弹出和关闭操作 eject命令使用教程
【Shell 命令集合 磁盘管理 】Linux 控制光驱或可移动媒体设备的弹出和关闭操作 eject命令使用教程
36 1
|
2天前
|
Ubuntu Linux
Linux(Ubuntu)系统临时IP以及静态IP配置(关闭、启动网卡等操作)
请注意,以上步骤是在临时基础上进行配置的。如果要永久保存静态IP地址,通常还需要修改 `/etc/network/interfaces`文件,以便在系统重启后保持配置。同时,确保备份相关配置文件以防止出现问题。
9 1
|
3天前
|
Ubuntu Linux 数据安全/隐私保护
Linux(24) 如何在Ubuntu中操作rootfs.img文件
Linux(24) 如何在Ubuntu中操作rootfs.img文件
5 0
|
1月前
|
算法 Shell Linux
【Shell 命令集合 文档编辑 内建命令】Linux数值运算和赋值操作 let命令使用指南
【Shell 命令集合 文档编辑 内建命令】Linux数值运算和赋值操作 let命令使用指南
26 0
|
Linux C++
【Linux】—— 在Linux上进行读写文件操作
【Linux】—— 在Linux上进行读写文件操作