前端了解这些 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 行内容
相关文章
|
1月前
|
前端开发 JavaScript 应用服务中间件
linux安装nginx和前端部署vue项目(实际测试react项目也可以)
本文是一篇详细的教程,介绍了如何在Linux系统上安装和配置nginx,以及如何将打包好的前端项目(如Vue或React)上传和部署到服务器上,包括了常见的错误处理方法。
374 0
linux安装nginx和前端部署vue项目(实际测试react项目也可以)
|
4月前
|
网络协议 Linux 网络安全
入职必会-开发环境搭建39-Linux常用操作-Linux防火墙操作
在CentOS 7中,新引入了firewalld服务(防火墙),取代了CentOS 6之前的iptables服务(防火墙)。
入职必会-开发环境搭建39-Linux常用操作-Linux防火墙操作
|
4月前
|
存储 运维 Linux
Linux磁盘精准缩容:操作详解与技巧
在Linux系统管理中,有效的磁盘空间优化对于维护系统性能至关重要。本文将深入探讨如何在Linux环境下安全地进行磁盘缩容,帮助你合理调整存储资源,确保系统高效运行。跟随本篇的步骤,一起优化你的Linux系统磁盘空间!
Linux磁盘精准缩容:操作详解与技巧
|
3月前
|
存储 前端开发 关系型数据库
Linux 技术架构:前端、后端与数据库的完美融合
【8月更文挑战第25天】本文深入剖析了Linux操作系统的技术架构,重点介绍了前端、后端及数据库三大核心组成部分。Linux前端技术不仅涵盖了图形用户界面(GUI),包括GNOME、KDE等桌面环境,还涉及HTML、CSS、JavaScript等Web前端技术及其相关框架。后端技术则聚焦于Python、Java等多种编程语言、Apache和Nginx等Web服务器以及MySQL、PostgreSQL等数据库管理系统。Linux数据库技术覆盖了关系型和非关系型数据库,如MySQL、MongoDB等,并提供了多种数据库管理工具。
98 0
|
5月前
|
Linux 网络安全 开发工具
Linux 管理远程会话 screen:掌握终端的多任务操作
`Linux screen` 命令让多任务管理变得更简单,尤其在SSH连接远程服务器时。创建新会话如`screen -S backup`,查看会话`screen -ls`,退出`exit`。高级功能包括直接在会话中运行命令,如`screen vim memo.txt`,会话共享以协同工作,以及通过`screen -r`或`-D -r`重新连接或强制恢复断开的会话。提高效率,确保任务不间断运行。
100 1
|
4月前
|
安全 固态存储 Linux
服务器linux操作系统重装的完整流程-傻瓜式教学
服务器linux操作系统重装的完整流程-傻瓜式教学
|
5月前
|
Linux 应用服务中间件 网络安全
linux 初始化全部操作
linux 初始化全部操作
42 1
|
5月前
|
前端开发 计算机视觉
视觉智能开放平台操作报错合集之人脸对比1:1,采用web前端直接调用,使用了base64处理图片,提示http错误码414,该如何处理
在使用视觉智能开放平台时,可能会遇到各种错误和问题。虽然具体的错误代码和消息会因平台而异,但以下是一些常见错误类型及其可能的原因和解决策略的概述,包括但不限于:1. 认证错误、2. 请求参数错误、3. 资源超限、4. 图像质量问题、5. 服务不可用、6. 模型不支持的场景、7. 网络连接问题,这有助于快速定位和解决问题。
|
5月前
|
前端开发 程序员 API
视觉智能开放平台产品使用合集之web前端拉起人脸识别该如何操作
视觉智能开放平台是指提供一系列基于视觉识别技术的API和服务的平台,这些服务通常包括图像识别、人脸识别、物体检测、文字识别、场景理解等。企业或开发者可以通过调用这些API,快速将视觉智能功能集成到自己的应用或服务中,而无需从零开始研发相关算法和技术。以下是一些常见的视觉智能开放平台产品及其应用场景的概览。
|
6月前
|
Linux 芯片 Ubuntu
Linux驱动入门 —— 利用引脚号操作GPIO进行LED点灯
Linux驱动入门 —— 利用引脚号操作GPIO进行LED点灯
下一篇
无影云桌面